Electronic – I2C address computation

i2c

While going through datasheet of IS31FL3235 (LED driver), I came across this:
I2c address

So there is AD pin which when connected to GND, VCC, SCL and SDA gives four possible i2c addresses, thereby allowing me to use four ICs on same i2c line.

Connecting to GND and VCC makes sense to me. How does it work with SCL and SDA? When there is no transaction on i2c lines, SCL and SDA will be pulled up thereby making them same as VCC. How will the chip differentiate between SCL, SDA and VCC?

Best Answer

The high value bits are transmitted before the low value bits. That is, address bits A7 to A3 are transmitted, then A2 followed by A1 then a final 0 for A0.

The chip thus has 5 bits during which it can observe the transitions on the SDA and SCL lines to see which one is connected to the AD line.