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

相关推荐
DKPT15 分钟前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
Green1Leaves41 分钟前
pytorch学习-11卷积神经网络(高级篇)
pytorch·学习·cnn
KoiHeng3 小时前
操作系统简要知识
linux·笔记
巴伦是只猫4 小时前
【机器学习笔记Ⅰ】11 多项式回归
笔记·机器学习·回归
DKPT8 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
竹照煜_ysn8 小时前
蓝桥杯51单片机设计
单片机·嵌入式硬件·51单片机
Electron-er9 小时前
汽车LIN总线通讯:从物理层到协议栈的深度解析
单片机·汽车电子·lin总线·lin总线通讯
巴伦是只猫9 小时前
【机器学习笔记Ⅰ】13 正则化代价函数
人工智能·笔记·机器学习
Do vis8249 小时前
STM32第十六天蓝牙模块
stm32·单片机·嵌入式硬件
学不动CV了9 小时前
ARM单片机启动流程(二)(详细解析)
c语言·arm开发·stm32·单片机·51单片机