How can I use four different ADS1115 with one I2C-Bus?

So I want to adress four different ADS1115 all using the same I2C-Bus. In the Datasheet on page 34 there is a tutorial on how to do this:

Use the address pin to set the ADS111x to one of four different I2C addresses. Use the GND, VDD and SCL addresses first. If SDA is used as the device address, hold the SDA line low for at least 100 ns after the SCL line goes low to make sure the device decodes the address correctly during I2C communication.

How can I hold the SDA line low after the SCL line goes low? Or is this something that happens automatically and I don't need to do anything?

Has somebody tried this before and knows the answer?

Connect the ADDR pins to GND, VCC, SCL and SDA and it should work.

The note about SDA is not clear. I think it is during the start-condition. In that case, there is no problem with Arduino boards and the Wire library. You may ignore that note about SDA.

Are you using the discrete IC or a breakout board?

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

The OP is talking about connecting four ADS1115 sensors simultaneously. In that case, how to assign I2C addresses for these four sensors?

When the ADDR-pin of the sensor is tied to GND, the sensor address is 0x28.

When the ADDR -pin of the sensor is tied to 5V, the sensor address id 0x29.

To connect 4 sensors, the OP has to use an I2C Bus multiplexer of type PCA9547; where, the sensors sinals would be acquired sequentially at the same I2C bus address of 0x28 or 0x29 depending on the status of ADDR-pin.

When ADDR is connected to SDA address is 0x4A,
And ADDR connected to SCL makes 0x4B.

Datasheet, page 23, table 4:

So in principle no multiplexer is needed.

It is indeed the start condition, and indeed it is rather unclear. Specifically, it's not clear if this implies that SCL needs to be pulled low within a certain amount of time (but then, how much?) after startup and SDA needs to be held low for a little longer. It would seem so. Equally unclear is if there are similar considerations when using SCL as the address denominator.

1 Like

You are correct as to the I2C address of AS1115, which are 0x48 or 0x49 and not 0x28 or 0x29.


Now, there is no need to use I2C bus multiplxer. The OP can use four ADS1115 sensors simultaneously in the following way (Fig-1) with I2C address as: 0x4A, 0x4B, 0x48, and 0x49.