一些微控制器单元通常带有一个内部 RC ,运行时可以不用外部陶瓷或石英晶体。但是,你需要微调此RC。
本文引用地址:
一些微控制器单元通常带有一个内部 RC 振荡器,运行时可以不用外部陶瓷或石英晶体振荡器。但是,你需要微调此RC振荡器。
很有可能,你最喜欢的 就有一个内部 RC 振荡器。所有主要制造商的众多微控制器系列都包含此模块,包括德州仪器、意法半导体和 Microchip 的微控制器系列。几乎所有制造商都提供了应用说明,并介绍了如何校准其 的内部振荡器。
使用内部振荡器有很多好处,你可能真的不需要外部晶体或陶瓷振荡器。除了有些关键应用需要非常精确的时序,例如串行端口、定时器和 USB 接口。即使对于这些应用中的大多数,如果你对其进行微调,内部振荡器也可能满足严格的时序要求。
MCU内部振荡器简述" width="574" height="190" title="MCU内部振荡器简述">
NXP 的 9S08SH8 微控制器的 GPIO 应用。注意没有外部振荡器。
内部振荡器的优点
内部振荡器无处不在是有原因的。以下是它们的一些好处:
1.它们需要更少的外部组件。不再需要外部振荡器电路或其反馈电路。这会对预算、PCB 面积和成品小工具的整体尺寸有着重要帮助。
2. 他们留下一两个引脚可用于 I/O。 大多数具有低引脚数的 会为每个引脚分配多个功能,供用户选择其用途。因此,如果你选择在 MCU 中使用内部振荡器,你将释放时钟输入引脚,或者释放晶体或陶瓷谐振器所在的两个引脚。
ATmega328 MCU 的 DIP28 引脚,Arduino Uno 的核心。引脚 9 和 10 用于晶体谐振器,或者分别用于 GPIO 引脚 PB6 和 PB7
3.它们在IC内部保持高频。 尽管一些微控制器在低于 100kHz 的低频下使用晶体或陶瓷谐振器,但使用 10MHz 或以上的外部振荡器更为常见。这种高时钟频率几乎总是由 CPU 独占使用,并在 MCU 内部对其外围模块(ADC、UART、SPI、USB、GPIO 等)进行预分频。
在某些 PCB 中,芯片外部存在高频可能是一个问题,因此将高频保持在内部通常是一个好做法。
内部振荡器的缺点
内部振荡器由集成电路内部的电阻和电容组成。因为这些器件有一定的工艺水平差异,所以两个相同的微控制器芯片的内部振荡器频率会有差异。
想要了解多RC振荡器信息,可以找一些关于施密特触发器振荡器工作原理的资料文章。
除了准确地获得芯片内的电阻和电容的预期值(精度),以及获得所有芯片的完全相同的值(可重复性)之外,还有温度问题。事实证明,电容和电阻都会随温度发生轻微变化,这对于内部振荡器尤其重要。因此,你不仅要考虑不同芯片的工作频率略有不同,而且还要担心它们的频率会随温度变化。
如果你的环境温度不会发生显着变化,那么一旦校准了内部振荡器,你就不必担心它。但是,如果预计温度会发生显着变化并且你的系统对频率变化非常敏感(如实时时钟或高速通信系统),那么外部振荡器是更好的选择。
如果 RC 振荡器如此糟糕,为什么制造商不在 MCU 中嵌入晶体或陶瓷振荡器?
IC 制造工艺在可以小型化的材料非常有限,正如你可能猜想的那样,石英和陶瓷不在其中。
RC振荡器并没有那么糟糕。事实上,现代MCU用户指南报告的内部振荡器频率精度通常低于±10%,可以微调到±0.5%以下。你可以不耗费心思去微调内部振荡器。
结论
尽管晶体和陶瓷振荡器因其准确性和稳定性而非常可靠,但 RC 振荡器对于许多要求不高的应用来说还是相当不错的,并且还会有一些额外的好处。
另一方面,RC 振荡器并不完美,因此你必须评估你的应用,以便能够判断何时使用内部振荡器,何时使用晶体或陶瓷振荡器更好。