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 * (T5:0 + 1);

最早喂狗时间:TWIN = TPCLK1 * 4096(固定值未画出) * 2^WDGTB *(T5:0 - W5:0);

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

e、两种看门狗的对比

三、参考

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

相关推荐
RainCity4 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
FreakStudio11 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
LinXunFeng12 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
通信小呆呆16 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick16 天前
自动对焦学习-3
人工智能·学习·计算机视觉
✎ ﹏梦醒͜ღ҉繁华落℘16 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
Daisy Lee16 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8616 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e16 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨16 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙