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
  • I was able to find some clue about the abnormal behaviour related before.

    According to the ADV7181C_Manual_RevC.pdf a read sequence should be as follows (see also the picture attached):

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

    Apparently the ADV7181C expects two START bits in order for a read sequence to be done.

    Can some one acknowledge that this is the proper way to do a read?

    thanks

Reply
  • I was able to find some clue about the abnormal behaviour related before.

    According to the ADV7181C_Manual_RevC.pdf a read sequence should be as follows (see also the picture attached):

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

    Apparently the ADV7181C expects two START bits in order for a read sequence to be done.

    Can some one acknowledge that this is the proper way to do a read?

    thanks

Children
No Data