友晶科技(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可用于存储任何信息,比如存储子卡相关的信息。