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: