Hpm看门狗

本文详细介绍了EWDG(增强型看门狗)在嵌入式系统中的强大功能,包括时钟选择、喂狗操作、解锁机制、窗口模式、关键参数保护以及中断和复位设置。特别关注了驱动中的use_lowlevel_timeout属性对配置的影响。
摘要由CSDN通过智能技术生成

功能描述

       今天纪录先辑芯片中功能强大的EWDG外设,作为看门狗的升级版本,他拥有很多值得一讲的功能,以下是UM中对于EWDG的描述     

      这个图是我画的整体功能框图

EWDG对外的功能有图可见,有两个输入两个输出

输入:1.通过特定寄存器修改EWDG的配置

      2.喂狗操作

输出:1.触发外部中断  2.触发软件复位

接下来按功能讲解各个部分

工作时钟

首先是时钟选择,一共有两种可供选择的时钟作为EWDG的工作时钟:32K外部时钟与主频时钟,主频时钟以MHZ为单位,可以让看门狗快速响应,同时增加精度

而32K外部时钟可以在MCU处于低功耗模式时继续运行

以下是驱动中对于两种时钟选择的定义

在低功耗模式下,可以对外部时钟进行降频,也可以中止看门狗的计时;最慢可降低至1/4的频率;以下是驱动中的定义

这两种设置均可在初始化看门狗时进行配置,也可通过驱动中的函数进行修改

看门狗作为一种监控系统是否正常工作的外设,必须保证自己工作的可靠,这个可靠性是从如下几个方面体现的

喂狗寄存器

如果需要重置看门狗的计数器,即喂狗,需要往喂狗寄存器中写入特定的32位字符,如果写入错误,则触发中断/复位

喂狗前解锁

如果使能了喂狗寄存器的锁定功能,则需要在喂狗前进行解锁,解锁的方法则是往锁定寄存器中写入密码,密码有以下几种

在用户实际使用中,不需要进行复杂的操作,仅需要在初始化时指定你是否需要使用该功能,以及选用哪种方案进行解锁,在驱动中,开发者已经贴心的完成了所有功能的封装

当在初始化时指定了某种解锁方案并开启使能,你只需要调用喂狗操作即可,在喂狗操作中,会运行以下函数,进行喂狗前的解锁

如果解锁失败,同样可以触发中断/复位

窗口模式

你可以指定允许喂狗的时间段,仅在该时间段内的喂狗操作有效,如果喂狗时机错误,同样触发中断/复位

以下是驱动中对于喂狗窗口上下限的定义

需要注意的是,0就是默认值,默认值允许在[下限窗口,复位时间]任意时间喂狗,所以把它定义位ewdg_window_upper_timeout_period_8_div_16 = 0

毕竟下限最小为ewdg_window_lower_timeout_period_8_div_16

关键参数寄存器保护

为了防止EWDG运行中,突然因为奇怪的原因,假设把EWDG使能给关了,那对于喂狗做再多的判断以及安全措施,就都没有意义了;因此,对于配置寄存器的修改,也可以上锁,上锁后需要先解锁才能修改对应寄存器        

中断和复位

最后则是不及时喂狗会触发的两个结果

  1. 外部中断
  2. 系统复位

在EWDG中,复位与中断寄存器是两个独立的寄存器,用户通过初始化时指定复位/中断的时间,当计数器达到对应时间时,触发对应信号

常规的操作肯定是在复位前触发中断信号,提醒MCU马上就要复位了,在中断中进行喂狗或警示操作;当然,如果不配置中断的时间也是可以的,在默认情况下不会触发中断

以上就是对于UM中EWDG描述的全部内容,然而在驱动中,还有一种特殊的属性

use_lowlevel_timeout

如果查看驱动中的Init函数,可以发现他的使能与否决定了timeout_interrupt_ticks 与timeout_reset_ticks两个寄存器的配置方式

即复位和中断寄存器的配置方式

在默认情况下,use_lowlevel_timeout使能,用户通过指定复位时间来配置寄存器;如果将use_lowlevel_timeout改为False,则需要直接指定寄存器的值,不推荐使用

  • 31
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值