使用芯片:
APM32E103RET6
客户应用场景:
使用 RTC20S 闹钟唤醒一次低功耗的 MCU,并有 26S 的 看门狗 溢出窗口。RTC20S 唤醒后及时喂狗,MCU 就可以持续正常工作,不产生看门狗复位。
问题:
芯片在常温下运行正常,但温度降到-30度以下时,芯片不能正常唤醒(经排查,不是不能正常唤醒,而是芯片发生反复重启)。测试5台样机,均有此现象。
分析1:确认RTC的时钟源LSE低温下是否正常
测试方法: 编写程序,RTC闹钟每隔20秒唤醒一次STOP低功耗。PA8高电平表示运行,PC13输出 LSE 的64分频时钟观察。
测试结果: -40度环境下测试2PCS芯片,低温RTC正常唤醒,LSE/64波形正常:512HZ。
证明LSE时钟正常,RTC唤醒功能也正常。

分析2:RTC唤醒加看门狗测试
测试方法: RTC闹钟每隔20秒唤醒一次STOP低功耗。PA8高电平表示运行,低电平表示进入STOP。独立看门狗 设定最大看门时间26s(是最大时间窗口,与客户设置相同),PA9高电平表示看门狗复位重启。
测试结果: 常温RTC可正常唤醒,-40度低温出现看门狗复位,复现客户所述问题。


分析3:观察看门狗时钟源LSI频率是否正常
测试方法: 看门狗是使用 LSI 作为时钟源的,故编写程式,用PC13输出LSI/64波形,观察高低温对LSI频率的影响。
测试结果: 常温25度,LSI频率63664=40.7K;低温-40度,LSI频率88064=56.3K;高温85度,LSI频率59664=38.1K。
低温下LSI频率明显变高,导致看门狗时间会缩短:常温下看门狗饿死时间为26秒,低温下缩短到4095256/56.3K=18.6S,小于RTC唤醒时间20s,导致低温时不能及时喂狗而使MCU重启。



分析4:对3片芯片样片做三温测试,看LSI波动范围
测试方法: 选取3PCS APM32E103RET6(A2)样片进行LSI频率三温测试。
测试结果:
| APM32E103RET6(A2) | 常温25度 | 低温-40度 | 高温85度 |
|
#11 | 40.7K | 56.3K | 38.1K |
|
#12 | 39.9K | 53.1K | 37.0K |
|
#13 | 39.6K | 48.9K | 36.8K |
APM32E103XE数据手册中的范围如下:

竞品芯片数据手册中的范围如下:

说明APM32E103RET6的LSI频率范围符合极海、竞品数据手册的指标。
分析总结:
综合测试分析,此案发生RTC唤醒异常的现象,实际上是低温条件下MCU看门狗喂狗失败引起,根因是由于APM32E103RET6在低温下LSI频率偏移较大引起:
常温下 LSI 频率40Khz,-40度低温下LSI频率可达到48.956.3KHZ甚至更大。频率变大,导致看门狗定时时间变短(由26S变短到 18.6S),当定时时间小于RTC唤醒时间(20S)时,会导致还没有到RTC唤醒时看门狗就已饿死重启了。
此案归属为客户自身应用问题,客户应该参考数据手册中LSI的频率范围上下限来设计RTC和看门狗的时间组合配置。
解决方案:
如果看门狗仍设置为最大溢出时间26S,那建议客户缩短RTC唤醒时间,比如小于17S。
