看数据手册,内部的HSI是由ST出厂时校准过的,但是精度并不高,在0到70℃下误差范围达到 -1.3%到2%,即便是在标准的25℃下,也有 -1.1%到1.8% 的误差(如下图)。
对于高波特率的异步串口通讯,或者需要高精度定时的场合(如:需要跑积分算法的时候),用HSI就有隐患,甚至根本达不到设计要求。
为了更高的时钟精度,就要用HSE做主时钟源,起码做到30ppm还是很容易的。无源晶振相对便宜一些,要求不是非常高的话也足够了。
对于外部无源晶振,需要做一些匹配工作。当然,直接baidu一个原理图,啥也不想,直接照着抄也可以运行。但是这样的设计,批量生产会不会出问题?某些特定环境下会不会崩溃?系统稳定性会不会很低?……都是未知数。这就是给自己的设计埋下隐患,说不定何时就崩了。
负载电容就是下图中的CL1、CL2,一般取CL1 = CL2,这两个电容和晶体Q构成三点式电容振荡器。
那么要把CL1、CL2跟谁匹配呢?实际上的意思就是跟晶振的参数:LoadCapacitance匹配,简称CL,从晶振的数据手册可以查到,见下图:
当然我们大家都知道,在电路板走线上还有寄生电容,连接的芯片输入端也有等效电容,这部分也要考虑进去。从ST手册可以查到,STM32F103的晶振输入电容是5pF,而PCB走线的寄生电容通常能估值3pF到5pF。我们这里就取Cs = 10pF。下面看公式:
为了确保晶振能顺利起振,并运行在稳定状态,就得有足够的增益来维持。一般要求就是,单片机的gm比晶振的gmcrit大5倍以上就可以。下面就求一下这个比值,看看是否大于5倍。
有了gm = 25mA/V,就要用它跟晶振的最小稳定跨导gmcrit相比较。gmcrit是要我们计算一下的:
可见,这个比值是132,远大于5倍的最低要求,所以我们最终选择的晶振是合适的。如果算出来是不合适的,那就要选用更小ESR,更低CL的晶振。其实STM32对于高速晶振的要求不高,但是对于外部低速RTC晶振的要求高一些,选型时要多加留意。
驱动电平实际上的意思就是指晶振工作消耗的功率,如果这个功率过大,超过晶振承担接受的能力,则晶振寿命将减少,容易过早失效。晶振的推荐功率,可以在上图(晶振数据手册)中找到,我们最终选择的这个晶振的DL范围是1到500uW,推荐是100uW。如果实际在做的工作功率过大,就串联一个Rext来限制功耗。实际功耗怎么获得?这个得自己用示波器测量,然后带入ESR计算出来。
把这个放最后,其实不是因为他没啥用,而是因为ST已经把他集成到芯片里面了,我们不用太多关心这样的一个问题了。这个Rf的作用就是让放大器Vin = Vout,来强制工作在放大区间
以上写的4项,对于STM32F103的高速外部晶振,其实主要考虑“1.负载电容计算”就可以了,这个是直接性影响最大的。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。举报投诉
是现代电子设备中常见的两种组件,它们都扮演了关键的时间管理器的角色。尽管它们在功能和设计上有一些相似之处,但是
8M的情况下实现的,所以配置串口波特率的时候也是按8M,包括主频。如果采用
如果产品附加值比较高,并且产品对温度,电磁环境等可靠性要求严格的时候,需要仔细考虑使用
设计,在原理图设计及PCB-LAYOUT完成后,就进行贴片电路板及...
f4xx_hal_conf.h 修改#define HSE_VALUE
f10x.h 中,将119行#define HSE_VALUE ((uint32_t)8000000) /*! Value
背景因项目国产化需要,使用国产化MCU(雅特力)ATF32F413CBT6替代
系列的单片机,从L0到L4,从F1到F4系列,标准库和HAL库默认使用的
频率范围一般来说在数据手册(Datasheet)和技术参考手册(Technical Reference Manual)中都有介绍。你提到的
设计,在原理图设计及PCB-LAYOUT完成后,就进行贴片电路板及...
8M的情况下实现的,所以配置串口波特率的时候也是按8M,包括主频。 如果采用