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.

ads1255 System Calibration

Hello,

I'm spotting a gain error when doing system calibration (here attached you can see my circuit, PGA 281 is dividing by 2 my input).

When I perfom a system calibration with 10V (first 0V for offset and then 10V for FS) I get a reading value with a consistent error, for example if I input 5V I read 5.028V, so I have around 28mV of error, while if I input 0V it's perfect. on my adc IN0-IN1 = 4.9285V

If I perform a system calibration with a value a little bit under 10V, for example 9,90V, I get good results, with no gain errors, for example in this case if I input 4.45V (1/2 FSR as before) I get a very precise reading 4.45000V.

This behaviour doesn't change with sampling rate.

My reference measures 2.4978V

Do you have any hints for this issue?

Regards,

Paolo

  • Hi Paolo,

    If I understand correctly, you perform system gain calibration with a 100% full-scale input and observe a small residual gain error (~0.56 %). However, after changing the input to 99% full-scale and performing system gain calibration, the gain error is effectively removed, as expected.
     

    It sounds like the ADC input may be slightly over-ranged when you apply (what is suppose to be) the 100% full-scale input voltage. Even though you measured this voltage to be 4.9285V (which is within the ADC's input range), keep in mind that the meter that measured this may have an offset of its own and the ADC's input voltage may be slightly different. In the case that the input voltage is greater than 100% full-scale, the gain calibration will likely not perform as expected.
     

    My recommendation would be to perform the system gain calibration routine with an input signal less than 100% full-scale. The reason why, is that the system gain calibration routine only works if you apply a perfect 100% full-scale input voltage, which is very difficult to guarantee and very easy to accidentally over-range the ADC. There are multiple ways of doing this, but the easiest way may be to simply apply a 95% full-scale input signal (for example) and run the SYSGCAL command as usual. Once the ADC calculates the gain calibration coefficient for the FSC[2:0] registers, you can correct for the 95% full-scale input by multiplying the FSC[2:0] registers value by 0.95 and writing this result back to the FSC[2:0] registers....The gain calibration is still only as good as the accuracy of the full-scale "reference" voltage, but at least this way you can avoid over-ranging the ADC.

    Best Regards,
    Chris

  • Hi Chris,

    your hints clarified my doubs.

    Thank you very much,

    Paolo