SPRUIZ1B July 2023 – August 2024 TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
The BGCRC module has an embedded windowed watchdog that is used as a diagnostic to check memory test completion within the expected time window. This can protect against hardware defects that can cause the memory check not to complete in the allotted time, which cannot be caught by the system watchdog as the error can be due to the DMA having continuous access. Windowing also helps detect additional failure modes in the watchdog operation, for example, stuck watchdog.
The BGCRC watchdog is enabled by default and starts when the BGCRC module begins reading from memory. The watchdog can be disabled using the register BGCRC_WD_CFG.WDDIS. The BGCRC watchdog counter is a 32-bit counter with the value reflected in BGCRC_WD_CNT register. The lower and upper window settings are configured using BGCRC_WD_MIN and BGCRC_WD_MAX, respectively. BGCRC_WD_MIN and BGCRC_WD_MAX need to be configured before the test is started and must not be changed while the BGCRC is operating. If configured, an NMI or interrupt is triggered if the memory test fails to complete within the configured time window. The counter stops on completion of the CRC-32 check done, CRC-32 check failure and ECC/Parity errors. The counter is reset when the next memory check begins.
The BGCRC watchdog can be halted by configuring the BGCRC_WD_CFG.WDDIS register. After the watchdog resumes from being halted, the counter starts counting from the previous count unless a new memory check operation is initiated. The counter is not halted when CRC-32 computation halts but by default halts during a debug halt. The behavior of the watchdog during emulation can be changed by configuring the appropriate BGCRC registers. In addition, due to the changing nature of memory contents during emulation, it is not recommended to run BGCRC during emulation. CRC-32 computation continues during a watchdog failure and software needs to address this condition.