FPGA Player

好记性不如烂笔头

导航

HDMI之HPD

HDMI(19Pin)/DVI(16 pin)的功能是热插拔检测(Hot Plug Detect,HPD),这个信号将作为主机系统是否对HDMI/DVI是否发送TMDS信号的依据。HPD是从显示器输出送往计算机主机的一个检测信号。HPD是检测接收端是否连上的一种方法,而不管接收端是否上电。

1、当计算机通过HDMI接口与显示器相连接时,主机通过HDMI的第18脚(PWR_CON_PIN18)将+5V电压加到显示器的DDC存储器
(EDID数据存储器)向DDC存储器供电,确保即使显示器不开机,计算机主机也能通过HDMI接口读取EDID数据。
2、当显示器检测到稳定的5V电压信号后,会把HPD信号拉高(HPD也是由主机的18脚的5V信号产生的,也就是说在显示器断电的情况下HPD信号也会拉高)。
3、主机(显卡控制器)检测到HPD为高电平时,判断显示器通过HDMI与主机连接,并通过HDMI接口的第15、16脚 DDC通道(I2C)读取显示器中的EDID数据,
4、通过读取EDID,如果检测到显示器的工作模式范围与显卡相适应,则使主机显卡中的TMDS信号发送电路开始工作。
 
5、计算机主机对HPD信号的要求 
当计算机主机上的显卡检测到DVI接口HPD引脚电压大于2V时,判断为显示器通过DVI接口与主机连接:当检测到HPD引脚电压小于0.8V时,则判断为显示器与主机之间的DVI连接已经断开
 

6、如果EDID内容发生改变,HDMI规范要求接收设备/中继设备复位HPD信号至少100us,以便源设备重新读取EDID信息。(这在处理中要注意)

显示器传来的HPD不稳定(2018.8.13)

今日在实现过程中再次发现FPGA输出给显示器HDMI信号时,从显示器传输过来的HPD信号竟然会不稳定,周期性的发生跳变。

纠结了半天,突然想起这个问题以前也是遇到过的,当时的情况是这样的:由于HDMI输出的PLL配置错误(隐约记得是时钟

频率比较高,PLL在反复配置),测试过程发现HDMI的接收到来自显示器的HPD信号竟然周期性跳变,虽然也怀疑过是HDMI

输出座子有问题,但是经过更换也不能解决。最后把时钟的问题解决之后,HPD信号也随之正常。

  今天的实验现象是这样的,下载官方的Demo直接环出的程序(其实管脚是重新配置过的,时钟也是完全一致的),当插

入HDMI输入源时,HDMI输出的HPD信号出现周期性的跳变,造成一段时间内不能正常输出,但是一段时间之后会稳定并输出

画面。

  个人分析:因为刚插入HDMI源时信号不稳定,时钟也不稳定,输出部分的时钟也是由源的TMDS_CLK提供的,也是一样

不稳定,这样就与以前的情况相似,就是因为PLL不稳定输出,造成HPD信号不稳定。

  不明白为什么显示器会出现这样的情况,只有了解了显示内部处理HPD的原理之后才能解释清楚了。

posted on 2018-06-19 12:06  中国的孩子  阅读(4844)  评论(0编辑  收藏  举报