这个PMIC中带wdg模块,禁用wdg有两种方式:
1)通过硬件禁用wdg
如上为手册中的描述,这两个引脚可以用作硬件禁用wdg功能,我的硬件是用的GPIO8,这两个引脚任选其一就可以。
根据手册中的描述“DISABLE_WDOG pin must be asserted to a logic-high level”,硬件将这个引脚上拉即可。
2)通过软件的方式
这个芯片默认上电后在Long Window,这个Long Window的默认时间是12分钟;
我们如果不用硬件禁用wdg,那么软件的方式就是将WD_EN清零去disable watchdog,如下是我的软件操作:
/* Disable WDG: Read the WD_THR_CFG register and clear it if the WD_EN bit is 1. */
dataToSlave[0] = 0x09;
appDeviceI2cWrite8(i2cInst, slaveAddress, &dataToSlave[0], 1);
appDeviceI2cRead8(i2cInst, slaveAddress, &dataFromSlave[0], 1);
if(dataFromSlave[0] == 0xFF)
{
dataToSlave[0] = 0x09;
dataToSlave[1] = 0xBF;
appDeviceI2cWrite8(i2cInst, slaveAddress, &dataToSlave[0], 2);
}
/* Read the WD_THR_CFG register to check whether WDG is disabled. */
dataToSlave[0] = 0x09;
appDeviceI2cWrite8(i2cInst, slaveAddress, &dataToSlave[0], 1);
appDeviceI2cRead8(i2cInst, slaveAddress, &dataFromSlave[0], 1);
if(dataFromSlave[0] == 0xBF)
{
appLogPrintf("PMIC_U301-WDG: Wdg was Disabled Successfully!!!\r\n");
}
else
{
appLogPrintf("PMIC_U301-WDG: Wdg was Disabled Failed!!!\r\n");
}
WD_THR_CFG寄存器默认值为0xFF,第6位为WD_EN位,将WD_EN清零,即为0xBF;
声明:这是我调试所用,大家可以根据自己的代码,套入接口即可。