Due to the U.S. Thanksgiving holiday, please expect delayed responses during the week of 11/22.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS124S06: ADS124S06 nonlinear raw ADC readings

Part Number: ADS124S06
Other Parts Discussed in Thread: ADS124S08EVM, ADS124S08

I am having difficulty obtaining linear ADC readings from the ADS124S06. I am able to setup the ADS124S06 correctly as I did with the ADS124S08EVM board. The settings are as follows:

  • Input Mux (0x02),   AIN5P and AIN4N (0x54)
  • PGA (0x03),   PGA Bypass and Default Gain 1 (0x00)
  • Data rate (0x04),   G Chop disabled, Low Latency Filter, 2.5 SPS (0x10)
  • Reference (0x05),   Positive Reference Buffer Bypass, Negative Reference Buffer Bypass, Internal 2.5V reference, Internal reference is always on (0x3A)
  • Excitation Current (0x06),     (0x00)
  • Excitation IDACMUX (0x07),     (0x00)
  • Sensor VBIAS (0x08),    (0x00)
  • System Control (0x09),    8 Samples (0x10)

I can read back each register no problem, and read the offset and gain registers to obtain their default values. 

I have it setup for Continuous conversion mode and read the DRDY pin when it goes low to complete a reading using the RDATA command. I then read the 3 Bytes of data from the ADS124S06, MSB to LSB. The following is how I shift the 24 bits from the ADS124S06 when using RDATA. 

byteReceived = SpiReceiveByte(); // MSB of 24 bit data
receivedData = byteReceived;


byteReceived = SpiReceiveByte(); // mid byte of 24 bit data
receivedData = (receivedData << 8) | (long)byteReceived;


byteReceived = SpiReceiveByte(); // LSB of 24 bit data
receivedData = (receivedData << 8) | (long)byteReceived;

I then detect if the ADC counts are larger than 0x7FFFFF, if it is I add 0xFF000000 to the long integer 'receivedData'. 

I am still unable to confirm what my issue is with the ADS124S06. It could be a layout issue or when I am choosing to read the conversion result when it is ready. Any Help would be greatly appreciated. 

The picture below is from data I collected using the raw readings from the ADS124S06. 

Data below corresponds to the graph above, from the ADS124S06 on my PCB. 

The graph below was collected using the ADS124S08EVM and the Data analysis tool. I am using this to show how linear the voltage source is when reading from the ADS124S08EVM. 

Both pieces of equipment below have been recently calibrated. 

Voltage Source : Datron 4700

DMM: HP 3458A