Independent watchdog (IWDG) RM0401
480/771 RM0401 Rev 3
20  Independent watchdog (IWDG)
20.1 IWDG introduction
The devices feature two embedded watchdog peripherals that offer a combination of high 
safety level, timing accuracy and flexibility of use. Both watchdog peripherals (Independent 
and Window) serve to detect and resolve malfunctions due to software failure, and to trigger 
system reset or an interrupt (window watchdog only) when the counter reaches a given 
timeout value.
The independent watchdog (IWDG) is clocked by its own dedicated low-speed clock (LSI) 
and thus stays active even if the main clock fails. The window watchdog (WWDG) clock is 
prescaled from the APB1 clock and has a configurable time-window that can be 
programmed to detect abnormally late or early application behavior.
The IWDG is best suited for applications that require the watchdog to run as a totally 
independent process outside the main application, but have lower timing accuracy 
constraints. The WWDG is best suited for applications that require the watchdog to react 
within an accurate timing window. For further information on the window watchdog, refer to 
Section 19: Window watchdog (WWDG).
20.2 IWDG main features
• Free-running downcounter
• Clocked from an independent RC oscillator (can operate in Standby and Stop modes)
• Reset (if watchdog activated) when the downcounter value of 0x000 is reached
20.3 IWDG functional description
Figure 175 shows the functional blocks of the independent watchdog module. 
When the independent watchdog is started by writing the value 0xCCCC in the Key register 
(IWDG_KR), the counter starts counting down from the reset value of 0xFFF. When it 
reaches the end of count value (0x000) a reset signal is generated (IWDG reset).
Whenever the key value 0xAAAA is written in the IWDG_KR register, the IWDG_RLR value 
is reloaded in the counter and the watchdog reset is prevented.
20.3.1 Hardware watchdog
If the “Hardware watchdog” feature is enabled through the device option bits, the watchdog 
is automatically enabled at power-on, and will generate a reset unless the Key register is 
written by the software before the counter reaches end of count.
20.3.2 Register access protection
Write access to the IWDG_PR and IWDG_RLR registers is protected. To modify them, you 
must first write the code 0x5555 in the IWDG_KR register. A write access to this register 
with a different value will break the sequence and register access will be protected again. 
This implies that it is the case of the reload operation (writing 0xAAAA).