0
\$\begingroup\$

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?

\$\endgroup\$
2
\$\begingroup\$

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.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ The first byte sent should be 0xE5, and if I hit the right address I should get ACK low, that is slave signal that it is on that address? \$\endgroup\$ – Blabac Jun 15 '17 at 14:53
  • \$\begingroup\$ I suppose that this is right esacademy.com/en/library/technical-articles-and-documents/… \$\endgroup\$ – Blabac Jun 15 '17 at 15:01
  • \$\begingroup\$ Sorry, I didn't understand what you asked! \$\endgroup\$ – nickagian Jun 15 '17 at 15:25
  • \$\begingroup\$ The first byte we need to send is address of slave + R\W bit (0 for transmit), in case of adv7511 it is 0xE4 (PD/AD pulled down), if slave does not pull down SDA line, and we get 1 for ACK bit, we have a problem communicating with slave, is that right? \$\endgroup\$ – Blabac Jun 15 '17 at 15:31
  • \$\begingroup\$ @Blabac "if slave does not pull down SDA line, and we get 1 for ACK bit, we have a problem communicating with slave, is that right?" Yes. Examples of such problems include: electrical problem on the bus, so the slave does not actually "see" that it is being addressed; or address problem e.g. you think you have configured the slave to use address X, but it is actually using address Y, so it correctly does not "Ack" address X; or slave is being correctly addressed, but is not in the correct state to "Ack" right now - this is device specific, e.g. there can be timing constraints; etc. etc. \$\endgroup\$ – SamGibson Jun 15 '17 at 23:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.