<!-- 本文件由脚本自动转换生成，请勿手动编辑 -->

> **《LKS32MC45x User Manual》WWDG 窗口看门狗** . 完整目录见 [README.md](README.md)
>
> **声明**：本文档由芯片用户手册自动转换生成，仅供检索与查阅参考。Markdown 格式可被自由编译、修改，本文档不构成正式技术文件，相关内容以凌鸥创芯官方网站正式发布的手册为准。
>
> 南京凌鸥创芯电子有限公司 . (C) 2020, 版权归凌鸥创芯所有 . 机密文件，未经许可不得扩散

# WWDG 窗口看门狗

## 概述

窗口看门狗用于检测由于外界干扰或未预见的逻辑情况而产生的软件运行异常，当异常发生时，软件通常并不按照正常时序执行。

窗口看门狗使用系统高速主时钟的分频时钟进行工作，通常为PLL时钟的分频时钟，具有较高的时钟精度，适用于对看门狗超时时间有精确要求的应用场景。

窗口看门狗包含一个7bit递减计数器WWDG_CR.T\[6:0\]，当计数器最高位T\[6\]清零后，看门狗会产生全芯片复位，如果看门狗计数器WWDG_CR.T\[6:0\]尚未计数至窗口值WWDG_CFG.W\[6:0\]就被软件进行刷新重置，同样会产生复位。即看门狗必须在有效的窗口内进行刷新重置操作。

【图片已删除】为控制知识库体积，本文档不携带图片，相关图示请查阅凌鸥创芯官网发布的正式手册。

图22-1窗口看门狗计数及刷新机制

可编程的独立运行的递减计数器

可控的复位

当看门狗计数值小于0x40时产生复位(如果看门狗被使能)

当看门狗计数值在窗口之外被刷新时产生复位(如果看门狗被使能)

超前提醒中断(Early Wakeup Interrupt:
EWI)，当EWI位使能且看门狗使能，且计数器计数至0x40时产生超前提醒中断。

在某些应用中，超前中断可用于在不产生复位的前提下进行软件系统检查或系统恢复。在这种应用中，在超前中断的中断处理函数中可以将看门狗计数值刷新重置。

如果超前中断无法得到及时响应，则看门狗计数器会递减计数至0x3F以下，从而产生看门狗复位。

看门狗超时时间由如下公式计算

Timeout<sub>WWDG</sub>=t<sub>MCLK</sub>×32768×2<sup>WDGTB</sup>×(T\[5:0\]+1)

其中Timeout<sub>WWDG</sub>为看门狗超时时间，

t<sub>MCLK</sub>为系统主时钟

32768为看门狗内部固定时钟分频系数

WDGTB为看门狗计数时钟预分频系数

T\[5:0\]为看门狗计数器的装载值的低6位。

由于看门狗通常使用高速时钟的分频时钟进行计数，因此从0x40计数至0x3F有32768×2<sup>WDGTB</sup>个高速时钟周期，足够软件进行重置看门狗的操作。

表 22-1
窗口看门狗超时时间(与系统主时钟有关)

|||||
|---|---|---|---|
|WDGTB|Prescaler(2WDGTB)|最短超时时间|最长超时时间|
|0|1|0.17ms|10.92ms|
|1|2|0.34ms|21.84ms|
|2|4|0.68ms|43.69ms|
|3|8|1.36ms|87.38ms|

在调试模式下，当CPU暂停运行时，可以根据SYS_DBG_CFG.DBG_WWDG_STOP位控制窗口看门狗是否继续计数。

【图片已删除】为控制知识库体积，本文档不携带图片，相关图示请查阅凌鸥创芯官网发布的正式手册。

图22-2窗口看门狗复位产生逻辑

应用软件需要在适当的时机写WWDG_CR以刷新看门狗计数器，防止MCU复位，这个刷新操作需要在计数值T\[6:0\]\<窗口寄存器值W\[6:0\]时进行，否则在窗口之外写WWDG_CR也会产生复位动作。T\[6\]每次写入强制为1，因此WWDG_CR.T\[6:0\]可以写入的数据范围是0xFF~0xC。

## 寄存器

### 地址分配

WWDG基地址为0x4001B400

表22-2 窗口看门狗寄存器列表

||||
|---|---|---|
|名称|偏移地址|说明|
|WWDG_CR|0x00|窗口看门狗控制寄存器|
|WWDG_CFG|0x04|窗口看门狗配置寄存器|
|WWDG_IF|0x08|窗口看门狗中断标志寄存器|

### WWDG_CR 窗口看门狗控制寄存器

地址：0x4001_B400

复位值：0x007F

表22-3 WWDG_CR 窗口看门狗控制寄存器

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|||||||||WDG_EN|T|||||||
|||||||||RW|RW|||||||
|||||||||0|0x7F|||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:8\]||未使用|
|\[7\]|WDG_EN|窗口看门狗使能，1：使能；0：禁用。上电默认禁用。软件写1可使能看门狗，软件写0且同时向\[15:8\]写入0x3C时，可禁用看门狗。禁用后看门狗不再产生复位，但仍可计数并产生超前中断|
|\[6:0\]|T|窗口看门狗计数器，使用看门狗内部的分频时钟进行递减计数，当计数值小于0x40(T\[6\]为0)时产生复位。为避免写入T\[6\]为0立即产生复位， T\[6\]在写入时强制置1，软件只能写入T\[5:0\]。|

### WWDG_CFG 窗口看门狗配置寄存器

地址：0x4001_B404

复位值：0x007F

表22-4 WWDG_CFG 窗口看门狗配置寄存器

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|||||||WDGTB||EWI|W|||||||
|||||||RW||RS|RW|||||||
|||||||0||0|0x7F|||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:10\]||未使用|
|\[9:8\]|WDGTB|窗口看门狗时钟预分频系数2’h0: 系统主时钟/32768/12’h1: 系统主时钟/32768/22’h2: 系统主时钟/32768/42’h3: 系统主时钟/32768/8|
|\[7\]|EWI|超前中断使能，1：使能；0：禁用。上电默认禁用。软件写1可使能中断，软件写0无效，此位一旦置1只能通过硬件外部复位或上电复位清零。看门狗计数至0x40时产生超前中断。|
|\[6:0\]|W|窗口看门狗喂狗窗口，当T\>W时喂狗也会产生复位，即合法的复位窗口为W\>=T\>0x40|

### WWDG_IF 窗口看门狗中断标志寄存器

地址：0x4001_B408

复位值：0x0

表22-5 WWDG_CFG 窗口看门狗中断标志寄存器

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
||||||||||||||||EWIF|
||||||||||||||||RW1C|
||||||||||||||||0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:2\]||未使用|
|\[0\]|EWIF|窗口看门狗超前中断标志，当计数器计数至0x40时EWIF置位为1，写1清零，写0无效果。即使看门狗不使能，EWIF位仍可以置位，因为看门狗计数器T\[6:0\]在看门狗禁用时仍在计数。EWIF和EWI均为1时，看门狗才会向CPU提起中断请求。|

