Electrical – I2c slave address confusion

addressingi2cmicrocontrollerprotocol

Can someone explain which address will be used for ADV7511 for I2C if it is stated that it is either 0x72 or 0x7a in adv 7511programming guide [page 16]?

If I am right, we send 8 bits per transfer, so if R\W bit is LSB, we need to shift that address left for 1 bit for 7 bit address to fit to that byte? So it should be 0xE4 or 0xF4?

Best Answer

But... the answer is pretty clear from the document you have linked.

The SDA/SCL programming address for the Main Register Map is 0x72 or 0x7A, based on whether PD/AD is pulled high (10KΩ resistor to power supply = 0x7A) or pulled low (10KΩ resistor to GND = 0x72) when power is applied to the supplies.

If you want to use 0x7A, you have to connect a 10KΩ pull-up on the PD/AD pin, and if you want to use 0x72, you have to connect a 10KΩ pull-down on this pin. The chip would normally read the level on this pin after the power supplies are applied and select to use the corresponding address.

And yes, you are correct about the second question. The communication is done in bytes, and after each byte there is an acknowledge bit. So for reading you would have to send 0xE4 or 0xF4 and for writing you would have to send 0xE5 or 0xF5.