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.

ADS1256: How to get correct voltage reference

Part Number: ADS1256
Other Parts Discussed in Thread: LMP91000, , REF3320, REF6025

I am using a Waveshare ADS1256 board to read gas sensor connected through LMP91000. I am using VRef 2.048 on the LMP91000. I have tried connecting the Vref from LMP91000 to the Vref on the ADS1256 board with the AINCOM tied to ground. I have also tried using the ADS1256 builtin 2.5V Vref. In both case the Vref 2.048 from LMP91000 is also connected to A0 on ADS1256. However the Voltage sensed on A0 is 2.069. Can you please let me know what I should do to get the correct ref voltage of 2.048V. The PGA is set to 1, ACAL to 1. I am a newbie so please try to explain elaborately.

Regards

Vijay

  • Hi Vijay,

    Welcome to the TI E2E Forums!

    What are you using for the LMP91000's reference voltage?
    Both the LMP91000 and the ADS1256 do not have integrated references; these devices require external reference sources. What is your reference source for the LMP?

    I assume that the LMP91000 is on a separate PCB connect to the Waveshare board, is that correct? How do you have these boards connected?
    It is likely that each PCB may be at a slightly different ground potential and so the voltage reading is showing an offset based on this difference.

    Have you tired probing the input and reference voltages of the ADS1256?
    When you measure the LMP's reference voltage with the ADS1256, I assume you are measuring the voltage between AIN0 and AINCOM. From the ADC's perspective, it is measuring the voltage potential between AIN0 and AINCOM with respect to it's reference voltage. If you are getting an incorrect reading then I would double check (using a multimeter) than the voltage between VREFP and VREFN is really 2.5V as you expect, and that the voltage between AIN0 and AINCOM is 2.048V as expected.

    Best regards,
    Chris

  • Dear Chris

    I forgot to mention that we have LMP91000 circuit with reference voltage of 2.048 generated by REF3320AIDBZT. The ADS1256 board also have an in built reference voltage of 2.50V generated by LM285D-2.5. The voltage between GND and AIN0 is 2.048V. I have used the following combinations with the results as below.

    First Setting
    Vref 2.048 from LMP board to Vref of ADS1256 and the AINCOM tied to ground. The voltage on AIN0 - 2.0623 V. The voltage between AINCOM and AIN0 is rapidly fluctuating between 0-0.345V. I get the same results even when I change the Vref of 2.048 to the Vref 2.5V on the ADS1256 board.

    ASD1256 Chip ID = 0x3
    Vref : A0 = 348D5A, 3444058 ( 2.062 310 V)
    O3 : A1 = 1A5B12, 1727250 ( 1.034 281 V)
    SO2: A2 = 1A60A8, 1728680 ( 1.035 137 V)
    CO : A3 = 1A5E70, 1728112 ( 1.034 797 V)
    NO2: A4 = 1A5ED4, 1728212 ( 1.034 857 V)
    A5 = 1D47D3, 1918931 ( 1.149 060 V) - Not connected
    A6 = 1D47BA, 1918906 ( 1.149 045 V) - Not connected
    A7 = 1D485E, 1919070 ( 1.149 143 V) - Not connected


    Second Setting
    Vref is from LMP board is connected to AINCOM. Whether the Vref of ADS1256 is connected to 2.5V or whether it is open, I get below results.

    ASD1256 Chip ID = 0x3
    Vref : A0 = 000AB8, 2744 ( 0.001 643 V)
    O3 : A1 = E5D887, -1714041 (-1.026 371 V)
    SO2: A2 = E5DDAE, -1712722 (-1.025 582 V)
    CO : A3 = E5DB9B, -1713253 (-1.025 900 V)
    NO2: A4 = E5DBF3, -1713165 (-1.025 847 V)
    A5 = 04C2C4, 312004 ( 0.186 828 V) - Not connected
    A6 = 04C3D1, 312273 ( 0.186 989 V) - Not connected
    A7 = 04C3A5, 312229 ( 0.186 963 V) - Not connected

    Third Setting
    LMP91000 Vref 2.048 connected to ADS1256 Vref and AINCOM is open.

    ASD1256 Chip ID = 0x3
    Vref: A0 = FB4282, -310654 (-0.186 020 V)
    O3 : A1 = E31034, -1896396 (-1.135 566 V)
    SO2: A2 = EEFEEF, -1114385 (-0.667 296 V)
    CO : A3 = EEFEE9, -1114391 (-0.667 300 V)
    NO2: A4 = EEFD60, -1114784 (-0.667 535 V)
    A5 = 0001EC, 492 ( 0.000 294 V) - Not connected
    A6 = 0001ED, 493 ( 0.000 295 V) - Not connected
    A7 = 000235, 565 ( 0.000 338 V) - Not connected

    Fourth Setting
    ADS1256 Vref 2.5V used and AINCOM is open.

    ASD1256 Chip ID = 0x3
    Vref : A0 = FB3AB2, -312654 (-0.187 217 V)
    O3 : A1 = E3029D, -1899875 (-1.137 649 V)
    SO2 : A2 = EEF750, -1116336 (-0.668 464 V)
    CO : A3 = EEF605, -1116667 (-0.668 662 V)
    NO2 : A4 = EEF724, -1116380 (-0.668 491 V)
    A5 = 000153, 339 ( 0.000 202 V)
    A6 = 00018D, 397 ( 0.000 237 V)
    A7 = 000177, 375 ( 0.000 224 V)

    Please see the schematic of
    www.waveshare.com/.../High-Precision-AD-DA-board.pdf
  • Kindly suggest what should be my settings for the ADS1256 if my Vref from the LMP board is 2.048V. Should I change the Vref on the LMP board to 2.5V for better results.
  • Hi Vijay,

    Without knowing more about your circuit, my best guess is that you probably want to use one reference source for both the LMP91000 and the ADS1256, that way any reference voltage error will affect both the analog signal and the ADC reference equally (creating a ratiometric measurement which is more immune to changes in the reference voltage). 

    Unfortunately, both the REF3320 and LM285D-2.5 are probably not well suited as references for the ADS1256. The reference inputs on the ADC are switched-capacitor inputs which require a buffered reference source. Therefore, you would either need to add a buffer on the output of the reference (see the ADS1256EVM schematic at the end of the EVM UG) or switch to a buffered reference, such as the REF6025.

    Here is a link to the ADS1256EVM User's Guide:

     

    Regarding the circuit configuration, using two separate PCBs is not ideal for this type of precision analog device. Nevertheless, the ADS1256 analog and reference inputs are DIFFERENTIAL; therefore, you will need to be sure to have the proper connections for both the positive and negative input pins.

    VREFP should connect to the reference source (2.5 or 2.048 V).
    VREFN should connect to the ground pin of the reference source.

    The positive input (AIN0) should connect to the output of the LMP91000.
    The negative input (AINCOM) should connect to either the reference voltage or a common ground (shared between the two PCBs).

    The ADS1256 will measure the differential voltage between the two input pins that you've selected in the MUX register.

    After wiring up these connections I would recommend measuring them with the ADS1256 and a multi-meter, to make sure that you've supplied the correct voltages and that the output codes of the ADS1256 match the signals applied.

     

    Best regards,
    Chris

  • Dear Chris

    Please see attached schematics and suggest changes. Is it ideal to use a MCU with builtin ADCs or is it better to use a separate ADC chip? Should I make new board with both LMP and the ADC or is it OK to use an MCU with ADC and a separate sensor board with LMP? I have recently bought MS-EXPFR6989 EVM. I plan to use it with the sensor board (please see attachment).

    Thanks & regards

    Vijay

    High-Precision-AD-DA-board.pdf

    Sensor_PCB.pdf

  • Hi Vijay,

    An external/separate ADC is likely to be much higher performance than an ADC integrated into an MCU. Such ADCs (MCU integrated) are usually limited to about 12-bits of resolution. If that is sufficient for your application than it would be much simpler and cheaper to go with that option. However, for higher performance you might go for a higher resolution ADC, such as the ADS1256.

    How large is the voltage signal provided by your gas sensor?
    You may or may not benefit from the higher-resolution ADC if the signal-to-noise ratio is not much more than "2^12:1" (i.e. 12-bits). The TIA inside the LMP91000 has 0.1 to 10 Hz noise of about 3-5 uVpp. Ignoring the sensor's noise, you could use this noise value to roughly estimate what your signal to noise ratio will be and the resolution you can achieve (independent of the ADC that you end up using, since the ADC won't be able to differentiate between the sensor and noise signals).

    Best regards,
    Chris