MCU 休眠死机彻底起不来?RTC 定时唤醒喂狗完美解决低功耗看门狗难题

📅2026/7/14 7:10:28 👁️次浏览
MCU 休眠死机彻底起不来?RTC 定时唤醒喂狗完美解决低功耗看门狗难题
简介低功耗类的设备有一些MCU是没办法运行看门狗的有一些是可以运行看门狗但没办法喂狗。那么MCU进入低功耗模式下看门狗不运行如果在低功耗模式的时候一旦死机软件就彻底崩溃了就起不来了这样风险就很大。一、休眠状态如何加看门狗我之前用过的一些单片机像东软的8为单片机低功耗状态下需要关闭看门狗唤醒的时候才可以运行所以一般做法是进入低功耗之前先关闭看门狗唤醒之后再开启看门狗这种单片机设计就存在一定的风险只能做取舍。像ST的单片机低功耗模式下也可以运行看门狗但是低功耗不能喂狗所以采取的做法就是调用RTC时钟设定闹钟去唤醒设备执行喂狗喂狗之后设备再次进入低功耗这样设计的缺点是需要一直唤醒设备去喂狗增加软件的复杂度和牺牲一点电量优点是软件如果在休眠状态崩溃会因为一直不唤醒喂狗而软件产生复位增强软件的抗风险能力。我之前有用过STM32G0系列的单片机就是采用这种设计模式看门狗喂狗时间最大设置8秒RTC闹钟设置为6秒每间隔6秒设备就会自动唤醒去喂狗喂狗之后设备立即进入休眠功耗上的体现就是本来是200uA会突然跳一下到几十mA然后又稳定到200uA。二、代码实现代码实现也比较简单RTC可以采用STM32CubeMX进行配置然后在主循环里面执行喂狗的操作代码如下三、总结低功耗设备设计的时候一定要考虑软件的鲁棒性有些设备运行的环境有射频、电机等复杂环境虽然看起来死机可能性很小但是一旦量大之后就有可能会出现一些所以设计上考虑一定要严谨从设计之初就要考虑软件加入一些防御性设计来预防这种风险出现之后失控。