ADS125H02: Unable to read correct data

Intellectual 720 points

Replies: 14

Views: 213

Hi Bryan,

Initially, we want to configure it for single-channel single-ended negative voltage ADC conversion, we selected the internal reference of 2.5v

and finally started a conversion, when read through the RDATA register we are not getting the desired output, it generated a random digital value when cross verified for the analog value, we found that AINCOM produces 2.8v and AIN1 produces 10.7v varyingly. Is there a possible way to program this IC for single-ended conversion?

(first byte, second byte, CRC-2)

Reference Configuration (REF) Register    (0x46,0x10,0x82)

MODE4         (0x50,0x23,0x32)

START             (0x08,0x00,0x7F)

14 Replies

  • Hi Sasi,

    The H02 will always measure between two of the three input channels. This is indicated in the MODE4 register. So if you want a true single-ended measurement, you would need to connect one of these inputs to GND (most likely AINCOM)

    In the schematic you sent in your previous thread ( you have AINCOM tied to ground through a 0ohm resistor, so this should be okay.

    What is the voltage you have applied to AIN1? If you are leaving your inputs floating, they could be anywhere within the supply range.


  • In reply to Bryan Lizon86:

    Customer response:

    Hi Bryan,

    AINCOM is connected to ground, AIN1 is connected to a pot varying from 0 to 3.3v, however, we did not get the desired digital value, so while checking the PIN the multimeter reads voltage readings from(2.8v to 10v) in AIN1 pin, and even at such high voltage levels the digital values are low and constantly changing from (0x00,0x00,0x02, to 0xDb,0xD1, 0x00) whereas most of the time I get the value of (0x00,0x00,0x02)

  • In reply to Bryan Lizon86:

    In reply to sasi kumar1:

    Hi Sasi,

    Can you apply a known voltage directly to the ADC inputs from a precision source and try to measure that back using the internal reference? That eliminates any issues with the pot.

    Just apply 1V between AIN1 and AINCOM, and make sure that AINCOM is grounded. Please send me the raw code results of these measurements as well as the oscilloscope shots.

    Also, you should be able to probe the DRDY pin on the H02 to see pulses at ~1/data rate in continuous conversion mode. This is another indication that the device is set to output data correctly. If you do not see these pulses in continuous conversion mode, the H02 is not outputting data.


  • In reply to Bryan Lizon86:

    Hi Bryan,

    I applied precisely 1v to AIN1 and connected AINCOM to ground

    I provided three reference selections 

    1)internal reference selected(0x46,0x10,0x82)  and the RDATA value is(0x00,0x00,0x20)

    2) External reference (0x46,0x0A,0xC4) and the RDATA value is(0x00,0x00,0x20) REFN0 - 0V, REFP0-5V

    3) AVDD (default) and AGND (default) set as a reference this provides different values for  RDATA

    yet as you suggested i took the snapshot of DRDY with respect to MISO pin so even if the DRDY is high i am receiving

    yellow line - MISO output

    blue line - DRDY line


  • In reply to sasi kumar1:


    i have not got any response kindly reply me

  • In reply to sasi kumar1:

    Hi Sasi,

    If you issue the RDATA command, the output should be 8 or 9 bytes long. In your last post you have only provided 3 bytes of data - can you provide the whole string of data when you issue the RDATA command?

    You also mentioned that the data varies for the case where VREF = AVDD/AVSS, but did not provide these values. Is the output data close to the correct value?

    I don't see DRDY pulsing in the images you sent. I only see DRDY transition (high, low, high) one time in the second image. Are you operating in continuous conversion mode or pulse convert mode? Can you put the device in continuous conversion mode, begin conversions, and then see if you can see DRDY pulses at 1/data rate? You do not need to read data during this test, you are just trying to see if the device is continuously updating DRDY.


  • In reply to Bryan Lizon86:

    Hi Bryan,

    For the reference voltage, I am only using internal reference +2.5V & -2.5V. Since I am not getting the output i m trying all other combinations, 

    My DRDY pin is not getting low at all yet I am able to read values in DOUT pin yet not the correct value

    First image RDATA output; yellow line - output, BLue line - clock;

    second Image yellow line -output, BLUE line DRDY

  • In reply to sasi kumar1:

    Hi Sasi,

    The data read transaction in the first image actually looks correct: 0xFF 12 00 AA 00 00 00 2B, where 0xAA is equal to CRC-2 of 0x12 00, and 2B is equal to CRC-3 of 0x00 00 00. This implies that you are not reading the STATUS byte, is that correct?

    • Are you sending the START command or holding the START pin high in order to begin conversions? If you use the START command
    • Are you using pulse convert or continuous conversion mode?
    • And what data rate are you using for these measurements?

    Again, I would try inputting a 1V signal directly into the ADC, use the internal VREF, put the device in continuous conversion mode, issue the START command, and see if there is activity on DRDY. Depending on the data rate you select you might have to zoom out on the oscilloscope's time scale in order to see multiple pulses.

    Also, please send a screenshot of DIN and DOUT when you issue the START command so we can see if the ADC is interpreting this command correctly


  • In reply to Bryan Lizon86:

    Hi Bryan,

    I am using continuous conversion mode.

    IF I use START PIN to start my conversion random values are produced, the Yellow line is DRDY, and the BLUE line is DOUT, here the time duration also varies for outputs, since the time stamp provided is 40us for both.

    Now I am using the start command for starting the conversion, START pin is grounded,

    First image yellow line -cs, blue line clock

    Second Image blue line - clock,  yellow line DI

    third image - yellow line - DI, blue line - Dout

    without providing start command or 3.3V to the start PIN when I read the RDATA register I am getting the same output,

    I have set the default data rate of 20SPS, I have attached the images for 1s response where my DRDY line gets low more than 20 times , and even if the DRDY is high the DOUT provides the same output

  • In reply to sasi kumar1:

    Hi Sasi,

    Do you have a logic analyzer? It would make this much easier if I could see CS, DRDY, DIN, and DOUT all at the same time.

    I am not really sure what the signals are in the last three images you sent either, since they are not labeled. Is that DRDY and DOUT? If so, the second image shows DRDY going low multiple times in a row. To operate the ADC effectively, you should send the RDATA command as soon as DRDY goes low in order to make sure that you clock out data fast enough. Multiple pulses in a row suggest that you missed a conversion. Are you using the dedicated DRDY pin to identify when new data is ready?

    You can also try to read back the supply voltage and temp sensor using the MODE4 register (MUX[2:0] = 100b or 110b). If you are able to read correct data from the internal monitors, then something else must be incorrect at the input of the ADC.