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.

ADS1115: 5mV offset when reading GND on A0...A3

Part Number: ADS1115

Hello

I noticed that all ny readings were ofsetted by 5mV.

So, in order to troubleshoot, I connected A0 (the first anague channel) to GND and I read A0=-0,005V, which is 5mV

I tried on all other channels and I get similar results. 

Any idea why ADS1115 has this offset?

Thx

  • David,


    Sorry I haven't answered, but I've been out of the office.

    I assume that you're using the device, using the single ended configuration with the MUX (settings 100 to 111 with the MUX[2:0] bits). The typical offset for this setting would be ±3 LSB. Even on the largest FSR setting, the offset wouldn't generally be as large as 5mV.

    Just to be sure, what are all your register settings for the application? What output values are you getting from the ADC (not the converted voltage, but rather the raw output data from the ADC)? Also, can you post your schematic and how you ground your inputs to check the offset value?

    My first guess is that you have some sort of ground loop in your board. When you connect the input to the ground, the ground connection and the ground from local to the device may be a little off.

    Regardless, look through my comments, post back with a few responses, and we can continue to debug the circuit.


    Joseph Wu

  • Hello Joseph

    Thx for your reply

    My results are now much better, even though I don't know what I did to have different results.

    The output values (A0 to ground) are now:

    Raw Value -1.0
    Voltage -0.0000625019074068
    Raw Value -2.0
    Voltage -0.0001250038148137
    Raw Value -3.0
    Voltage -0.0001875057222205
    But I still have one error on my calculations. If you open the following attached file, you will see that, according to my calculations, the LSB is not exactly equal to the output value (0.0000625019074068) . Do you have any idea why?
  • David,

    First, the raw values that you list (-1, -2, -3) are all typical values of the offset. For that, I would assume that you're getting correct values, and you should try measuring some other non-zero voltages. 

    Second, I'm not able to access the site you sent a link for. This site is blocked by work, so I won't be able to access it. If you're having problems with an error in the calculation, you'll need to explain it or attach a file directly using the paper clip icon.

    Joseph Wu

  • Hello again

    Sorry, I was not  finding the clip icon

    please check if you can open this document and if so, please help me understand why is there this difference

    ThxADS1115 calculations.xlsx

  • David,


    Thanks, I see what you're talking about. I've clipped out the excel spreadsheet to show it here:



    First, I would point out that the difference from one LSB to the next is less than 1nV (you have basically have a difference of part in a million of 1mV). This difference comes from a small error in representing the number as a full scale. The LSB is approximate because of the difference between the number of negative and positive numbers in what we represent as negative and positive full scale.

    For this device you use 16 bits to represent the full scale. Here there are 2^15 negative numbers, one representing 0, and then 2^15-1 numbers representing positive numbers, so it's not symmetrical. If you used the output data times the 0.0625mV number, you'll come up one LSB short and you'll never perfectly reach positive full scale because there's no way to represent it the same way for positive to negative. Most of the time, we just use an approximate value and any errors are much smaller than the gain error.

    That might not have been clear, so let me explain it with a simple example. Let's say that the data output is 3 bits. If you said the full scale is ±2V, then you might represent codes this way:

    011   1.5V
    010   1.0V
    001   0.5V
    000   0V
    111   -0.5V
    110   -1V
    101   -1.5V
    110   -2V

    Again it's not symmetrical. There are four negative numbers, one at 0, and three positive numbers. We could represent +2.0V as 011 for the full scale, but the error would be a bit large at that point. For 16 bits, the missing LSB at the top is spread over a large set of numbers through the full scale.



    Joseph Wu