在开发STM32电路板时,晶振的选择是一个很重要的步骤。所幸在STM32的资料库里,有一篇文档完整地解释了这个过程,文档的编号是是《AN2867-晶振的设计》。这里将其要点完整的摘录并补充相关的知识内容,最后做了导图,总结了这一过程。
石英晶体是一种将电能转换为机械能的压电器件,反之亦然。转换发生在谐振频率。石英晶体可以建模,如图1所示。
•C0:表示由电极形成的电容器产生的并联电容
•Lm(动态电感):表示晶体的振动质量
•Cm(动态电容):表示晶体的弹性
•Rm(动态电阻):表示电路损耗
\qquad 振荡器是现代数字集成电路的主干部件之一。根据它们的拓扑结构和工作原理,它们可以分为不同的子家族。
\qquad 对于每个子家族,都有一个数学模型,可以用于研究振荡器行为,并从理论上确定其性能。
\qquad 本节仅讨论谐振子(弛豫振荡器不在本文档的范围内),特别关注皮尔斯振荡器(见第3节)。这是因为本文件涵盖的所有需要外部无源元件(谐振器、负载电容器等)的振荡器都是前面提到的类型和拓扑。
\qquad 这两个子家族的振荡器在输出波形方面类似。
\qquad 它们以所需的频率提供振荡波形。由于振荡回路元件的非线性,该波形通常由所需频率的基波正弦波加上泛音谐波的总和(在基波的倍数频率处)组成。
这两个子家族的工作原理不同,一个特定的数学模型描述和分析了它们中的每一个。
\qquad STM32微控制器和微处理器(基于Arm®(a)内核)具有根据负电阻原理设计的低速外部(LSE)和高速外部(HSE)振荡器,因此本节重点介绍该型号。
\qquad 从理论上讲,负电阻是一个偶极子,它吸收热量并将其转换为电流,与所施加的电压成比例,但以相反的方向流动(电阻的相反机制)。在现实世界中,这样的偶极子并不存在。
\qquad 术语负电阻是负反式电阻的误称,定义为给定电压变化(∆V)和感应电流变化(ΔI)之间的比率。与始终为正的电阻不同,反式电阻(也称为差分电阻)可以是正的,也可以是负的。图3显示了具有负跨电阻区域的偶极子的电流-电压曲线。很明显,V/I比率始终为正,而∆V/∆I比率并非如此。
类似于电导(定义为电阻的倒数),跨导被定义为跨阻的倒数。跨导也可以定义为微分电导,表示为∆I/∆V。
\qquad 振荡回路由两个分支组成(见图4):
\qquad 由振荡器本身组成的有源支路提供能量,使振荡开始并建立,直到达到稳定相位。当达到稳定振荡时,该支路提供能量以补偿无源支路的损耗。
\qquad 无源支路主要由谐振器、两个负载电容器和所有寄生电容组成。
\qquad 根据小信号理论,当有源支路(振荡器部分)正确偏置时,为了在振荡器偏置电压周围保持稳定振荡,后者必须具有等于无源支路电导的跨导。
\qquad 然而,在启动时,振荡器跨导必须高于振荡回路无源部分的电导(倍数),以最大限度地提高从回路的固有噪声建立振荡的可能性。与振荡回路无源支路电导相比,过大的振荡器跨导可以使振荡回路饱和,并导致启动失败。
\qquad 为确保振荡器成功启动,并保持稳定振荡,为STM32和STM8产品指定了回路负电阻和晶体最大等效串联电阻(ESR)之间的比率。建议HSE振荡器的比率高于5,LSE振荡器的比率大于3。
本节描述了不同的参数,以及如何确定它们的值,以符合皮尔斯振荡器设计。
\qquad 皮尔斯振荡器是科尔皮茨振荡器的变体,广泛用于晶体谐振器。皮尔斯振荡器(见图5)需要减少一组外部元件,这导致较低的最终设计成本。此外,皮尔斯振荡器因其与晶体谐振器,特别是石英晶体谐振者配对时的稳定振荡频率而闻名。
图5。皮尔斯振荡器电路
•Inv:内部非门,用作放大器
•Q:晶体石英或陶瓷谐振器
•RF:内部反馈电阻
•RExt:限制放大器输出电流的外部电阻器
•CL1和CL2:是两个外部负载电容
•Cs:杂散电容,是设备引脚电容(OSC_IN和OSC_OUT)和PCB(寄生)电容的总和。
\qquad 在ST制造的大多数MCU/MPU中,RF嵌入在振荡器电路中。其作用是使非门充当放大器。反馈电阻连接在Vin和Vout之间,以使放大器在Vout=Vin时偏置,并迫使其在线性区域(图6中的阴影区域)中工作。噪声(例如,晶体的热噪声)在串行到并行频率(Fa,Fp)的范围内被放大,从而开始振荡。
\qquad 负载电容是连接到晶体振荡器的电路的终端电容。该值由外部电容器CL1和CL2以及印刷电路板和连接的杂散电容(Cs)确定。CL值由晶体制造商规定。为了使频率准确,振荡器电路对晶体的负载电容必须与晶体调整的负载电容相同。频率稳定性要求负载电容恒定。外部电容器CL1和CL2用于调谐CL的期望值,以达到晶体制造商指定的值。
下式给出了CL的表达式:
\qquad 理论上,为了使振荡开始并达到稳定相位,振荡器必须提供足够的增益来补偿环路损耗,并为振荡建立提供能量。当振荡变得稳定时,提供给振荡器的功率与其在回路中耗散的功率相等。
\qquad 实际上,由于无源元件值的容差及其对环境参数(如温度)的依赖性,振荡器增益和振荡回路临界增益之间的比率不能刚好超过1。这将导致振荡器启动时间过长,甚至阻止振荡器启动。
\qquad 本节描述了两种方法,可用于检查STM32振荡器是否可以与给定谐振器配对,以确保在谐振器和振荡器的指定条件下启动和保持振荡。
\qquad 该方法取决于如何在设备数据表中指定振荡器参数:
以下两表为STM32f03RCT6数据手册中对对HSE和LSE的跨导的描述,可以参考:
增益裕度比由公式
确定,其中
gmcrit由振荡回路无源元件参数计算得到。 假设CL1=CL2,并且晶体在其垫上看到与晶体制造商给出的值相同的CL,gmcrit表示如下:
驱动电平(DL)和外部电阻值(RExt)密切相关,并在同一节中讨论。
\qquad 驱动电平是晶体中消耗的功率。它必须是有限的,否则石英晶体可能会因过度的机械振动而失效。最大驱动器级别由晶体制造商指定,通常以mW为单位。超过该值可能会导致晶体损坏或设备寿命缩短。
\qquad 这是振荡开始然后建立所需的时间,直到它达到稳定的振荡阶段。除其他因素外,启动时间取决于所用谐振器的Q因子。如果振荡器与以其高Q因子为特征的石英晶体谐振器配对,则当使用陶瓷谐振器时,启动时间更高(与石英晶体谐振器相比,这些谐振器以其低Q因子而闻名)。启动时间还取决于外部组件CL1和CL2以及晶体频率。晶体标称频率越高,启动时间越短。此外,启动问题通常会出现,因为增益裕度没有正确标注(如前所述)。这是由CL1和CL2太小或太大或ESR太高引起的。
作为示例,与几MHz标称频率晶体谐振器配对的振荡器通常在几毫秒的延迟后启动。
32.768 kHz晶体的启动时间范围为1到5秒。
\qquad 晶体拉伸性,也称为晶体灵敏度,测量晶体看到的负载电容的微小变化对振荡频率漂移的影响。当处理低速振荡器时,该参数更重要,因为它们用于时钟计时功能(例如实时时钟)。
\qquad 当最终应用仍在设计阶段时,该参数对低速振荡器精度(以及因此对该振荡器时钟的所有时间保持功能)的影响不明显。这是因为设计者微调负载电容器,直到获得所需的振荡频率。当设计达到生产阶段时,它被冻结,所有无源元件(包括负载电容器)都有其明确的值。负载电容的任何变化都会引起振荡频率的偏移。
\qquad 晶体所看到的电容负载(CL)的变化可以认为是由于不适当的操作环境,并且仅在最终设计未正确操作时发生。在实践中,这是不正确的,因为负载电容的变化相当频繁,设计者必须考虑。振荡器看到的电容负载(CL)的主要贡献者是
\qquad 谐振器(如晶体谐振器)经历老化效应,其随着时间的推移表现为谐振器参数与规范定义的值的偏差。在受影响的参数中,有谐振器ESR,其值取决于环境条件,如湿度和温度。振荡器跨导取决于电源电压和温度。
\qquad 安全系数参数使得能够确定振荡器在工作条件下和应用寿命期间的安全操作。它测量振荡器在工作条件下不发生故障的能力。
\qquad 安全系数定义为振荡器负电阻与其ESR之间的比率:
为了测量振荡器负电阻,将电阻串联添加到谐振器中,如图8所示。
表4总结了STM32和STM8设备中嵌入的振荡器的安全系数(Sf)。对于LSE振荡器,对于Sf≥3,振荡被认为是安全的,而对于HSE振荡器,当Sf≥5时,这是正确的。
\qquad 方程(4)给出了晶体的振荡频率Fp,它取决于晶体阻抗为零的串联谐振频率Fs。当围绕Fp振动时,称振荡器在基本模式下工作。
\qquad Fs(以及因此Fp)取决于图1所示的晶体理论模型的参数。晶体制造商给出的这些参数定义了晶体设计为围绕基频振荡的频率。
\qquad 在现实生活中,AT切割石英晶体的阻抗在几个频率下达到零值,这对应于其基本振动频率的奇数倍。晶体也可以围绕这些奇数倍数之一振动,这些是泛音振荡模式。
\qquad 图9表示基频的AT切割晶体阻抗的抵消,其随后的奇数倍数(表示第三和第五泛音),以及一些杂散频率。
图9。AT切石英晶体的基频和泛音频率
注:AT切割石英对应于与HSE一起使用的大多数晶体。对于LSE,可以使用音叉晶体,但它们不显示相同的振荡模式可能性(图9对它们无效)。在这一部分中,当提到晶体时,我们考虑AT切割石英晶体。
这种多次消除是由于更准确的石英晶体理论模型为其泛音模式的每一个显示RLC分支,如图10所示。
例如,可以通过实现图11所示的振荡器来使用第三泛音模式,以抑制基频(理论上,可以通过抑制前面的模式来选择每个泛音模式)。
图11。第三泛音振荡器的实现
由于厚度的原因,为高频基本模式设计的晶体非常昂贵,需要高端切割技术和大量的实施注意事项。实际上,对于50 MHz以上的频率,在基本模式下操作变得不可能。这就是为什么大多数高频晶体被设计为在第三泛音模式下工作(可以将晶体切割为比其振荡频率低三倍的频率)
在第三泛音模式下工作的晶体的模型(图11)显示了比与基本模式相关联的电阻Rm高约三倍的电阻Rm和低九倍的电容Cm。
对于第三泛音模式,这些差异意味着更高的Q因子,因为RC串联电路的品质因数是1/ωRC(能量损失更小,性能更稳定,抖动更好,拉拔性更低,参见第3.7节)。较低的拉拔性意味着当应用部署在现场时,以较低的振荡频率可调性为代价的较低的频率偏移。
根据图5的实现,STM32产品中集成的振荡器已被验证用于基本模式。如果将第三泛音晶体与该实现一起使用,则理论表明,它不会在三次谐波频率下开始振动,而是在基波频率下开始。
注:如果振荡器的外部组件没有根据本文件中的说明进行选择,则振荡器的启动模式甚至可以在两种模式之间不自觉地平衡。
低速谐振器市场提供了广泛的晶体谐振器。为给定设计选择最合适的一个取决于许多参数。需要考虑的最重要参数(仅列出技术因素)为:
\qquad 具有相对高负载电容(例如12.5 pF)的谐振器需要更多的功率用于振荡器以谐振器标称频率驱动振荡回路。
\qquad 因此,针对低功耗的设计(例如,由需要很长自主时间的硬币电池供电的RTC应用)更有可能使用具有相对较小负载电容的谐振器。另一方面,与具有小负载电容的谐振器相比,大负载电容谐振器具有更小的拉力。因此,对功耗没有严格限制的设计倾向于使用大负载电容晶体来降低拉伸性。
\qquad 晶体谐振器大量使用的关键领域之一是手持和可穿戴设备消费市场(如智能手机、Bluetooth®套件)。对于这一细分市场,晶体尺寸至关重要。然而,众所周知,小尺寸晶体具有高晶体ESR。对于这种设计,如果目标设计在功耗方面有严格的限制(通常的情况),则选择可能会更困难。在这种情况下,选择负载电容尽可能小的晶体来优化功耗,即使这会影响拉伸性。此外,具有高ESR的晶体可能具有稍长的启动时间。如果对晶体尺寸没有限制,则建议选择ESR尽可能最小的晶体。
\qquad 在噪声环境中(工业应用几乎总是如此),如果对功耗没有限制,建议选择具有高负载电容的晶体。这些晶体需要来自振荡器的高驱动电流,但对噪声和外部扰动更鲁棒。另一个优点是最大限度地减少了设计拉伸性。
\qquad 根据使用的设备,下面列出的所有谐振器系列都可以与您的设计兼容,或者仅兼容其中的一部分。STM32设备嵌入两种类型的低速振荡器(LSE):
\qquad 本节描述了选择合适的晶体/外部组件的建议程序。该过程基于以下步骤:
\qquad 步骤0:选择基本模式设计的谐振器选择基本模式指定的谐振者(如第3.9节所述,验证STM32振荡器在基本模式下与谐振器振动一起工作,同时使用图5所示的皮尔斯振荡器电路),并确保所选谐振器设计为在基本模式中工作。
\qquad 步骤1:检查谐振器与所选STM32的兼容性
\qquad 要检查所选晶体和STM32 MCU/MPU之间的兼容性,请首先确定第3.4节中描述的两个MCU/MLU之间要遵循的步骤。必须根据数据表中提供的振荡器规格做出决定。
\qquad 步骤3:检查振荡回路的安全系数
\qquad 必须按照第3.8节中的描述评估安全系数,以确保振荡器在工作条件下的安全振荡。
\qquad 注:许多晶体制造商可以根据要求检查设备/晶体配对兼容性。如果判断配对有效,则它们可以提供包括建议的CL1和CL2值以及振荡器负电阻测量的报告。在这种情况下,可以跳过步骤2和3。
\qquad 步骤4:计算驱动电平和外部电阻
\qquad 计算驱动器级别(DL)(请参阅第3.5节),并检查它是否大于或小于DLcrystal:
(这里第5节和第6节是一些厂家晶振的表格,不想浪费时间,这里略过,直接路到第7节)
$\qquad$32kHz晶体振荡器是一种超低功率振荡器(跨导为几μa/V)。低振荡器跨导影响输出动态,因为较小的跨导值产生较小的振荡电流。这导致振荡器输出上的较低峰间电压(从几十到几百mV)。
\qquad 将信噪比(SNR)保持在振荡器完美工作的可接受极限以下意味着对振荡器PCB设计的更严格限制,以降低其对噪声的敏感性。
\qquad 因此,在设计PCB时必须非常小心,以尽可能降低SNR。下面提供了设计振荡器PCB时应采取的预防措施的非详尽列表:
通常,焊接是一个敏感的过程,特别是对于低频晶体。为了减少这种工艺对晶体参数的影响,用户应该考虑
OSC32_IN对PC13活动敏感。PC13激活(切换)时,LSE时钟可能会移动,具体取决于LSE驱动器配置。例如,使用PC_13作为512 Hz或1 Hz的RTC_OUT校准,它可能会干扰LSE振荡回路,因此移动校准频率。
针对上述的原文内容,我们其实最关心的是如何完成晶振的选择。如下是对上述要点的摘录与总结: