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();   //一般将唤醒中断过程中喂狗

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...