[STM32 ]内部独立看门狗IWDG

看门狗大家应该都不陌生,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周期,不存在这个问题。
欢迎关注微信公众号,更多原创等你。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值