本案例发现在一个工装产品上,首批一共做了10几台样机。发现有的样机在开机的时候读取不到RTC,有的样机却可以。读不到RTC是概率性出现的,发生在第一次上电的情况。开始他怀疑是环境问题,会不会和温度有关,于是同事在家做了大量的实验,发现对晶振吹口气就能让晶振不起振,后又用吹风机吹一吹加热一下,又可以起振。问题成了玄学。
这个异常到我这的时候就觉得很困惑,因此首先怀疑到电路设计上安全因子是否不够,另外从他的实验上也可以发现环境变化对电路影响等问题。
首先先从设计端查看:
为了保证RTC的精度,设计上使用了外部RTC ,电路图如下:
这部分电路参考的是STM32F103XX系列手册 P54要求:MCU外面加一个32.768KHz晶振,两个匹配电容。
晶振选型要求:手册是建议负载电容小于等于7pF,匹配电容用的是高品质的MLCC,容值5pF到15pF。