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]