为什么我们为STM32使用外部振荡器???为什么不直接使用微芯片振荡器?
我正在使用 STM32F2xx 它的时钟频率为 120Mhz
但是,一个 12Mhz 的外部振荡器被锁存到微芯片中,为什么要使用外部时钟呢?
为什么我们为STM32使用外部振荡器???为什么不直接使用微芯片振荡器?
我正在使用 STM32F2xx 它的时钟频率为 120Mhz
但是,一个 12Mhz 的外部振荡器被锁存到微芯片中,为什么要使用外部时钟呢?
它们在更宽的温度范围内更准确,它们的抖动(逐周期计时精度)要小得多,并且通常在所需频率的非常好的公差范围内更准确。如果您随后将该参考值乘以多次以获得处理器中的最终时钟速度,则时钟源的任何错误或不准确性也将成倍增加,可能会在实际频率与预期频率之间产生巨大的偏移,并且在时间期间大于可接受的时钟抖动敏感的事情,例如高速同步通信或异步超时。
外部晶体(通常是石英)或谐振器(通常是陶瓷,容差较小,但仍比内部 RC 振荡器好)非常便宜,而且尺寸非常小,例如我经常用于 Atmel AVR 的 Murata Ceralock 系列陶瓷谐振器和甚至我的 Atmel Cortex M3(顺便说一下,从 16 获得 64 Mhz 很烦人,当您还必须为 USB 获得 48 Mhz 时!)。
作为旁注,我发现 12Mhz 对于 USB(仅 x4)和大多数时钟速度(例如,120Mhz 仅 x10)来说是一个更好的晶体/谐振器频率,而且我现在经常在基于 ARM 的电路板参考设计中看到它.