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.

ADS131E08: The calibration of the offsets does not work correctly.

Part Number: ADS131E08

Tool/software:

Hello,

After sending the calibration command, I put the ADS in short-circuit mode and performed some acquisitions to check the calibration. The measured values are not very close to 0. Normally, the ENOB for my configuration is 19 bits, which should give error values of up to 32, but the values I'm getting are much higher.

Before calibration :

CH1 = -1137
CH2 = -989
CH3 = -1075
CH4 = -993
CH5 = -901
CH6 = -832
CH7 = -898
CH8 = -954

After calibration :

CH1 = 144
CH2 = 291
CH3 = 204
CH4 = 287
CH5 = 58
CH6 = 128
CH7 = 59
CH8 = 322

The results improve after calibration, but do not conform to the 19-bit ENOB. What's more, the results are stable, indicating that the problem is not noise-related.
Do you have any idea of the cause of this problem?

  • Hi Rachid,

    Can you let me know the steps you did for the offset calibration? What's your data rate and Gain setting? Did you short the input by setting the MUXn[2:0] to 001 in the CHnSET register for the test?

    BR,

    Dale

  • Hi Dale,

    Here are the steps for performing the offset calibration:

    1. Send the SDATAC command.
    2. Send the OFFSETCAL command.
    3. Wait for 160 ms.
    4. Send the RDATAC command.

    After completing the calibration, I proceed with data acquisition:

    1. Send SDATAC.
    2. Set CONFIG1 = 0x96 (Data rate = 1ksps).
    3. Set CONFIG2 = 0xE0.
    4. Set CONFIG3 = 0xE0 (Vref = 4V).
    5. Set CHnSETs = 0x11 (Gain = 1, MUX = 001).
    6. Enable the start signal.
    7. Read the data.
  • Hi Rachid,

    You procedure to do the calibration is correct, however the 19-bit ENOB expected for your configuration does no mean the code you got should be less than 2^(24-19) = 2^5 = 32. You can find the equation for ENOB calibration from the page 16 in the ADS131E08 datasheet.

    The code you got after calibration are reasonable code and actually are very small if you convert these codes to voltages. You can see the following code I got is higher than the code you got, but the ENOB is ~21 bits.

    BR,

    Dale

  • Hi Dale,

    Thank you for your response. The data I provided is in raw form, not converted to voltage. When I convert the raw data to voltage and calculate the ENOB, the results range from 14 to 16 bits, rather than 21 bits.

  • Hi Rachid,

    I understood your data are raw data, not voltages. If you look at the equation I provided for calculating the ENOB, you should calculate the RMS noise from a batch of data first, not a single code, then you can calculate the ENOB.

    BR,

    Dale

  • Hi Dale,

    As I mentioned earlier, the measurements are stable, and I'm not focused on measuring noise. However, I want to understand why there's an error in the measurements, as it appears that I am using a 16bit ADC. For example, on channel 8, I get a reading of 322 instead of a value closer to 0.

    Best regards,

  • Hi Rachid,

    You had a concern about 19-bit ENOB, this is the reason why I showed the equation and explained the calculation. The ENOB is related to the noise.

    By default, ADS131E08 ADC works in 16-bit resolution&32-ksps data rate mode after the ADC is powered up. According to your software code, you programmed  the register CONFIG1 = 0x96 (Data rate = 1ksps) that will set the ADC to 24-bit resolution mode after the calibration. You can actually change the order of your software code, program the registers first so the ADC will be configured in the 24-bit resolution&1-ksps data rate mode, then do the calibration.

    BR,

    Dale

  • Hi Dale,

    The offset calibration after configuring the data rate to 1 ksps still hasn't resolved my issue, I’m still getting the same value.

    I think the offset calibration sets the data rate to 1 ksps before collecting offsets, as outlined in the datasheet.

  • Hi Rachid,

    You are right, the calibration process will set the ADC to 1-ksps, thanks for pointing it out. Let me clarify your 'concern'. After the DR[2:0] in the CONFIG1 register is set to 110, the ADC works in 24-bit mode, so

    • 1LSB = (2 × VREF / Gain) / 2^24 = (2 × 4 / 1) / 2^24 = 476.8nV.
    • Before the calibration, the voltage for -954 code= -954 × 1LSB = -454.8uV
    • After the calibration, the voltage for 322 code = 322 × 1LSB = 153.5uV that has been 3 times lower than the voltage before the calibration, and also it is lower than the typical Voffset = 350uV. 

    ADS131E08 only collects 16 data points for the calibration. You could do an additional calibration by collecting more samples and averaging them in your software on your CPU, but a code closer to 0 should not be expected.

    BR,

    Dale