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.

ADS8688: Diverging/alternating ADC value on a single channel

Part Number: ADS8688

Problem description

I am having issues with my thermocouple readings on my ADC. For the thermocouple readings of a single channel I have noticed that they often alternate from a slightly higher reading to a slightly lower reading, as per the figure below. This is not two different channel readings it is the same channel. The alternations/diverges appear to be symmetric around what the true value should be although I have not 100% confirmed this.

Below is an extract from another test showing how the value alternates each sample.

Time (uS)

50380962

50390962

50400962

50410962

50420962

50430962

50440962

50450962

50460962

ADC value

16937

16133

16942

16076

16930

16052

16908

16039

16876

Application description

I am using multiple ADS8688 to sample thermistors, thermocouples and pressure sensors and then log them to an SD card. Below is an extract from my circuit diagram showing the thermocouple filter, amplifier and ADC configuration. The thermocouples are passed through a low pass differential and common mode filter before being amplified by a non-inverting amplifier with an offset (Vbuff) to allow the ADC to read negative temperatures.

The other ADC inputs for the ADC in the diagram are all thermocouples with identical front-end circuitry to the channel 0 example. My application has 4 ADCs with three of them in daisy chain configuration sampling each input at 100Hz and the other single ADC sampling each at 2 kHz. The only 2 kHz sensors are pressure sensors.

My sampling method is for a 100 Hz and 2kHz timer interrupt to trigger all channels to be sampled as fast as possible, so the actual sample frequency (the one the ADC MUX switches at) is much higher than 100Hz or 2kHz. My SPI clock line is running at 22.5 MHz. I have separate analog and digital 3V3 on the board for powering my MCU and DVDD for the ADCs as well as 5V for AVDD of the ADCS. I have a single ground for both analog and digital signals.

The purpose of the DNP R4 resistor is because I was not sure how to correctly ground the thermocouple leads (This is my first time working with thermocouples so I was leaving my options open once the board was manufactured).

Further problem examples

The divergences do not happen every test and can happen for short or long periods, such as the example below. The X axis is time in seconds and the Y axis is ADC value of a single channel (Sorry I forgot to add these when running this test).

It occurs on all thermocouple channels and temperatures, while not "diverging" at the same time or by the same amount, such as the below example showing two thermocouple readings:

 This error does not occur in my pressure or thermistor readings. The only differences between them and the thermocouples (other than not being thermocouples) are:

  • The thermocouples are amplified by a gain of 110 which the other sensors go through unity gain filters.
  • The thermocouples have an offset voltage Vbuff (333mV) involved in their amplification while the pressure and thermistors do not. This voltage should be steady as it it created by a voltage divider to 333 mV from a 1V shunt reference that then gets passed through a voltage follower.
  • Thermocouples have low pass differential and common mode filters.

Things I have tried

  • My application requires spare thermocouple channels so that they are available if the requirements change. When a thermocouple is not connected to a spare channel I am driving the output of the non-inverting amplifier in the circuit diagram above low by connecting the positive thermocouple node to ground through a large resistance and solder bridge. I have tried grounding/not grounding all other inputs on an ADC using this method and I still get the error on the channel with a thermocouple in both cases.
  • One of the ADCs in the daisy chain samples thermocouple, thermistor and pressure sensors at 100Hz. The error is not present in the pressure sensors or thermistors.
  • I have tried different channels on the ADC. All show the error.
  • I have tried measuring low and high temperatures, no visible pattern.

Current theories

Below is a list of the thoughts I had of what it could be, although I am clutching at straws and don't have much foundation for these ideas:

  • No separation of analog and digital grounds.
  • Not having 100 nF capacitors between positive and ground ADC inputs, although I thought this would cause errors in the pressure and thermistors too.
  • Reaching the gain bandwidth of the opamps? Not sure what this would do but I am aware that 110 is a  relatively high gain.

My best idea is its something to do with having large amplification but any help would be greatly appreciated! Let me know if there is any other testing/data/information you would like sent through if needed.

Cheers.

  • The opamp I am using is the LMV844QMA/NOPB.

  • The issue was interference from the mains at 50 Hz and as I was sampling at 100 Hz (nyquist rate) it appeared to split the signals into two. This explains why it only sometimes happened and varied in degree, as it depended on where on the 50 Hz signal I sampled at. Changing my sample rate to 50 Hz removed the issue entirely which confirms this theory. The reason it didn't happen on the 100Hz pressure sensor readings is because they have no amplification before filtering, and thus do not amplify the 50 Hz signal.

  • Hi Angus,

    Thank you for your update. I was checking your description and details about the issue when you posted an update. There is one thing I would highlight to you. The ADS8688 can only support 17MHz SCLK frequency, however your SCLK frequency is 22.5MHz, I would suggest you to reduce it to meet the specification of ADS8688.

    Also, would you please share more information about the reason you selected this ADC not a delta-sigma ADC which is commonly used for thermocouple, thermistor and pressure sensors application? The ADS8688 is a great 16-bit SAR ADC with a lot of features, however it has a larger input range (+/-10V and +/-5V) for single-ended input comparing with a small differential signal from these sensors. Our delta-sigma ADCs (ADS124S08 and ADS1261) support true different input and also integrate PGA without requirements for external amplifiers, and they are suitable for these applications..

    Best regards,

    Dale

  • Thanks for the tip on the SCLK frequency! I had only checked the maximum rating for the MCU.

    This was my first time selecting an ADC for an application so I wasn't fully aware of all the options and their tradeoffs. A driving factor in my ADC selection however was that I wanted one with high samples/s. This is because I was concerned about aliasing issues as I thought my filter cutoff frequencies were too low (I had been instructed to choose 1/4 sampling frequency so 25 and 500 Hz) and wanted capacity to increase sampling rate if required in the future (up to 10x or even more). From my research I saw that delta-sigmas tended to have much lower max sample rates (the ADS8688 has 500 ksamples/s while those two you recommended have 4 and 40 ksapmels/s) so that's why I went with a SAR.

    Out of curiosity, those max sample rates are for all channels correct? Not 4 ksamples/s on each channel? Also with the PGA in the ADCs you recommended, would you be able to change the gain fast enough between samples to sample at say 2kHz on each channel? For example if I had a mixture of thermocouples and pressure sensors with thermocouples requiring a gain of around 128 while the pressures needed a gain of 1 could I change it fast enough between samples? 

  • Hi Angus,

    Correct, 500ksps sampling rate on ADS8688 is for all 8 channels. When 4 ADCs are used in Daisy-chain mode, the throughput is limited because all data are sent to the microcontroller through a same SDO data line, so the maximum sampling rate per channel on each ADC is limited to 26ksps.

    We have other team members to support  ADS124S08 and ADS1261, please start another thread for your questions about these ADCs on this forum so that you can get proper support and fast response.

    Thanks&regards,

    Dale