内部或外部?石英陶瓷吗?晶体振荡器还是硅振荡器?这么多计时选项……哪一个适合你的设计?
支持信息
振动选项
每个微控制器都需要一个时钟源。中央处理器、内存总线、外设时钟信号在微控制器中无处不在。它们控制着处理器执行指令的速度、串行通信信号的波特率、执行模数转换所需的时间等等。
所有这些计时作用都会回到时钟信号的源,也就是振荡器。因此,您需要确保您的振荡器能够支持您期望从微控制器获得的任何性能。与此同时,尽管有些振荡器选项比其他的更复杂或更昂贵,所以你对振荡器的选择也应该尽可能地反映降低成本和复杂性的重要性。
有相当多的方法来产生一个时钟信号的微控制器。您特定设备的数据表应该提供大量信息,说明您可以使用哪种类型的振荡器,以及如何以与设备硬件兼容的方式实现它们。本文将重点讨论各种时钟源的优缺点,以便您可以更好地在微控制器数据表中讨论的振荡器选项中进行选择。
所以让我们从列表开始,然后讨论每个选项:
- 内部
- 通常(据我所知,总是)一个电阻-电容电路
- 倍频锁相环
- 外部
- CMOS时钟
- 水晶
- 陶瓷谐振器
- 电阻电容
- 只电容器
内部振荡器:KIS选项
我提倡保持简单的原则;因此,我对内部振荡器有一种特别的欣赏,我鼓励你们在任何可能的情况下利用自己的内部振荡器。不需要外部组件:您可以放心地假设频率是精心选择的,因为振荡器是由设计微控制器其余部分的同一个人设计的。同时,突出的性能规范,如。,初始精度,占空比,温度相关性-都在数据表中(希望如此)。
内部振荡器的主导缺点是缺乏精度和频率稳定性。基线频率取决于构成构成振荡器电路的无源元件的值,并且这些被动部件的值的公差不是特别紧。此外,电容和电阻受环境温度的影响,因此内部RC振荡器经历温度“漂移”-i.e。,温度变化导致频率变化。
根据我的经验,许多应用程序可以容忍内部振荡器的缺点,特别是当频率已经在工厂校准时。对于较老的微控制器,内部振荡器的耐量可能差到±20%。然而,一个更新的设备可以给你±1.5%(或更好),这是足够精确的RS-232通信,甚至(结合时钟恢复电路)USB。
另一种扩展内部振荡器功能的方法是手动“微调”——如果你的微控制器包含微调/校准寄存器,你可以通过修改该寄存器的值来调整频率。这是一种非常实用的低数量设计技术:只需用示波器或频率计数器测量时钟频率,然后相应地修剪振荡器。
内部振荡器的一个变体是锁相环(PLL)。锁相环允许低质量、高速的内部振荡器从外部振荡器的稳定性和精度中受益。一般来说,一个锁相环不能帮助你避免外部组件,因为它需要一个参考时钟,通常是从晶体派生的。不过,一个例外是,当你在PCB上有一个高质量的时钟,但因为它太慢而不想将它用于微控制器时,你可以使用锁相环将这个时钟乘以一个可接受的频率。
CMOS时钟
另一个简单的时钟选项是所谓的“CMOS时钟”,它属于没有更好术语的范畴。“CMOS时钟”是一个模糊(虽然方便)的方式,指的是任何时钟信号驱动的一些其他组件在板上。CMOS时钟是一个很好的选择,如果你的设计已经包括一个时钟信号,1)一个可行的频率和2)电子特性与微控制器的CMOS时钟输入电路兼容。但通常情况下,情况并非如此,所以让我们看看生成CMOS时钟的两种选择。
首先是“晶体振荡器”。这是指出石英晶体不是振荡器的好时机;相反,石英晶体是石英晶体振荡器电路的中心部件,它可能是这样的:
晶体振荡器是由石英晶体和产生标准数字时钟信号所需的附加电路组成的方便设备。这样,您就可以获得晶体的稳定性和精度,而不必担心负载电容和小心的PCB布局,以确保独立晶体的稳健运行。
第二种选择是“硅振荡器”。这个术语指的是不基于石英晶体或陶瓷谐振器的振荡器集成电路。这些设备是万能的,易于使用,他们可以相当准确。例如,LTC6930线性技术的系列只需要一个旁路电容,并且绝大多数部件都在标称频率的0.05%以内:
硅谐振器比晶体和陶瓷谐振器更可靠,特别是在受到冲击或振动的恶劣环境中。但它们也更贵。
石英和陶瓷
当你需要非常高的精度和稳定性,而不需要晶体振荡器IC的额外成本时,选择独立晶体方法。公差低于百万分之20(即0.002%)的零件随处可得。上述振荡器电路部分集成到支持单晶结构的微控制器中;您将需要提供正确的负载电容器。总负载电容(CLTOTAL)在晶体的数据表中指定,负载电容的选择如下:
\ [C_ {LTOTAL} = \压裂{C_ {L1} \ * C_ {L2}} {C_ {L1} + C_ {L2}} + C_P \]
其中CP表示寄生电容的大小。这个计算在实践中非常简单:为C选择一个合理的值P(比如说,5pf)从C中减去这个LTOTAL,然后乘以2。因此,如果数据表给出了18 pF的负载电容,我们有
\ [C_ {L1} = C_ {L2} = \离开(18 \ pF-5 \ pF \) \ times2 = 26 \ pF \]
陶瓷谐振器不如晶体谐振器精确;常见公差为千到千万分之5000。如果你不需要石英的精度,它们可能会节省你几美分,但在我看来,主要的优势是你可以得到集成负载电容的陶瓷谐振器。
最后,最不重要的是……
没有许多情况下呼吁外部电阻电容或仅电容振荡器。如果由于某种原因而不是到目前为止讨论的外部振荡器选项,请选择具有内部振荡器的微控制器并使用该微控制器并使用该微控制器。但是,如果您决定从您的备件盒中挖出无源或两种,请参阅微控制器的数据表,了解如何连接和设计振荡器电路。以下是如何连接组件的示例,从数据表中获取C8051F12x-13x(PDF) Silicon Labs的微控制器:
你们可以参考190页(PDF)为选择组件值的信息示例。
结论
我希望你现在已经掌握了足够的知识,下次你需要为你的微控制器选择振荡器的时候,你可以做出一个明智的、自信的决定。以下是我的建议:
- 尽可能使用内振荡器
- 硅振荡器,如果精度足够,成本可以接受,否则,石英晶体
这里有一些需要添加的项目。由于许多MCU应用需要一个稳定的时钟频率,对晶体振荡器进行更广泛的讨论将是有用的。
例如,解释串联谐振振荡器和并联谐振振荡器的区别。为什么使用三次谐波XTAL振荡器?C1和C2负载电容的重要性是什么?如何确定最佳值来使用?为什么有一个高值电阻与XTAL并联?为什么振荡器不能启动或输出正确的频率?如何防止这种情况发生?为什么PCB布局对振荡器如此关键?正确的PCB布局有哪些指导方针?
许多应用程序需要时间保持功能。由于这个原因,许多mcu有一个低频振荡器选项,需要流行的32768Hz XTAL。如何选择负载电容?如何调整和校准振荡器?串联电阻器的用途是什么?如果忽略串联电阻会有什么不良影响?
非常非常好,谢谢。