一、为什么需要外部晶振
众所周知,stm32f103c8t6是有两个内部晶振的,分别为内部高速晶振和内部低速晶振,为什么我们还要外接晶振呢,直接用内部晶振不香吗?
我们需要了解一点内部晶振不香,因为这玩意频率误差很大,能达到1%到3%之间,这对于我们需要一些精密的场景,比如通信协议,USB通信要48MHz的时钟,而且误差要控制在0.25%内。内部晶振根本做不到;而且在一些特殊环境比如高温高压等,内部晶振稳定性就更差了,因此我们需要外接外部晶振。从而达到我们对精度和环境等要求。
二、外部晶振引脚
查阅手册(数据手册)可知,stm32f103c8t6的外部晶振引脚有4个,分别是:
OSC32_IN对应引脚PC14、OSC32_OUT对应引脚PC15、这两个是外部低速晶振的接口
OSC_IN对应引脚PD0、OSC_OUT对应引脚PD1、这两个是外部高速晶振的接口
如图所示:

对应的4个引脚就是我们外接高速和低速晶振的地方。
三、外部晶振的选型
知道了如何外接晶振,我们该怎样选择这个外部晶振呢? 其实官方在STM32f103xB数据手册里给出了:

我们只需要使用这个典型值组成外部高速晶振电路即可。那么同理外部低速晶振我们也可以得到参数:

从而我们得到了外部高速晶振是8MHz,外部低速晶振是32.768kHZ,为什么是这个数呢?
8MHz的外部晶振通常作为系统的主时钟源,通过PLL倍频后可以为STM32提供更高的系统时钟频率(如72MHz)。这种高频率的时钟信号能够满足CPU和各种外设的高速运行需求。
32.768kHz晶振主要用于实时时钟(RTC)模块,为其提供稳定的时钟基准。32.768kHz等于2的15次方,经过15次二分频后可以精确地产生1Hz的秒信号,非常适合用于RTC模块。
四、外部晶振电路的设计
我们如何设计外部晶振电路呢?同样的数据手册里给出了我们典型应用:
如图所示,其实就是外部晶振的两端分别接到外部晶振引脚,同时再分别接两个对地电容。现在的问题是,我们如何去设计电容呢?这里我们要明确3个概念,我们通过阅读手册引出:
【1】查阅数据手册可知,CL1和CL2通常具有相同参数,就是一模一样;
【2】在PCB板子上,PCB板和芯片引脚是有一定距离的,这个距离可以等效出一个电容,手册给出了外部高速晶振这个电容可以粗略的认为是10pf;
【3】CL1和CL2的计算公式是:CL = CL1 x CL2 / (CL1 + CL2) + Cstray,其中Cstray是引脚的电容和PCB板或PCB 相关的电容它的典型值是介于2pF至7pF之间。(对于低速晶振,高速晶振的说了粗略认为是10pf);CL是你所使用的晶振的参数,这个器材商会给出。
由此我们可以根据这个公式和用到的晶振来计算CL1,CL2的值。

由图可知,外部晶振为8MHZ的这个高速晶振CL为20pf,Cstray取10pf,代入公式不难算出CL1和CL2为20pf,因此对于外部高速晶振,我们选择的电容为20pf。

同理,我们如果粗略的取取Cstray为2.5pf时,对于低速晶振,可以计算出所用电容也为20pf
五、总结
综合上述内容,我们就已经完全得到了晶振电路的设计了。

外部时钟电路&spm=1001.2101.3001.5002&articleId=145313616&d=1&t=3&u=6779d229aed1486e9f39911c3c9822aa)
1万+

被折叠的 条评论
为什么被折叠?



