一.IWDG简介
1.1什么是独立看门狗。
相当于一个监控程序是否跑飞,或者死机,在正常情况下程序会定时喂狗,如果超过一定的时间没有喂狗,会触发复位。独立看门狗 (IWDG) 由其专用低速时钟 (LSI) 驱动,因此即便在主时钟发生故障时仍然保持工作状态。窗口看门狗 (WWDG) 时钟由 APB1 时钟经预分频后提供,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
1.2IWDG特性
1.自由运行递减计数器
2.时钟由独立 RC 振荡器提供(可在待机和停止模式下运行)
3.当递减计数器值达到 0x000 时产生复位(如果看门狗已激活)
1.3IWDG功能说明
像关键寄存器(IWDG_KR)写入0XCCCC启动独立看门狗时,计数器开始从复位值 0xFFF 递减计数。当计数器计数到终值 (0x000) 时会产生一个复位信号(IWDG 复位)。任何时候将关键字 0xAAAA 写到 IWWDG_KR 寄存器中,IWDG_RLR 的值就会被重载到计数器,从而避免产生看门狗复位。
1.4寄存器的访问和保护
IWDG_PR 和 IWDG_RLR 寄存器具有写访问保护。若要修改寄存器,必须首先对 IWDG_KR 寄存器写入代码 0x5555。而写入其他值则会破坏该序列,从而使寄存器访问保护再次生效。这意味着重装载操作(即写入 0xAAAA)也会启动写保护功能。状态寄存器指示预分频值和递减计数器是否正在被更新。
1.5IWDG在32kHz超时周期的最大最小值如下图
二.IWDG寄存器
2.1关键寄存器(IWDG_KR)偏移地址:0x00
位31:16 保留,必须保持复位值。
位15:0 :键值 (Key value)(只写位,读为 0000h)必须每隔一段时间便通过软件对这些位写入键值 AAAAh,否则当计数器计数到 0 时,看门狗 会产生复位。 写入键值 5555h 可使能对 IWDG_PR 和 IWDG_RLR 寄存器的访问( 写入键值 CCCCh 可启动看门狗(选中硬件看门狗选项的情况除外)。
2.2预分频器寄存器 (IWDG_PR)偏移地址:0x04
位 31:3 保留,必须保持复位值。
位 2:0 PR[2:0]:预分频器 (Prescaler divider) 这些位受写访问保护,请参见第 18.3.2 节。通过软件设置这些位来选择计数器时钟的预分频 因子。若要更改预分频器的分频系数,IWDG_SR 的 PVU 位必须为 0。
2.3重载寄存器 (IWDG_RLR)偏移地址:0x08
位 31:12 保留,必须保持复位值。
2.4状态寄存器 (IWDG_SR)偏移地址:0x0C
位 31:2 保留,必须保持复位值。
三.IWDG寄存器初始化流程
四.IWDGHAL库版本