Post Go back to editing

ADV7480 i2c issue

Now i am bringup ADV7480 , I am experiencing a strange problem that when the adv7480 use i2c to read the chip revision register ,

The phenomenon is like this,  the driver can get the first register 0XDF, but can't get the 0XE0, and All subsequent  i2c communications wil fail ,

Measure waveform shown that there is no ack after send slave ID the second time 

normal flow:

Start -->  slave ID  ->  write bit  ->  ACK  -> register address --> restart -->  slave ID --> read bit --> ACK --> data --> ACK

now the problem is no ACK after  the send read bit  , no flow the words marked in red above 

Has this ever happened to anyone ?

Thank you!
Best regards.

Parents
  • Hi,

     Please ensure, for read back after writing the register address you need to do another I2C start command to read the byte back.  Check out the Read and Write Sequence figure in the user manual.

    Note:  Start condition - write operation (sub address) - Start condition - Read operation (data) - Stop condition
                Need to send STOP bit  when the whole process reading is done.To terminate a read/write sequence a stop signal must be sent. 

    Please make sure with below things.

    1. Do you have a pull-up or pull-down on the ADV7480 ALSB pin?

    2. Do you have the pad on the bottom of the ADV7480 package connected well to GND?

    Thanks,

    Poornima

  • Hi Poornima,

    Thank you for your reply.

    Maybe you don't understand what I mean, 

    1. Do you have a pull-up or pull-down on the ADV7480 ALSB pin?

    The i2C communicates successfully for the first time, and I'm sure that the ALSB pin is pull-down.

    The problem is why second and subsequent i2c communication failed,  why there is no ack when slave send data ,

    There is an ACK when sending the slave address,  Is the slave busy or didn't receive the address ?

    2. Do you have the pad on the bottom of the ADV7480 package connected well to GND?

    I will ask hardware engineer to help confirm this question

    Thank you!
    Best regards.

  • Hi,

     1. There might be an chance of protocol problem with the host(I2C Master).  Please ensure on that.

     2. Please make sure the pad underneath the ADV7480 has good connection to GND? Several people have had trouble with this.

     3. Also check whether  I2C software routines expect 7-bit addresses or 8-bit addresses?

     4. Ensure the Reset and Power-down pins are controlled during I2C communication ?

     5. You can get the code from here:  It can be implemented on any micro.

          http://www.analog.com/en/circuits-from-the-lab/cn0282/vc.html

    You can find code on the above website - under "Design & Integration Files"

    Thanks,

    Poornima

  • Hi,

     We bringup adv7480 on Samsung platform, I'm not sure if it is the problem of i2c master.

     2. Please make sure the pad underneath the ADV7480 has good connection to GND? Several people have had trouble with this.

    pad underneath the ADV7480 has good connection to GND

    I2C software routines expect 7-bit addresses and Reset and Power-down pins are controlled

    now i am doubt the restart signal is right or not

    Thank you!
    Best regards.

Reply Children