鉴于内部振荡器要快得多,何时应该为该MCU使用外部晶振?


12

我正在看这个MCU,想知道使用外部晶振是否有意义。

从数据表pg1中提取,

*时钟管理
4至32 MHz晶体振荡器
–用于校准的RTC的32 kHz振荡器–带x6 PLL选项的内部8 MHz RC –内部40 kHz RC振荡器

内部48 MHz振荡器,基于ext自动调整。同步*

内部振荡器可以高达48Mhz。外部晶体在4-32 Mhz之间。考虑到外部晶振成本高且占用空间,为什么内部晶振快于48Mhz的人会使用外部晶振?什么时候应该使用外部晶体?


4
当不需要外部振荡器的额外精度时,单片机内部振荡器的唯一优势是节省了成本。
Mahmoud Hosseinipour

Answers:


24

内部振荡器比外部晶体振荡器的稳定性差很多。

如果我正确地阅读了数据手册,则内部48 MHz振荡器仅在出厂时已校准为指定频率的2.9%以内-甚至不足以支持RS-232。有多种方法可以将其同步到外部时钟,我认为它设计用于USB设备,您可以将PLL锁定到USB位流。

外部晶体的精度通常约为百万分之 20 ppm。这是指定频率的0.002%。如果您需要更好,甚至可以提供温度补偿的恒温晶体振荡器。

此外,您可能希望在不同的频率上获得准确的时钟速度,通常用于通过异步通信通道与设备或主机进行通信。为此,您可能需要一个29491200 Hz(115200 * 256)的振荡器。


2
坦率地说,对于UART / RS-232,通常2.9%足够好(我使用了至少具有3.5%容差的115200 UART [由于内部8 MHz RC的波特率不匹配和内部不准确]了两周,没有任何明显的变化)错误);AFAIR,UART / RS-232在低于5%的总时钟失配率下仍然可以使用,而边界线甚至可以高出一个或两个百分点-而且,您错过了一个事实(别人注意到),您可以使用PLL乘以晶体时钟来获得速度与内部时钟一样高。

2
@vaxquis,你很幸运。5%是绝对最大可接受的波特率不匹配,如果发送方和接收方在不同方向上的差异为2.5%,那么您就正确了。
Bruce Abbott

6
RS232是电压和引脚标准,不是协议标准。
old_timer '16

2
如果您使用4倍过采样,则很有可能会降低25%到50%。8倍可能比16倍甚至更好。您只需要足够准确就可以通过一个字符,然后接收器在起始位上重新同步。有些甚至可能在每个边缘重新同步,从而导致更大的错误。因此,uart解码取决于接收机的设计。一些理智的设计可以很容易地永久运行,时钟误差为2.9%,并且永远不会滑倒。
old_timer '16

3
@pipe,这是8倍和16倍过采样的整个点,以得到边缘相对于采样位置的更好分辨率。也许您正在谈论的部分使用的是内部振荡器。或者也许是二手的初级工程师,因为这是一件相当琐碎的事情。您可以轻松地在每个边缘同步,即使时钟漂移也可以永远保持同步。由于我们不知道除非我们在那儿工作并且在正确的部门工作,否则如何设计接收器,所以最好尝试达到百分之几的百分比,或者最好进行足够的测试以生成有关误码率的统计信息。
old_timer '16

10

内部是振荡器,通常是RC振荡器。这些振荡器的精度远不及晶体。而且,这些振荡器也会随温度变化而漂移。

另一方面,水晶可以像您要​​花费的钱一样准确。例如在使用高速通信(例如U​​SB)时需要精度。USB具有非常严格的公差。


8

请参见第16页的图表:

ST时钟树

看起来您也可以将晶振用作PLL的输入,从而使您可以从较慢的晶振获得48MHz的内部时钟速度。


7

晶体振荡器馈入片上锁相环(PLL),该锁相环可以将晶体频率乘以1和16之间的值并将其分频。因此,对于8MHz晶体,您可以为处理器生成48MHz主时钟。就像其他人所说的那样,外部晶体比片上高速振荡器更准确,更稳定。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.