打印
[STM32F1]

STM32 外部晶振电路设计和匹配

[复制链接]
3611|61
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
abotomson|  楼主 | 2024-4-30 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32的时钟源

STM32F103有两种主时钟方案,一个是依靠内部RC振荡器的HSI(内部高速时钟),另一个是HSE(外部高速时钟)。

内部高速时钟源(HSI)

看数据手册,内部的HSI是由ST出厂时校准过的,但是精度并不高,在0到70℃下误差范围达到 -1.3%到2%,即便是在标准的25℃下,也有 -1.1%到1.8% 的误差(如下图)。
对于高波特率的异步串口通讯,或者需要高精度定时的场合(如:需要跑积分算法的时候),用HSI就有隐患,甚至根本达不到设计要求。

外部高速时钟源(HSE)

为了更高的时钟精度,就要用HSE做主时钟源,起码做到30ppm还是很容易的。无源晶振相对便宜一些,要求不是非常高的话也足够了。
对于外部无源晶振,需要做一些匹配工作。当然,直接baidu一个原理图,啥也不想,直接照着抄也可以运行。但是这样的设计,批量生产会不会出问题?某些特定环境下会不会崩溃?系统稳定性会不会很低?……都是未知数。这就是给自己的设计埋下隐患,说不定什么时候就崩了。
所以还是来看看怎么匹配吧–
就以 STM32F103晶技HC-49SMD 8M 20pF 20ppm 的匹配为例

1. 负载电容匹配

负载电容就是下图中的CL1、CL2,一般取CL1 = CL2,这两个电容和晶体Q构成三点式电容振荡器。

那么要把CL1、CL2跟谁匹配呢?其实就是跟晶振的参数:Load Capacitance匹配,简称CL,从晶振的数据手册可以查到,见下图:

我们选择的是20pF系列的晶振,所以CL = 20pF
当然我们知道,在电路板走线上还有寄生电容,连接的芯片输入端也有等效电容,这部分也要考虑进去。从ST手册可以查到,STM32F103的晶振输入电容是5pF,而PCB走线的寄生电容一般可以估值3pF到5pF。我们这里就取Cs = 10pF。下面看公式:

由于我们取了CL1 = CL2,公式就可以变为:CL1 = CL2 = 2 * (CL - Cs)
Cs = 10pF,CL = 20pF带入上面的公式,能求出:CL1 = CL2 = 20pF
因此CL1、CL2均取为20pF。

2. 晶振跨导计算

为了确保晶振能顺利起振,并运行在稳定状态,就得有足够的增益来维持。一般要求就是,单片机的gm比晶振的gmcrit大5倍以上就可以。下面就求一下这个比值,看看是否大于5倍。
首先看STM32F103手册,可以直接获知:gm = 25mA/V

有了gm = 25mA/V,就要用它跟晶振的最小稳定跨导gmcrit相比较。gmcrit是要我们计算一下的:

这里面的几个未知参数的意义是:
ESR——晶振的等效串联电阻,手册里查到
F——晶振的振荡频率
C0——晶振的Shunt Capacitance
CL——晶振的负载电容Load Capacitance

好,下面看晶振的手册,找这几个参数:

F = 8MHz,C0 = 7pF,CL = 20pF,ESR = 80Ω。参数Get√,计算:
gmcrit = 4*80*(2Π*8*10^6)^2*(7*10^-12 + 20*10^-12)^2
gmcrit = 0.1886
现在gm、gmcrit都有了,可以比一下了

比值 = gm/gmcrit = 25/0.1886 = 132
可见,这个比值是132,远大于5倍的最低要求,所以我们选择的晶振是合适的。如果算出来是不合适的,那就要选用更小ESR,更低CL的晶振。其实STM32对于高速晶振的要求不高,但是对于外部低速RTC晶振的要求高一些,选型时要多加留意。

3. 驱动电平DL(Drive Level)

驱动电平其实就是指晶振工作消耗的功率,如果这个功率过大,超过晶振承受能力,则晶振寿命将减少,容易过早失效。晶振的推荐功率,可以在上图(晶振数据手册)中找到,我们选择的这个晶振的DL范围是1到500uW,推荐是100uW。如果实际工作功率过大,就串联一个Rext来限制功耗。实际功耗怎么获得?这个得自己用示波器测量,然后带入ESR计算出来。

4. 反馈电阻Rf (Feedback Resistance)

把这个放最后,其实不是因为他没啥用,而是因为ST已经把他集成到芯片里面了,我们不用太多关心这个问题了。这个Rf的作用就是让放大器Vin = Vout,来强制工作在放大区间


使用特权

评论回复
沙发
vivilyly| | 2024-5-1 20:06 | 只看该作者
晶振的PCB布局也非常关键,不当的布局可能导致晶振工作不稳定。

使用特权

评论回复
板凳
10299823| | 2024-5-2 13:53 | 只看该作者
STM32微控制器支持多种晶振频率,如32.768kHz(用于RTC)、8MHz、12MHz、16MHz等。

使用特权

评论回复
地板
minzisc| | 2024-5-2 22:35 | 只看该作者
为晶振提供稳定的电源,并使用干净的接地。避免电源噪声和接地回路对晶振的影响。

使用特权

评论回复
5
modesty3jonah| | 2024-5-3 12:09 | 只看该作者
不同的STM32型号可能有不同的时钟树配置和时钟源选项,因此要确保所选的晶振频率与STM32的时钟系统兼容。

使用特权

评论回复
6
jackcat| | 2024-5-3 15:34 | 只看该作者
晶振的负载电容可以从其数据手册中获得,例如,若选择的是20pF系列的晶振,则CL应为20pF

使用特权

评论回复
7
qiufengsd| | 2024-5-4 11:57 | 只看该作者
为晶振提供稳定的电源,避免由于电源波动导致的时钟不准确。

使用特权

评论回复
8
claretttt| | 2024-5-4 14:39 | 只看该作者
设计适当的滤波电路,以防止可能的干扰信号影响晶振的稳定性。这通常涉及到在晶振附近添加电容器来构成一个低通滤波网络。

使用特权

评论回复
9
yorkbarney| | 2024-5-6 10:33 | 只看该作者
考虑到晶振对外部干扰敏感,可能需要采取屏蔽或其他抗干扰措施。

使用特权

评论回复
10
pl202| | 2024-5-6 16:19 | 只看该作者
电路中的电容和电阻的数值可以根据实际情况进行调整,以获得最佳的工作效果。

使用特权

评论回复
11
jackcat| | 2024-5-7 08:00 | 只看该作者
为了保护晶振免受静电放电(ESD)的影响,可以在晶振的输入和输出端添加ESD保护器件,如TVS二极管等。

使用特权

评论回复
12
wilhelmina2| | 2024-5-7 12:52 | 只看该作者
在PCB设计时,应尽量缩短晶振与MCU之间的连线,减少信号的衰减和干扰。

使用特权

评论回复
13
bartonalfred| | 2024-5-7 17:32 | 只看该作者
负载电容(CL)是指晶振两端所接的电容,它与晶振一起构成三点式电容振荡器。

使用特权

评论回复
14
loutin| | 2024-5-7 21:50 | 只看该作者
STM32F103的晶振输入电容约为5pF,而PCB走线的寄生电容可能在3pF到5pF之间。

使用特权

评论回复
15
tpgf| | 2024-5-8 14:05 | 只看该作者
如果不匹配的话 表现是不工作呢 还是频率不对呢

使用特权

评论回复
16
sdCAD| | 2024-5-8 14:32 | 只看该作者
计算晶振的负载电容,这通常涉及到PCB布局上的电容和引脚电感的综合考虑。

使用特权

评论回复
17
adolphcocker| | 2024-5-8 18:57 | 只看该作者
模拟地和数字地应分开,并通过多点连接以减少不同地之间的压差。信号线应遵循3W原则,即线与线之间的距离至少为线宽的3倍,并避免与电源线平行。

使用特权

评论回复
18
heimaojingzhang| | 2024-5-8 21:12 | 只看该作者
无论是有源还是无缘 外部晶振的外壳必须接地是吗

使用特权

评论回复
19
Henryko| | 2024-5-8 21:50 | 只看该作者
不同型号的时钟树配置也不一样

使用特权

评论回复
20
ingramward| | 2024-5-9 13:46 | 只看该作者
晶振的位置应避免靠近板边或设备外壳,以防因撞击导致晶体断裂。晶振的外壳应接地,以减少辐射杂讯。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

1548

帖子

1

粉丝