I have ZC702 Evaluation board and iam trying to interface with my monitor through HDMI port available in the Evaluation board. I have read the programming guide completely http://www.analog.com/media/en/technical-documentation/user-guides/ADV7511_Programming_Guide.pdf after powering it on, configuration is done properly and i can see output video properly in the monitor which i set it for fixed resolution .Now when i try to read the EDID from my Memory Map register 0x7E to set optimal resolution iam getting 0x00 for all 256 bytes. I verified the EDID memory address by reading the register 0x43 and it shows 0x7E only. I Tapped the signals from the I2C lines coming from HDMI through a logic analyzer and there are EDID I2C transactions happening and it is Proper EDID. I tried re-reading the EDID as described in the page 110 - 22.214.171.124 then the monitor sends the EDID but still when reading it from the register it is 0x00. I also verified the procedure iam following is same as the Block diagram they have given in the programming guide to read EDID it is same.Can any one help me with this? Thanks in advance.
Please crosscheck with 0x96 register bit, whether EDID reading has completed or not.An interrupt bit 0x96 indicates that a 256-byte EDID read has been completed, and the information is available in the EDID Memory. The EDID Memory is at I2C address 0x7E by default. This is the default address but can be changed by writing the desired address into the EDID Memory Address register (0x43 of the main register map).And also try with reference scripts,which is available at https://ez.analog.com/video/w/documents/766/advantiv-eval-adv7619-7511-video-evaluation-board
Thank you Poornima Subramani now it is working fine. Now I read all the register of EDID in a for loop from 0x00 to 0xFF and it takes more time, does the adv7511 has auto increment of register address or any other option to read all 256 bytes it in a single stretch? Thanks in advance.
I beleive,it will read 256 bytes in a single stretch from sink.
Please refer below links Edid example structure and EDID editor,
I have read the EDID structure given above in the link and it is similar to the EDID structure iam receiving. Now iam reading the EDID like shown below
uint8_t reg_add =0x00;
i2cread(slaveid , reg_add , data_buffer[i]);
so in data buffer iam getting the whole EDID properly. but it is a very slow process and takes time. instead do i have any option or command to get the 256 bytes from EDID sink in a single i2c transaction. Many I2C slave devices have auto increment feature of slave address, like that do ADV7511 have any similar kind of features.The above attached code is not clear do you have any idea to do this? Thanks in advance.
The ADV7511 is capable of accessing any of the upto 256 segments allowed by the EDID specification. By writing the desired segment number to register 0xC4, the ADV7511 will automatically access the correct portion of the EDID EEPROM over the DDC lines and load the 256 bytes into the EDID memory. When the action is complete, an EDID ready interrupt will occur to tell the user. If the host controller needs access to previously requested EDID information, then it can be stored in its own memory.