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

相关推荐
我叫唧唧波5 小时前
Python+AI 全栈学习笔记
人工智能·python·学习
城北徐宫6 小时前
Linux信号深度解剖:5种产生、3张表、4次切换
linux·c++·学习
Aaron15886 小时前
无人机反制中AOA+TDOA联合定位技术与雷达探测定位技术的应用对比分析
arm开发·嵌入式硬件·fpga开发·硬件工程·无人机·信息与通信·信号处理
三品吉他手会点灯7 小时前
C语言学习笔记 - 43.运算符与表达式 - 运算符1 - 运算符的分类和简单介绍
c语言·笔记·学习·算法
疯狂打码的少年7 小时前
中断处理过程与中断优先级
笔记
foundbug9997 小时前
STM32 睡眠模式测试程序
stm32·单片机·嵌入式硬件
likerhood7 小时前
WSL 下安装 Miniconda 笔记
笔记·wsl
吃好睡好便好8 小时前
芒种时节如何保健
学习·生活
lizhihai_999 小时前
股市学习心得-A股服务器/算力服务器龙头
大数据·运维·服务器·人工智能·科技·学习
wxmtwfx9 小时前
littlefs 源码分析
单片机·littlefs·嵌入式文件系统