看门狗大家应该再熟悉不过了,一旦忘记喂狗就会导致单片机复位,而在大部分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复位,而是触发中断交给用户进行继续处理。
至于中断中怎么处理就非常灵活了,比如通过判断多次触发模拟看门狗中断以后才进行保护处理等,以防止一些噪声导致的误触发。
来源:公众号最后一个bug
用于流媒体的内容交付网络
满足探地雷达主机应用需求的高速板对板连接器
三星位于苏州的面板工厂很快会转让给TCL
视频图像处理技术应用探析_图像处理技术在视频监视中的应用
中国电子检测类型大汇总 | 汇总1
什么是模拟看门狗?模拟看门狗有什么用处?
PCIe-3504PoE图像采集卡功能特点
【玩转多核异构】M核程序的启动、编写和仿真——飞凌嵌入式
浅谈传感器误差和ADC误差及校正此类误差的优势
无人直升机在农业上的应用优势
应急启动电源放车上安全吗?安全问题探讨
使用 Microsoft Azure Stack HCI 和 NVIDIA BlueField DPU 加速企业应用程序
哪种iPhone 12型号的销量最高?
零一科技节,泰坦水下无人机惊艳亮相
网络市场兼并收购繁忙,2018上半年有哪10大收购最引人瞩目?
中颖电子:为品牌手机厂开发芯片Q4送客户验证
热电厂高压加热器的检验与缺陷处理
什么是施密特触发器?有什么作用?
3D打印技术在武器装备研制方面的应用
STM32芯片如何使用片内参考电压实现模拟看门狗