本帖最后由 onemoren 于 2025-3-19 11:23 编辑
#申请原创# APM32E103RET6的看门狗窗口设置与温度的关系考虑
芯片:APM32E103RET6 客户应用场景: 使用RTC 20S闹钟唤醒一次低功耗的MCU,并有26S的看门狗溢出窗口。RTC 20S唤醒后及时喂狗,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频率636*64=40.7K;低温-40度,LSI频率880*64=56.3K;高温85度,LSI频率596*64=38.1K。低温下LSI频率明显变高,导致看门狗时间会缩短:常温下看门狗饿死时间为26秒,低温下缩短到4095*256/56.3K=18.6S,小于RTC唤醒时间20s,导致低温时不能及时喂狗而使MCU重启。 分析4:对3片芯片样片做三温测试,看LSI波动范围 测试方法:选取3PCS APM32E103RET6(A2)样片进行LSI频率三温测试。 测试结果: APM32E103RET6(A2) | 常温25度 | 低温-40度 | 高温85度 | | | | | | | | | | | | |
APM32E103XE数据手册中的范围如下: 竞品芯片数据手册中的范围如下: 说明APM32E103RET6的LSI频率范围符合极海、竞品数据手册的指标。
分析总结: 综合测试分析,此案发生RTC唤醒异常的现象,实际上是低温条件下MCU看门狗喂狗失败引起,根因是由于APM32E103RET6在低温下LSI频率偏移较大引起: 常温下LSI频率40Khz,-40度低温下LSI频率可达到48.9~56.3KHZ甚至更大。频率变大,导致看门狗定时时间变短(由26S变短到 18.6S),当定时时间小于RTC唤醒时间(20S)时,会导致还没有到RTC唤醒时看门狗就已饿死重启了。 此案归属为客户自身应用问题,客户应该参考数据手册中LSI的频率范围上下限来设计RTC和看门狗的时间组合配置。 解决方案:如果看门狗仍设置为最大溢出时间26S,那建议客户缩短RTC唤醒时间,比如小于17S。
|
因低温环境下看门狗异常问题的分析研究,作者通过多重测试,直击问题根源,同时也在芯片手册得到了验证。找出解决问题的方法。