晶体振荡器是指从一块石英晶体上按一定方位角切下薄片(简称为晶片),石英晶体谐振器,简称为石英晶体或晶体、晶振;而在封装内部添加IC组成振荡电路的晶体元件称为晶体振荡器。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。石英晶体振荡器是高精度和高稳定度的振荡器,被广泛应用于彩电、计算机、遥控器等各类振荡电路中,以及通信系统中用于频率发生器、为数据处理设备产生时钟信号和为特定系统提供基准信号。
在这里插入图片描述
问题:例如STM32F103系列单片机编程,定时器计数或者延时函数delay_ms(),慢4倍左右。
原因/现象:当发现时钟慢4倍左右,就可能是晶振出问题,导致系统初始化之后使用的是内部晶振;
解决方案:发现晶振波形不对,更换旁路电路或者晶振即可解决,否则,需要查看PCB走线是否正确。
(1)示波器测量
示波器负探头接地(可不接),正探头接晶振的其中一端,或者晶振两端的电容其中一端;如果是8MHz的晶振,正常晶振波形如图所示。
在这里插入图片描述
失真的晶振波形如下图所示。
在这里插入图片描述

(2)万用表测量
STM32单片机3.3V供电,正常情况,用万用表测量晶振两端的两个电容,一般是1/2Vcc左右,但是根据我测量,一般情况是2.05V、2.30V左右。个人感觉用万用表测量晶振旁路的2个电容电压这个方法,并不靠谱。

总结:对于晶振没有起振,先确保MCU烧录了正常的程序,启用外部晶振的。接下来方法有替换晶振元器件看是否正常;晶振旁边两个电容是否焊接错误;用示波器监控晶振其中一个引脚是否有正弦波;或者万用表测量晶振两端的两个电容,是否有1/2Vcc左右;万用表测量BOOT0电平,正常是低电平,异常是高电平;查看电路板走线。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐