OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6847|回复: 9

关于看门狗和STOP模式的疑惑

[复制链接]

11

主题

53

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1881
金钱
1881
注册时间
2014-10-4
在线时间
18 小时
发表于 2014-12-5 23:25:51 | 显示全部楼层 |阅读模式
5金钱
目前我的程序是,利用stop让CPU进入停机,想加入看门狗防止程序跑飞或者死机,但是看到论坛有人提出疑问就是,进入STOP模式之后,看门狗并不会停止,如果不去喂狗,会造成看门狗复位,请问有什么解决的方法吗?

论坛中的帖子好像没有下文。

最佳答案

查看完整内容[请看2#楼]

看门狗是没停止.如果你的系统需要定时唤醒,那么就可以用看门狗中断来实现。还可以防止停机时候程序睡死。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-11-26
在线时间
0 小时
发表于 2014-12-5 23:25:52 | 显示全部楼层
看门狗是没停止.如果你的系统需要定时唤醒,那么就可以用看门狗中断来实现。还可以防止停机时候程序睡死。
回复

使用道具 举报

11

主题

53

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1881
金钱
1881
注册时间
2014-10-4
在线时间
18 小时
 楼主| 发表于 2014-12-6 10:38:45 | 显示全部楼层
回复【2楼】好人:
---------------------------------
谢谢回复,我不需要定时唤醒哦。
我用外部中断唤醒,只是我不想要在STOP模式下,被看门狗唤醒。

看门狗只是想用在系统正常运作状态下,防止程序跑飞

请教有什么办法吗?
回复

使用道具 举报

1

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-11-26
在线时间
0 小时
发表于 2014-12-6 11:04:06 | 显示全部楼层
如果你开了就没有补救,开了就停不了。不想看门狗唤醒,一个方法是用RTC唤醒喂狗,另一个是在没程序还没开始启动看门狗前就分支进入STOP,这需要一个判断,当然,你的程序和硬件能支持用程序控制硬件复位。
回复

使用道具 举报

11

主题

53

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1881
金钱
1881
注册时间
2014-10-4
在线时间
18 小时
 楼主| 发表于 2014-12-6 11:09:53 | 显示全部楼层
回复【4楼】好人:
---------------------------------
谢谢回复。
我硬件上的设计是,电路板一直带电,因为RTC备用电源和主电源是连接在一起的。
进入STOP模式只是外部看起来好像是关机了。
然后从STOP模式唤醒之后,程序上执行一次软件复位。

目前发现程序偶尔会跑死,只能被迫用reset的方式,来硬件复位。所以,才想要加入看门狗来保证程序在正常执行的时候不跑死。

那按照您的方法就是,RTC定时中断,唤醒CPU喂狗,然后重新进入STOP模式。
这样设计达不到低功耗的目标了。因为CPU几十秒就唤醒一次。

请教您说的硬件方式是怎么实现呢?
回复

使用道具 举报

1

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-11-26
在线时间
0 小时
发表于 2014-12-6 11:16:32 | 显示全部楼层
硬件复位就是用IO脚控制外部电路,给MCU断电,重新上电。你需要在单片机内部或外边flash存储一个状态标识,上电后读出来,看否需要进入STOP或者run后面的正常程序。其实定时唤醒做好了,还是非常省电的,几分钟唤醒一次,仅MCU低频工作几mS,总体功耗非常小。几百mAH的电池,待机几年没问题。
回复

使用道具 举报

11

主题

53

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1881
金钱
1881
注册时间
2014-10-4
在线时间
18 小时
 楼主| 发表于 2014-12-6 11:32:00 | 显示全部楼层
回复【6楼】好人:
---------------------------------
谢谢回复。
我现在在SPI_FLASH有设定一个标志位,判断设备是进入STOP后外部唤醒,还是通过reset重启的。

您说的RTC定时唤醒,会和外部中断唤醒冲突吗?请问是否有RTC定时唤醒喂狗的例程可以参考?谢谢
回复

使用道具 举报

1

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-11-26
在线时间
0 小时
发表于 2014-12-6 12:47:56 | 显示全部楼层
上面说的有点没对,是几秒唤醒一次,几分钟看门狗坚持不了那么久。
我没做RTC唤醒,我做的是看门狗唤醒,我感觉看门狗唤醒要简单些,rtc唤醒后还得去喂狗,反正看门狗是运行了的,还得多启动了一个外设。我用的是stm32L152,工作电流仅5mA,如果4S唤醒一次,工作4mS,平均功耗下来也就4uA,加上待机耗电4uA,整个平均耗电就10uA以内。很省电的。
回复

使用道具 举报

11

主题

53

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1881
金钱
1881
注册时间
2014-10-4
在线时间
18 小时
 楼主| 发表于 2014-12-6 19:21:22 | 显示全部楼层
回复【8楼】好人:
---------------------------------
谢谢指导
我这个案例,要求CPU一直工作,没办法工作一下,停一下。
之所以用STOP,是因为之前的软开关电路没做好,一直实现不了单按键开机关机,最后无奈,只能用进入STOP,关闭外设的方法来形成关机的效果。
回复

使用道具 举报

8

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-6-29
在线时间
34 小时
发表于 2017-3-24 11:36:24 | 显示全部楼层
好人 发表于 2014-12-6 12:47
上面说的有点没对,是几秒唤醒一次,几分钟看门狗坚持不了那么久。
我没做RTC唤醒,我做的是看门狗唤醒,我 ...

你好,我用的芯片和你一样,但是我的整个板子,包括dc-dc降压,和外围电路,发现,stop模式下还有接近2ma的电流,,,请问你是怎么做到的,io口进入stop前的配置能否分享一下
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-23 01:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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