您好!欢迎来到信盈达产学合作协同育人平台|校企合作|嵌入式培训|解决方案|

登录 注册 微信快速登录

扫一扫看效果 关闭

好文章,欢迎分享给朋友

他有一片海

01-18 16:24    浏览1312

1.1 看门狗介绍

此器件具有两个嵌入式看门狗外设,具有安全性高、定时准确及使用灵活的优点。两个看门狗外设(独立和窗口)均可用于检测并解决由软件错误导致的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。

独立看门狗 (IWDG) 由其专用低速时钟 (LSI) 驱动,因此即便在主时钟发生故障时仍然保持工作状态。IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。

看门狗本质其实就是一个独立的定时器、计数器。

LSI:是内部低速振荡器,温漂比较大,误差较大。

1.1.1 IWDG 主要特性

自由运行递减计数器

时钟由独立 RC 振荡器提供(可在待机和停止模式下运行)

当递减计数器值达到 0x000 时产生复位(如果看门狗已激活)

1.2 看门狗框图



1.1 相关寄存器

1.1.1 关键字寄存器 (IWDG_KR)

15:0 KEY[15:0]

键值 (Key value)(只写位,读为 0000h
写入键值 AAAAh将重载值加载到递减计数器,喂狗。
写入键值 5555h 可使能对 IWDG_PR IWDG_RLR 寄存器的访问
写入键值 CCCCh 可启动看门狗

IWDG->KR = 0xAAAA;

1.1.1 状态寄存器 (IWDG_SR)

1 RVU

看门狗计数器重载值更新 (Watchdog counter reload value update)
可通过硬件将该位置 1 以指示重载值正在更新。
重载值只有在 RVU 位为 0 时才可更新。

0 PVU

看门狗预分频器值更新 (Watchdog prescaler value update)
可通过硬件将该位置 1 以指示预分频器值正在更新。
预分频器值只有在 PVU 位为 0 时才可更新。


1.1.1 预分频器寄存器 (IWDG_PR)

2:0 PR[2:0]

预分频器 (Prescaler divider)
若要更改预分频器的分频系数, IWDG_SR PVU 位必须为 0
0004 分频
0018 分频
01016 分频
01132 分频
10064 分频
101128 分频
110256 分频
111256 分频


1.1.1 重载寄存器 (IWDG_RLR)

11:0 RL[11:0]

看门狗计数器重载值 (Watchdog counter reload value)

举例1:假如代码时间为20ms,独立看门狗定时设置为多少?

时间增加50%~200%

时钟源LSI32KHz。对应的周期 1/32ms

假如需要配置定时为50ms

64分频,得到1/2KHz。重载值25。得到50ms定时。

32分频,得到1KHz。重载值50。得到50ms定时。

16分频,得到2KHz。重载值100。得到50ms定时。

8分频,得到4KHz。重载值200。得到50ms定时。

4分频,得到8KHz。重载值400。得到50ms定时。

具体选择组合模式,根据自己需要。

1.1 编程

解锁IWDG

等待允许更新重载值和预分频值

更新更新重载值和预分频值

启动看门狗。


评论0 0
评论
内容加载中……,请稍候!

手指长按二维码,快速关注

给TA留言
留言
返回
评论