关于STM32_IWDG独立看门狗的一些笔记

独立看门狗(IWDG,Independent watchdog),本质是一个可以定时产生系统复位信号、并且可以通过”喂狗“复位的计时器。它由独立的RC振荡器、低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效,LSI 的频率一般取 40KHZ。用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,重装载计数器的时钟值,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。

看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。相比而言,窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

看门狗的作用是面对外界电磁干扰和内部(硬件或软件)错误,导致程序跑飞。比如程序因为一个外界的电磁干扰陷入了一个死循环,打断正常程序运行,而看门狗能通过触发系统复位来恢复程序正常运行,规避掉了程序收到外界干扰导致的错误。一般需要应用在需要高稳定性但对精度较低的硬件中。

接下来介绍我们的IWDG的工作原理。

当我们启动IWDG之后,LSI自动启动,给IWDG输入LSI的40MHz低频时钟信号,通过8位预分频器PSC,再得到我们真正的IWDG_CLK独立看门狗工作时钟信号。接下来把IWDG_CLK独立看门狗时钟信号输入递减计时器CNT,当CNT信号计数到0的时候(CNT==0),就会触发系统复位。但如果我们激活了IWDG_RLR重装载寄存器,将CNT复位,重新开始计数器计时。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值