在开始之前,我们先理清楚“晶体”和“晶振”这两个概念的区别!为什么要提着一嘴呢?
因为我发现身边的工程师基本上都把“晶体”叫成“晶振”了,估计是工作环境的影响,慢慢的潜移默化了,大家都习惯了,包括本文的题目其实应该叫“晶体电路”的,但为了大伙能适应自己的习惯,就索性不改过来了,心里有个概念就行!
根据概念区分如下:(来自网络,这段可以不用细看)
晶体(Crystal)通常简称为XTAL,是无源晶体(Passive Crystal),需要依赖外部电路来产生时钟信号。它有两个引脚,一般直插两个脚的无极性元件,没有方向性,可以正向或反向焊接。晶体本身无法振荡,需要外部电路提供激励信号才能产生振荡。
晶振(Crystal Oscillator)通常简称为XO,是有源晶振(Active Crystal Oscillator),只需通电即可振荡并输出时钟信号,因为其内部已经集成了振荡电路。它至少有三个引脚,包括电源、地和时钟输出,有时还会有一个压控脚。晶振有方向性,焊反则信号无法传至芯片。有源晶振内部集成了激励电路,可以直接连接到电路中,产生所需的振荡信号。
所以,我们常见的“晶振电路”其实都是“晶体电路”(如下图1和2所示)
为了能适应各位的阅读习惯,本文暂时还是以“晶振电路”这个名称展开!
图1
图2
疑问:那图1和图2中的两个电容是怎么来的?我们首先要看的是晶振的手册
先看11.0592MZH的
图3
再看8MZH的
图4
再图3和图4中重点关注两个参数:
(1)负载电容CL
(2)静态电容Co
在解释这两个参数有何用时,我们需要了解一下晶振的等效模型,如下图5所示:
图5
其中:
Inverter:芯片内部的反向放大器
Crystal:无源晶体
C1,C2:正是我们要计算的匹配电容
Rf:反馈电阻
那我们需要计算的就是C1和C2的值。
根据负载电容的计算公式:
一般在实际使用中C1都会等于C2。C1=C2
Cs为晶振的引脚寄生电容,一般无法抵消,只能减少,不同厂家的晶振这个值也有所不同,一般取2pF~5pF。
故:CL=(C1²/2C1)+Cs C1=2(CL-Cs) ---公式1
我们按照公式1计算一下如下图1的电容。由晶振手册可知CL=12pF,Cs≈Co 手册中写着最大是7pF,我们一般取2pF~5pF,其中芯片端引脚,还有PCB走线的寄生电容,由于比例很少我们可以忽略不计,当然,如果想精确计算,也可以加进去,但加进去的意义不大,无论怎样,算出来的值都只能是作为参考,使用时还得看实际电路的具体表现来适当的调节匹配电容的大小。
C1=C2=2*(12pF-2pF)=20pF 取Cs=2pF 考虑到PCB走线和芯片引脚的寄生电容,故选择常规值22pF。
那8MHZ的晶振也是按照公式1计算,可以得出:
C1=C2=2*(10pF-2pF)=16pF
再查看STM32的手册也可以知道手册推荐的匹配电容的范围是
5pF~25pF,
最后说一下晶振电路PCB怎么布局和走线。
(1)晶振电路尽量靠近芯片放置,减少PCB走线带来的寄生电容,也防止其他信号干扰。如下图所示:
(2)晶振走线要走类差分线,而且尽量不要换层打孔。如下图所示:
(3)晶振电路要做包地处理,如下图所示:
其余的一些细节,如:
晶振底部不能走其他信号线
匹配电容回流地尽量短
晶振电路走线不要靠近其他信号线
至于Rf反馈电阻的作用是什么?大小为什么是1M,欢迎知道的小伙伴们评论区留言!
好了,今天就先写到这吧!