IWDG 独立看门狗 知识详解

本文详细介绍了独立看门狗(IWDG)的工作原理,包括其功能框图解析,启动方法(软件启动与硬件启动),以及超时溢出时间的计算方法。IWDG使用独立的RC振荡器LSI,通过预分频器、状态寄存器、重载寄存器和键寄存器实现递减计数器功能,确保系统在软件故障时能够自动复位。同时,文章给出了超时时间的计算公式,帮助理解IWDG的时间设置。
摘要由CSDN通过智能技术生成

目录

1. IWDG简介

2. IWDG功能框图解析

3. IWDG启动方法

(1)软件启动

(2)硬件启动(选项字节)

4. IWDG超时溢出时间计算


1. IWDG简介

独立看门狗(Independent Watchdog, IWDG),其实是一种递减计数器,是单片机的一个组成部分,主要功能是在发生软件故障或程序跑飞时,独立看门狗产生复位信号,使器件复位。

IWDG的时钟由独立的RC振荡器LSI提供,即使主时钟发生故障它仍然有效,非常独立。LSI根据温度和工作场合情况会有一定的漂移,所以IWDG的定时时间不是非常准确,只适用于对时间精度要求比较低的场合。

2. IWDG功能框图解析

 (1)预分频寄存器IWDG_PR

IWDG一般不需要高频的时钟,所以通过预分频寄存器将LSI进行分频,分频可以获得更广泛的时间间隔。如fLSI=40KHz,如果预分频寄存器配置为4分频,那么分频后的时钟频率为10KHz。

(2)状态寄存器IWDG_SR

只读寄存器,由硬件置位和清零,用来指示PR、RLR等寄存器的值正在更新。为0时才可以重新改写相应的PR或RLR的值。

(3)重载寄存器IWDG_RLR

装载着要刷新到计数器的值,这个值的大小决定了IWDG的溢出时间。当键寄存器中写入0xAA时,刷新IWDG,重载寄存器中的值赋给递减计数器。

计数器在一定频率的时钟下做递减操作,如果减到0时仍没有“喂狗”,则IWDG会超时引发系统复位,让程序重新启动运行。如果在计数器减到0之前刷新了计数器的值的话,就不会产生复位信号。

(4)键寄存器IWDG_KR

向键寄存器中周期性的写入0xAA可以刷新IWDG计数器,俗称喂狗,否则当递减计数器计数到 0 时会产生系统复位。

向键寄存器中写入0x55可以解除预分频寄存器、重载寄存器等的写保护。

写入 0xCCCC 启动独立看门狗(也可以通过选项字节在上电的时候就启动独立看门狗)。

键寄存器需要依次配置CC,55,与AA,也就是先启动IWDG,再解锁,然后定期刷新。

3. IWDG启动方法

(1)软件启动

当芯片上电复位后,如果用户没有修改选项字节的参数,那么IWDG的资源默认由软件程序启用。如果软件程序启用IWDG,需要向键寄存器(IWDG_KR)中写入(0xCC)H来启用,一旦使能了IWDG,除了复位之外,不能被关闭。

(2)硬件启动(选项字节)

若用户需要硬件启用IWDG,可以通过修改选项字节中的相应位来实现。如果通过选项字节配置为硬件启动IWDG后,在单片机上电时独立看门狗资源就已经启动了,不再需要用户向键寄存器中写入(0xCC)H。

 两种启动方式导图:

 

4. IWDG超时溢出时间计算

 

P 中+2是因为最小为4分频,即PR[2:0]为0。

R 中+1是因为要表示1~256个数,RLR[7:0]表示0~255。

T的单位是秒s;f的单位是Hz。

例:

LSI为2KHz,分频系数为8分频,IWDG_RLR数值为50,计算超时时间?

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值