原创 一次很诡异的hdmi接口与电视不兼容的调试

2010-12-27 19:47 11731 7 9 分类: 消费电子

前几天做的fpga控制ad9889通过hdmi输出给电视/显示器的板子,被发现一个bug:在显示器或skyworth的电视上能够显示图像,在sharp及philips的电视上则不行。


板子一共2快,就叫A,B吧


之前其他项目积累过类似的经验:hdmi接口上有一个5v的供电pin,如果连接到板子的5v供电,则任何电视都可以正常工作,如果不连,或企图从显示器获取5v供电给hdmi芯片,如9889,则电视可能会无法显示图像。一般来说国产电视要求低一些,如果板子不给他5v,电视内部也能自己完成供电。国外电视大概是为了防止电视自己也供电,板子也有5v,可能会烧毁之类,不提供这个5v。


但是我检查了原理图,发现5v供过去了。


pcb上测量距离hdmi接插件最近的一个5v网络的过孔,正常,插到电视上也是5v,并没有被拉低,所以排除了电源供电不足或pcb设计错误的可能。


对比我这块板子的原理图和其他项目中用到hdmi芯片的部分,发现如下差异


我是用2.2k上拉ddc i2c(hdmi专用i2c)到3.3,其他项目用1.8上拉到5。


其他项目的hdmi.hpd脚通过47k接gnd,我没有。


全部照此改过来了。


还是不行。--1


拿着这个板子去找别人讨论问题,结果在人家的电视上居然显示正常。--2


回来测试我自己手头的另一块板,还是不行,插到他的电视上也是不行。--3


于是找猫画虎的改我手头这块板,修改hpd及ddci2c电路,仍然不行。。。


回想之前关于5v接法的经验,仔细观察了一下hdmi接插件,发现可能是松了,就换了个新的,重新焊了一下--果然好了。


反过头来检查,发现1的时候不行,是由于我用的是一款07年产的sharp电视,hdmi协议用的比较旧,我对与9889的寄存器配置可能比较简单,导致其不认。


2里用的是09年的sharp及新型号的philip


3里不行的原因是hdmi接插件松了,导致5v没供过去


最终问题解决之后,把ddci2c及hpd改了回去,发现还是好的。。。说明根本与其无关,之前一个板好一个板坏,只是由于5v供电问题,但是被迷惑了

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户377235 2012-12-29 21:44

对于Source端设备来说,需提供5V供电给sink设备(即电视或显示器),用于电视机待机关断电源时读取EDID以及拉高HPD,另外,你的DDC上拉电阻以及上拉电压都有问题,HDMI规范定义上拉电阻介于1.5K至2.0K之间,为了兼容DVI1.0规范,需上拉至5V供电。关于07年的Sharp总是不行,可能是因为其电视机不支持EDID读取,你需要量DDC看电视剧机没有EDID返回,如果读不到EDID,源端是无法输出正常的视频格式的(不过这一点可以通过软件一旦检测到HPD,即强制送出一个通用视频格式即可在电视机上正常显示,当然了,这么做是不符合HDMI规范以及兼容性测试规范的)。好好研究研究HDMI规范吧。

用户375620 2011-9-13 17:08

能分享这个实验的程序的资料吗
相关推荐阅读
用户493796 2011-07-14 17:28
搭了个小nios系统费了1天功夫,手贱+犯sb的后果
刚才搭了个小nios系统锁定号memory的 start address为0之后,auto assign base address发现有一个外设的地址被设为5000-5200但系统中4000到4500...
用户493796 2011-06-16 11:48
今天调试的时候碰到的一个很囧的bug。。。
找焊接员手工焊了5块fpga板子,altera的 拿给我调试,一一测量了各路的电压输出点,无短路。 上电,烧程序,前三块正常,后两块烧不进去 把as模式改成jtag,还是烧不进去 量各路电压,一切正常...
用户493796 2011-06-01 11:29
从一个电子led屏程序bug看到的官僚作风
上周末出去玩,坐地铁回家的时候从北京南站出站;出站的时候看到了一个电子公告牌,上面写着 --------------------------- -  IP地址:188.188.69.1   - -  ...
用户493796 2011-05-06 19:57
对candance高速pcb设计教程的一些理解
最近刚开始用allegro画板 参考的教程是那本最流行的,如标题所示 感觉这本书写的还算比较好,照着一步步做,基本能把板子画下来 缺点么,有些部分写的重复了,会造成困扰,有些部分交代不够清楚,今后一点...
用户493796 2011-01-26 18:35
fpga控制phy片直接发送udp包的方法3
嗯,于是,该发送数据包了 发包的方法本来没啥可说的。。。想发什么数据,用txc往txd里打就行了 但有时候需要发送的数据可能来自另外一个模块,且宽度不是正好为4位(txd的宽度) 这时候就需要用一个双...
用户493796 2011-01-07 17:58
原来68013做数据采集的时候不需要外置fifo
很久很久以前做过一个68013的图像采集卡 当时发现,虽然68013内部有一个slave fifo,但是这个fifo貌似没法当作真正意义上的fifo用-- 每当pc读光ep2 fifo的数据之后,无论...
EE直播间
更多
我要评论
2
7
关闭 站长推荐上一条 /3 下一条