你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32 窗口看门狗

[复制链接]
STMCU小助手 发布时间:2022-6-13 17:22
01. WWDG简介
: i4 N  p! j" `( I# i+ ~# K窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。如果在递减计数器达到窗口寄存器值之前刷新控制寄存器中的 7 位递减计数器值,也会产生 MCU 复位。这意味着必须在限定的时间窗口内刷新计数器。( Q  h) H4 R. C" r
5 l" c5 Q! F) [
02. WWDG主要特性
" e& G, R6 a; I) f0 r( r. w% J) Q可编程的自由运行递减计数器: _4 b& u2 a' u
复位条件$ a2 n6 \7 n2 X, S% F
— 当递减计数器值小于 0x40 时复位(如果看门狗已激活)3 l' N2 |# M/ v% w0 {+ ]
— 在窗口之外重载递减计数器时复位(如果看门狗已激活)(请参见 图 200)
- e7 b: x7 t9 Q$ L7 W提前唤醒中断 (EWI):当递减计数器等于 0x40 时触发(如果已使能且看门狗已激活)
* O. }: y1 Q% o4 k! j" i03. WWDG功能说明
. [5 l+ X) i, n; n8 v  }如果激活看门狗(WWDG_CR 寄存器中的 WDGA 位置 1),则当 7 位递减计数器(T[6:0]位)从 0x40 滚动到 0x3F(T6 已清零)时会引发复位。当计数器值大于窗口寄存器中所存储的值时,如果软件重载计数器,则会产生复位。
: e" ^3 q! K" ^0 i! ]' j% U
/ G* g, H" X3 O5 l2 }# U) v 45_%Y408UB004[QAADS%C{O.png 6 W6 @6 @* R7 |& |/ I9 Z+ {
6 B( }# R4 b; R2 I4 ^1 a: H! y7 X
应用程序在正常运行过程中必须定期地写入 WWDG_CR 寄存器以防止 MCU 发生复位。只有当计数器值低于窗口寄存器值时,才能执行此操作。存储在 WWDG_CR 寄存器中的值必须介于 0xFF 和 0xC0 之间:
/ h2 K$ r" P  Y8 @9 l& P. b
; D1 r3 i" p! D使能看门狗
1 i3 Q9 d& Y5 s% b; J9 }& o: W# M5 W9 R3 o% i5 i0 P/ H- p+ {
在系统复位后,看门狗总是处于关闭状态。可通过设置 WWDG_CR 寄存器中的 WDGA 位来使能看门狗,之后除非执行复位操作,否则不能再次关闭。8 [# h5 Q3 i4 s" T

; p" q6 o6 s6 P2 {/ y控制递减计数器% F, w; O0 c/ C8 p
3 F/ q0 G& l7 w  q- G! u! h  J) x
递减计数器处于自由运行状态:即使禁止看门狗,递减计数器仍继续递减计数。当使能看门狗时,必须将 T6 位置 1,以防止立即复位。
  @6 H3 F! \4 K, {/ s8 vT[5:0] 位包含了看门狗产生复位之前的计时数目;复位前的延时时间在一个最小值和一个最大值之间变化,这是因为写入 WWDG_CR 寄存器时,预分频值是未知的(请参见 图 200)。配置寄存器 (WWDG_CFR) 包含窗口的上限:为防止发生复位,当递减计数器的值低于窗口寄存器值且大于 0x3F 时必须重载。/ M% o, y) o( O. V* |
- X, A( s' \# y2 V  P: M0 h( p
看门狗中断高级特性
. ~5 \. x: w7 f' f9 @% w
. m# N  T6 D: Y1 W  v2 C如果在产生实际复位之前必须执行特定的安全操作或数据记录,则可使用提前唤醒中断(EWI)。通过设置 WWDG_CFR 寄存器中的 EWI 位使能 EWI 中断。当递减计数器的值为0x40 时,将生成 EWI 中断。在复位器件之前,可以使用相应的中断服务程序 (ISR) 来触
1 o6 }/ [$ J7 y发特定操作(例如通信或数据记录)。4 q* L  n3 R# ^4 S! C8 u

! S8 t8 ?. T6 I/ N& ?在某些应用中,可以使用 EWI 中断来管理软件系统检查和/或系统恢复/功能退化,而不会生成 WWDG 复位。在这种情况下,相应的中断服务程序 (ISR) 可用来重载 WWDG 计数器以避免 WWDG 复位,然后再触发所需操作。; s4 H9 Y3 u6 D: e+ G
, T5 }: r" Z$ ?' `
通过将 0 写入 WWDG_SR 寄存器中的 EWIF 位来清除 EWI 中断。
% `! b. d) j: B) {8 E& U
% t3 Q9 G0 p  ?04. 设置看门狗超时" J5 X1 _- A/ ?1 J: {% R4 s9 ?
/ z! p1 F- m5 d& P; [
@`K82]}83EZ[GLCS8{4X%PJ.png , ^, {% V# Y: z5 L9 B
$ H+ s- ^& i' l  j7 v
有关 T WWDG 的最小值和最大值,请参见下表。
: g3 S" \( ?2 n! f& O0 S3 B
7 T  }$ K- ]  Q$ ?2 d %]8SVDRJ9R1Z]1R(16N2Y5A.png 6 u  z- R+ C6 s; V) r/ o* z

; z8 U$ F- V! U* b温馨提示
! g/ @5 I8 ?4 D+ L( a3 g
* i6 O: S. [) C9 n BTX4268~`JSJYSU(HKYAAZV.png
: x  Y0 I! A5 \: l; {
0 L3 R  ~" N) R+ @# A+ f写入 WWDG_CR 寄存器时,始终将 1 写入 T6 位,以避免生成立即复位。
5 m9 G. |8 o+ D; Q  f! g" t& D6 Z8 G1 [8 E% t) L
O)S)@X(I{0[%~3MQE{SEEH8.png - j+ [' |% ?3 t; m- }' D# L- m
; Z+ c% d' ]) n$ D6 q& b: L
05. WWDG寄存器
7 d' q8 y' }7 [' B5.1 控制寄存器 (WWDG_CR)

0 D( S# Y" l! {* f5 d3 n& RStatus register& P2 n4 C7 r' N8 |) Y2 V8 h' c
偏移地址:0x00
" b2 |1 f6 l( y+ G0 E5 V/ X0 G复位值:0x0000 007F- F9 y. k! V7 R' y  p
3 y) @' X$ X8 Q4 ?- O5 m: V
0~A$@T43GR4O1~`EQU69.png
7 ]5 \$ o3 G4 k* w5 Y! C  {6 {) j) u9 T" c, y" l
5.2 配置寄存器 (WWDG_CFR)7 h$ Z0 `, ^/ _2 K: B: {* o/ E
Configuration register
8 s8 Q, Q, D) `/ U. b7 Z- b! \* T偏移地址:0x04
$ F8 o4 N7 j4 W) {复位值:0x0000 007F! _. x: g( }( u+ y$ Z& }
) P! o  @+ g) k. ]/ _- \: }
M0H}7`@7OGE(2[E]VYQNUK5.png % Y& c: c' m% [5 J# @! x
+ o+ c* {0 q# f6 P- r( O" i. R
5.3 状态寄存器 (WWDG_SR)* I' |2 o4 N' L" }9 ?
Status register
: u" n+ w! J5 y$ }! q偏移地址:0x08# {8 ]2 v; W; h: v4 A; J# S& s
复位值:0x0000 00000 e* p/ X8 A0 @2 L9 ~6 k
8 [& f- d. }; j1 i" f
O22}0S{47C`1J%TBR9U8D.png . \: v, b6 ~- c- k" e
2 @1 [" l) [: U9 M
5.4 WWDG寄存器映射
3 j4 @0 Y$ a5 p6 \" {/ M6 |# I
0 F$ ^/ B) A! C  W5 a- C, A8 o 5X5O9A)18)((~1T3Q){G_[C.png
/ D  v+ J5 S2 P8 H' M
2 g% i$ Z0 a% f6 r3 g4 _1 ?+ s: ?. n* W) U; k3 {( h$ }

( p, [9 {  k; M. h6 I
赞 收藏 评论0 发布时间:2022-6-13 17:22

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版