Post Go back to editing

ADC values are inaccurate

Category: Datasheet/Specs
Product Number: AD7124-8

The Ad7124-8 is on a CN0554-RPIZ board. The RPi is running Kuiper Linux. I am using the libiio API to communicate with the Ad7124. The onboard jumpers determining the gain are in their default position. According to the documentation (unipolar operation), the voltage in millivolt should be given by the formula COUNT * 2500 / (2^24) * 11, however I found the formula to be off by about 4% on one board and 8% on another one. I also found that if I remove the jumpers in the input range selection header (in this case the input range is limited to 2.5V), the count is off by a lot more. 

I am pretty sure is not a software error, as I get the same counts whether I use the DMM in the IIO oscilloscope app, the CN0554.py official example, or my code.

Does anybody have a clue of what the problem might be?

Massimo 

Thread Notes

  • Hi,

    We will contact the product owner and get back to you.

    Thanks,
    Janine

  • Thanks!! Looking forward to receiving some guidance.

  • Hi   , It's been a month and still not feedback from the product owner. Please advise.

    Massimo

  • Hello Massimo,

    Can we ask for some photos of your actual hardware setup along with a detailed illustration of your wiring connections? 

    Additionally, have you also tried to compare the ADC voltage readings from the CN0554 IIO Oscilloscope or example code to voltages measured by a multimeter/voltmeter? 

    Thank you and regards,
    Andy

  • Hello Andy,

    Thanks for getting back to me. 

    The hardware setup is quite simple: a power supply is directly connected to the AIN0 and AIN1 pins, a digital multimeter is also connected to these pins. Here are some pictures.

      

    The ez-hooks are connected to the cables coming from the power supply and the digital multimeter respectively.

    Channel 2 of the power supply is connected to the ADC pins

    This is the applied voltage as measured by the multimeter.

    Under the conditions reported above, the readings from the IIO Oscilloscope are as in the following pictures

     .

    The voltage reported by the IIO DMM should be multiplied by 11, thus giving 4.843 V. This is consistent with the raw value of 2954453 counts reported by the IIO oscilloscope debugger.

    With the supply voltage set to 10 V, the measurements are as reported in the pictures below.

     . Voltage measured by the multimeter.

    When multiplied by 11, the value reported by the IIO DMM is 9.685 V, again consistent with the raw value of 5908394 counts.

    Thanks.

  • Hello  ,

    It's been a while and I was wondering if you had any advice about this issue.

    Thanks.

  • Hi  ,

    Apologies for the very late response.

    We have a setup a test on our side and we have observed that there is a 3% difference between the actual voltage supplied into the on-board LT5400 resistor network and the computed voltage value from the IIO Oscilloscope measurement. After reviewing the software drivers, we confirmed that the board is operating in a gain of 1 meaning the buffers are disabled. We are continuously looking into the ad7124 linux driver with regards to any potential offset configurations. Apologies for the delayed response.

    I would just like to confirm if you are using the latest ADI Kuiper Linux image version: Kuiper Linux Release Notes [Analog Devices Wiki]Kuiper Linux Release Notes [Analog Devices Wiki]?

    Thanks and regards,
    Andy

  • Hi  ,

    I am using the 2022_r2 Patch2 version with the latest boot files. I did try the 2023_r2 version as well and the issue was still there. 

    I am a bit confused by your statement about "gain of 1" and buffers. Were you referring to the libiio buffers? If so, does it mean that when the board is configured with a gain of 1 (instead of 11), we should not use the libiio buffer to read the ADC values, but we should just read the "raw" attribute?

    Thanks,

    Massimo

  • Hi Massimo,

    So sorry for the confusion. I was referring to the AD7124-8 ADC when I mentioned that it is operating with a gain of 1. According to the AD7124-8 datasheet, if it is operating at a gain of 1, the device is operated in unbuffered mode. Page 46 of the AD7124-8 datasheet states that:

    "When the device is operated in unbuffered mode, the device has a higher analog input current. Note that this unbuffered input path provides a dynamic load to the driving source. Therefore, resistor/capacitor (RC) combinations on the input pins can cause gain errors, depending on the output impedance of the source that is driving the ADC input."

    Regards,
    Andy