SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The MPU watchdog timer (MPU_WD_TIMER) implements two channels, one per MPU core (MPU_WD_TIMER_C0 and MPU_WD_TIMER_C1, respectively; an unified name MPU_WD_TIMER_Cx is used hereafter in the chapter). The MPU_WD_TIMER operates on MPU subsystem clock (MPU_DPLL_CLK).
Each MPU_WD_TIMER_Cx channel implements:
The counter starts decrementing when the WDT_CONTROL_REGISTER_i[0] ENABLE bit is set to 0x1. The current count value can be monitored by reading the WDT_COUNT_REGISTER_i[31:0] CURRENTCOUNT bit field. When the counter reaches zero, a timeout condition occurs. In the timeout condition, the counter stops counting and:
If the MPU core corresponding to the MPU_WD_TIMER_Cx channel is in debug state, the counter does not decrement until the MPU core returns to non-debug state. Debug state is inferred by monitoring the DBGACK signal corresponding to this core.
Additionally, the user can also setup a warning condition which can be used to signal an interrupt that gives software a notice when the MPU_WD_TIMER_Cx is getting close to a timeout. The threshold value is set in the WDT_WARNING_REGISTER_i[31:0] WARNING_WATERMARK bit field. The current count value is then compared to the threshold (warning watermark) level value and when CURRENTCOUNT = WARNING_WATERMARK, a warning interrupt (MPU_WD_TIMER_Cx_IRQ_WARN) is generated to the MPU_INTC (if enabled by setting the WDT_CONTROL_REGISTER_i[1] WARNEN bit to 0x1).
The mapping of the four MPU_WD_TIMER interrupts is as follows:
The user can also poll the following status bits:
The following programming guidelines should be taken into account:
The suggested programming order is as follows:
When the MPU cores are going to low power state, the MPU_WD_TIMER may need to be disabled. If it is not disabled, then the MPU_WD_TIMER may timeout (since the MPU core is not refreshing the timeout counters) and will generate MPUSS reset request which will reset the MPU domain, including both MPU cores.