independent watchdog 独立看门狗 window watchdog 窗口看门狗
创始人
2024-05-02 06:01:50
0

看门狗(watchdog)

防止硬件因外界电磁场干扰或其他导致不能正常工作的,导致不可预料后果,对芯片进行实时检测的模块或芯片称为看门狗

看门狗工作过程

启动看门狗后,有一个计数器从最大值递减,计数器减到0就会导致系统复位。为了不让每次复位会在某个时间内喂狗,也就是修改相应的寄存器在计数器没减到0的时候把计数器值再次调大。

IWDG和WDOG(window)

独立看门狗和窗口看门狗的区别:
IWDG使用的是LSI低速时钟,即使主时钟故障,独立看门狗仍然可以正常工作,只有上限,下限是0
WDOG是从APB1时钟分频的时钟,**时间较精确,**适合精确计时的程序检测,有上限,下限计数器时间0x40

独立看门狗寄存器启动运行

1,键值寄存器(IWDG_KR)写入0xcccc,开启独立看门狗。计时器从0xfff开始递减,若减到1则复位
2,在键值寄存器中写入0xAAAA,计数器会自动装载(重装载寄存器)IWDG_RLR的值,也就是俗称的**喂狗**
3,如果程序异常,无法喂狗,进而系统复位

在这里插入图片描述
在这里插入图片描述
IWDG_KR寄存器中写入0x5555,也就是取消写保护

独立看门狗时间计算

在这里插入图片描述
分频系数=4*2^PR,所以每次一个时钟减一次,所以所有溢出时间是计时器的值RLR有关,
在这里插入图片描述

Tout=((4×2^PR) ×RLR) /40 

常用函数

 取消寄存器写保护:IWDG_WriteAccessCmd();
②  设置独立看门狗的预分频系数,确定时钟:IWDG_SetPrescaler();
③  设置看门狗重装载值,确定溢出时间:IWDG_SetReload();
④  使能看门狗IWDG_Enable();
⑤  应用程序喂狗:IWDG_ReloadCounter();溢出时间计算:Tout=((4×2^prer) ×rlr) /40 (M3)void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);//取消写保护:0x5555使能
void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);//设置预分频系数:写PR
void IWDG_SetReload(uint16_t Reload);//设置重装载值:写RLR
void IWDG_ReloadCounter(void);//喂狗:写0xAAAA到KR
void IWDG_Enable(void);//使能看门狗:写0xCCCC到KR
FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);//状态:重装载/预分频 更新

窗口看门狗

喂狗时间

其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定0x3F)。独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。窗口看门狗的T6位就是在变为0就会复位,也就是下线值0x3f
在这里插入图片描述

窗口看门狗框图工作流程

首先,WWDG_CR看门狗启动位必须作用
第一种,WWDG_CR的后7位数据(计数器)大于WWDG_CFR时,通过比较器输出1,这时候喂狗(写入WWDG_CR)就会复位。可以看出WWDG_CFR记录的是上限值。
第二种:当WWDG_CR的T6位为0时,直接经过或门导致复位,所以不能减到0X40之下的0x3F.否则也触发复位
注意下图中的分频是在WWDG_CFR的第7,8位的值设置控制的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看门狗时间

在这里插入图片描述

常用寄存器

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

程序设置和常用函数

 使能看门狗时钟:RCC_APB1PeriphClockCmd();
②  设置分频系数:WWDG_SetPrescaler();
③ 设置上窗口值:WWDG_SetWindowValue();
④ 开启提前唤醒中断并分组(可选):WWDG_EnableIT();   NVIC_Init();
⑤ 使能看门狗:WWDG_Enable();
⑥ 喂狗:WWDG_SetCounter();
⑦编写中断服务函数WWDG_IRQHandler();   //一般将唤醒中断过程中喂狗

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...