Electronic – Unexpected ADC behaviour – can anyone help diagnose

adcfilterimpedance

I'm attempting to read an air temp. sensor made by Amphenol (Datasheet).
The sensor outputs is pulse density modulated (PDM) and is filtered to DC using a simple LPF as suggested by the manufactorer. Testing the output after the filter using a scope looks great with neglectible ripple for my need.

My ADC input circuit is loading the output, probably because the impedance is too low, so the voltages I see are skewed. I've managed to correct them using a 2nd order equation and now I am usually withinin 1 degree of the theoretical (expected) temp. reading.

Here is the strange part – in a certain range in the middle of the sensor's range I get a "hump" where readings will stop responding linearily and act like a parabole with max. point. After the edges of this area, the behaviour goes back to linear again.

I am puzzled what is skewing the readings exactly in that range. I can undertand that due to capacitors and loading the ADC input circuit is affecting the whole range, but what affects just a part of it?

Here is a circuit of the sensor + fitler + ADC input. R1 + C1 make up the LPF. R2 + R3 + C2 make up a voltage divider at the ADC's input. The ADC's input resistance is now shows but according to the MCU datasheet it is max 50kOhm.

The sensor's output after the filter is expected to be perfectly linear. Just thught to make that clear.

Worth mentioning that I have repeated this experiment 3 times using different sensors, different filters and different input channels of the MCU's ADC (although they are multiplexed, but still to rule out a damaged MUX). I have seen the exact same thing each time with minimal diff. between the sensors.

There might be additional information missing here, so please let me know and I will add as requested.

Update #1
X axis are ADC raw readings (basically mV at R2 & R3 junction), Y axis is the expected mV reading from the sensor at the temp. that was meassured using an external thermomether. According to the equation from Amphenol / Telaire this should be linear.

Here is the equation from Amphenol:
PDM_T [mV] = ((T[degC] / 165) + 0.2424) * VDD [mV]

enter image description here

schematic

simulate this circuit – Schematic created using CircuitLab

Best Answer

Unbuffered SAR ADCs present a loading that is dependent on sample rate (to somewhere mid-scale typically, rather than to ground as is usually shown in simplified diagrams), and your high impedance source affects the acquisition time. It's easiest to have a simple op-amp buffer, but sometimes you can get away without it.

This brief TI "technote" describes some of the considerations in connecting a sensor directly without a driver. Your ADC and circuit may or may not have the flexibility to implement their suggestions.

enter image description here

In general, decrease your sample rate and sample clock frequency to the minimum acceptable to both reduce the average loading and increase the acquisition time for the internal ADC capacitor to charge to close to the input voltage.

Or use the I2C and avoid touching all the analog stuff entirely, as others have suggested.