【STM32】STM32学习笔记-WDG看门狗(46)

00. 目录

文章目录

    • [00. 目录](#00. 目录)
    • [01. WDG简介](#01. WDG简介)
    • [02. IWDG概述](#02. IWDG概述)
    • [03. IWDG框图](#03. IWDG框图)
    • [04. IWDG键寄存器](#04. IWDG键寄存器)
    • [05. WWDG简介](#05. WWDG简介)
    • [06. WWDG框图](#06. WWDG框图)
    • [07. WWDG工作特性](#07. WWDG工作特性)
    • [08. IWDG和WWDG对比](#08. IWDG和WWDG对比)
    • [09. 预留](#09. 预留)
    • [10. 附录](#10. 附录)

01. WDG简介

  • WDG(Watchdog)看门狗

  • 看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性

  • 看门狗本质上是一个定时器,当指定时间范围内,程序没有执行喂狗(重置计数器)操作时,看门狗硬件电路就自动产生复位信号

  • STM32内置两个看门狗

独立看门狗(IWDG):独立工作,对时间精度要求较低

窗口看门狗(WWDG):要求看门狗在精确计时窗口起作用

02. IWDG概述

STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。

独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序

在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。

无论何时,只要在键寄存器IWDG_KR中写入0xAAAA, IWDG_RLR中的值就会被重新加载到计数器,从而避免产生看门狗复位 。

IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。以不同的值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。重装载操作(即写入0xAAAA)也会启动写保护功能。状态寄存器指示预分频值和递减计数器是否正在被更新。

03. IWDG框图

04. IWDG键寄存器

• 键寄存器本质上是控制寄存器,用于控制硬件电路的工作

• 在可能存在干扰的情况下,一般通过在整个键寄存器写入特定值来代替控制寄存器写入一位的功能,以降低硬件电路受到干扰的概率

05. WWDG简介

窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU复位。在递减计数器达到窗口寄存器数值之前,如果7位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个MCU复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。

06. WWDG框图

07. WWDG工作特性

•递减计数器T[6:0]的值小于0x40时,WWDG产生复位

•递减计数器T[6:0]在窗口W[6:0]外被重新装载时,WWDG产生复位

•递减计数器T[6:0]等于0x40时可以产生早期唤醒中断(EWI),用于重装载计数器以避免WWDG复位

•定期写入WWDG_CR寄存器(喂狗)以避免WWDG复位

08. IWDG和WWDG对比

09. 预留

10. 附录

参考: 【STM32】江科大STM32学习笔记汇总

相关推荐
stm32 菜鸟8 小时前
nucleo-f411re学习记录-14,OTA 固件升级-bootloader与app分区实现
学习
码途漫谈8 小时前
Easy-Vibe开发篇阅读笔记(十二)——后端开发之如何集成Stripe等收费系统
笔记·ai·开源·状态模式·ai编程
LCG元8 小时前
STM32实战:基于RT-Thread的STM32开发环境搭建与LED任务
stm32·单片机·嵌入式硬件
Bechamz8 小时前
大数据开发学习Day24
大数据·学习
在下_诸葛8 小时前
langgraph学习笔记
笔记·python·学习·langgraph教程
yue2004038 小时前
Spring IoC 与 DI 核心概念与原理笔记
java·笔记·spring
charlie1145141918 小时前
现代Qt开发教程(新手篇)1.10——进程
开发语言·c++·qt·学习
绿豆人9 小时前
Cache缓存项目学习2
学习·缓存
山楂树の9 小时前
H.265 (HEVC) 视频解码转逐帧图像 完整实现方案
学习·音视频·h.265
星幻元宇VR9 小时前
VR观景台推动安全科普走向沉浸体验
科技·学习·安全·vr·虚拟现实