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: Collect voltage about ADS1115

Part Number: ADS1115

hi,
I have a question about ADS1115.
We used 1115 to collect multi-channel voltage. When the CPU woke up after dormancy, it was found that CPU read an error voltage data before update to the actual acquisition voltage. This error voltage was consistent with or slightly deviated from the voltage collected before the CPU dormancy.
So,
1. How can we avoid this voltage? Besides accelerating the collection rate and frequency, are there
any other ways to avoid this voltage?
2. How long is the fastest from startup to stable operation?
3. Will the register of 1115 store any potential pre-sleep voltage values?Despite the power cuts.
4. Will the random value of 1115 be read at the initial startup moment?

Best wishes,

Thanks!

  • Hi,


    Thanks for your question about the ADS1115. My guess is that the ADS1115 is being read a bit too early for the new conversions.

    1. I think you need to wait for the conversion to complete before trying to read the device. I'll discuss this after answering the rest of the questions.

    2. The device does have a small amount of time required to wake up the device before it starts taking conversions. This time is about 20us.

    3. The conversion register will hold the previous conversion until the new conversion completes.

    4. There shouldn't ever be a random value in the conversion register for the ADS1115. When the power is initially applied to the supply, the conversion register should read 0000h before any conversions are started. If the device is run in single shot conversion mode, conversions can be started and then the device powers down. If the ADC completes a conversion, then the ADC data stays in the conversion register until a new conversion completes.

    If you are operating the device in this mode, then you start a conversion after being powered down. You can wait a set amount of time to read the data. This time period is dependent on the data rate. Because the data rate is based on an internal oscillator that has some variance, you should wait an extra 10% of the data period to ensure the conversion is complete. For example, let's use 128SPS. The data period is 7.82ms. The wait time should also include the 20us for startup.

    Wakeup the device with a write to the configuration register to start the conversion, then wait for the conversion to complete before reading the device.

    Wait time = 20us + (data period + 10%) = 8.62ms

    This should give you the latest conversion data after waking up the device.

    Joseph Wu

  • Hi,

    Thank you for your answer.

    My mode is continuous conversion mode, and the data rate is 860SPS.

    My CPU is in a dormant state, 1115 is in a power failure state. It start the transition immediately when it wakes up, while 1115 needs a stable time.

    Is that the problem? How can I solve it, please?

  • Hi,



    There are two important things to note with continuous conversion mode. First, without using the ALERT/RDY pin to indicate the completion of a conversion, it is difficult to know when the conversion really completed so that you can know when to read out the data. Second, when you change the configuration register (changing one channel to another). The channel change is not immediate. The device waits for the conversion in progress to complete and then sets the new configuration. Because of this, you may need to wait as much as two data periods to get the data.

    Going back to your comments, you say:
    "My CPU is in a dormant state, 1115 is in a power failure state. It start the transition immediately when it wakes up, while 1115 needs a stable time."

    I do not understand what you mean by this and I need you to explain this more clearly. Do you mean that there is no power going to the ADS1115? If that is the case, then the device resets back to default configurations.

    I also think you should describe your system with more detail. I need to know how you are operating the device and what different power cycling and how you intend to read out the device. This would give me more information to better help you.



    Joseph Wu

  • Hi,

    Thank you!

    I use two 1115 devices to collect 7-channel voltage. When the CPU goes to sleep, all peripherals are in the state of power-off, including 1115.

    At the moment when the external trigger woke up the CPU, I carried out AD reading operation and sent it out through the serial port, with a sending cycle of 40ms. I found that it took at least 1.2 seconds for the 7-channel voltage to reach an accurate and stable value.

    Best wishes!

  • Hi,

    There really shouldn't be any real delay to reach a stable value. The device doesn't have large settling times, and any delay from the data would be associated with the data period of the device. If the device is starting off from a new power cycle, the data period should come from the default data rate of 128SPS. That means that the data period would be just short of 8ms. There shouldn't be anything that would require 1.2 seconds of settling.

    Can you provide some data showing the start-up and settling of the ADC measurement? I'd also like to see a schematic. Perhaps there's some input settling from any filtering that you have on the device's front end.

    Joseph Wu

  • Hi,

    Thanks!

    My guess is that,

    when the CPU went to sleep, all the tasks were suspended and the 1115 lost power. When CPU  woke up moment, 1115 started from the initialization state, and it would took some time to reach the state I set.

    All tasks were performed from where they were last paused (read 1115 in a task) and tasks were all not initialized and restarted, so when CPU wake-up, the 1115 was not ready yet, and the data have been sent out, the data may be the random error values.

    In software, tasks can only be restarted when the power is off, so I can't get the task to restart at the same time as 1115, which may be the problem.

    Best wishes!