芯片通常都会有一个最高工作频率要求,比如:Atmega48v(低功耗)最高8MHz,Atmega48a最高16Mhz,选择晶振时不要超过这个频率即可。
PLL的作用是倍频,可以*2,*3,*4……*16,其时钟信号通过选择器PLLSRC由MHz的高速内部RC振荡器经过二分频提供,也可由PLLXTPRE的选择器输出提供,而LLXTPRE的选择器接8MHz的高速外部时钟(直接接入或二分频接入)。
若使用高速外部时钟给STM32内核提供时钟信号源,一般有两种方式:
- [高速外部时钟:8MHz]>>>[不分频:8MHz]>>>>[PLL倍频,2到16]>>>[SYSCLK,16MHz-128MHz]
- [高速外部时钟:8MHz]>>>[二分频:4MHz]>>>>[PLL倍频,2到16倍]>>>[SYSCLK,8MHz-64MHz]
在8MHz外部时钟给PLL之前若分频的话,那么最大(×16)才64MHz,因此,我们都会给PLL以8MHz的时钟源让其倍频,这样能使它发挥到72MHz的高频率。
在晶振选型时需要注意:
- 晶振频率精度
如果对于频率精度要求很高的话,例蓝牙、GPS或WIFI等设备,我们在晶振选型时,需要注意晶振频率公差这个指标,精度越高越好,比如10PPM优于20PPM。
- 晶振工作温度
环境温度对于晶振,也就是RC振荡器影响较大。在25℃左右时,其振荡精度能保持在10PPM以内,但是随着温度的不断上升或下降,其精度都逐渐下降,因此对于环境温度比较恶劣且对时钟有严格要求时,建议选用宽温晶振。