当前位置:文档之家› STM32技术参考手册第11章窗口看门狗(WWDG)

STM32技术参考手册第11章窗口看门狗(WWDG)


14
13
12
11
10
EWI
9
WDGTB1
8
WDGTB0 WDGA 7
6
5
4
窗口看门狗(WWDG)
T[6:0]
01111111
W[6:0]
0001111111 0
3
2
1
EWIF
0
7/6/2007
在 PCLK1=36MHz 时的最小-最大超时值
(ms)
WDGTB
最小超时值
最大超时值
0
113µs
7.28ms
1
227µs
14.56ms
2
455µs
Hale Waihona Puke 29.12ms3910µs
58.25ms
7/6/2007
STM32F10x 参考手册
第一版
窗口看门狗(WWDG)
11.5
调试模式
当微控制器进入调试模式时(Cortex-M3核心停止),根据调试模块中的DBG_WWDG_STOP 配置位的状态,WWDG的计数器能够继续工作或停止。详见有关调试模块的章节。
STM32F10x 参考手册
第一版
窗口看门狗(WWDG)
11 窗口看门狗(WWDG)
11.1 11.2 11.3
简介
窗口看门狗通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的 运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新,此看门狗电路在 达到可编程的时间周期时,会产生一个MCU复位。在递减计数器达到窗口寄存器值之前, 如果递减计数器值的第7位(在控制寄存器中) 被刷新, 那么也将产生一个MCU复位。这表 明递减计数器需要在一个有限的窗口中被刷新。
7/6/2007
STM32F10x 参考手册
第一版
11.7 WWDG 寄存器映像
表11-1 WWDG寄存器映像和复位值
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
偏移 寄存器
WWDG_CR
000h
保留
复位值
004h
WWDG_CFR 复位值
保留
008h
WWDG_SR 复位值
保留
15
主要特性
● 可编程的自由运行递减计数器 ● 条件复位
─ 当递减计数器的值小于 40h,(若看门狗被启动)则产生复位。 ─ 当递减计数器在窗口外被重新装载,(若看门狗被启动)则产生复位。见图 11-2。
功能描述
如果看门狗被启动(WWDG_CR 寄存器中的 WDGA 位被置 1), 并且当 7 位(T[6:0])递减计 数器从 40h 翻转到 3Fh(T6 位清零)时,则产生一个复位。如果软件在计数器值大于窗口寄 存器中的值时重新装载计数器,将产生一个复位。
WDGTB[1:0]: 时基 预分频器的时基可根据如下修改:
00: CK计时器时钟(PCLK1除以4096) 除以1 01: CK计时器时钟(PCLK1除以4096) 除以2 10: CK计时器时钟(PCLK1除以4096) 除以4 11: CK计时器时钟(PCLK1除以4096) 除以8
W[6:0]: 7位窗口值 这些位包含了用来与递减计数器进行比较用的窗口值。
15 14 13 12 11 10 9 保留
8
7
6
5
4
3
2
1
0
WDGA T6 T5 T4 T3 T2 T1 T0 rs rw rw rw rw rw rw rw
位31:8 位7 位6:0
保留。
WDGA: 激活位 此位由软件置1,但仅能由硬件在硬件复位后清0。当WDGA=1时,看门狗可以产生复位。 0:禁止看门狗 1:启用看门狗
配置寄存器(WWDG_CFR) 中包含窗口的上限值:要避免产生复位,递减计数器必须在 其值小于窗口寄存器的值并且大于 3Fh 时被重新装载,图 11-2 描述了窗口寄存器的工 作过程。 T6位可以被用来产生一个软件复位(WDGA位被置位,T6位清零)
如何编写看门狗超时程序
图 11-2 显示了装载到看门狗计数器(CNT)中的 6 位计数值和看门狗的延迟时间之间的线 性关系(以 ms 为单位)。此图可用来做为快速计算的参考而未将时间的偏差考虑在内。如 果需要更高的精度,可以使用图 11-2 提供的计算公式。
保留
15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
保留
EWI
WDG TB1
WDG TB0
W6
W5
W4
W3
W2
W1
W0
rs rw rw rw rw rw rw rw rw rw
7/6/2007
STM32F10x 参考手册
第一版
窗口看门狗(WWDG)
位31:8 位9
位8:7 位6:0
保留。
EWI: 提前唤醒中断 此位若置1,则无论何时,当计数器值达到40h,即产生中断。 此中断只能由硬件在复位后清除。
7/6/2007
STM32F10x 参考手册
第一版
窗口看门狗(WWDG)
11.6 寄存器描述
关于在寄存器描述里面所用到的缩写,详见第 1 章。
11.6.1
控制寄存器(WWDG_CR)
地址偏移量:00h 复位值:0111 1111(7Fh)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留
警告:当写入 WWDG_CR 寄存器时,始终把 T6 位写 1 来避免立即产生一个复位。
图11-2 窗口看门狗时序图
计算超时的公式如下: TWWDG = TPCLK1 x 4096 x 2WDGTB x (T[5:0] + 1);
其中: TWWDG:WWDG 超时时间 TPCLK1:APB1 以 ms 为单位的时钟间隔
T[6:0]: 7位计数器(MSB至LSB) 这些位用来存储看门狗的计数器值。每个PCLK1周期(4096x2WDGTB)减1.当计数器值从40h变 为3Fh时(T6被清0),产生看门狗复位。
11.6.2
配置寄存器(WWDG_CFR)
地址偏移量:04h 复位值:0111 1111(7Fh)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
图11-1 看门狗框图
应用程序在正常的运行过程中必须每隔一定的时间间隔写 WWDG_CR 寄存器以防止 MCU 发生复位。只有当计数器值小于窗口寄存器的值时,才能进行这个写操作。这个要被储存 在 WWDG_CR 寄存器中的值必须在 FFh 和 C0h 之间: ● 启动看门狗
看门狗通常在复位后被禁止。设置 WWDG_CR 寄存器中的 WDGA 位将启动看门狗, 一旦被启动后,看门狗则不能再被关闭,除非发生复位。
11.6.3
状态寄存器(WWDG_SR)
地址偏移量:08h 复位值:0000 0000(00h)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
保留
15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
保留
EWIF rc_w0
位31:1 位0
保留。
EWIF: 提前唤醒中断标志 当计数器值达到40h时,此位由硬件置1。它必须通过软件写“0”来清除。对此位写“1”无 效。若中断未被使能,此位也会被置1。
7/6/2007
STM32F10x 参考手册
第一版
窗口看门狗(WWDG)
注:
11.4
● 控制递减计数器 递减计数器处于自由运行状态,即使看门狗被禁止,递减计数器仍继续递减计数。当看 门狗被启用时,T6 位必须被设置,以防止立即产生一个复位。 T[5:0]位包含了在看门狗产生复位之前的延时增量;复位前的延时时间在一个最小值和 一个最大值之间变化,这是因为写入 WWDG_CR 寄存器时,预分频值是未知的。
相关主题