24.4.4.9 Packet Error Check

The Packet Error Check feature enables the generation and validation of an 8-bit CRC on the data stream between the Controller and Target for reliable communication. The transmitter always inserts an extra PEC byte at the end of the data stream, and the receiver validates it. The PEC is applicable for SDR CCC, IBI and SDR Private Transfers. The Controller or device implements an 8-bit Packet Error Code (PEC). The PEC is a CRC-8 value calculated on all the message bytes except for START, REPEATED START, STOP conditions or T-bits, ACK and NACK, and IBI header (7’h7E followed by W=0) bits. The polynomial for CRC-8 calculation is ‘X8 + X2 + X1 + 1’. The PEC byte is supported only for SDR Transfers and is not applicable for HDR Transfers.

Figure 24-25. Broadcast CCC with PEC Byte
???
Figure 24-26. Directed CCC with PEC Byte
A close-up of a computer code AI-generated content may be incorrect.
Figure 24-27. Private Write Transfer with PEC Byte
???
Figure 24-28. Private Read Transfer with PEC Byte
???

The Packet Error Check can be enabled for SDR Transfers by setting the ‘PEC’ bit of the Transfer Command to ‘1’. When this bit is set, the Controller generates a PEC byte at the end of a write transfer and validates the PEC byte at the end of a read transfer. If the received PEC byte for the read transfer does not match the internally generated PEC byte based on the data received from the Target, then the Controller generates an I3CxINTSTA[TRANSERR] interrupt and indicates it as a ‘PEC Error’ in the response status.