电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
原厂专区
MM32独立看门狗(IWDG)
MM32独立看门狗(IWDG)
MindMotion
LV4工程师
| 2018-03-29 17:25:36
浏览量 999
回复:0
发表新帖
来源 灵动MM32
一、
IWDG
简介
MM32 MCU
内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。
独立看门狗(
IWDG
)由专门的低速时钟(
LSI
)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗从
APB1
时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
IWDG
最适合应用于那些需要看门狗作为一个正在主程序外,能够完全独立工作,并且对时间精度要求低的场合。
WWDG
最适合那些要求看门狗在精确计时窗口起作用的应用程序。
二、
IWDG
主要性能
Ø 自由运行的递减计数器
Ø 时钟由独立的振荡器提供(可在停止和待机模式下工作)
Ø 看门狗被激活后,则在计数器计数至
0x0000
时产生复位。
三、
IWDG
功能描述
下图为独立看门狗模块的功能框图。
在键寄存器(
IWDG_KR
)中写入
0xCCCC
。开始启动独立看门狗;此时计数器开始从其复位值
0xFFF
递减计数。当计数器计数到末尾
0x000
时,会产生一个复位信号(
IWGD_RESET
)。
无论何时,只要在键寄存器
IWDG_KR
中写入
0xAAAA
,
IWDG_RLR
中的值就会被重新加载到计数器,从而避免产生看门狗复位。
独立看门狗框图
看门狗超时时间(
40KHz
的输入时钟(
LSI
))
此外,即使振荡器的频率是精确的,确切的时序仍然依赖于
APB
接口时钟与振荡器时钟之间的相位差,因此总会有一个完整的振荡器周期是不确定的。
IWDG_PR
和
IWDG_RLR
寄存器具有写保护功能。要修改这两个寄存器的值,必须先向
IWDG_KR
寄存器中写入
0x5555
。以不同的值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。重装载操作(即写入
0xAAAA
)也会启动写保护功能。
状态寄存器指示预分频值和递减计数器是否正在被更新。
当微控制器进入调试模式时(
CPU
核心停止),根据调试模块中的
DBG_IWDG_STOP
配置位的状态,
IWDG
的计数器能够继续工作或停止。
四、独立看门狗代码配置
MM32L073
系列独立看门狗初始化和启动设置:
喂狗函数:
五、实验实现窗口看门狗
测试方法:在
main
函数中先进行串口打印后初始和打开
IWDG
,然后让程序进入
while
(
1
)的死循环。
测试代码
main
函数如下:
测试结果:
1
、当我们在
while(1)
里进行喂狗操作时,串口只会进行一次打印。。
2
、当我们在
while(1)
里不进行喂狗操作时,串口每隔大约看门狗复位的时间
1.6s
进行一次打印。
实验总结:实现了看门狗复位的功能。
来源 灵动MM32
一、
IWDG
简介
MM32 MCU
内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。
独立看门狗(
IWDG
)由专门的低速时钟(
LSI
)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗从
APB1
时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
IWDG
最适合应用于那些需要看门狗作为一个正在主程序外,能够完全独立工作,并且对时间精度要求低的场合。
WWDG
最适合那些要求看门狗在精确计时窗口起作用的应用程序。
二、
IWDG
主要性能
Ø 自由运行的递减计数器
Ø 时钟由独立的振荡器提供(可在停止和待机模式下工作)
Ø 看门狗被激活后,则在计数器计数至
0x0000
时产生复位。
三、
IWDG
功能描述
下图为独立看门狗模块的功能框图。
在键寄存器(
IWDG_KR
)中写入
0xCCCC
。开始启动独立看门狗;此时计数器开始从其复位值
0xFFF
递减计数。当计数器计数到末尾
0x000
时,会产生一个复位信号(
IWGD_RESET
)。
无论何时,只要在键寄存器
IWDG_KR
中写入
0xAAAA
,
IWDG_RLR
中的值就会被重新加载到计数器,从而避免产生看门狗复位。
独立看门狗框图
看门狗超时时间(
40KHz
的输入时钟(
LSI
))
此外,即使振荡器的频率是精确的,确切的时序仍然依赖于
APB
接口时钟与振荡器时钟之间的相位差,因此总会有一个完整的振荡器周期是不确定的。
IWDG_PR
和
IWDG_RLR
寄存器具有写保护功能。要修改这两个寄存器的值,必须先向
IWDG_KR
寄存器中写入
0x5555
。以不同的值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。重装载操作(即写入
0xAAAA
)也会启动写保护功能。
状态寄存器指示预分频值和递减计数器是否正在被更新。
当微控制器进入调试模式时(
CPU
核心停止),根据调试模块中的
DBG_IWDG_STOP
配置位的状态,
IWDG
的计数器能够继续工作或停止。
四、独立看门狗代码配置
MM32L073
系列独立看门狗初始化和启动设置:
喂狗函数:
五、实验实现窗口看门狗
测试方法:在
main
函数中先进行串口打印后初始和打开
IWDG
,然后让程序进入
while
(
1
)的死循环。
测试代码
main
函数如下:
测试结果:
1
、当我们在
while(1)
里进行喂狗操作时,串口只会进行一次打印。。
2
、当我们在
while(1)
里不进行喂狗操作时,串口每隔大约看门狗复位的时间
1.6s
进行一次打印。
实验总结:实现了看门狗复位的功能。
0
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
0
×
举报
举报人:
被举报人:MindMotion
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子