SBAS824 October 2018 ADS1235
PRODUCTION DATA.
Cyclic redundancy check (CRC) is an error checking code that detects communication errors to and from the host. CRC is the division remainder of the data payload bytes by a fixed polynomial. The data payload is 1, 2, 3 or 4 bytes depending on the data operation. The CRC mode is optional and is enabled by the CRCENB bit. See Table 33 to program the CRC mode.
The user computes the CRC corresponding to the two command bytes and appends the CRC to the command string (3rd byte). A 4th, zero-value byte completes the command field. The ADC repeats the CRC calculation and compares the calculation to the received CRC. If the user and repeated CRC values match, the command executes and the ADC responds by transmitting the repeated CRC during the 4th byte of the command. If the operation is conversion data or register data read, the ADC responds with a 2nd CRC that is computed over the requested data payload bytes. The response data payload is 1, 3, or 4 bytes depending on the data operation.
If the user and repeated CRC values do not match, the command does not execute and the ADC responds with an inverted CRC for the actual received command bytes. The inverted CRC is intended to signal the host of the failed operation. The user terminates transmission of the command bytes to match the action of ADC termination. The CRCERR bit is set in the STATUS register when a CRC error is detected. The ADC is ready to accept the next command after a CRC error occurs at the end of the 4th byte.
The CRC data byte is the 8-bit remainder of the bitwise exclusive-OR (XOR) operation of the argument by a CRC polynomial. The CRC polynomial is based on the CRC-8-ATM (HEC): X8 + X2 + X0 + 1. The nine binary polynomial coefficients are: 100000111. The CRC calculation is preset with "1" data values.
The CRC mnemonics apply to the following command sections.
• CRC-2: Input CRC of command bytes 1 and 2. Except for WREG command, the value of byte 2 is arbitrary
• Out CRC-1: Output CRC of one register data byte
• Out CRC-2: Output CRC of two command bytes, inverted value if input CRC error detected
• Out CRC-3: Output CRC of three conversion data bytes
• Out CRC-4: Output CRC of three conversion data bytes plus STATUS byte
• Echo Byte 1: Echo of received input byte 1
• Echo Byte 2: Echo of received input byte 2