SPRUIZ1B July 2023 – August 2024 TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
To make sure the correctness of the ECC logic, a redundant ECC logic block for each of the ECC64_L and ECC64_H checkers is used. Each 64-bit ECC checker block and the corresponding redundant checker block receive the same inputs. The output of each 64-bit checker block is bitwise XORed with the output of the corresponding redudnant checker block; a non-zero output from this comparison generates an uncorrectable error (UNC_ERR) signal. This redundancy makes sure that any fault in ECC logic circuits can be detected and trigger an NMI.
A mechanism has been added to enable self-testing of the ECC logic for additional diagnostic coverage. To use this mechanism, configure the ECC_TEST_EN field in the FECC_CTRL register. A value of 01 in ECC_TEST_EN injects a single-bit error into the redundant ECC logic upon a Flash read access, and a value of 11 injects a double-bit error upon a Flash read access. This causes an output comparison failure. In this mode, the diagnostic outputs of each of the high and low comparators (DIAG_H and DIAG_L) are captured in the FLUCERRSTATUS Memconfig register.