打印

看门狗使用的一些疑问

[复制链接]
2258|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
混子黄|  楼主 | 2018-9-22 09:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
HWM| | 2018-9-22 09:30 | 只看该作者
"看门狗"是"死机"后才起作用,电源电压降低通常用电源监控或管理芯片。

使用特权

评论回复
板凳
tianxj01| | 2018-9-22 10:11 | 只看该作者
定时器是硬件,在定时器里面喂狗,已经失去了看门狗本身意义了。
喂狗一般需要在主循环且最好就是在主循环,那么一旦程序挂起,看门狗就会动作复位。

使用特权

评论回复
地板
yanwen217| | 2018-9-22 14:26 | 只看该作者
楼主用的是单片机的内置看门狗吧。
如果是外部独立的看门狗芯片,基本都是集成了电压检测功能和看门狗计数器功能,电压低于所选的检测阈值电压或者看门狗计数器计数溢出都会给出指示信号

使用特权

评论回复
5
wukaka2016| | 2018-9-22 15:17 | 只看该作者
电压低于单片机工作电压,单片机都不工作了,看门狗也不工作了

使用特权

评论回复
6
wukaka2016| | 2018-9-22 15:18 | 只看该作者
看门狗是设定每隔一段时间清零看门狗计数器,如果程序进入死循环,则无法定时清零看门狗计数器,就会计满溢出,发生复位。

使用特权

评论回复
7
混子黄|  楼主 | 2018-9-22 16:53 | 只看该作者
tianxj01 发表于 2018-9-22 10:11
定时器是硬件,在定时器里面喂狗,已经失去了看门狗本身意义了。
喂狗一般需要在主循环且最好就是在主循环 ...

主要是想知道电源低了以后,单片机的看门狗还能生效吗?

使用特权

评论回复
8
混子黄|  楼主 | 2018-9-22 16:54 | 只看该作者
HWM 发表于 2018-9-22 09:30
"看门狗"是"死机"后才起作用,电源电压降低通常用电源监控或管理芯片。

嗯,但是监控芯片的供电电源也异常的话不是也没办法了吗?
就是给板子的总供电异常。

使用特权

评论回复
9
混子黄|  楼主 | 2018-9-22 16:56 | 只看该作者
yanwen217 发表于 2018-9-22 14:26
楼主用的是单片机的内置看门狗吧。
如果是外部独立的看门狗芯片,基本都是集成了电压检测功能和看门狗计数 ...

是内置看门狗,所以想知道电源低了以后内部的看门狗还能生效吗?是否会一直给复位信号?直到电源恢复正常?

使用特权

评论回复
10
混子黄|  楼主 | 2018-9-22 17:04 | 只看该作者
wukaka2016 发表于 2018-9-22 15:18
看门狗是设定每隔一段时间清零看门狗计数器,如果程序进入死循环,则无法定时清零看门狗计数器,就会计满溢 ...

嗯,我就是想让他程序进入死循环,然后复位。

但是不用定时器做的话,我的主循环可能都有400MS时间,内部看门狗是200MS没喂狗就会复位。

所以我想用定时器做。

使用特权

评论回复
11
tianxj01| | 2018-9-22 17:04 | 只看该作者
混子黄 发表于 2018-9-22 16:53
主要是想知道电源低了以后,单片机的看门狗还能生效吗?

理论上,现代单片机,都有低电压复位功能。不需要通过看门狗来解决。
当然,如果非要考察看门狗是不是能够解决。那么只要你把喂狗放在正常主循环位置,一旦单片机因为失电导致挂起,肯定能够给你一个复位的。这个,不是发生在低电压时候,而是发生在低电压过去后,由于机器进入非正常地址,主循环破坏,那么理论上看门狗就会叫了............

使用特权

评论回复
12
混子黄|  楼主 | 2018-9-22 17:06 | 只看该作者
tianxj01 发表于 2018-9-22 10:11
定时器是硬件,在定时器里面喂狗,已经失去了看门狗本身意义了。
喂狗一般需要在主循环且最好就是在主循环 ...

还有就是看门狗在中断关闭的情况下能生效吗?

就说说我的中断关闭,然后看门狗打开,在喂狗,这个喂狗的动作有效吗?

使用特权

评论回复
13
混子黄|  楼主 | 2018-9-22 17:11 | 只看该作者
tianxj01 发表于 2018-9-22 17:04
理论上,现代单片机,都有低电压复位功能。不需要通过看门狗来解决。
当然,如果非要考察看门狗是不是能 ...

嗯。
这个复位是一直存在的吗?
因为我是这么想的,如果电源电压很低,那么即使看门狗复位了单片机也不能正常工作,所以想知道这个复位是一直存在的吗?

使用特权

评论回复
14
混子黄|  楼主 | 2018-9-22 17:15 | 只看该作者
混子黄 发表于 2018-9-22 17:11
嗯。
这个复位是一直存在的吗?
因为我是这么想的,如果电源电压很低,那么即使看门狗复位了单片机也不能 ...

还有单片机电压如果正常是3.3V,其中因为一些原因持续了10分钟的2v,10分钟后恢复3.3V,那么单片机能够正常复位吗?
如果不能,硬件上应该加个什么比较合适,能让单片机恢复后复位?
还有一点就是板子的供电由一个开关电源提供,如果电网波动的很厉害的话,是否有可能出现电源输出异常,比如正常输出5V的,最后变到2V,有没有这个可能?

使用特权

评论回复
15
tianxj01| | 2018-9-22 17:45 | 只看该作者
混子黄 发表于 2018-9-22 17:06
还有就是看门狗在中断关闭的情况下能生效吗?

就说说我的中断关闭,然后看门狗打开,在喂狗,这个喂狗的 ...

看门狗和中断没什么关系。
而且建议是在config选项里面打开硬件看门狗,而不是到软件里面去打开,也就是单片机只要上电到能正常运行,不管内部是不是跑飞,那么这时候,看门狗的意义就体现了。
一般芯片看门狗有烧写时候选择打开看门狗,也有软件里面启动看门狗,这在对付某些像你因为失电造成跑飞效果应该不一样。

使用特权

评论回复
16
tianxj01| | 2018-9-23 10:12 | 只看该作者
混子黄 发表于 2018-9-22 17:15
还有单片机电压如果正常是3.3V,其中因为一些原因持续了10分钟的2v,10分钟后恢复3.3V,那么单片机能够正 ...

这种情况,最安全的是外挂一个专用电压复位芯片到芯片RESET脚。
max809s,复位电压2.93V。专门设计用来在要求高的3.3V供电系统可靠复位用。
关键是这货便宜到没边,没有成本压力。

使用特权

评论回复
17
菩提菩提提| | 2018-9-23 14:03 | 只看该作者
在我看来,普通窗口看门口,也就是是个定时器,这个定时器在中断源会触发复位罢了。你说低压的情况,需要判断你的MCU是否内部带BUCK或者LDO,内核电压究竟是多少V失效,在电压逐渐降低的过程,如果你的外设电压关闭,内核还在工作,这种情况较少,但还是有可能的。现在的MCU很多都带有BOD,低压报警和复位源可用的。

使用特权

评论回复
18
gx_huang| | 2018-9-24 09:48 | 只看该作者
我不相信有什么程序,主程序运行一次要400ms的。这个要看你自己优化了。
在定时器中断里喂狗,绝对不是好的设计,其它程序死了,定时器也不一定会死,这个看门狗就失去意义了。
如果主程序无法优化,可以在中间多次喂狗,或者把WDT溢出时间设置长一些。绝对不可以定时器喂狗。

使用特权

评论回复
19
raoyouihs| | 2018-9-25 09:06 | 只看该作者
看门狗是为了防止MCU死机用的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

108

主题

1034

帖子

6

粉丝