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,然后让程序进入while1)的死循环。 测试代码main函数如下: 测试结果: 1、当我们在while(1)里进行喂狗操作时,串口只会进行一次打印。。 2、当我们在while(1)里不进行喂狗操作时,串口每隔大约看门狗复位的时间1.6s进行一次打印。 实验总结:实现了看门狗复位的功能。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子