ADV7842 EDID read problem

There is a issue when I use ADV7842. The problem is that HDMI DDC can not read right data from my chip. I have wrote EDID data into my chip and when I connect HDMI and the chip, it could not work. So I mesured the signals with an oscilloscope. Turned out that ddc have read wrong data.

From oscilloscope we can see the data that ddc read was '0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF', when the right data is '0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00'. I do not know what cause this. I have read some similar discussions, someone said that SPA_PORT_A was causing this problem. So I read it's value, on my chip, repeater[0x72-0x73]=0x1fff and 0x76=0xff by default, which is not what the soft spec.specify.

Another confusing thing is that ddc write 0x30 to adv7842, I know that '0x50' represents I2C address 0xA0.

So what should I do to make it correct? I use Playstation3 as HDMI source.

I recently had to create a new script for configuring the ADV7842 EDID and it was a little tricky because (unlike most of our other HDMI receivers) SPA_LOCATION had to be configured even for port A. If you leave SPA_LOCATION at 0x00, the SPA logic will insert the SPA byte at 0x00 which corrupts the header. I was very confused until I realized that SPA_LOCATION needed to be set correctly.

I have changed my configuration as you said and PS3 can output HDMI signals now, but our monitor displays all black. I read some regs, and it turned out that HS and VS signals was unlocked while TMDS and DE was locked. How to figure it out?

I read regs of IO map and HDMI map and kept them in file, may it can help.

After I added the VSDB block to EDID,HDMI map '0x05' represented 'HDMI mode detected',and TMDS PLL,VS,DE were all locked. But ADV7842 was still output black(or nothing). The scope showed that the MSB bits of ADV7842's R,G,B output were all '0'.

HS/VS polarity was detected as positive in HDMI block,and also in CP block. ADV7842 was configured as HS/VS negative polarity output according to DVI PHY's requirement. And the PKV_CHA was 0x3bf,PKV_CHB was 0x34d,PKV_CHC was 0x2ff.They showed that CP block had been detected some active video.I also tied to change the LLC DLL phase,it didn't work neither.

But after I changed the CP_brightness register in CP map,only the Green component was affected.Therefore the monitor changed from black to green with blink.

How can I know if the HDMI block and CP block are working properly?Do I have to change a HDMI source?