友晶科技(Terasic)之前出了兩款HDMI子卡 HDMI-TX 和 HDMI-RX , 這兩個子卡都是通過HSMC接口與FPGA 主板連接, 后來出了一款 HDMI-FMC子卡, 通過FMC接口與FPGA 主板相連接,它同時支持 HDMI發送和接收。這些子卡 都涉及到EDID的 讀寫。
EDID的全稱是Extended Display Identification Data(擴展顯示標識數據)。其包含有分辨率 幀率等參數信息。視頻輸入的時候,PC 通過讀取設備上的EDID來獲悉設備支持的顯示時序,而同樣,視頻輸出時,FPGA 需要讀取設備的EDID來確定自己的輸出時序。關於EDID的說明 大家參考 https://www.cnblogs.com/liangwh520/p/8310387.html 應該就能完全明白。這里,我只說明這三個子卡對EDID 的 處理 電路圖怎么看。
HDMI-RX子卡:
當HDMI-RX 接上視頻發送設備(PC)時, PC就會詢問EDID信息,哪怕子卡此時沒有上電,PC也可自己送上5V 過來,這時候讀取EEPROM(U2/U4)進而判斷RX的能力。
手冊框圖如圖所示:
HDMI-RX 子卡是 有專門的EEPROM 器件存儲EDID信息的,這個信息是從FPGA寫進去,然后存在EEPROM(U2 或者U4)里面,可以被PC從 HDMI-RX接口讀出。 下圖以RX1舉例,FPGA的I2C 通過U1的電壓轉換,再經過電阻限流 到EEPROM器件進行訪問。
U2/U4只能通過FPGA去寫,不能通過IT6605, 因為IT6605的 DDC通道是SLAVE接口。FPGA還可以通過這一路 I2C 去訪問IT6605的信息。 IT6605 內部主要是存儲 HDCP 信息。 這些信息通常放在 IT6605 內不可以被更改的。外接PC時,PC也可以通過I2C 讀取IT6605的信息。(HDCP 的處理是IC內部的事情,跟PC沒有關系,PC最多是通過PCSCL/PCSDA 去通知或者確認。)
HDMI-RX子卡上面的 EEPROM除了有 U2 和U4以外,還有個 EEPROM U5,這個直接連接到HSMC接口,由FPGA控制,跟EDID讀取沒有任何關系,這個EEPROM可用於存儲任何信息,比如存儲子卡相關的信息。
HDMI-TX子卡:
手冊框圖如圖所示:
HDMI-TX子卡,沒有專門EEPROM 器件存儲EDID信息,通過DCC通道讀取顯示器EDID信息到 CAT6613器件,然后FPGA 是通過PCSDA/PCSCL 通道讀取EDID信息。
CAT6613的手冊截圖:從 DDC 讀到的 EDID 會存到 CAT6613 內部的一個 FIFO 里面。
U3這個是直接連接到 HSMC 接口,由FPGA控制,跟EDID讀取沒有任何關系,這個EEPROM可用於存儲任何信息,比如存儲子卡相關的信息。
HDMI-FMC子卡:
HDMI-FMC手冊框圖:
FPGA 通過FMC——RX1_DDC_SDA——U55(電平轉換)——RX1_DDCSDA——通過限流電阻——RX1_SDA——EEPROM(U56)將EDID信息 寫入EEPROM(U4 和 U56 )。
FPGA也可以通過這一路直接訪問 ADV7619的信息。
外接PC時,PC也可以通過I2C 讀取IT6605的信息。
如下是ADV769的截圖:
U6 是這個直接連接到FMC接口,由FPGA控制,跟EDID讀取沒有任何關系,這個EEPROM可用於存儲任何信息,比如存儲子卡相關的信息。