引言
某客户使用 STM8AL 时,由于设计限制需使用 HSI 作为系统时钟。为减小 HSI 偏差,使用 LSE 对其进行校准。小批量试产发现 3%左右产品校准后频率和 16MHz 偏差较大。
调研
检查客户代码,和 ST 官方提供的演示代码 STM8L15x_AN3101_FW_V1.1.0 一致,跟踪代码执行,未发现异常,初步排除代码移植问题。
由于校验结果直接受 LSE 影响,查阅参考手册和数据手册可知,LSERDY 置位仅表示 LSE起振成功,LSE 震荡频率需要额外等待一段时间 tSU(LSE)才会稳定;不同晶振这个时间会有很大差异。
处理
将此延迟逐步增加到 90ms,保证 LSE 稳定下来。这样操作后,发现所有之前异常的板子校准结果都是好的。按此延迟再次加工一批板子,校准结果也是正常的。
小结
当我们在应用中碰到跟时序相关问题时,最好先仔细阅读 MCU 数据手册、参考手册对相关模块特性的描述,并结合代码进行分析。
阅读全文