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 RDY pin single ended conversion

Hi,

I'm using the ADS115 in single shot mode with single ended inputs. The ALERT/RDY pin is configured as toggling to 0 when conversion is completed.

Function works except when the analog input hits GND. (Analog input GND is in the voltage ratings according to the datasheet). I can see why this might happen, the ADC internal logic for RDY pin is still working as a comparator using both the high threshold and low threshold registers. Hitting GND with single ended inputs you end up having either 0xFFFF or 0x0000 as conversion results which are both 'lower' than the low register.

If this is the case it might be good to explain it better in the datasheet, or am I doing something wrong?

Marco

  • Hello Marco,

    Thank you for your query.

    Can you confirm that Hi_thresh register MSB is set to '1' and the Lo_thresh MSB is set to ‘0’?

    The datasheet lacks clarity on one aspect here. COMP_QUE bits should be anything other than '11' for the conversion ready (RDY) to show up at the ALERT/RDY pin output. Can you try this? I plan on explaining this section a bit better in the next datasheet revision. If that's your set up, the RDY pin should always give out the conversion ready (RDY) signal. Hitting GND with single-ended inputs shouldn't stop the device from giving out the conversion ready signal.

    Regards,
    Krunal
  • Hi Krunal,

    here is the config:
    lo_threshold -> MSB = 0x00, LSB = 0x00;
    hi_threshold -> MSB = 0x01, LSB = 0x00; (or left as the default value 0xFF)
    config -> MSB = 0xF3, LSB = 0x80

    ALERT/RDY pin works as expected, reflecting MSbit of the config register (negated) unless the input hits GND. In this case MSbit of config register works as expected (i.e. '0' during conversion and '1' when finished) while ALERT/RDY stays at '1' (idle).

    I suspect a bug into the logic.

    Thanks
    Marco
  • Ok I think I got it but is way too much misleading.

    MSB in this case means 'most significant bit' while from the way it is written in the datasheet looks like 'most significant byte'
    Indeed where bit is intended quoting is used, like '1' or '0' while in the case of lo_threshold and hi_threshold the datasheet says MSB = 1 which leads to think in byte since the same acronym is used in the description of the I2C protocol.

    Marco
  • Hi Marco,

    Bit versus byte is often misleading in a lot of documentation and I understand your confusion.  In the Alert/Ready when using in the conversion ready mode the discussion is talking about most significant bit.  The clue is in the discussion where '1' or '0' is specified as a single binary value as opposed to a byte value.

    What is easiest for me to think about what is happening with the comparator is to consider what will force the comparator to always trip.  If you exchange the values in the hi and lo registers from the default values the comparator will always trigger.  The default values are device full-scale, and will not trigger as the normal measurement is within that range.  If you swap the register values, neither the lo nor the hi register values can be satisfied, and the result will trigger the comparator on each conversion.

    Best regards,

    Bob B

  • Hi Rob,

    thanks. If you think in terms of a comparator setting the hi_threshold as 0x8000, 2's complement the -full_scale, is indeed like saying every value will trip. I don't know why I thought the hi_threshold value should always be greater than the lo_threshold, while actually this case in an exception.