1. 这颗芯片到底在解决什么问题
第一次接触TMDS181的人,多半是被它的定位绕晕的。名字里带HDMI,但它不是HDMI接收芯片,也不是HDMI发送芯片,它夹在中间——准确说,它是一颗TMDS信号的中继/均衡/重驱动器件,专门放在FPGA或GPU的HDMI接口和外部连接器之间,把已经衰减、抖动变大的高速差分信号重新整形,再干净地送出去或者送进来。
为什么需要这么一颗东西?你把一块FPGA开发板或者一张带HDMI输出的显卡想象成一条高速公路的起点,芯片内部产生的TMDS信号幅度小、驱动能力有限,走不了几厘米PCB就走样了。而HDMI线缆本身又是75欧姆左右的差分环境,插拔、线长、阻抗不连续都会让眼图闭合。TMDS181干的事,就是在这条链路里当“信号加油站”和“整形师”:输入侧做自适应均衡,把被线缆和PCB损耗吃掉的高频分量补回来;输出侧做去加重和幅度调节,让信号能再跑一段。它支持的最高速率对应HDMI 2.0的6Gbps每通道,四对TMDS差分线加一对时钟,总共五对,正好覆盖HDMI的物理层需求。
对做FPGA图像处理或者GPU驱动开发的人来说,这颗芯片的价值在于把物理层的脏活从主芯片里剥离出来。FPGA的IO资源宝贵,SerDes通道更宝贵,你不可能为了一个HDMI输入口去占用宝贵的收发器资源做均衡和时钟恢复。TMDS181这类器件用纯模拟前端加少量数字控制逻辑,把信号调理做掉,主芯片只需要面对一个已经“洗干净”的TMDS流。这也是为什么很多MicroBlaze+VDMA+HDMI的参考设计里,会在FPGA的HDMI IO和连接器之间塞一颗类似TMDS181的redriver。
注意:TMDS181本身不解析HDMI协议,不做HDCP,不做音频提取,它只关心差分信号的完整性。协议层的事还是得FPGA或GPU里的HDMI控制器来做。
2. 信号链路上的角色拆解与选型逻辑
2.1 为什么是“前级接口电路”而不是“接收器”
标题里“接收SERDES前级接口电路”这个说法很讲究。SERDES是串行器/解串器的缩写,FPGA里的高速收发器、GPU里的显示输出模块,本质上都是SERDES结构。但SERDES对输入信号的抖动容限、幅度范围、共模电平都有严格要求,直接拿一根劣质HDMI线怼上去,误码率会飙到没法用。TMDS181放在SERDES前面,做三件事:均衡、电平转换、阻抗匹配。
均衡解决的是频率相关的损耗。HDMI线越长,高频衰减越厉害,眼图越闭合。TMDS181内部有可编程的均衡器,通过I2C或者引脚配置,能针对不同线长设置不同的高频增益。电平转换解决的是共模电压不匹配,FPGA的TMDS输出共模和线缆侧的共模未必一致,直接连可能烧IO。阻抗匹配则是让100欧姆差分阻抗在整个链路上尽量连续,减少反射。
2.2 和直接使用FPGA高速收发器的对比
有人会问,FPGA里不是有GTH/GTY这类高速收发器吗,为什么还要外挂一颗TMDS181?这里有个成本与灵活性的权衡。高速收发器通道数量有限,一块中低端FPGA可能只有4到8个,你拿去做HDMI输入,PCIe、以太网、SATA就没得用了。而且高速收发器的参考时钟架构复杂,HDMI的TMDS时钟和收发器需要的参考时钟不是一回事,要做时钟域转换。TMDS181用纯模拟方式处理,不占用收发器资源,也不涉及复杂的时钟规划,对于多路HDMI输入的应用——比如4路HDMI输入1路HDMI输出的切换器或者视频墙——这种方案更划算。
从功耗角度看,TMDS181这类redriver的功耗通常在几百毫瓦级别,远低于让高速收发器全速跑起来的功耗。对于便携设备或者对散热敏感的场景,这个差异很关键。
2.3 关键参数与选型对照
| 参数项 | TMDS181典型值 | 选型关注点 |
|---|---|---|
| 最大数据率 | 6 Gbps/通道 | 对应HDMI 2.0,4K60 4:4:4 |
| 通道数 | 4对TMDS+1对时钟 | 标准HDMI物理层 |
| 均衡范围 | 可编程,多档 | 根据线长和PCB损耗选 |
| 输出去加重 | 可编程 | 补偿输出侧PCB损耗 |
| 控制接口 | I2C/引脚 | 是否需要动态调整 |
| 供电 | 1.2V/3.3V | 注意上电时序 |
| 封装 | 小尺寸QFN | 布局紧凑度 |
选型时最容易忽略的是均衡档位和实际线长的匹配。均衡开太大,低频增益过高,反而会让眼图出现预加重过冲;开太小,高频补不回来,眼图还是闭合。我一般建议先用最长的那根线缆做测试,把均衡调到眼图刚好张开且过冲最小的位置,再换短线验证兼容性。
3. 硬件设计与布局的实操要点
3.1 原理图设计中的坑
TMDS181的差分对命名和HDMI连接器的引脚对应关系必须一一核对。HDMI Type-A连接器有四个TMDS数据对和一个时钟对,每个对的正负不能接反,接反了信号极性反转,虽然差分接收端有时能自动纠正,但TMDS181的某些工作模式下不保证。我见过一个案例,硬件工程师把TMDS Clock+和Clock-画反了,结果FPGA端死活收不到稳定的时钟,查了两天才发现是原理图符号的引脚编号和实际封装对不上。
去耦电容的摆放是另一个高频出问题的地方。TMDS181的供电引脚需要就近放置0.1uF和0.01uF的电容,距离越近越好,最好在同一个过孔范围内。1.2V核心供电的电流不大,但对噪声敏感,建议用独立的LDO供电,不要和数字3.3V共用一路DCDC,否则开关噪声会耦合到TMDS输出上,表现为眼图上的周期性抖动。
3.2 PCB布局的硬性规则
差分对的走线必须严格等长,误差控制在5mil以内。100欧姆差分阻抗要通过叠层计算确定线宽和间距,不要凭感觉画。参考平面必须完整,差分对下方不能有跨分割的情况,否则回流路径断裂,共模噪声会急剧增加。TMDS181的输入和输出差分对尽量走直线,如果必须拐弯,用圆弧或者45度角,不要用90度直角。
ESD保护器件的选型要特别注意寄生电容。HDMI连接器暴露在外,ESD防护必不可少,但普通TVS管的结电容可能有几个pF,在6Gbps速率下会严重劣化信号。要选超低电容的ESD阵列,寄生电容控制在0.5pF以下。我实测过,用错ESD器件,眼图高度直接掉三分之一。
实操心得:TMDS181的散热焊盘必须可靠接地,不仅为了散热,更为了提供低阻抗的返回路径。焊盘上的过孔要足够多,建议至少9个,均匀分布。
3.3 上电时序与复位
TMDS181有多个供电域,1.2V核心和3.3V IO的上电顺序如果不对,可能导致内部ESD结构导通,出现大电流。数据手册里一般会给出推荐的上电顺序,通常是先1.2V后3.3V,或者两者同时。如果系统里有多个电源域,用电源监控芯片做时序控制最稳妥。复位引脚不能悬空,必须用RC网络或者来自FPGA的GPIO控制,确保上电后有一个干净的低电平复位脉冲。
4. 配置与调试的完整流程
4.1 I2C配置寄存器的关键位
TMDS181通过I2C配置内部寄存器,地址由ADDR引脚决定。上电后第一件事是读器件ID,确认I2C通信正常。然后配置均衡档位、输出幅度、去加重强度。均衡档位通常有4到8档,每档对应不同的高频增益。输出幅度一般设到800mVpp左右,去加重根据输出走线长度选,走线短可以关掉,走线长就开一档。
配置顺序有讲究:先设均衡,再设输出,最后使能通道。如果先使能通道再调均衡,输出端会有瞬间的异常信号,可能被下游器件误触发。我习惯在配置完成后读回所有关键寄存器,确认写入生效。
4.2 眼图测试与参数调优
眼图是判断TMDS181工作状态最直接的手段。用高速示波器配合TMDS测试夹具,在TMDS181输出端抓眼图。先看眼高和眼宽,再看抖动。如果眼高不够,加大输出幅度或者去加重;如果眼图闭合但幅度够,加大均衡。如果眼图上有明显的周期性抖动,检查电源噪声和参考时钟质量。
一个容易被忽略的点是测试点的选择。在TMDS181输出引脚上直接测,和经过连接器再测,结果差异很大。实际评估应该以连接器输出端为准,因为那才是线缆看到的信号。我一般会在PCB上预留SMA测试点,通过短的同轴线接到示波器,尽量减少测试引入的损耗。
4.3 与FPGA/GPU的联调
FPGA侧如果用的是HDMI RX IP核,需要确认IP核的均衡设置和TMDS181的均衡不冲突。有些IP核内部也有均衡,两级均衡叠加可能导致过均衡。通常建议FPGA侧均衡设到最低,把均衡任务交给TMDS181。GPU侧相对简单,显卡的HDMI输出一般已经经过内部redriver,外接TMDS181主要用于延长线缆或者做输入切换。
联调时先跑低速分辨率,比如720p,确认链路基本通畅,再逐步升到1080p、4K。每升一档,观察误码率或者眼图变化。如果4K下出现间歇性黑屏,多半是均衡或去加重没调好,也可能是线缆质量不行。换一根认证过的Premium High Speed HDMI线缆再试,能排除很多变量。
5. 典型问题排查与避坑指南
5.1 常见问题速查表
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| 无显示,I2C读不到ID | 供电异常/复位未释放 | 测各路电源,查复位引脚电平 |
| 低分辨率正常,高分辨率黑屏 | 均衡不足/线缆损耗大 | 加大均衡档位,换短线测试 |
| 眼图幅度正常但误码率高 | 抖动大/电源噪声 | 查电源纹波,查参考时钟 |
| 插拔线缆后花屏 | ESD损伤/接触不良 | 换ESD器件,检查连接器 |
| 多路输入切换时闪屏 | 通道切换时序问题 | 查切换逻辑,加软启动 |
| 输出端过冲严重 | 去加重过强/均衡过大 | 降低去加重,减小均衡 |
5.2 几个真实踩过的坑
第一个坑是I2C上拉电阻阻值。TMDS181的I2C接口支持标准模式和快速模式,上拉电阻一般用4.7k欧姆。但如果总线上挂了多个器件,或者走线很长,4.7k可能太大,上升沿变缓,通信出错。我遇到过一块板子,I2C时好时坏,最后把上拉降到2.2k才稳定。但也不能太小,太小会增加功耗,还可能超出器件的灌电流能力。
第二个坑是TMDS181的使能引脚。有些设计为了省电,用GPIO控制使能,但忘记在使能前把配置写好。结果使能瞬间输出的是默认配置的信号,下游FPGA的HDMI RX可能锁不定。正确做法是先通过I2C把寄存器配好,再拉高使能。
第三个坑是散热焊盘的接地质量。一块板子在小批量测试时没问题,批量生产后部分板子高分辨率下不稳定。X光检查发现散热焊盘下的过孔有虚焊,导致接地阻抗偏高,信号回流路径变差。后来改进了钢网开孔和回流焊曲线,问题解决。
提示:TMDS181对电源纹波比较敏感,尤其是1.2V核心供电。用示波器交流耦合测纹波,峰峰值最好控制在20mV以内。如果超标,先查LDO的PSRR和输出电容的ESR。
5.3 多路HDMI输入切换的注意事项
4路HDMI输入1路输出的应用里,TMDS181通常配合多路复用器使用。切换时要注意先断开当前通道,再接通新通道,中间留几毫秒的间隔,让下游器件有时间重新锁定。如果切换太快,TMDS时钟突变可能导致FPGA的HDMI RX失锁。另外,未选中的通道输入要妥善处理,不能悬空,否则可能引入噪声。可以在输入端加对地电阻,或者用带关断功能的mux。
6. 从项目实战看设计取舍
6.1 FPGA图像处理链路中的位置
在一个典型的FPGA图像处理项目里,HDMI输入经过连接器、ESD、TMDS181,进入FPGA的HDMI RX IP核,解出视频流后做缩放、滤波、叠加等处理,再通过HDMI TX IP核输出。TMDS181在这里的角色是保证输入信号的质量,让RX IP核的均衡器不用太吃力。如果输入信号本身就很差,RX IP核的均衡能力有限,可能解不出稳定的视频。
我做过一个项目,客户要求4路1080p输入,实时切换输出。最初方案是每路输入都加一颗TMDS181,成本偏高。后来评估发现,如果线缆长度不超过2米,FPGA RX IP核自带的均衡够用,只在输出端加了一颗TMDS181做驱动增强。这个取舍取决于实际线缆长度和信号质量要求,没有绝对的对错。
6.2 与GPU方案的对比
GPU方案里,显卡的HDMI输出通常已经经过内部PHY的驱动和均衡,外接TMDS181主要用于两种情况:一是需要长距离传输,比如会议室布线超过5米;二是需要做输入采集,比如采集卡。GPU驱动开发的人可能更关心HDMI输出的EDID协商和HDCP,TMDS181不参与这些,它只保证物理层信号能到。
从调试角度看,GPU侧的HDMI问题往往更难定位,因为GPU内部是黑盒,你没法用示波器直接测内部信号。TMDS181至少给你一个可观测、可配置的中间点,通过调整它的参数,能间接判断问题出在GPU输出还是线缆侧。
6.3 成本与性能的平衡
TMDS181这类redriver的价格从几块钱到十几块钱不等,取决于通道数和均衡能力。对于消费类产品,成本敏感,可能会省掉redriver,直接用FPGA或GPU的IO驱动,但线缆长度受限。对于工业或者专业视频设备,信号完整性优先,redriver是标配。我的经验是,如果HDMI线缆长度超过3米,或者PCB走线超过10厘米,加一颗redriver能显著降低调试难度和返修率。
7. 几个容易被忽略的细节
TMDS181的输入和输出差分对内部有端接电阻,设计时不要再外加100欧姆端接,否则阻抗不匹配。但有些应用需要在连接器侧加共模扼流圈,这时候要注意扼流圈的差分阻抗和TMDS181的端接匹配。
HDMI的DDC通道(显示数据通道)和CEC通道不经过TMDS181,它们是低速信号,直接连到FPGA或GPU的IO即可。但DDC的ESD保护不能忘,而且DDC的I2C电平通常是5V,FPGA的IO可能是3.3V,需要电平转换。
TMDS181的封装底部散热焊盘必须接地,但有些工程师为了省事,只连了几个过孔,导致接地阻抗偏高。在6Gbps速率下,接地阻抗哪怕高几欧姆,都会让共模噪声明显增加。我一般要求散热焊盘下的过孔不少于12个,并且尽量靠近焊盘边缘。
最后说一个调试技巧:如果眼图怎么调都不理想,先别怀疑TMDS181,用矢量网络分析仪测一下PCB走线的S参数,看看插入损耗和回波损耗是否正常。很多时候问题出在PCB本身,而不是芯片。我遇到过一块板子,差分对走线经过一个电源分割区,回波损耗在3GHz以上急剧恶化,换了叠层和走线后才解决。