AnsweredAssumed Answered

ADV7513 I2C programming address 0x72 or 0x7A no "ACK"

Question asked by cau4kien on Jul 12, 2014
Latest reply on Jul 14, 2014 by Sasa

I wrote HDL code to program ADV7513 register, the timing, data on i2c bus look correct but no respond from slave device (ADV7513).

I tried both method, tied PD pin to '1': using address 0x7A, then tied PD pin to '0' using address 0x72. ADV513 never respond.


I instantiated IOBUF primitive:for SDA signal: (the FPGA is Spartan 6 from Xilinx)


        port map

        ( IN  => SDA_OUT,

          T  => SDA_OE,

          IO => SDA,

           O => SDA_IN);


Where SDA is connect to an IO pad, SDA_OUT is output from my i2c_master logic along with SDA_IN and SDA_OE. On the snapshot shown

I generated  "start" to low while SCL is high) command (SDA goes high then serial data on SDA_OUT is "1111_0100" for a write, expected an "ACK" at 9th  SCLpulse,where SDA_OE inactive.. (i2c_write_slave_addr.PNG)

I ignored it ( in HDL code),  the next serial data is 0100_0001 for base register 0x41 to power up the ADV7513, expected an "ACK" from AV again and SDA_OE inactive, (i2c_write_reg_41.PNG)


Then next serial data sequence is "0001_0000", no "ACK" received,

Finally, the "stop" command (SDA goes high while SCL is high) (i2c_write_19_o_reg41.PNG)


I checked the board, looked good, HDMI_SDA, HDMI_SCL pins have 2,2K pulled up to 1.8 v, nothing on PP pin,  AVDD  pins group connected to 1.8 v, DVDD to 1.8, DVDD_3v to 3.3 v.


Attached are the snapshots took with Xilinx ChipScope on real hardware not simulation waveforms, I m struggle with this for awhile until find this forum...

Please help.