跳转至

窗口看门狗(WWTD)

功能介绍

窗口看门狗的时钟是从APB时钟PCLK分频得到的,当使用后假如软件在计数器到达指定值之前未能及时“喂狗”,就会产生复位或者中断。此外,WWTD还具有一个可配置的窗口值,假如软件在计数值达到窗口下限值之前或者上限值之后“喂狗”,也会产生中断或复位。因此软件必须在一个限定的时间窗口内“喂狗”。

窗口看门狗的主要特征有:

  • 时钟来自于PCLK分频
  • 支持基于窗口的service
  • 支持正常模式和pre-warning alarm模式
  • 正常模式下,喂狗时机错误、计数器越界、喂狗值写错可立即产生复位请求
  • Pre-warning alarm模式下,第一次越上界产生中断,第二次越上界产生复位请求;喂狗值错或者喂狗时机在下界之前产生复位请求
  • 锁定寄存器,避免寄存器误操作

寄存器映射

WWTD寄存器映射的基地址为0x4003B000,具体的寄存器映射见表14。

表14 WWTD寄存器映射

偏移量 名称 位宽 类型 复位值 描述
0x00 WDT_CTR 32 R/W 0x00000000 控制寄存器
0x04 WDT_SCALE 32 R/W 0x00000001 分频寄存器
0x08 WDT_SRV 32 WO - 喂狗值寄存器
0x0C WDT_WLB 32 R/W 0x00000000 窗口下界寄存器
0x10 WDT_WUB 32 R/W 0xFFFFFFFF 窗口上界寄存器
0x14 WDT_LOCK 32 R/W 0x00000000 解锁命令寄存器
0x18 WDT_COUNT 32 RO 0x00000000 计数值寄存器
0x1C WDT_STATUS 32 RO 0x00000000 状态寄存器

控制寄存器(WDT_CTR)

偏移量:0x00

复位值:0x00000000

位域 名称 复位值 类型 描述
31:7 Reserved 0x0000000 R/W 保留
6 INT_EN 0 R/W 中断产生使能:
0:禁止
1:使能
5 RST_EN 0 R/W 复位产生使能:
0:禁止
1:使能
4 WIND_EN 0 R/W Window功能开关:
0:在上限以内的范围内喂狗即可
1:必须在窗口范围内喂狗
3 HALT_EN 0 R/W 保留
2 MODE 0 R/W 工作模式:
0:正常模式
1:pre-warning alarm模式
1 CLK_SEL 0 R/W 时钟选择:
0:PCLK分频后时钟
1:外部输入时钟
0 GLB_ENB 0 R/W WWTD使能:
0:禁止
1:使能

分频寄存器(WDT_SCALE)

偏移量:0x04

复位值:0x00000001

位域 名称 复位值 类型 描述
31:16 Reserved 0x0000 R/W 保留
15:0 WDT_SCALE 0x0001 R/W 分频寄存器。当选择PCLK分频后的时钟作为计时参考时钟时,此寄存器作为PCLK的分频系数。当配置为0或1时即不分频

喂狗值寄存器(WDT_SRV)

偏移量:0x08

复位值:-

位域 名称 复位值 类型 描述
31:0 WDT_SRV - WO 喂狗值寄存器:
在窗口内向该寄存器写入0xABADC0DE即表示喂狗,若写入其他值会产生复位请求。如果中断请求已经产生,写入0xABADC0DE会清除中断请求

窗口下界寄存器(WDT_WLB)

偏移量:0x0C

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 WDT_WLB 0x00000000 R/W 窗口下界寄存器

窗口上界寄存器(WDT_WUB)

偏移量:0x10

复位值:0xFFFFFFFF

位域 名称 复位值 类型 描述
31:0 WDT_WUB 0xFFFFFFFF R/W 窗口上界寄存器

解锁命令寄存器(WDT_LOCK)

偏移量:0x14

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 WDT_LOCK 0x00000000 R/W 解锁命令寄存器:
向此寄存器写入0x51ACCE55才能写该模块相关其他所有的寄存器,否则不能写其他所有的寄存器。
读此寄存器时:
0x00000000:不能写其他所有寄存器
0x00000001:可以写其他所有寄存器

计数值寄存器(WDT_COUNT)

偏移量:0x18

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 WDT_COUNT 0x00000000 RO 计数值寄存器

状态寄存器(WDT_STATUS)

偏移量:0x1C

复位值:0x00000000

位域 名称 复位值 类型 描述
31:1 Reserved 0x00000000 RO 保留
0 CNT_EXT 0 RO 计数值计数越界状态:
1:已越上界
0:未越上界