ZHCSN81 july 2023 ADS131B23-Q1
PRODUCTION DATA
The ADS131B23-Q1 features a cyclic redundancy check (CRC) engine on both input and output data to detect SPI communication errors. Overall there are three different CRCs that are all 16 bits wide:
The command CRC covers the command word (that is, the first word on SDI in every frame). The WREG command is a special case that requires an additional register data CRC. The register data CRC covers the register data words transmitted after the command CRC word. The output CRC covers all words on SDO preceding the output CRC word. The CRCs also cover all zero-padded bits.
The device checks the provided command CRC, and (in case of a WREG command) the register data CRC against the internally calculated CRCs based on the received input data. A CRC error occurs if the CRC words do not match. The device does not execute any commands if the command CRC or register data CRC checks fail. The device sets the SPI_CRC_FAULTn bit in the STATUS_MSB register for all cases of a CRC error on the input data.
The response on the output in the SPI frame following a frame where a CRC error occurred is that of a NULL command, which means the STATUS word plus the conversion data for ADC1A and ADC1B are output in the following SPI frame. The SPI_CRC_FAULTn bit is output as part of the STATUS word to provide immediate indication that a CRC error occurred in the previous frame. The SPI_CRC_FAULTn bit clears automatically in the next SPI frame.
There are two types of CRC polynomials available: CCITT CRC and ANSI CRC (CRC-16). The CRC polynomial setting determines the algorithm for all three CRCs. The CRC type is programmed using the CRC_TYPE bit. Table 9-24 lists the details of the two CRC types.
The CRC calculation is initialized with the seed value of FFFFh to detect errors in the event that SDI or SDO are stuck low.
CRC TYPE | POLYNOMIAL | BINARY POLYNOMIAL |
---|---|---|
CCITT CRC | x16 + x12 + x5 + 1 | 0001 0000 0010 0001 |
ANSI CRC | x16 + x15 + x2 + 1 | 1000 0000 0000 0101 |