STM32
直播中

李桂英

8年用户 1430经验值
私信 关注
[问答]

独立看门狗的喂狗周期范围是多大呢

独立看门狗是如何工作的?

独立看门狗的喂狗周期范围是多大呢?

为什么在线调试MCU时,MCU不复位呢?
IWDG引发的常见问题有哪些?

回帖(1)

刘琨

2021-8-13 17:29:09
  看门狗大家应该都不陌生,STM32内部带有独立看门狗和窗口看门狗两种;其中独立看门狗依赖于内部的晶振LSI进行工作,窗口看门狗依赖于系统时钟工作;
  看门狗的作用,防止程序跑飞无法实现自复位而存在;如果没有看门狗,程序挂掉,可能需要去给MCU下电,重新上电才能继续工作,由此可见,看门狗在一个系统中的地位是举足轻重的。操作很简单,在重装值减到0之前,把寄存器值重装一下即可,让寄存器值始终大于0;
      1、工作原理简介
  当通过对关键字寄存器 (IWDG_KR) 写入值 0xCCCC 启动独立看门狗时,计数器开始从复位 值 0xFFF 递减计数。当计数器计数到终值 (0x000) 时会产生一个复位信号(IWDG 复位)。任何时候将关键字 0xAAAA 写到 IWWDG_KR 寄存器中,IWDG_RLR 的值就会被重载到计 数器,从而避免产生看门狗复位。
  2、喂狗周期范围
  
  3、设计思考,为什么在线调试MCU时,MCU不复位呢?
  IWDG:重载寄存器 (IWDG_RLR)重装值没有减到0;
  引申一个话题:外部看门狗,在调试时如何保证不复位?
  可以使用Jlink把RST的电平稳住,不让看门狗芯片拉低RST电平;
  4、IWDG引发的常见问题
  内部FLASH擦写周期大于IWDG的喂狗周期;
  因为内部FLASH操作时,是使用总线的方式操作寄存器,总线处于被占用状态,在完成FLASH指令操作前,无法做出任何动作,导致喂狗信号发不出去,喂狗超时,MCU复位;当年就吃过这个亏,主要针对128KB的扇区块擦除而言,大概需要800ms;IWDG周期最好设置在1S以上;
  外部看门狗1.6S周期,不存在这个问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分