一,独立看门狗的讲述
独立看门狗(Independent Watchdog,通常缩写为IWDG)主要作用是主要用于检测外界电磁干扰,或硬件异常导致的程序跑飞问题。
1.1 IWDG本质上是一个12位的递减计数器。当计数器的值从某个初始值开始递减,并一直减到0时,系统会产生一个复位信号(IWDG_RESET)。CPU在接收到这个复位信号后,会重新启动系统,以确保系统从可能的错误或死锁状态中恢复
1.2 在计数器的值减到0之前,如果程序通过特定的“喂狗”操作(即重置计数器的值)来刷新计数器,那么就不会产生复位信号,系统将继续正常运行。这种“喂狗”操作通常是由程序在正常运行时定期执行的,以确保IWDG不会因计数器超时而产生复位信号。
1.3 它使用专用的低速时钟(LSI)作为时钟源,即使在主时钟发生故障时,IWDG仍然能够继续运行。IWDG可以在停止模式和待机模式下工作,确保在这些模式下系统仍然受到保护。
二,IWDG工作原理及框图
LSI 时钟频率并不精确,RC 频率会在 30kHz 到 60kHz 之间变化 ,F1 用 40kHz 进行计算即可
三,IWDG寄存器及函数介绍
四,IWDG溢出时间计算
Tout:看门狗溢出时间
fIWDG:看门狗的时钟源频率
psc:看门狗预分频系数
rlr:看门狗重装载值