一、 什么是晶振
晶振,全名叫"晶体振荡器",它在电路当中起到产生振荡频率的作用,我们都知道,单片机可以看成是在时钟驱动下的时序逻辑电路,那么这个所需要的时钟就是晶振来产生,可以说它的单片机的心脏,让单片机时刻有脉动,它控制着计算机的工作节奏,晶振的频率有32.768kHz、1MHz、2MHz、4MHz、8MHz、12MHz......当然,还有很多其他频率。
晶振有无源晶振以及有源晶振,我们平时看到在电路板上面由电容、电阻等元器件来助起振的晶振其实就是无源晶振,它需要外部元器件辅助;二有源晶振它在单片机内部里面,它不用外部元器件辅助起振。时钟信号可以三种方式产生:一种是内部方式,利用芯片内部的振荡电路,不过一般是RC振荡电路,产生时钟信端;另两种为外部方式,即外接一个晶振,时钟信号由外部引入和引入外部振荡器作为输入。
二、 如何选择合适的晶振
可以说现在的晶振很多,我说的是单片机外接的晶振,有石英晶振,有温度补偿的晶振等等,那么我们在选择晶振 时候需要注意哪些细节呢?
晶振主要的参数无非主要是这几个:频率;精度;适用的环境温度,封装尺寸。
1、 频率
这应该最主要的参数,频率决定着单片机能否高速运行,如果使用过程中对于频率要求不是很严格,可以考虑用单片机内部晶振,例如对于STM32内部晶振它可以达到8MHz,甚至16Hz,如果对频率要求不高的话,也就是普通类型的驱动之类,不涉及两个单片机通讯、不涉及串口通信、不涉及时间方面,例如定时等,这时候可以考虑用单片机内部晶振,例如ST单片机内部自带的RC时钟 HSI(High-speed internal (HSI) RCoscillator), 频率一般是8MHz或16MHz,一般的贴片无源晶振都要几毛钱,如果使用内部振荡,可以省去不少钱呢,同时电路也省去了不少元器件;
2、 精度
如果对于精度要求很高的话,例如电路当中会涉及到时间的准确精度的话那就只能用外部晶振了,因为外部晶振比较稳定而内部晶振的误差比较大,时间久了对于时间的累积产生很大误差,特别是对于RC振荡器对于温度比较敏感,容易受其影响。
3、 环境温度
环境温度对于内部晶振,也就是RC振荡器影响较大,下图是某STM32芯片内部RC振荡器振荡频率误差值随着温度的变化曲线图,可以看出,在25℃左右时候,它的振荡精度能保持在1%以内,但是随着温度的不断上升或者下降,它的精度都逐渐下降,因此对于在使用环境温度比较恶劣且对时间有严格控制的场合的环境时候可以不考虑用内部的晶振。
4、 封装尺寸
晶振的封装有很多,有贴片的、插进陶瓷、圆柱体的等,特别是现在的贴片晶振尺寸越来越小,可以满足不同的场合,在选用晶振时候需要考虑晶振尺寸对电路板的影响。