本文将按照如下七个部分介绍看门狗的配置
一、WDT预分频器和后分频器的复位:如上图所示,两分频器会在一下五种情况下复位 :
- 任何器件复位时
- 在完成时钟切换时,无论时钟切换是由软件 (即在更改 NOSC 位后将 OSWEN 位置 1)引起还是由硬件(即故障保护时钟监视器)引起
- 当执行PWRSAV指令时(即,进入休眠或空闲模式)
- 当器件退出休眠或空闲模式恢复正常工作时
- 当在正常执行过程中执行 CLRWDT 指令时
二、WDT使能和时钟
1、WDT使能由强制使能FWDTEN和软件使能SWDTEN共同决定,当FWDTEN置1时,WDT总是使能的,当FWDTEN为0时,需要软件置位SWDTEN才能启动WDT,目的是为了在非必要情况下不启动看门狗,仅在关键代码位置设置看门狗,空闲和休眠模式下更节能。
2、WDT的时钟仅由LPRC提供,不清楚LPRC的看下这里,当WDT启动时,空闲模式和休眠模式均不能停止WDT,如果想在节能模式下停止LPRC,请使用WDT软件使能,见上述三.1.PIC24HJ64GP502学习笔记(六)时钟配置-CSDN博客
三、预分频器WDTPRE,
此配置位仅一位,ON为LPRC/128,OFF为LPRC/32,由于LPRC为固定的32.768Khz,所以当WDTPRE设置为ON时,预分频器为32.768KHz/128=1/4Khz,即4ms定时器,当WDTPRE设置为OFF时,预分频器为32.768KHz/32=1KHz,即1ms定时器。此处可以把分频器理解为时钟计数器,方便理解时间和复位概念。
四、后分频器WDTPOST
此配置位有4位,如下图所示,分别实现1:1/2/4/8/16/32/64/128/256/512/1024/2048/4096/8192/16384/32768共16种分频方式,预分频器和后分频器组合可实现1ms-131s的看门狗定时范围。
五、喂狗窗口选择WINDIS
此位配置位0时,必须在定时周期的最后1/4喂狗,其他时间喂狗会触发看门狗复位,使用中建议配置为1,即不适用窗口功能 。(另:有资料介绍窗口有不同的配置,暂时找不到资料,找到再补)
六、休眠/空闲唤醒
1、当启用WDT后进入休眠或空闲状态时,LPRC并不会停止,所以WDT也不会停止,由于上述节能状态下cpu处于停止状态,无法喂狗,故肯定会触发看门狗动作,看门狗动作后仅唤醒cpu从PWRSAV指令位置继续工作,不会导致CPU复位,
2、当CPU从节能模式唤醒时,WDT的超时标志WDTO以及PWRSAV指令的动作标志SLEEP或IDEL并不会自动清理,需要软件手动清零。
七、由WDT导致的系统复位有以下几种情况
1、WDT使能后,经预分频和后分频后,达到定时设定时间,没有喂狗,导致WDTO置位把并且不是在节能模式,则触发系统复位。
2、设置了WINDIS窗口模式,但在周期最后1/4以外的时间执行了PWRSAV 指令,触发WDT复位。