STM32F1学习——WDG看门狗

一、WDG(Watchdog)看门狗

STM32内置两个看门狗,① 独立看门狗(IWDG):独立工作(使用内部的低速时钟LSI),对时间精度要求较低。其工作原理是一个重复自减极速器,如果在减为0之前你没有将计数值重置(喂狗),那么当他减为0时就会产生复位信号,防止程序卡死。②窗口看门狗(WWDG):使用APB1时钟,要求看门狗在精确计时窗口起作用。其工作原理是在一段时间内,不能过早也不能过晚之间必须重置计数器值(喂狗),否则产生复位信号。

二、看门狗的硬件电路

a、IWDG看门狗硬件电路

独立看门狗的执行逻辑和定时器没太大差别,首先是LSI内部低速时钟进入8位预分频器,后驱动12位递减计数器递减,通过键寄存器驱动喂狗,将12为重装载数值写入计数器。同时你可以在状态寄存器IWDG_SR查看电路运行状态。

同时独立看门狗的寄存器主要在1.8V供电区,而三个类似实际电路的寄存器位于VDD供电区,即在停机和待机模式的时候仍然能正常工作。

键寄存器是在定时器中没有的,这里为什么要这么设计,其主要原因还是为了防止干扰。键寄存器本质上是控制寄存器,用于控制硬件电路的工作。在可能存在干扰的情况下,一般通过在整个寄存器写下一个特定值来代替控制寄存器写入一位的功能,以降低硬件电路受到干扰的概率。

b、IWDG看门狗超时时间

超时时间: T(IWDG) = T(LSI) * PR(预分频系数) * (RL + 1); 其中T(LSI) = 1 / F(LSI)

c、WWDG看门狗硬件电路

WWDG看门狗是一个在APB1总线上的外设,他的经典时钟是36MHZ,PCLK1通过看门狗预分频器,进入自减计数器,这个计数器的最高位WDGA为WWDG看门狗的使能信号,T6最高位为0的时候会产生复位信号,从左边的或门进入。则这里计数值需要注意,是减少到0x3F的时候产生溢出标志位产生晚复位信号。

早复位信号的产生是T6:0 > W6:0,这里T6:0是自减的,所以W6:0还大说明喂狗早了,下面会有时序图看看。

d、WWDG看门狗超时时间

纵坐标为T6:0,他随着时钟信号自减,在大于W6:0的时候不运行刷新表示时间过早喂狗,在W6:0和0x3F的时候表示可以喂狗,超过0x3F表示没有喂狗。

同时图中在递减计数器T6:0为0x40的时候可以产生早期唤醒中断EWI,可用于重装在计数器以避免WWDG复位或执行保护数据等功能。

最晚喂狗时间:TWWDG晚 = TPCLK1 * 4096(固定值未画出) * 2^WDGTB * (T[5:0] + 1);

最早喂狗时间:TWIN = TPCLK1 * 4096(固定值未画出) * 2^WDGTB *(T[5:0] - W[5:0]);

其中TPCLK1 = 1 / Fpclk1; 最早喂狗时间也叫窗口时间,即进入窗口的时间。

e、两种看门狗的对比

三、参考

[14-1] WDG看门狗_哔哩哔哩_bilibili

相关推荐
淬渊阁27 分钟前
汇编学习之《扩展指令指针寄存器》
汇编·学习
lalapanda29 分钟前
UE5学习记录part12
学习·ue5
不要影响我叠Q1 小时前
《Fundamentals of Electromigration-Aware IntegratedCircuit Design》笔记
笔记
蒹葭苍苍8731 小时前
LoRA、QLoRA微调与Lama Factory
人工智能·笔记
并不会1 小时前
多线程案例-单例模式
java·学习·单例模式·单线程·多线程·重要知识
淬渊阁1 小时前
汇编学习之《push , pop指令》
汇编·学习
吴梓穆1 小时前
UE5学习笔记 FPS游戏制作33 换子弹 动画事件
笔记·学习·ue4
2401_884810741 小时前
Spring-MVC笔记上(上)
笔记·spring·mvc
吴梓穆1 小时前
UE5学习笔记 FPS游戏制作31 显示计分板
笔记·学习·ue4
ZaaaaacK2 小时前
STM32技能综合巩固
stm32·单片机·嵌入式硬件