UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
1,546 Views
Registered: ‎10-07-2016

HDMI2.0 Rx Subsystem with external EDID-EEPROM

Dear users,

I want to use the HDMI 2.0 Rx Subsystem in my design. By default this IP-core brings along an integrated memory for storing the EDID information. In our case, we would like to have the EDID information stored externally within an I2C-EEPROM.

 

Question:

 

Can I attach an external I2C-EEPROM (slave address = A0) to the DDC lines for storing the EDID information?

 

I would expect an I2C collision, when the HDMI source wants to read from slave address A0. Is there a way to disable the IP-Core internal EDID ???

 

Best regards

Steffen

0 Kudos
5 Replies
Explorer
Explorer
1,516 Views
Registered: ‎07-18-2011

Re: HDMI2.0 Rx Subsystem with external EDID-EEPROM

The HDMI/DVI source doesn't care where it gets the I2C EDID information from, it can be from an external EEPROM or the internal FPGA ROM.   If you want to use an external EEPROM programmed with your monitor resolutions,  simply connect the EEPROM I2C SCL and SDA lines to the HDMI DDC_CLK and DDC_DATA lines and don't use the FPGA core I2C lines.

 

An external EEPROM is actually preferred, because it allows the source to read the monitor resolutions even with the power off, provided you power the EEPROM from the DDC 5V supply pin on the connector.  You should use two back-to-back "steering" diodes so the EEPROM is powered from the board +5V supply when it is powered on, and from the DDC 5V pin when it is off, to allow for in-system programming with no source connected.

 

BTW, to easily generate EDID programming files of various resolutions, i have used the Analog Devices EEdit2 and Phoenix EDID designer programs.  They are old, but you should still be able to find them with a web search.

 

 

0 Kudos
Explorer
Explorer
1,492 Views
Registered: ‎10-07-2016

Re: HDMI2.0 Rx Subsystem with external EDID-EEPROM

Hello Reaiken,

thank you very much for your quick reply. But I think you are wrong with the following statements.

 

The HDMI/DVI source doesn't care where it gets the I2C EDID information from, it can be from an external EEPROM or the internal FPGA ROM.   If you want to use an external EEPROM programmed with your monitor resolutions,  simply connect the EEPROM I2C SCL and SDA lines to the HDMI DDC_CLK and DDC_DATA lines and don't use the FPGA core I2C lines.

 

You are right when you say that it doesn't matter if the EDID information is provided internally or externally. But if you provide the EDID by an external EEPROM, than you have to disable the IP-Core internal slave, otherwise you will get an slave address conflict on Address A0. Further you can not cut the DDC lines from the IP-core, since the HDMI source will also access other slave adresses like A8, which is important to control the bit rate settings. Please note that we are not talking about DVI, we are talking about HDMI2.0.

 

The next statement is from my point of view also not correct:


An external EEPROM is actually preferred, because it allows the source to read the monitor resolutions even with the power off, provided you power the EEPROM from the DDC 5V supply pin on the connector.  You should use two back-to-back "steering" diodes so the EEPROM is powered from the board +5V supply when it is powered on, and from the DDC 5V pin when it is off, to allow for in-system programming with no source connected.

 

You are right, but for HDMI2.0, it is no longer required to support the EDID information when the monitor is powered off.

 

in the product guide PG236 page 92 I found the following statement:

 

Use Case 6: How to Disable Internal EDID
If you do not want to enable the internal EDID support, you can comment out the function
XV_HdmiRx_DdcLoadEdid in xv_hdmirxss_coreinit.c, under function call.
int XV_HdmiRxSs_SubcoreInitHdmiRx(XV_HdmiRxSs *HdmiRxSsPtr)
Example:
// Load EDID
// XV_HdmiRx_DdcLoadEdid(HdmiRxSsPtr->HdmiRxPtr, HdmiRxSsPtr->EdidPtr,
// HdmiRxSsPtr->EdidLength);

 

I'm not sure whehter the instructions above will do what I want. I assume that this function will not disable the I2C-slave controller on address A0...

 

Does anybody tried this?

 

Best regard

Steffen

 

0 Kudos
Explorer
Explorer
1,386 Views
Registered: ‎06-13-2012

Re: HDMI2.0 Rx Subsystem with external EDID-EEPROM

Hi all,

 

Actually I've the exact opposite problem, I have an external EDID after programming I set the SDA tristate to '1' so the internal controller can only read the serial input. But I would like to use the internal EDID.

So I unmounted the external chip and I see that bit rate changes are read correctly by the core, so SDA and SCL are read properly but the signal source can't read the internal EDID value.
Any suggestions? I'm working with the HDMI_RXOnly_Microblaze example code.

Regards

0 Kudos
Xilinx Employee
Xilinx Employee
1,138 Views
Registered: ‎08-01-2007

Re: HDMI2.0 Rx Subsystem with external EDID-EEPROM

It isn't a good idea to completely disconnect the DDC (I2C) lines from the core, as they are used for more than the EEPROM.  They are also used for HDCP.  @stgateizo the Use Case 6 you mentioned from PG236 is the correct way to use an external EEPROM as it disables the internal EEPROM and uses the external one instead.

Chris
Video Design Hub | Embedded SW Support

---------------------------------------------------------------------------
Don’t forget to Reply, Kudo, and Accept as Solution.
---------------------------------------------------------------------------
0 Kudos
Explorer
Explorer
1,124 Views
Registered: ‎10-07-2016

Re: HDMI2.0 Rx Subsystem with external EDID-EEPROM

Hi Chris,

thank you for your response. In the meantime I have successfully implemented the HDMI2.0 RX subsystem with the external EDID-EEPROM. As you mentoined correctly, you can not disconnect the DDC (I2C) lines, since HDCP traffic is used via DDC, as well as the HDMI Forum Vendor Specific Data Block (HF-VSDB) MAX_TMDS_Character_Rate...

 

But, it is possible to deactivate the internal EDID as described in PG236, and attach an external EDID EEPROM.

 

Best regards

Steffen

0 Kudos