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.

ADS122C04: randomly delivers strange values

Part Number: ADS122C04

I use the ADS to measue the voltage from a wheatstone bridge with strain gauges. It generally works and the ADS delivers the correct value.

However, it randomly delivers small negative values (ranging from -1 to ~ -150) in between the correct values. 

Here's an example (gain = 32, data rate = 90 SPS, continuous mode):

Counter: 0 raw value: 961932 calculated voltage: 7339 uV
Counter: 1 raw value: 961943 calculated voltage: 7339 uV
Counter: 2 raw value: -63 calculated voltage: 0 uV
Counter: 3 raw value: -76 calculated voltage: 0 uV
Counter: 4 raw value: -61 calculated voltage: 0 uV
Counter: 5 raw value: -99 calculated voltage: 0 uV
Counter: 6 raw value: -50 calculated voltage: 0 uV
Counter: 7 raw value: -92 calculated voltage: 0 uV
Counter: 8 raw value: 962024 calculated voltage: 7340 uV
Counter: 9 raw value: -76 calculated voltage: 0 uV
Counter: 10 raw value: -59 calculated voltage: 0 uV
Counter: 11 raw value: 962249 calculated voltage: 7341 uV
Counter: 12 raw value: 962210 calculated voltage: 7341 uV
Counter: 13 raw value: 962231 calculated voltage: 7341 uV
Counter: 14 raw value: -89 calculated voltage: 0 uV
Counter: 15 raw value: -106 calculated voltage: 0 uV

Sometimes the wrong values are quite rare (like 1 in 10), sometimes there are thousands of cycles in a row where it delivers only these small negative values, although the actual input voltage didn't change.

Changing the gain, disabling the PGA, changing the data rate, disabling continuous mode changes nothing. I also connected a different sensor, same problem. 

I use a NucleoBoard 144 with a STM32H742 as i2c master.

Here's my circuit:

  • Hi user6498411,

    Welcome to the E2E forum!  Unfortunately the circuit diagram did not show up.  Could you try resending (please use the insert media icon)?

    If the output is periodically changing to a near 0 output, this sounds like an intermittent connection.  Monitor the input voltage at the ADS122C04 device pins.  I would also monitor the I2C communication to rule out any issues during a data transfer (such as a possible NAK that was not properly handled.)

    Best regards,

    Bob B

  • Hi Bob,

    thanks a lot, I'm going to try that.  Here's the circuit diagram, I hope it shows up now.

  • Hi Bob, 

    I monitored the voltage at the device analog input pins, it's perfectly stable. I also monitored the i2c bus with a logic analyser, the communication is also fine. 

    The strange thing is that it always delivers these small negative values in between. They don't scale up when I increase the gain, they don't invert when I change the multiplexer to AINP = AIN1, AINN = AIN0 instead of AINP = AIN0, AINN = AIN1. They are even there when I set the multiplexer to monitor (V(REFP) – V(REFN)) , (AVDD – AVSS) or (AINP and AINN shorted to (AVDD + AVSS))

    At this point I'm pretty sure that the ADC outputs these values to the data register, although the input voltage to the ADC definitely doesn't correspond with these values. 

    Is there any other thing that might be wrong with my setup?

  • Hi user6498411,

    Can you send me the complete set of register settings that you are using?  Can you send me oscilloscope or logic analyzer shots of your communication when reading the conversion data?

    Have you verified that the register readback is the same as what was written?  Do you have any input protection/filters on the AIN0/AIN1 inputs?  I can't tell from the schematic snippet how the strain elements are connected to the inputs and what voltages are being applied.  You mentioned that you monitored the input voltage.  How did you do this?  The input voltage should be measured from each input to AGND and not just across the inputs as absolute input voltage must be within the input range of the ADC.

    If you connect an excitation source to the bridge that is greater than the analog supply voltage, you need to make special care that the input range does not exceed the analog supply.  For example, if you excite the bridge with 10V and the analog supply is 5V, the balance point of the bridge sets the common-mode at 5V which is the same as the analog supply.  When the bridge output changes as loading changes the output of the bridge can exceed the absolute maximum input ratings for the ADC and can reset the device, or even cause damage for a design of this type.

    You are very familiar with your setup.  However, I have very little to go on and unfamiliar with your setup.  So I need specific detail to be of further help.  Even pictures of your setup would be helpful.

    Best regards,

    Bob B