1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
看门狗大家应该再熟悉不过了,一旦忘记喂狗就会导致单片机复位,而在大部分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复位,而是触发中断交给用户进行继续处理。 至于中断中怎么处理就非常灵活了,比如通过判断多次触发模拟看门狗中断以后才进行保护处理等,以防止一些噪声导致的误触发。 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1173浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 12:12 , Processed in 1.763192 second(s), Total 99, Slave 80 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号