STM32模块:023 WDG看门狗

看门狗简介

独立看门狗,拥有独立的时钟LSI,主时钟故障依旧可以工作。

窗口看门狗,使用APB1时钟。

两种看门狗都是递减计数器,从特定值(独立看门狗为重装载寄存器的值,窗口看门狗无重装载寄存器,直接在CNT里写入的值)减到0时发送复位信号。

看门狗启动后无法关闭,但窗口看门狗发生复位时关闭。

IWDG介绍

1)IWDG结构:

看门狗功能处于VDD供电区,其寄存器处于1.8V供电区。

2)IWDG键寄存器

3)IWDG超时时间

这些时间是按照40kHZ时钟给出,事实上,MCU内部的RC频率会在30kHZ到60kHZ之间变化,因此在计算超时时间时,尽量留有空间。

WWDG介绍

1)WWDG结构:

PCLK1进入WDGTB分频器之前,会先进行4096分频,结构图中未体现。

CFR用于写入窗口值,即最早喂狗时间界限。

计数器最高位T6有两种理解,理解一:T6为溢出标志位,为0时代表溢出,不参与计数。此时代表计数器从111111值计数到000000产生复位信号。理解二:T6参与计数。此时计数器相当于从1111111计数到1000000产生复位信号。

写入CR控制寄存器的值时不仅相当于配置重装载值,也是喂狗操作。

窗口功能:1.CR计数值减到0时输出复位信号。

2.每次喂狗时,CFR都会和CR进行比较,若此时CR的值大于CFR,则意味着喂狗时间过早,输出复位信号。

窗口看门狗的递减计数器处于自由运行状态,即使看门狗被禁止,递减计数器仍继续递减计数,同时当看门狗被启用时,T6位必须被设置,以防止立即产生一个复位。

2)WWDG工作特性

WWDG在超时复位之前会产生一次中断,称为早期唤醒中断(EWI),又称死前中断。

3)WWDG超时时间

IWDG和WWDG对比

硬件看门狗:开机自启动,防止程序在开启看门狗之前失效。需在选项字节里配置。

两种看门狗的计数器的值无法读写。

寄存器描述

1)IWDG

2)WWDG

窗口看门狗的控制寄存器低7位即为计数器,寄存器和计数器放在一起使开启看门狗和重装寄存器同时进行。

实验模块

实验一:独立看门狗

1)接线图
2)函数

1.启动或关闭写保护 2.设置预分频器 3.设置装载值 4.喂狗 5.启动独立看门狗

1.可通过标志位确认复位类型(如独立看门狗复位) 2.查看完需清除标志位。

3)代码

开启独立看门狗时,LSI会强制打开,因此无需手动打开LSI时钟。

原理配置流程:1.开启LSI(自动开启)2.键寄存器解除写保护 3.写入预分频器和重装寄存器 4.写入键寄存器(0XCCCC)启动看门狗 5.在主循环中不断地在键寄存器中写入(0xAAAA)喂狗。

喂狗或使能函数由于在键寄存器中写入了0X5555解除写保护之外的数值,自动开启了写保护,因此无需再手动开启写保护。

4)实验现象

OLED不断显示FEED喂狗,当按键按下超过200ms时,程序复位,OLED显示IWDGRST,此时实验成功。

实验二:窗口看门狗

1)接线图
2)函数

1.恢复缺省配置 2.设置预分频值 3.设置窗口值 4.使能WWDG死前中断 5.设置计数器的值,即喂狗

6.使能窗口看门狗

由于窗口看门狗为自由运行状态,因此使能时可能是任意值,所以在使能函数增加了可设置值的参数,防止刚使能便立即复位的情况。

3)代码

原理配置流程:1.开启APB1时钟 2.配置预分频器和窗口值 3.配置控制寄存器,包括看门狗使能,计数器溢出标志位和计数器有效位。

参数含义:窗口和喂狗参数中21与54为计算50ms超时时间和30ms窗口时间得到的对应参数值,0x40用于确保T[6]溢出位为1。

注:看门狗使能要与看门狗喂狗函数要与窗口距离,否则2次时间间隔过短会导致窗口复位,本函数中延迟函数写在喂狗函数之前就是这个目的。

4)实验现象

超时时间验证:OLED不断显示FEED表示已喂狗,当按下按键时显示WWDGRST表示触发复位。

窗口时间验证:修改延迟函数的值为30ms,则不断显示WWDGRST,说明实验成功。

(知识自学习专题,课程资料来源江协科技)

相关推荐
Wave8455 小时前
基于 STM32 + ESP8266 + W25Q64 的双核 OTA 底层架构总结
stm32·嵌入式硬件·架构
xiangw@GZ6 小时前
WiFi 全世代(WiFi1~WiFi7)技术规范与核心参数总结
嵌入式硬件
振南的单片机世界6 小时前
CPU时钟:频率越高跑越快,但物理极限在“拖后腿”
stm32·单片机·嵌入式硬件
普中科技8 小时前
【普中 51-Ai8051 开发攻略】-- 第 20 章 输入捕获实验
单片机·嵌入式硬件·输入捕获·pca·普中科技·ai8051u·aicube
d111111111d8 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
d111111111d10 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习
三佛科技-1341638421210 小时前
主控FT32F031便携式吸尘器方案,迷你手持吸尘器MCU控制方案开发
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
一个平凡而乐于分享的小比特11 小时前
一文读懂MCU与FPGA:核心区别、协同之道与双修秘籍
单片机·fpga开发·职场发展·mcu开发
踏着七彩祥云的小丑12 小时前
嵌入式——认识电子元器件——微动开关系列
单片机·嵌入式硬件
调光IC-小雅12 小时前
解析FP62××系列限流保护机制:为何它是DC/DC芯片的安全底线
单片机·嵌入式硬件