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.

ADS127L11: Not Getting resolution in microvolts.

Part Number: ADS127L11
Other Parts Discussed in Thread: LM358, OPA320, LM7705

Not Getting resolution in microvolts. When we apply a voltage signal(up to 10 millivolts) to ADC, not getting the required counts. But when we apply a signal greater than 25 millivolts to  1V we are able to sense the voltage correctly. But we want resolution in microvolts. But we are unable to do this. Please give solution for this. Thank you.

  • Hi Haresh Prajapati,

    Can you please provide a schematic for your system so we can identify any issues?

    Also, can you describe in detail the source you are using to generate the 10mV signal?

    Please share the data you are receiving from the converter as well so we can see how the output changes when you apply a 1V signal and the 10mV signal, for example

    -Bryan

  • Basically we are generating current signal of 250 micro amp. from cypress microcontroller,  cy5688AXI-LP099. and passing this current to a 15 ohm resistance. Then we are measuring voltage across the resistor by using ADS127L11, and controller through SPI communication. We are using reference voltage 1 V. The voltage across the resistance is 250 micro amp * 15 = 3.75 millivolt . So the count should be According to this. But we are not getting the count for this. We are generating voltage from programmable DC power supply, 72-13360.

    When we apply direct voltage 1 V to this ADC , we received count = 8224124

    When we apply 500 mV to ADC, we received count = 4078166

    When we apply 250 mV to ADC, we received count = 2039538

    When we apply 100 mV to ADC, we received count = 789516ADC_Reading.pdfADS_PCB.zip

    When we apply 50 mV to ADC, we received count = 394758

    When we apply 25 mV to ADC, we received count = 197122

    When we apply 10 mV to ADC, we received count = Not receiving value.

    I am attaching schematic for connecting the 15 ohm resistance, passing 250 micro amp current through it, read the voltage across this resistor.

    I am also attaching the code for giving 1 V, 500 mv , 10 mV directly, and reading ADC count from SPI communication for cypress microcontroller.

  • Hello Haresh,

    You are using an LM358 buffer.  Although the inputs can operate down to 0V, the minimum output voltage will be between 5mV and 20mV when operated from a single 5V supply, so any voltage less than about 25mV will not be correctly output from the LM358 amplifier.

    I suggest using a negative charge pump such as LM7705 to generate a -0.2V supply allowing the amplifier output to fully go to 0V.  Also, suggest using a more accurate amplifier, such as the OPA320 to buffer the current shunt resistor and drive the ADS127L11 inputs.

    Regards,
    Keith Nicholas
    Precision ADC Applications

  • now we are given voltage from programmable dc power supply directly to the ADC pin. we are using ref voltage 4.829 V. and reading the voltage by cypress controller. But we are unable to get the resolution even in millivolts. I am sending to you the input voltage , getting counts and calculated voltage to you. i am using same code as I sent to you. Please give reply as soon as possible. we want resolution in microvolts for our application.

    input voltage               count           calculated output  voltage

    4829 millivolt          8355711          4829 millivolt

    4730                       8158332          4714.929133858268 

    4720                       8158332          4714.929133858268 

    4620                       7960953          4600.858267716536

    4600                       7960953          4600.858267716536

    3670                        6316128          3650.267716535433

    3650                       6316128           3650.267716535433

    3600                       6184542           3574.220472440945

    2360                       4079166          2357.464566929134

    2350                      4013373           2319.4409448818897

    45                          65793               38.023622047244096

    40                          65793               38.023622047244096

    38                          65793               38.023622047244096

    35                          0                        0

    30                           0                       0  

    20                           0                       0

     

  • Hello Haresh,

    This appears to be a problem with the driver/code, since you are getting the exact same reading from the ADC 3 times each.  With the same input voltage, you should always read a slightly different value due to noise.

    Please connect a logic analyzer to your board and capture the following signals over a full SPI frame, similar to figure 8-33 in the ADS127L11 datasheet.

    /DRDY, /CS, SCLK, SDI, SDO

    Also, I took a second look at your schematic and noticed an error: you have IOVDD and CLK pins connected incorrectly.

    Also, according to your schematic notes, VCC_3 is a 5V supply.  I assume you intended to connect this to IOVDD, in which case your IO pins will operate at 5V logic levels.  Please confirm that this is compatible with your MCU logic level requirements. 

    Regards,
    Keith

  • Thank you for your great support. We find out that(by inspection at logic analyzer) we are receiving only 8 bytes because Cypress microcontroller supports only 8 bits data frame. That's why we are receiving only MSB 8 bits. Can you help us to find out the way how can  receive 24 bits from Cypress microcontroller. We have attached code for it. Can you please see that to find the solution? 

  • Hello Haresh,

    Sorry, but you will need to contact Cypress for any specific help in configuring their products.

    However, we do have example code for the ADS127L11 that you can modify to use to develop and debug drivers for the Cypress MCU.

    https://www.ti.com/tool/download/SBAC296

    One approach is to control the /CS line with a GPIO pin on your processor.  Then, you can use the SPI module on the MCU to transfer 3x 8b words and combine into a 32b signed integer.

    Regards,
    Keith