interFF 发表于 2022-3-31 21:00:57

【PMU】低功耗模式下配置看门狗和定时器冲突问题

遇到一个很神奇的问题,DEEPSLEEP模式,配置IWDT独立看门狗+LPTIM32定时唤醒喂狗,

实验一:看门狗周期设置16S(单独测试没有问题,时钟准确),LPTIM32设置12S(单独测试没有问题,时钟准确)。全称不喂狗
现象:正常休眠,12S唤醒一次,没有问题,但是看门狗不会重启,且程序中没有喂狗的地方。
问题:这个是什么原因导致的呢,启动看门狗,没有喂狗,但是程序不重启?

实验二:同实验一,区别是将LPTIM32改为20S唤醒一次,发现看门狗正常重启程序,时间也对的上,16S重启一次
同时发现,只要是看门狗溢出周期小于定时器周期,看门狗重启就生效


实验三:同实验一,区别是主程序中添加延迟等待,判断按键KEY1按下,才进入while死循环,循环中包含按键KEY2,按下KEY2去喂狗,不按就死等
现象:不按下按键KEY1和KEY2,同实验一。
如果唤醒后按下按键KEY1,不按KEY2,则看门狗会重启. 若在16S内按下KEY2,则程序不重启,否则重启



结论:同时设置IWDT和LPTIM32, LPTP32唤醒后就不需要喂狗,相当于LPTIM32唤醒就是喂狗一次,但是,不休眠的时候,一定要喂狗,即使LPTIM32定时器到期也不管用,此结论成立吗?参考datasheet也没有相关说明,只是测试了一块开发板,没有可参照系


wangpeng 发表于 2022-4-1 08:50:48

休眠模式下若开启看门狗IWDT,只要芯片唤醒系统就会自动将看门狗的计数器清零,相当于喂狗了。

interFF 发表于 2022-4-1 18:19:19

哦,明白了,谢谢你的回复:lol
页: [1]
查看完整版本: 【PMU】低功耗模式下配置看门狗和定时器冲突问题