Post Go back to editing

ADV7181C I2C access

We are at the early stages of debugging a video board using the ADV7181C video serialiser.

When I write (R/W = W) a command through the I2C interface to the chip using address 0x21 (or 0x42 as stated in the manual) I receive an ack per each byte sent. This is good

But when I try to receive data (R/W = R) from this same address the address byte is not acknowledged and of course no communication takes place.

The manual creates some confusion in my mind about the I2C address, should it be shifted, should it not! Although I've tried all possible addresses and the only that is acknowledged when writing is in fact 0x21.

Could anyone give me some ideas about this?

thanks

  Eduardo

Parents
  • thanks for your answer.

    It is working now

    Allow me another question.

    In the same context the frame to be sent is:

    START  SlaveAddr  Ack(Slave)  SubAddr  Ack(Slave)  START  SlaveAddr  Ack(Slave)  Data  Ack(Master)  ...  Data  /Ack(Master)  STOP

    For some reason the manual indicates that the last byte of Data should be NOT Acknowledged by the Master.

    Is this the proper action? (I thought that the transfer of data from the slave would be terminated when the master used the STOP.)

Reply
  • thanks for your answer.

    It is working now

    Allow me another question.

    In the same context the frame to be sent is:

    START  SlaveAddr  Ack(Slave)  SubAddr  Ack(Slave)  START  SlaveAddr  Ack(Slave)  Data  Ack(Master)  ...  Data  /Ack(Master)  STOP

    For some reason the manual indicates that the last byte of Data should be NOT Acknowledged by the Master.

    Is this the proper action? (I thought that the transfer of data from the slave would be terminated when the master used the STOP.)

Children
No Data