I am trying to configure an AD9889B hdmi transmitter with an fpga, but I am having some difficulties with setting up the registers through the I²C interface.
The datasheet mentions that I should wait until the Hot-Plug-Detect pin is pulled high to power up the transmitter and fix some registers.
The problem is that after the HPD pin is high, the AD9889B is not responding to any i²c reads or write; it does not pull down the SDA line to ack.
There are no problems with the i²c interface when HPD is low. I can read and write to all registers (although the power up register 0x41 keeps the old data when trying to overwrite without ). But once the monitor is plugged in, it stops acking, even after the monitor is unplugged again.
(The same is true for the spare packet memory i²c registers)
As far as I know I followed all instructions.
-hpd is pulled to ground with 10kOhm.
-DDSCL and DDSDA are pulled to 5V with 2kOhm
-SCL and SDA are pulled to 1.8V with 2kOhm
-Ext_Swg is pulled to ground with 887 Ohm
-PD/AD is pulled to ground by 2kOhm (i²c address 0x72)
-there is a 1.8 power plane and the 3 power domains are fed from this plane through the recommended LC filter with 10nF decoupling capacitors near all pins. (All power supplies stay at 1.8V before and after HPD is asserted)
-i²c frequency is around 50kHz
-all other digital data inputs are currently held low.
The only thing I have noticed is that register 0x00 (which contains the chip revision number) returns 0x00 instead of 0x10.
But I have no clue what is causing this problem.