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: ADS1255 difference between system and self calibration

Part Number: ADS1255

I am confused about the difference between self and system calibrations. I see that for self calibration: 

1. SELFOCAL performs a self offset calibration. The analog inputs AINP and AINN are disconnected from the signal source and connected to AVDD/2.

2 SELFGCAL performs a self gain calibration. The analog inputs AINP and AINN are disconnected from the signal source and AINP is connected internally to VREFP while AINN is connected to VREFN. 

3. SYSOCAL performs a system offset calibration. The user must supply a zero input differential signal. The ADS1255/6 then computes a value that will nullify the offset in the system. 

4. SYSGCAL performs a system gain calibration. The user must supply a full-scale input signal to the ADS1255/6. The ADS1255/6 then computes a value to nullify the gain error in the system. 

I would think that self calibration corrects for error sources which reside in the ADS1255 while system calibration corrects for errors in the signals presented to the ADS 1255. Is this correct? But since the data sheet requires that the system offset calibration be performed with a zero input differential signal, which means that the system external to the ADS1255 does not have any error to calibrate. Maybe the authors mean to poise the system to target a zero input differential signal, but due to system errors it will actually be something close to but not exactly zero, i.e., there is system offset in the signal presented to the ADS1255. Then, the ADS1255 will null this system error with the sysocal routine? Following this logic, the sysgcal would be calibrating errors external to the system but when the system targets full scale. It is a bit confusing based on how the data sheet is written. Please clarify.

Thanks,

Aaron Frank

  • Hi Aaron,

    Welcome to the TI E2E Forums!

    Aaron Frank46 said:
    I would think that self calibration corrects for error sources which reside in the ADS1255 while system calibration corrects for errors in the signals presented to the ADS 1255. Is this correct? But since the data sheet requires that the system offset calibration be performed with a zero input differential signal, which means that the system external to the ADS1255 does not have any error to calibrate. Maybe the authors mean to poise the system to target a zero input differential signal, but due to system errors it will actually be something close to but not exactly zero, i.e., there is system offset in the signal presented to the ADS1255. Then, the ADS1255 will null this system error with the sysocal routine?

    You are correct in your understanding here... SELF calibration removes only the ADC errors, while SYSTEM calibration helps to remove errors inherent in the system (the combination of external and ADC errors). However, in order for this to work you have to apply very accurate input voltages to your system...
     

    Achieving a very accurate 0V signal is best accomplished by shorting the (differential) inputs of your system. In the case of a single-ended input you would short the input to ground. Then, if you have any signal conditioning circuitry in your system prior to the ADC, the ADC will measure the combined offset voltage of the signal conditioning circuit, plus the ADC's offset voltage. This measured value is then stored in the OFC[0:2] offset calibration registers and subtracted from all following conversion to account for and remove the offset error of the system. 
     

    Achieving a very accurate full-scale voltage (full-scale for the ADS1255 is 2*VREF) can be more difficult. Perhaps, you can calibrate your system in a lab setting with a very accurate DC source; however, when deployed into the field you may not have access to an accurate 5V source (for example), in which case you may very well decide not to perform system gain calibration, which might be a good decision! (NOTE: When deciding between calibrating with an inaccurate source or not calibrating, it is better to NOT calibrate since an inaccurate calibration can make the overall system error worse.)

    For performing gain calibration, the ADS1255 expects an exact 2*VREF voltage to be applied to its inputs. (For example, if you have a front-end amplifier with a gain of 2 V/V, then you would only apply 2.5V to the input of you system so that the ADC sees a 5V input, when VERF = 2.5V).

    Using the same example above, say you had a very accurate 2V voltage source and wanted to perform gain calibration with this voltage, you could still perform system-gain calibration with the 2V source, but you would then need to read back the value stored in the FSC[2:0] registers and scale it by a factor of 0.8 (2V / 2.5V), since the ADS1255 will have calculated a gain error scaling factor of about 1.25 (and 0.8 * 1.25 normalizes this scaling factor for any input voltage). Therefore, it is possible to use any voltage for the system-gain calibration, but it is recommended that you use a voltage as close to full-scale as possible for best results.

    The gain error scaling factor is also stored and all following conversions results are multiplied by this correction factor (after subtracting the offset error). It is very important to make sure you perform the offset calibration FIRST, and then the gain calibration because you don't want any offset errors to affect the gain error measurement, and hence throw off the gain error correction factor.

    I hope that answers your question. I would also recommend checking out the ADS1255 Excel Calculator, located here: http://www.ti.com/lit/zip/sbac145 to see how the OFC[2:0] and FSC[2:0] values are converted into an offset voltage and gain error scaling factor.

     

    Best regards,
    Chris