SBAA106A June   2020  – August 2021 ADS112C04 , ADS112U04 , ADS114S06 , ADS114S08 , ADS122C04 , ADS122U04 , ADS1235 , ADS1235-Q1 , ADS124S06 , ADS124S08 , ADS1259 , ADS1259-Q1 , ADS125H01 , ADS125H02 , ADS1260 , ADS1260-Q1 , ADS1261 , ADS1262 , ADS1263 , ADS127L01 , ADS131A02 , ADS131A04 , ADS131M04 , ADS131M06 , ADS131M08


  1.   Trademarks
  2. 1Introduction
  3. 2Simple Checksum
    1. 2.1 Checksum Code Example
  4. 3CRC
    1. 3.1 CRC Generic Computations
      1. 3.1.1 Using XOR Bitwise Computation
      2. 3.1.2 Using Lookup Tables
        1. Table Initialization
        2. CRC Computation
      3. 3.1.3 CRC Computation Differences Between the ADS122U04 and ADS122C04
        1. Byte Reflection Example
        2. Reassembling Data Using Byte Reflection for CRC Computation
  5. 4Hamming Code
    1. 4.1 Hamming Code Computation
      1. 4.1.1 Hamming Code Computation Example
        1. Counting Bits for Parity and Checksum Computations
          1. Example of Counting Set Bits in the Data
          2. Example of Counting Set Bits Using a Lookup Table
      2. 4.1.2 Validation of Transmitted Data
        1. Hamming Validation
        2. Checksum Validation
        3. Error Correction
  6. 5Summary
  7. 6References
  8. 7Revision History

Simple Checksum

The checksum can be appended to conversion results on devices such as the ADS1259 and ADS1262. Checksum allows for error detection of single-bit error and some combinations of multi-bit error. The checksum byte is computed by adding the value for each of the conversion data bytes together along with the addition of a constant. For the mentioned devices the constant is 9Bh. As the checksum is a byte in length, any carry from the addition is ignored. In the case of the ADS1259, which is a 24-bit device, the MSB, Mid-Byte and LSB are added together with the constant. The result of the checksum is appended to and transmitted with the conversion data.

The checksum is easy to compute with minimal processing effort. However, if there are multiple bit errors present it is possible for the errors to go undetected since multiple combinations of different data added together will result in the same checksum value. For example, the addition of conversion data 12h, 34h, 56h and constant 9Bh results in a checksum of 37h. But the data could become corrupt in transmission. If instead the data are received as 12h, 35h, 55h and constant 9Bh, the addition of these bytes result in the same checksum of 37h.

Checksum can be useful when checking for 1 to 2 bit error in small data packets. With small data packets there is some potential for missing the error in the data, but as the data packet size increases so does the potential for missing the multiple bit errors. Using checksum alone is not the best method available for determining data integrity.