晶振,全称是“晶体振荡器”,在电路中起产生振荡频率的作用。众所周知,单片机可以看作是一个时钟驱动的时序逻辑电路,所以需要的时钟是由晶体振荡器产生的。可以说,它的单片机心脏使单片机时刻跳动,控制着电脑的工作节奏。晶体振荡器的频率为32.768kHz、1MHz、2MHz、4MHz和8MHz。
有无源晶体振荡器和有源晶体振荡器。我们通常看到的由电路板上的电容、电阻等元件启动的晶振,其实是一种无源晶振,需要外部元件的辅助。第二,有源晶振在单片机内部,不需要外部元件辅助起振。时钟信号可以通过三种方式产生:一种是内部方式,利用芯片内部的振荡器电路,但一般是RC振荡器电路产生时钟信号端;另外两种方法是外部的,即连接一个外部晶振,从外部引入时钟信号,引入外部振荡器作为输入。
二、 如何选择合适的晶振可以说现在的晶振很多。我说的是单片机的外置晶振,应时晶振,带温度补偿的晶振等等。那么选择晶振需要注意哪些细节呢?
晶振的主要参数不外乎这些:频率;准确性;适用的环境温度和包装尺寸。
1.频率
这应该是最重要的参数。频率决定了单片机能否高速运行。如果在使用过程中对频率要求不是很严格,可以考虑使用单片机内部的晶振。比如对于STM32的内部晶振,可以达到8MHz甚至16Hz。如果对频率要求不高,就是常见的一类驱动,不涉及两个单片机之间的通信,串口通信,时间等。这时候可以考虑使用单片机的内部晶振,比如ST单片机内置的RC时钟HSI(高速内部(HSI) RC振荡器),频率一般是8MHz或者16MHz,一般的芯片无源晶振也就几毛钱。如果用内振荡,可以省很多钱,同时电路也省了很多元器件;
2.准确(性)
如果对精度有很高的要求,比如电路中涉及到的时间的精确精度,只能使用外晶振,因为外晶振比较稳定,内晶振的误差比较大,时间长了时间的积累会造成很大的误差,尤其是RC振荡器,对温度比较敏感,容易受其影响。
3.环境温度
环境温度对内部晶体振荡器(即RC振荡器)有很大影响。下图显示了STM32芯片内部RC振荡器的振荡频率误差值随温度的变化。可以看出,其振荡精度在25℃左右可以保持在1%以内,但随着温度的不断上升或下降,其精度逐渐下降,所以在环境温度恶劣、时间控制严格的情况下,可以不考虑内置晶振。
4.包装尺寸
晶体振荡器有多种封装,如贴片、陶瓷、圆柱等。特别是现在贴片晶体振荡器的尺寸越来越小,可以满足不同的场合。选择晶振时,要考虑晶振尺寸对电路板的影响。