查看: 3574|回复: 2

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

[复制链接]

7

主题

20

帖子

267

积分

高级工程师

Rank: 3Rank: 3

积分
267
发表于 2022-3-31 21:00:57 | 显示全部楼层 |阅读模式
遇到一个很神奇的问题,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也没有相关说明,只是测试了一块开发板,没有可参照系


回复

使用道具 举报

220

主题

396

帖子

3534

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3534
QQ
发表于 2022-4-1 08:50:48 | 显示全部楼层
休眠模式下若开启看门狗IWDT,只要芯片唤醒系统就会自动将看门狗的计数器清零,相当于喂狗了。
回复

使用道具 举报

7

主题

20

帖子

267

积分

高级工程师

Rank: 3Rank: 3

积分
267
 楼主| 发表于 2022-4-1 18:19:19 | 显示全部楼层
哦,明白了,谢谢你的回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表