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.

ADS1257: ADS1257 Measurement error (gain error)

Part Number: ADS1257

Hello.

I will repost in English.

ADS1257 is used for differential measurement with 2000SPS, PGA = 2, ACAL ENABLE, BUF Disabled settings.

2.4V is input to AIN1 and REF from the high precision reference power supply.

Input 2.4V to 4.4V from another high-precision reference power supply to AIN0.

If 2.4V is input to AIN0 and AIN1 respectively, the measured value will be 0.01mV.

When AIN0 = 4.4V and AIN1 = 2.4V are input (differential input voltage error 0.1mV), the measured value is 1.984V, which is a large error of 16mV.

When AIN0 = 4.8202V is raised, AD outputs 7FFFFF.

SELFCAL is executed after SPS / PGA is set when the AD converter is started.

The order of gain error described in the data sheet is about -0.03% to -0.006%, but I feel that it is about -0.85% (PGA = 2 vs. PGA = 1.983) in the measurement data.

Is the 16 mV error reasonable for the ADS1257's capabilities?

Is it okay to use 2.4V from the same reference power supply for AIN1 and REF?

Please let me know if you have any other advice.

Thank you.

  • Hello.

    Write additional information.

    After the initialization was completed with the same settings, 4.8V was input to AIN0 from the high precision reference power supply, and the SYSGCAL (System gain calibration) command was sent before measurement.

    The results are as follows.

    REF = 2.4V, AIN0 = 2.4V, AIN1 = 2.4V → OUTPUT 0xFFFF91 (-0.00032V)

    REF = 2.4V, AIN0 = 4.4V, AIN1 = 2.4V → OUTPUT 0x6AAAC9 (2.000009V)

    REF = 2.4V, AIN0 = 4.8V, AIN1 = 2.4V → OUTPUT 0x7FFFFF (2.400001V)

    When System gain calibration is performed, the output shows the ideal value for the input.

    The circuit configuration has not been changed, but if SELFGCAL (Gain self-calibration) is executed, the operation will be the same as the one that was surrendered earlier.

    I feel that SELFGCAL (Gain self-calibration) is not working properly. Is it possible to improve the procedure?

    Or is it not possible to measure with high accuracy without performing System gain calibration?

  • Hi Umezawa-san,

    Thanks for reposting your questions in English.

    If I understand correctly, you see a relatively larger gain error (~1%) when the SELFGCAL is performed, while the gain error is almost 0% when you perform the SYSGCAL. Is this correct?

    If so, then this suggests that there is a larger source of gain error somewhere in the system that is not the ADC. The SELFGCAL only corrects the ADC gain error, which is typically negligible anyway. If the gain error is still large after performing the SELFGCAL, then you have other error sources in your system. This is especially true if performing the SYSGCAL eliminates the gain error.

    if you would like to send a schematic we can review and see if there are any other obvious sources of error that you might be able to remove.

    -Bryan

  • Hi. Brian-san

    Thank you for answering.
    I will post a test schematic.
    For the circuit configuration of the test circuit, refer to "Fig. 60. Basic connection of ADS1257" in the data sheet.
    We also measured the voltage at each point, so check it.

    TEST_ADS1257(PDF).pdf

    When the voltage of the input pin (AIN0, AIN1) of AD was directly measured, the input voltage fluctuated at the sampling timing.
    Also, as a result of measuring the voltage across the filter circuits R7 and R14 with an oscilloscope, it seems that a large current is flowing in the AD converter at the sampling timing.

    The test circuit is almost the same as the basic connection circuit of the data sheet except for the input buffer (OP284).
    It is thought that the same phenomenon occurs when measuring with the circuit of "Fig. 60 ADS1257 Basic connection".

    Is there a problem with the circuit configuration?
    Is it possible to improve by changing the circuit configuration or SPI programming?
    If you have any advice, please let me know.


    (I am using translation software. I'm sorry if the expression is difficult to understand.)

  • Hi Umezawa-san,

    I am confused as to what the actual issue is here. Are we still talking about a small error that is removed when you perform the SYSGCAL?

    The voltages you are showing in the scope shots appear for about 40-60ns, while the actual spike duration is ~10ns. How often does this repeat? You said at the "sampling timing" - is that the modulator frequency or the output data rate (ODR)? If the spike repeats at the ODR, what ODR are you using?

    Keep in mind that the modulator sampling frequency is ~ 500 ns when the gain = 2, so this voltage spike would not even be perceptible to the ADC (it basically gets averaged out). The sampling period is shown in the image below.

    Also, the translation is good as far as I can tell.

    -Bryan

  • Hi Bryan-san,

    I'm sorry for the confusion.
    First, the spike in the scope shot seems to be the timing of switching the MUX channel. (My oscilloscope couldn't measure the exact timing.)
    As Bryan-san says, I understand that this voltage spike is not recognized by the ADC due to averaging.

    What I don't understand is the cause of the error removed by SYSGCAL.
    (For me this error is not small and I want to understand the cause.)

    I thought the cause was as follows.
    (Only SELFCAL is executed. SYSGCAL is not executed.)

    When the ADC is used with PGA = 2, the input impedance of the ADC is ZeffA = 130kΩ and ZeffB = 110kΩ.
    ("Figure 27. Analog Input Effective Impedances with Buffer Off" and "Table 8. Analog Input Impedances with Buffer Off" in the datasheet)

    Since the ADC input filter circuit resistors 300Ω are connected in series, the resistance voltage divider causes the voltage to drop at the ADC input pins.
    For this reason, we thought that the ADC would show a lower value than the voltage value input from the reference power supply.
    (Simulation results are attached.)

    ADS1257 Input_Impedances VS 300Ω.pdf


    Is this understanding correct?

  • Hi Umezawa-san,

    One action you can take is to enable the ADS1257 buffer to see if the error is eliminated. This will help determine if the issue is related to the ADC input impedance (though having buffered inputs via the OP284 should basically be the same as turning on the ADC input buffer). If you do try this test, make sure that the input voltages are within the ADC range as specified in the datasheet. The absolute input voltage on each pin must be <AVDD - 2V with the buffer enabled. I know your system voltages are beyond this level, but you can just apply test voltages that are <AVDD-2V to see if enabling the ADC buffer makes a difference.

    You also have no filter resistors on the VREF inputs. You might try adding a 301-ohm filter resistor to the REFP input and removing capacitor C9. This will make the filtering more similar between the VREF and AINx inputs. I have seen this cause issues at other customers in the past.

    Please let me know the outcome of these tests.

    -Bryan

  • Hi Bryan-san,

    I got the following comparison data.
    1. Comparison data when buffer is enabled / disabled
    2. Comparison data when buffer is enabled / disabled when 300Ω is added and C9 is removed.
    please confirm.

    comparison data.pdf

    Data is acquired for VREF and input voltage in consideration of the input voltage range when the buffer is enabled.
    There is a difference between the data when the buffer is enabled and when it is disabled, and the ideal value can be measured when the buffer is enabled.

    In the data of adding 300Ω and removing C9, the error became large even when the buffer was enabled.
    It is thought that this is because the Reference input impedance of the ADC is 18.5 kΩ, so the resistance is divided by the 300 Ω resistor added in series, and the ADC recognizes the VREF voltage as a voltage that is about 1.6% lower.

    After all, a voltage drop occurs due to the balance between the input impedance of the ADC and the 300Ω resistance, and it is thought that this voltage is measured by the ADC.

    To use in the differential voltage range I want to measure (Vref 2.4V input 0.4-4.4V), do not insert a series resistor at the input when using with buffer disabled, or run SYSGCAL to eliminate the error. I thought I had no choice but to do it.

    Is my understanding correct?
    Is there any other way to get rid of this error?

  • Hi Umezawa-san,

    One thing we noticed is that the CMRR of the amplifier you are using is not very good (60 dB from 0 to 5V input). It might be worth checking if this is the issue.

    There appears to be better CMRR with a limited input range (86 dB from 1V to 4V). Therefore, you can try reducing the level of the input signal to >1V and <4V to achieve better CMRR. If the error reduces in magnitude, then this is the likely error source.

    Let me know if you are able to perform this test, and let me know the results

    -Bryan

  • Hi Bryan-san

    Thank you very much for contacting me.
    Due to the restrictions of the parts used, there is no choice but to use this amplifier. Also, the input voltage range cannot be changed. We have received your suggestions, but we cannot test them. sorry.

    Today, I shorted the 300Ω resistor of the filter circuit and tested it. As a result, the value close to the ideal value, which is the same as when the buffer is enabled, can be obtained.

    In the future, I will consider and verify the filter circuit.

    I would like to close this matter.
    Thanks to Bryan-san, I was able to deepen my understanding of ADC.
    Also, if I can talk to you, I would like to post again.

    Thank you very much.

  • Hi Umezawa-san,

    I am glad that you have found the source of your error, and that it has been removed.

    if you have additional questions, please start a new e2e thread and we will be happy to support you

    -Bryan