What is a Watchdog?
Main function of a Watchdog (WDOG) or a Watchdog Timer (WDT) is to detect if something went wrong and recover from software malfunctions by resetting the chip.
It is a timer that starts counting from 0 and when it reaches a certain value, it performs an action (e.g. reset), which is specified by the developer. To prevent this the Watchdog has to be periodically fed or kicked - that means you have to reset the counter and set it to 0 so it doesn't reach a timeout and reset the chip.
•Finished application - Active Watchdog prevents any faulty states or malfunctions.
•Start of a development - You don’t want Watchdog resetting your chip all the time, because you’re actively trying to write and debug the application. Constant resets can slow you down or even prevent you from downloading the application to the chip.
•Internal Watchdog - Implemented on the chip and internal to the MCU; it can be easily disabled by a simple write to a register.
•External Watchdog / System Basis Chip (SBC) - Implemented separately as a separate chip or board and it can reset MCU or even cut power; harder to disable, because it’s independent from the CPU.