如何编写看门狗超时程序
0 2023-03-27

一、WWDG 简介

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

二、WWDG 主要特征

•   可编程的自由运行递减计数器

•   条件复位

- 当递减计数器的值小于 0x40,(若看门狗被启动)则产生复位。
- 当递减计数器在窗口外被重新装载,(若看门狗被启动)则产生复位。

•   如果启动了看门狗并且允许中断,当递减计数器等于0x40 时产生早期唤醒中断(EWI),它可以被用于重装载计数器以避免WWDG 复位。

三、WWDG功能描述

如果看门狗被启动(WWDG_CR寄存器中的WDGA 位被置1),并且当 7位(T[6:0])递减计数器从0x40 翻转到0x3F(T6位清零)时,则产生一个复位。如果软件在计数器值大于窗口寄存器中的数值时重新装载计数器,将产生一个复位。

看门狗框图MM32之窗口看门狗(WWDG)

应用程序在正常运行过程中必须定期地写入WWDG_CR 寄存器以防止MCU 发生复位。只有当计数器值小于窗口寄存器的值时,才能进行写操作。储存在WWDG_CR 寄存器中的数值必须在0xFF 和0xC0 之间:

1、启动看门狗

在系统复位后,看门狗总是处于关闭状态,设置WWDG_CR 寄存器的WDGA 位能够开启看门狗,随后它不能再被关闭,除非发生复位。

2、控制递减计数器

递减计数器处于自由运行状态,即使看门狗被禁止,递减计数器仍继续递减计数。当看门狗被启用时,T6 位必须被设置1,以防止立即产生一个复位。

T[5:0]位包含了看门狗产生复位之前的计时数目;复位前的延时时间在一个最小值和一个最大值之间变化,这是因为写入WWDG_CR寄存器时,预分频值是未知的。

配置寄存器(WWDG_CFR)中包含窗口的上限值:要避免产生复位,递减计数器必须在其值小于窗口寄存器的数值并且大于0x3F 时被重新装载,上图描述了窗口寄存器的工作过程。

另一个重装载计数器的方法是利用早期唤醒中断(EWI)。设置WWDG_CFR 寄存器中的WEI 位开启该中断。当递减计数器到达0x40 时,则产生此中断,相应的中断服务程序(ISR)可以用来加载计数器以防止WWDG 复位。

在WWDG_SR 寄存器中写0可以清除该中断。注:T6 位可以被用来产生一个软件复位(WDGA 位被置位,T6 位清零)

四、如何编写看门狗超时程序

下图显示了装载到看门狗计数器(CNT)中的 6 位计数值和看门狗的延迟时间之间的线性关系(以 mS为单位)。此图可用来做为快速计算的参考,而未将时间的偏差考虑在内。如果需要更高的精度,可以使用下图提供的计算公式。

当写入 WWDG_CR 寄存器时,始终置 T6 位为1以避免立即产生一个复位。

窗口看门狗时序图MM32之窗口看门狗(WWDG)

五、设置WWDG实验分析

•   实验内容简介
环境MM32L073PF Miniboard、MDK,设置WWDG,通过观察喂狗与不喂狗的复位现象。

•   实验代码分析
首先看main函数
MM32之窗口看门狗(WWDG)
先初始化一个串口,方便我们观察复位现象,然后通过函数Wwdg_reset_ON 进行设置WWDG。最后在循环里通过WWDG_SetCounter函数不停的喂狗。
MM32之窗口看门狗(WWDG)
在函数Wwdg_reset_ON中设置窗口值,和计数器的初值。

•   实验现象
1、当注释掉喂狗函数时,通过串口在不断打印可以看出,MCU一直在复位。
2、当不注释喂狗函数时,串口只打印一次,MCU没有复位。 

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 硬件
  • 原理图
  • 信号完整性
  • EMI
  • 浪涌与脉冲群测试

    欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 1105621549 高可靠新能源行业顶尖自媒体 在这里有电力电子、新能源干货、行业发展趋势分析、最新产品介绍、众多技术达人与您分享经验,欢迎关注微信公众号:电力电子技术与新能源(Micro_Grid),论坛:w

    昨天
  • 经常搞不懂VCC,VDD,VEE,VSS是什么意思?看完这篇还迷惑吗?

    ➤一种解释 DC power一般是指带实际电压的源,其他的都是标号。在有些仿真软件中,默认把标号和源相连。 VCC:C=circuit,表示电路的意思,即接入电路的电压。 VDD:D=device,表示器件的意思,即器件内部的工作电压。 VSS:S=series,表示公共连接的意思,通

    昨天
  • 案例:PCB分层失效分析

    共读好书 严泽军 (麦可罗泰克(常州)产品服务有限公司)   摘要   随着焊接工艺从有铅向无铅转换,焊接温度的提高,使PC B在焊接过程发生分层的风险加大。造成PC B分层的因素很多,文章通过一款产品的分层失效案例,来表述失效分析过程使用的方法和仪器设备

    昨天
  • 分析两种ANPC拓扑的调制方式应用特点以及设计问题

    欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 1105621549 高可靠新能源行业顶尖自媒体 在这里有电力电子、新能源干货、行业发展趋势分析、最新产品介绍、众多技术达人与您分享经验,欢迎关注微信公众号:电力电子技术与新能源(Micro_Grid),论坛:w

    昨天
  • 常见的MOS驱动方式

    MOS管是一种电压型控制器件,具有开挂速度快,输入阻抗高,驱动功率小等一系列优点常见的MOS驱动方式有一下集

    昨天
  • IGBT驱动电路设计注意事项

    驱动电路的基本性能IGBT器件的发射极和栅极之间是绝缘的二氧化硅结构,直流电不能通过,因而低频的静态驱动功率

    昨天
  • 合成孔径雷达成像SAR基础

    对于机载侧视雷达,若是实孔径雷达,其分辨率将受到很大的限制,特别是方位向分辨率,下面列举具体参数计算方位和距离向分辨率。其中,SLAR是指Side Looking Airborne Radar。 SAR基础 合成孔径雷达天线往往仅用单个辐射单元,沿一直线依次在若干个位置平移,

    前天
  • 跟踪环路的四个基本功能

    单目标跟踪可提供有关目标当前位置、速度和加速度的连续且准确的数据,所有这些数据都可能不断变化。为实现此目的,通常针对距离、多普勒频率和角度建立单独的半独立跟踪回路。 基本功能 跟踪环路可分为四个基本功能:测量,滤波,控制和反馈。 测量是确定参

    前天
  • 测量雷达功率、脉冲特性和频谱的多种选择

    雷达系统应用广泛,不同类型的雷达应用场景也不同,它需要综合考虑性能、尺寸、成本等一系列因素。比如警用雷达常使用连续波雷达来简单测量运动车辆的速度而不需关注距离信息。因此,低成本和小尺寸就比先进性能和特性更重要。 另一种极端情况下,复杂的相控

    前天
  • 如何理解雷达距离分辨率

    雷达分辨率是雷达指将两个目标分辨为分离目标所需的差异,代表了雷达在密集目标环境下分辨多目标的能力。 雷达分辨率通常包括距离分辨率、速度分辨率和角度分辨率。直观来看,距离分辨率取决于脉冲宽度,速度分辨率取决于相参积累时间,雷达的角度分辨率则与

    前天
  • X波段TPY-2雷达有源相控阵雷达的应用场景

    X波段具有良好的低空传播特性、有可保证跟踪精度的窄波束、宽频带以及支持导弹交战中发现目标的能力。有源相控阵架构则显著提高了雷达灵敏度,能够更快的获得敌方特征和航迹,从而为舰艇自卫争取了更多的反应时间。                                        

    前天
  • 如何理解无杂散动态范围(SFDR)

    无杂散动态范围(Spurious Free Dynamic range ,SFDR) 是衡量A/D和D/A数据转换器(ADC/DAC)的指标,表示在杂散分量干扰基本信号或导致基本信号失真之前可用的动态范围。 SFDR定义 正弦波信号(载波)均方根 (RMS)值与从0 Hz到二分之一数据转换器采样速率(Fs/2)范

    前天
下载排行榜
更多
广告