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.

ADS1015: Reading/Writing/Pointer Change Timing Questions

Part Number: ADS1015

Some questions relating specifically to p31 and Fig 15/16 of the DS.

[1]
p31 gives an example setup for setting up continuous conversion mode.
After [1. Write to Config register] and ADS1015's ACK, the Master keeps SCL high, transitioning SDA high to generate a "STOP" command.
The time needed to keep SCL high before the MASTER sends a START command again to begin [2. Write to Address Pointer register] is how long?
Is this tBUF from the DS? This is >600ns in "Fast Mode", or >160ns in "High-Speed Mode".

[2]
From [1] above, we have the config register set to our desired settings.
But now we need to change the Address Pointer register to the Conversion register.
This step is detailed in [2. Write to Address Pointer register]
This is just two bytes - the Slave Address, and Address Pointer - then the Master sends the STOP bit.
Now, we wait for ALERT/RDY pulse to tell us a conversion has completed.

[3]
Once we know a conversion is completed, we can go ahead with [3. Read Conversion register]
This is just the Slave Address, followed by R/W bit set to "Read", then ACK from ADS1015,
then the ADS1015 sends the data in the Conversion register via two bytes.
The Master sends "ACK" after each byte received, ending the transaction with "STOP"

Question1:
Let's say for continuous-conversion mode, ALERT/RDY was not used - and DR = 3300 SPS.
In this case, the Conversion time takes 1/DR = 303.1us.
We set the Master to initiate a Read every 305us. In such a case, there could be a time where the ADS1015 is outputting the data on SDA at the same time it finishes a conversion and tries to update the Conversion register? If so, what happens?

Question2: 
In continuous conversion mode, the input is sampled, and the result sent to the Conversion register.
Even if the Master doesn't read a result, the Conversion register is constantly being updated - yes?

Question3:
Same setup as Question 2, is it possible for the Master to change the Address Pointer and Read or Write data to another register without affecting the conversion results? That seems the case, but just want confirmation.

Thanks!

Darren

  • Hi Darren,

    Yes, the time needed between a stop and start condition is the tbuf time from the I2C timing requirements table.

    1. The output from I2C will contain the complete data from the last finished conversion.

    2. Yes, in continuous conversion mode the conversion register is constantly being updated.

    3. Yes, switching to read or write to another register will not affect the conversion results. Note that any changes to the ADS1015 configuration will take a full conversion to settle. So if the configuration is changed, the next conversion result available will be with the previous configuration. You will have to wait until the following conversion before the updated configuration has taken effect. 

    Another thing to note is that if the goal of the application is to switch between channels for each conversion, it is most likely a better option to simply use single-shot mode (for the reason I mentioned above, that the configuration change will take an extra conversion to settle when using continuous conversion mode).

    Regards,

  • Another thing to note is that if the goal of the application is to switch between channels for each conversion, it is most likely a better option to simply use single-shot mode (for the reason I mentioned above, that the configuration change will take an extra conversion to settle when using continuous conversion mode).

    The idea is to use single-shot mode. 
    The Master initiates a conversion by setting OS bit.
    Then Master changes the Address Pointer during conversion to the Conversion register
    After a set time, the Master reads the Conversion register.
    Then the Master changes to another Input, and sets the OS bit again, repeating the above for the other channel.

    This kind of operation is fine, right?
    And it doesn't require an extra conversion cycle like "continuous" mode would.

    Regards,

    Darren

  • Hi Darren,

    Yes, that is the preferred way to swap between channels with this device.

    Regards,