AnsweredAssumed Answered

Temperature compensation on ADC?

Question asked by Pablo Cottens on Aug 11, 2017



I am using an Olimex-E407 board to measure some signals (AC signals). After some reading on ADCs I learned that there are a few error that have to be taken into consideration when doing measurements and some of them can be attenuated by calibration.


Offset, gain, temperature drift, time drift, integral non linearity (INL) and differential non linearity (DNL) are some of the most common I've come accross. Offset and gain errors can be calibrated by using the two point method. INL, according to the datasheet is 1.5LSB typically but can go as high as 3LSB, which could be a problem, but simply by doing a curve fitting algorithm I can reduce this error by 20-50% according to some articles. Apparently it is even possible to mitigate this error even further by using a table containing calibration data (if someone knows how to implement this method pease let me know ... I checked the measurement of the ADC and it varies between 2014 and 2048 when reading a 1.262V signal @3.28V, so I wouldn't even know how to begin creating this table). DNL is negligible in comparison to the others so it doesn't bother me. The one that is bothering me is temperature drift ...


According to what I've been reading, some places, I could build a correction table for my device. Does this mean that I need to define several temperature ranges, perform measurements and then create a table for each range? Isn't it possible to compute the temerature drift in an equation? For that I'd need more information about the internals of the ADC, but the datasheet doesn't even inform about the temperature-coefficient. How would I procceed to mitigate the temperature error?


PS: I hacked my board to use an external Vref (0.1% 3V reference by TI ... planning to change to an Analog one with a better temperature coefficient)