I am using SBC FS6500 chip. I want to disable sbc watchdog in bootloader and application will initialize and trigger it. First I established SPI communication between SBC and microcontroller then I tried to set watchdog window to (0000) initially in order to disable it in init phase as per datasheet but its not working and reset happens.
Solved! Go to Solution.
Hi Chetan,
The watchdog disable (WD_WINDOW_3:0 = 0b0000) is effective only when the INIT_FS phase is closed, so it requires at least one good watchdog refresh (0x4D when using a default LFSR value of 0xB2) within the 256 ms of the INIT_FS timeout.
Best regards,
Tomas
Hi Chetan,
The watchdog disable (WD_WINDOW_3:0 = 0b0000) is effective only when the INIT_FS phase is closed, so it requires at least one good watchdog refresh (0x4D when using a default LFSR value of 0xB2) within the 256 ms of the INIT_FS timeout.
Best regards,
Tomas
Hi Tomas,
After disabling the watchdog, PMIC does not wakes up.
How to send good watchdog refresh to exit INIT_FS.
I used below code for good watchdog refresh and disabled watchdog.
/* Performs the watchdog refresh. */
TxDataWithoutCrc[0] = WR_FS_WD_ANSWER | 0x5AB2; /* Normal Watchdog - Default WD_SEED value */
/* Calculate the 8-bit CRC with POLYNOMIAL 0x1D */
crc = CalculateCRC8(TxDataWithoutCrc);
TxData[0] = (TxDataWithoutCrc[0] << 8) | crc;
SpiTxWord(TxData);
/* Disable the PMIC Watchdog */
TxDataWithoutCrc[0] = WR_FS_WD_WINDOW | 0x0200;/* 0=DISABLE, 2=open/close window 50%, 00=Wathcdog recovery disable */
/* Calculate the 8-bit CRC with POLYNOMIAL 0x1D */
crc = CalculateCRC8(TxDataWithoutCrc);
TxData[0] = (TxDataWithoutCrc[0] << 8) | crc;
SpiTxWord(TxData);
Can you please help me, how to disable the watchdog.
Thanks in advance.
Its working, Thank you
Hi,
After disabling the watchdog, PMIC does not wakes up.
How to send good watchdog refresh to exit INIT_FS.
I used below code for good watchdog refresh and disabled watchdog.
/* Performs the watchdog refresh. */
TxDataWithoutCrc[0] = WR_FS_WD_ANSWER | 0x5AB2; /* Normal Watchdog - Default WD_SEED value */
/* Calculate the 8-bit CRC with POLYNOMIAL 0x1D */
crc = CalculateCRC8(TxDataWithoutCrc);
TxData[0] = (TxDataWithoutCrc[0] << 8) | crc;
SpiTxWord(TxData);
/* Disable the PMIC Watchdog */
TxDataWithoutCrc[0] = WR_FS_WD_WINDOW | 0x0200;/* 0=DISABLE, 2=open/close window 50%, 00=Wathcdog recovery disable */
/* Calculate the 8-bit CRC with POLYNOMIAL 0x1D */
crc = CalculateCRC8(TxDataWithoutCrc);
TxData[0] = (TxDataWithoutCrc[0] << 8) | crc;
SpiTxWord(TxData);
Can you please help me, how to disable the watchdog.
Thanks in advance.
Thanks,
Ram.