SDAA287 March 2026 ADS112C04 , ADS112U04 , ADS114S06 , ADS114S08 , ADS122C04 , ADS122U04 , ADS124S06 , ADS124S08 , ADS125H01 , ADS125H02 , ADS1260 , ADS1261 , ADS1262 , ADS1263 , ADS127L01 , ADS127L11 , ADS127L14 , ADS127L18 , ADS127L21 , ADS131A02 , ADS131A04 , ADS131M02 , ADS131M02-Q1 , ADS131M03 , ADS131M03-Q1 , ADS131M04 , ADS131M04-Q1 , ADS131M06 , ADS131M06-Q1 , ADS131M08 , ADS131M08-Q1 , ADS7028 , ADS7038 , ADS7066 , ADS7067 , ADS7128 , ADS7138 , AFE78101 , AFE781H1 , AFE78201 , AFE782H1 , AFE88101 , AFE881H1 , AFE88201 , AFE882H1 , DAC60504 , DAC60508 , DAC61401 , DAC61402 , DAC61404 , DAC61408 , DAC61416 , DAC70504 , DAC70508 , DAC71408 , DAC71416 , DAC7750 , DAC7760 , DAC80504 , DAC80508 , DAC81401 , DAC81402 , DAC81404 , DAC81408 , DAC81416 , DAC8741H , DAC8742H , DAC8750 , DAC8760 , DAC8771 , DAC8775 , HDC3020 , HDC3020-Q1 , HDC3021 , HDC3021-Q1 , HDC3022 , HDC3022-Q1 , LMP90077 , LMP90078 , LMP90079 , LMP90080 , LMP90097 , LMP90098 , LMP90099 , LMP90100 , TMAG5173-Q1 , TMP114 , TMP126 , TMP126-Q1 , TMP1826 , TMP1827
CRC is an error-detection code that is commonly used in digital communication. CRC is often used in TI data converters to verify the communication between the device and the microcontroller. CRC uses the transmission data and appends an initial value (or seed value). Then a generator polynomial is used in a calculation to generate a CRC code. If the transmitter and receiver generate the same code, then the data is good. If the same code is not generated, the data is bad, and the transmission data likely has an error.
There are many types of CRC used for error detection. These CRCs use different bit lengths, initial values, and generator polynomials to calculate the code. Parity checks are basically a single bit CRC calculation. CRC codes of eight, 16, and 32 bits are common, and the distinguishing features are the initial values and the generator polynomial values.
The CRC calculation is a modulo-2 division of the data transmission by the generator polynomial. This division is performed as a bitwise XOR. The calculation starts with the transmission data string by appending an initial value of all zeros or all ones. The division is performed, and the resulting remainder is the CRC code. If the remainder of the calculation does not match the received value, then a transmission error of the data has occurred.
Data transmissions are often sent most significant bit first, while others (UART, for example) are sent as least significant bit first. Bit must be considered when making the CRC check when implemented as part of the calculation. Some CRC algorithms reflect the input data or output CRC code by reversing the bit order of each byte.
Many device datasheets give a detailed description of the CRC function and calculation used in the device. For more information about using CRC functions see Communication Methods for Data Integrity Using Delta-Sigma Data Converters or Cyclic Redundancy Check Computation: An Implementation Using the TMS320C54x.