赛普拉斯Cypress Psoc4 Watchdog看门狗配置详解

Watchdog简述

看门狗用于异常复位,防止程序跑飞。

Watchdog特性

WDT有三个特性:

  • 配置了中断后系统便可产生中断
  • 在活动、睡眠和深度睡眠电源模式下定期产生中断/唤醒
  • 具有16位的计数器

Watchdog框图

在这里插入图片描述

Watchdog配置流程

Watchdog初始化有三个寄存器需要配置,分别是WDT_MATCH、SRSS_INTR和SRSS_INTR_MASK。

1 匹配寄存器WDT_MATCH

设置WDT_MATCH寄存器的IGNORE_BITS,即设置忽略多少位计数值,例如设置4,则
该寄存器需要配置两个地方,IGNORE_BITS是指需要忽略几位,WDT最高有16位,如果填4的话,WDT就是用12位2^12 = 4096,则WDT_COUNTER值就会计数到4095,然后溢出才置0。而MATCH填入0x0FFF=4095,意味着counter达到该值后就进入复位中断。

在这里插入图片描述在这里插入图片描述

2 初始化中断寄存器SRSS_INTR

 查看用户手册如下图所示,需要对该寄存器操作用于清除中断标记。

注意次数在这里插入图片描述
注意:此处有说明当连续两个看门狗溢出时,才会产生看门狗复位操作。
例如我们配置了128ms的复位时间,那么实际产生复位的时间是128*2 = 256ms

在这里插入图片描述

在这里插入图片描述
由描述可知,该寄存器bit0写1即为清0。

3 中断掩码寄存器SRSS_INTR_MASK

通过配置该寄存器来使能中断。

在这里插入图片描述

最终中断时间确认

通过配置上述的寄存器后,我们只需要确认程序中配置的LFCLK的频率大小。该值在Psoc Creator的Project Design模块的Clock中确认。
在这里插入图片描述
所以最后的中断时间为
Time = 4096 / 32000 = 0.128s = 128mS

注意

Cypress的Watchdog没法在debug模式下进行调试,只能脱机(无调试器)进行。可以通过去掉喂狗动作以及延长复位时间来观察配置是否使能了(看电流是否在波动)。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值