单片机学习小组
登录
直播中
h1654155275.5916
7年用户
993经验值
私信
关注
模拟看门狗到底有什么用处呢
开启该帖子的消息推送
单片机
看门狗
到底什么是
模拟看门狗
呢?
模拟看门狗到底有什么用处呢?
回帖
(1)
刘先睿
2022-1-17 11:20:13
看门狗大家应该再熟悉不过了,一旦忘记喂狗就会导致单片机复位,而在大部分stm32中都存在两种类型的看门狗,Independent watchdog (IWDG)独立看门狗和Window watchdog (WWDG)窗口看门狗。
独立看门狗
也就是常规的一种看门狗,需要定时reload计数值进入downcounter下降计数器中,否则当下降计数到0便会产生IWDG_reset信号,导致芯片复位。
通过下方原理框图可知,其有独立LSI时钟驱动,不会受到主时钟的影响,相对比较独立。
窗口看门狗
与独立看门狗有所不同,该看门狗必须在
所设置的窗口
重载下降计数器才不会导致RESET,过早或者过晚都会导致复位。
然而有时候系统异常触发了窗口看门狗,为了便于分析想记录适当的日志,或者应对一些不能直接复位的应用场合,进行一些卸载操作,当窗口看门狗当下降计数器达到0x40后,生成一个EWI中断,并执行相应的中断服务函数,处理完中断以后,才复位系统。
那到底什么是
模拟看门狗
呢?
虽然名字叫看门狗,不过模拟看门狗存在的目的并不是使得芯片复位,而是对外设信号起到一个监控作用。
如下图所示,模拟看门狗在ADC外设里面:
从外设结构框图可以了解到,该看门狗主要是由一个12bit的上限值(High threshold)和一个12bit的下限值(Low threshold)构成,比较以后输出一个AWD的ADC中断信号,从而触发相应中断。
在stm32库中通过填充ADC_AnalogWDGConfTypeDef,并进行配置即可启动该功能。
模拟看门狗到底有什么用处呢?
做过控制或者数据采集的朋友都会进行信号的过低或者超高的异常处理,对于一些快速性的处理和保护,常规的处理办法就是直接在采集中断中用采集结构比较所设置的最大值或者最小值。
如果仅仅只是一个采样值的判断倒无伤大雅,当多个ADC通道都需要进行相同判断和处理,软件上就有点累赘耗时了。
硬件功底不错的伙计,可能会想到通过外部比较器+逻辑运算最终通过一个引脚接到MCU的外部中断,一旦有采样信号超范围,便会触发外部中断执行中断服务函数处理。
然而这种需要增加额外硬件的方式对于有模拟看门狗MCU等就没有必要了,因为每个ADC中的模拟看门狗都可以通过配置相应寄存器选择一系列通道进入模拟看门狗的上下限监控中。
这样看来模拟看门狗有点像窗口看门狗,只是其最终不会导致MCU复位,而是触发中断交给用户进行继续处理。
至于中断中怎么处理就非常灵活了,比如通过判断多次触发模拟看门狗中断以后才进行保护处理等,以防止一些噪声导致的误触发。
看门狗大家应该再熟悉不过了,一旦忘记喂狗就会导致单片机复位,而在大部分stm32中都存在两种类型的看门狗,Independent watchdog (IWDG)独立看门狗和Window watchdog (WWDG)窗口看门狗。
独立看门狗
也就是常规的一种看门狗,需要定时reload计数值进入downcounter下降计数器中,否则当下降计数到0便会产生IWDG_reset信号,导致芯片复位。
通过下方原理框图可知,其有独立LSI时钟驱动,不会受到主时钟的影响,相对比较独立。
窗口看门狗
与独立看门狗有所不同,该看门狗必须在
所设置的窗口
重载下降计数器才不会导致RESET,过早或者过晚都会导致复位。
然而有时候系统异常触发了窗口看门狗,为了便于分析想记录适当的日志,或者应对一些不能直接复位的应用场合,进行一些卸载操作,当窗口看门狗当下降计数器达到0x40后,生成一个EWI中断,并执行相应的中断服务函数,处理完中断以后,才复位系统。
那到底什么是
模拟看门狗
呢?
虽然名字叫看门狗,不过模拟看门狗存在的目的并不是使得芯片复位,而是对外设信号起到一个监控作用。
如下图所示,模拟看门狗在ADC外设里面:
从外设结构框图可以了解到,该看门狗主要是由一个12bit的上限值(High threshold)和一个12bit的下限值(Low threshold)构成,比较以后输出一个AWD的ADC中断信号,从而触发相应中断。
在stm32库中通过填充ADC_AnalogWDGConfTypeDef,并进行配置即可启动该功能。
模拟看门狗到底有什么用处呢?
做过控制或者数据采集的朋友都会进行信号的过低或者超高的异常处理,对于一些快速性的处理和保护,常规的处理办法就是直接在采集中断中用采集结构比较所设置的最大值或者最小值。
如果仅仅只是一个采样值的判断倒无伤大雅,当多个ADC通道都需要进行相同判断和处理,软件上就有点累赘耗时了。
硬件功底不错的伙计,可能会想到通过外部比较器+逻辑运算最终通过一个引脚接到MCU的外部中断,一旦有采样信号超范围,便会触发外部中断执行中断服务函数处理。
然而这种需要增加额外硬件的方式对于有模拟看门狗MCU等就没有必要了,因为每个ADC中的模拟看门狗都可以通过配置相应寄存器选择一系列通道进入模拟看门狗的上下限监控中。
这样看来模拟看门狗有点像窗口看门狗,只是其最终不会导致MCU复位,而是触发中断交给用户进行继续处理。
至于中断中怎么处理就非常灵活了,比如通过判断多次触发模拟看门狗中断以后才进行保护处理等,以防止一些噪声导致的误触发。
举报
更多回帖
rotate(-90deg);
回复
相关问答
单片机
看门狗
STM32芯片的
模拟
看门狗
是怎么回事
呢
2021-09-18
1776
一文读懂什么是
模拟
看门狗
2021-08-16
2003
ADC是如何
模拟
看门狗
中断开关的
2021-09-23
2120
IWDG独立
看门狗
操作步骤
有
哪些
呢
2022-01-17
715
怎样去
模拟
STM32
看门狗
中断
呢
2021-09-14
1307
啥叫
看门狗
?如何合理的使用
看门狗
?
2021-07-07
1669
窗口
看门狗
与独立
看门狗
有
什么不同?
2021-09-18
1428
如何启用STM32的窗口
看门狗
呢
2021-09-08
1158
什么是
看门狗
?
看门狗
有
哪些类型?
2021-11-09
1152
独立
看门狗
与窗口
看门狗
概述
2021-09-26
1124
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分