详解STM32 看门狗
知晓编程 2022-09-28
0 1 IWDG

1.1独立看门狗简介

IWDGIndependentwatchdog)独立看门狗,可以用来检测并解决由于软件错误导致的故障,当计数器到达给定的超时值时,会触发一个中断或产生系统复位。

独立看门狗的时钟是它专用的低速时钟(LSI),所以它能保持工作及时主时钟出现问题。窗口看门狗的时钟是有APB1时钟分频得到得到,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG 最适合那些要求看门狗在精确计时窗口起作用的应用程序。

1.2独立看门狗的特点

自由运行递减计数器

时钟来自通过独立的RC振荡器(可以工作在待机和停止模式下)

当向下计数器值达到0时,会产生复位(如果看门狗已经激活)

1.3独立看门狗功能描述

上图红框显示,看门狗功能由VDD电压域供电,所以在停止模式和待机模式下仍能工作。

向关键字寄存器(IWDG_KR)写入0XCCCC,独立看门狗就会启动,计数器开始下降从复位值0XFFF。当计数器值到达0,会产生一个复位信号(独立看门狗复位)。

无论何时向关键字寄存器写入0XAAAAIWDG_RLR的数值会重载进计数器,避免看门狗复位。

1.4硬件看门狗

如果通过器件选项位使能“硬件看门狗”功能,上电时将自动使能看门狗;如果在计数器计数结束前,若软件没有向关键字寄存器写入相应的值,则系统会产生复位。

1.5寄存器访问保护

IWDG_PR IWDG_RLR 寄存器具有写访问保护。若要修改寄存器,必须首先对IWDG_KR寄存器写入代码0x5555。而写入其他值则会破坏该序列,从而使寄存器访问保护再次生效。这意味着重装载操作(即写入0xAAAA)也会启动写保护功能。

状态寄存器指示预分频值和递减计数器是否正在被更新。

1.6调试模式

当微控制器进入调试模式时(Cortex™-M3 内核停止),IWDG 计数器会根据DBG 模块中的DBG_IWDG_STOP 配置位选择继续正常工作或者停止工作。

下图是LSI在不同分频情况下IWDG超时周期的最小值和最大值。

0 2 WWDG

2.1简介

窗口看门狗(Windowwatchdog)通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6 位变成0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU 复位。如果在递减计数器达到窗口寄存器值之前刷新控制寄存器中的7 位递减计数器值,也会产生MCU 复位。这意味着必须在限定的时间窗口内刷新计数器。

2.2窗口看门狗主要特点

可编程自由向下计数器

复位条件,激活看门狗的情况下,当递减计数器值小于0x40 时复位;在窗口之外重载递减计数器时复位。

提前唤醒中断(EWI):当递减计数器等于0x40 时触发(如果已使能且看门狗已激活)。

2.3窗口看门狗功能说明

如果窗口看门狗启动(WWDG_CR寄存器的WDGA位置1),7位向下计数器从0X400x3F滚动(T6已经清零),会导致一个复位。如果软件重载计数器,当计数器值大于窗口所存储的值时,就会产生复位。

应用程序必须在正常操作期间写WWDG_CR寄存器去组织MCU复位。这个操作必须发生在计数器值小于窗口寄存器值。窗口寄存器值存储在WWDG_CR寄存器,必须在0XFF0XC0之间。

使能窗口看门狗

复位之后,窗口寄存器经常是禁止的。通过设置WWDG_CR寄存器的WDGA位去使能,不能被禁止除了通过复位。

控制向下计数器

递减计数器处于自由运行状态:即使禁止看门狗,递减计数器仍继续递减计数。当使能看门狗时,必须将T6 位置1,以防止立即复位。

T[5:0] 位包含了看门狗产生复位之前的计时数目;复位前的延时时间在一个最小值和一个最大值之间变化,这是因为写入WWDG_CR 寄存器时,预分频值是未知的。配置寄存器(WWDG_CFR) 包含窗口的上限:为防止发生复位,当递减计数器的值低于窗口寄存器值且大于0x3F 时必须重载。

注意:可使用T6 位产生软件复位(将WDGA 位置1 并将T6 位清零)。

看门狗中断高级特性

如果在产生实际复位之前必须执行特定的安全操作或数据记录,则可使用提前唤醒中断(EWI)。通过设置WWDG_CFR 寄存器中的EWI 位使能EWI 中断。当递减计数器的值为0x40时,将生成EWI 中断。在复位器件之前,可以使用相应的中断服务程序(ISR) 来触发特定操作(例如通信或数据记录)。

在某些应用中,可以使用EWI 中断来管理软件系统检查和/或系统恢复/功能退化,而不会生成WWDG 复位。在这种情况下,相应的中断服务程序(ISR) 可用来重载WWDG 计数器以避免WWDG 复位,然后再触发所需操作。

通过将0 写入WWDG_SR 寄存器中的EWIF 位来清除EWI 中断。

2.4如何设置看门狗超时

例子:APB1的频率是24MHZWDGTB[1:0]设置3T[5:0]设置成63

t = 1/24000*4096*2*2*2*63+1=24.85ms。

有关TWWDG的最小值和最大值。

2.5调试模式

当微控制器进入调试模式时(Cortex™-M3内核停止),WWDG计数器会根据DBG模块中的DBG_WWDG_STOP配置位选择继续正常工作或者停止工作。


0 3 区别

应用场景不同

IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。

WWDG 最适合那些要求看门狗在精确计时窗口起作用的应用程序。


为什么要窗口看门狗?

对于一般的看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但这有一个隐患,有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来了。

如果使用窗口看门狗,程序员可以根据程序正常执行的时间设置刷新看门狗的一个时间窗口,保证不会提前刷新看门狗也不会滞后刷新看门狗,这样可以检测出程序没有按照正常的路径运行非正常地跳过了某些程序段的情况。

 

本文源自微信公众号:知晓编程,不代表用户或本站观点,如有侵权,请联系nick.zong@aspencore.com 删除!

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 高级微控制器总线结构完美解析

    高级微控制器总线结构AdvancedMicrocontrollerBusArchitecture(AMBA)定义了高性能嵌入式微控制器的通信标准。可以将RISC

    11-24
  • 详解:汽车电子技术之汽车仪表盘MCU

      随着汽车电子技术的飞速发展,传统的车用机械仪表盘已呈现出向数字仪表过度的趋势,与之对应的全部功能显示也将被渲染后的高清画面所取代。而引起这一巨大变革的根源,

    11-24
  • 为物联网应用选择合适的8位MCU通信接口

      SiliconLabs已经在"采集、计算和通信"的指导思想下开发出各类兼容8051内核的8位MCU。在之前的文章中,我们已经对模拟采集接口和8051计算引擎

    11-24
  • 基于msp430单片机定时器的使用方法解析

    通过计算设置周期。#includevoidmain(void){//StopwatchdogtimertopreventTImeoutresetWDTCTL=W

    11-24
  • 如何利用51单片机同时扩展RAM和ROM

    下面这个系统中,8051同时扩展片外程序存储器和数据存储器,两片存储器的片选信号都接地,即同时有效,也就是说,这两片存储器无需选择。51同时扩展RAM和ROM下

    11-24
  • PICOCAP 测量原理介绍

    1 前言电容传感器在很多工业和消费类产品中都有非常广泛的应用,因其小尺寸和低功耗以及高精度等方面的特性,在很多领域广受青睐。而对于电容传感器的测量来说,传统的电

    11-23
  • 为什么要选择学习STM32?进来看看了解

    [导读]我对未来的规划是以功能性为主的,在功能和面积之间做以平衡是我的首要选择,而把运算放在第二位,这根我的专业有关系。里面的运算其实并不复杂,在入门阶段想尽量

    11-22
  • STM32学习之启动代码很重要!

    [导读]最近在写一个人机界面,由于硬件同事布板的问题,必须要用到串口4,先开始我还觉得没什么,就是把USART1改成4以及改下开启时钟和配置引脚。但是事实证明我

    11-22
  • STC89c51单片机的定时器T2

    [导读]定时器T2的功能比T1、T0都强大,但描述它的资料不多,可能是使用得比较少的缘故吧。它是一个16位的具有自动重装和捕获能力的定时/计数器,它的计数时钟源

    11-22
  • 怎样混好电子这行?(MCU、ARM、DSP,嵌入式)

    [导读]很多初学者,甚至是混了好几年的老手,都在抱怨,电子这行怎么竞争这么大啊? 颓废,这完全在抹杀自己的激情,没了激情,搞电子,完全就是在浪费生命。其实,竞争

    11-22
  • MCU引脚输出模式中推挽输出与开漏输出电路原理区别

    [导读]开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).推挽结构一

    11-22
  • 基于DSPIC30F6014A单片机的智能家居音频信号分析仪的设计 (1)

    目前,大多数音频信号处理仪不但体积大而且价格贵,在一些特殊方面难以普及使用,而嵌入式系统分析仪具有小巧可靠的特点,所以开发基于特殊功能单片机的音频分析仪器是语音识别的基础,具有很好的现实意义。信号分析原理是将信号从时间域转换成频率域,使原始信号中不明显特性变得明显,便于分析处理。对于音频信号来说,其主要特征参数为幅度谱、功率谱。该音频信号分析仪的工作过程为:对音频信号限幅放大、模数转换、快速傅里叶...

    11-22
下载排行榜
更多
广告