1. 一颗芯片搞定多路HDMI:IT66341到底解决了什么问题
如果你拆过现在市面上主流的4K电视、回音壁或者带HDMI切换功能的显示器,大概率会在主板某个角落看到一颗QFN封装的小芯片,丝印上写着IT66341。这颗芯片来自联阳半导体(ITE),是一颗HDMI 2.0切换芯片,支持多路HDMI输入选择一路输出,或者一路输入分配到多路输出。听起来功能很单一,但实际做硬件的人都知道,HDMI切换这件事远比“拨个开关”复杂得多。
我最早接触IT66341是在一个回音壁项目上,客户要求三个HDMI输入口,一个HDMI输出口支持ARC回传,同时要过4K 60Hz HDR和HDCP 2.2认证。当时第一反应是用分立器件搭,结果光是TMDS差分对的路由和阻抗匹配就让人头大,更别提HDCP密钥协商和CEC总线仲裁了。后来选了IT66341,一颗芯片把切换、均衡、驱动、HDCP、CEC全包了,PCB面积省了一大半,BOM成本也降下来了。
这篇文章主要面向做HDMI相关产品的硬件工程师、嵌入式软件工程师,以及想了解HDMI切换芯片内部工作机制的技术爱好者。我会从芯片的核心架构讲起,把HDMI 2.0的带宽需求、HDCP 2.2的认证流程、CEC的仲裁机制这些关键点拆开揉碎,再结合我实际调试中踩过的坑,给出可复现的配置思路和排查方法。不管你是刚开始选型,还是已经画完板子正在调信号,应该都能从里面找到有用的东西。
2. HDMI 2.0切换芯片的核心技术点拆解
2.1 为什么HDMI 2.0对切换芯片提出了更高要求
HDMI 2.0把TMDS时钟从HDMI 1.4的340MHz拉到了600MHz,单通道数据率从3.4Gbps提升到6Gbps,三组数据通道加一组时钟通道,总带宽18Gbps。这个数字意味着什么?打个比方,HDMI 1.4像是在双向四车道上跑车,HDMI 2.0就是双向八车道,而且车速还提了一截。切换芯片要做的,是在不引入额外抖动、不恶化眼图的前提下,把高速差分信号从任意一个输入口“搬”到输出口。
这里面最核心的挑战有三个。第一是插入损耗和回波损耗,600MHz的时钟频率下,PCB走线的趋肤效应和介质损耗已经不能忽略,切换芯片内部的MUX开关如果导通电阻偏大或者寄生电容偏高,眼图就会明显闭合。第二是通道间偏斜,三组数据通道加一组时钟通道,如果切换后各通道的延迟不一致,接收端采样就会出错。第三是阻抗匹配,HDMI规定差分阻抗100欧姆,切换芯片的输入输出端都要做端接,否则反射会让信号质量急剧下降。
IT66341在这几个方面做了针对性设计。它的TMDS通道支持自适应均衡,能补偿输入端PCB走线和线缆带来的高频衰减;输出端有可配置的预加重,用来抵消输出走线的损耗。芯片内部MUX的导通电阻和寄生参数控制得比较低,实测在600MHz下眼图余量仍然充足。这些特性不是纸面参数,而是直接决定了你的板子能不能过HDMI合规测试。
2.2 HDCP 2.2在切换芯片里是怎么实现的
HDCP 2.2是HDMI 2.0内容保护的核心协议,也是很多工程师调试时最头疼的部分。简单说,HDCP 2.2要求发送端和接收端各自持有一组密钥,通过一系列加密握手确认双方都是“合法”设备,然后对传输的内容进行加密。切换芯片夹在中间,既要作为下游设备的“发送端”完成认证,又要作为上游设备的“接收端”完成认证,相当于一个双向的中继。
IT66341内部集成了HDCP 2.2的密钥存储和加解密引擎。密钥是出厂时烧录在芯片内部的OTP区域,不可读取,只能由内部逻辑调用。认证流程大致是这样的:上游设备(比如机顶盒)发起认证请求,IT66341作为接收端响应,双方交换证书和随机数,计算共享密钥;同时IT66341作为发送端,向下游设备(比如电视)发起认证,完成另一侧的握手。两侧都通过后,内容才能解密再加密转发。
这里有个容易踩的坑:HDCP 2.2的认证是有时间窗口的,如果切换动作发生在认证过程中,或者切换后没有重新触发认证,下游设备就会显示黑屏或者雪花。IT66341提供了中断引脚和寄存器状态位,软件上需要在切换完成后主动查询HDCP状态,必要时重新发起认证。我遇到过客户抱怨“切换后偶尔黑屏两秒”,最后查下来就是切换后没有等HDCP重新协商完成就急着输出信号。
2.3 CEC总线在切换场景下的仲裁逻辑
CEC是HDMI的控制通道,用来实现“一遥控器控制多设备”的功能,比如用电视遥控器开关机顶盒、调节回音壁音量。CEC是一条单线双向总线,所有设备都挂在这条线上,靠仲裁机制决定谁可以发送消息。切换芯片在多路输入场景下,CEC的处理就比较微妙了。
IT66341支持CEC的缓冲和转发。当多个输入设备同时尝试发送CEC消息时,芯片内部会根据逻辑地址和优先级进行仲裁,避免总线冲突。同时,芯片还支持CEC的“跟随切换”功能,也就是说当用户切换到某个输入口时,CEC消息可以自动路由到对应的设备。这个功能在实际产品里很实用,比如你切换到游戏机输入,电视自动发送“活跃源”消息,游戏机收到后自动开机。
但CEC的调试往往比HDMI信号本身还麻烦,因为不同厂商对CEC协议的理解和实现有差异,时序容限也不一样。IT66341的CEC引脚需要外接上拉电阻和滤波电容,参数选不对就会导致消息丢失或者误触发。我一般会在CEC线上串一个100欧姆电阻,再并一个100pF电容到地,实测下来兼容性最好。
3. IT66341的实操配置与硬件设计要点
3.1 电源树和上电时序的设计细节
IT66341通常需要三组电源:1.2V核心电压、1.8V或3.3V的I/O电压、以及3.3V的HDMI接口电压。核心电压给内部逻辑和TMDS通道供电,I/O电压给控制接口和CEC供电,HDMI接口电压给DDC和HPD电路供电。这三组电源的上电顺序有讲究,如果I/O先于核心上电,芯片内部可能会出现闩锁或者漏电。
我一般推荐的上电顺序是:核心1.2V先上,然后1.8V/3.3V I/O,最后3.3V HDMI接口。掉电顺序反过来。实现方式可以用简单的RC延时加MOS管开关,也可以用带时序控制的PMIC。如果成本敏感,至少要在核心电压和I/O电压之间加一个肖特基二极管做钳位,防止反灌。
另外,每组电源的去耦电容要就近放置,1.2V核心电压的纹波要控制在50mV以内。TMDS通道对电源噪声很敏感,如果眼图测试发现抖动偏大,可以先查查核心电压的纹波。我习惯在每对TMDS电源引脚旁边放一个0.1uF加一个1nF的电容,1nF负责滤高频,0.1uF负责滤中频,效果比只放一个0.1uF好很多。
3.2 TMDS差分对的PCB布局规则
TMDS差分对的布局是HDMI板子设计的重中之重。IT66341的引脚间距比较密,QFN封装焊盘之间的走线空间有限,所以从芯片引脚出来的差分对要尽量短、尽量直。我总结了几条硬性规则:
- 差分对内部的两根线要等长,误差控制在5mil以内,否则通道间偏斜会导致眼图闭合。
- 差分对之间的间距要大于3倍线宽,减少串扰。如果空间实在紧张,至少保证2倍线宽。
- 差分阻抗控制在100欧姆,误差正负10%。可以用阻抗计算工具算线宽和层间距,打样后最好用TDR实测确认。
- 差分对尽量不要换层,如果必须换层,要在过孔附近加回流地过孔,而且换层后的参考平面要一致。
- 差分对下方要有完整的参考地平面,不要被其他信号线割裂。
还有一点容易被忽略:HDMI连接器的引脚定义里,TMDS通道的排列顺序是固定的,但IT66341的输入输出引脚排列可能和连接器不一致,所以走线时难免会有交叉。这时候宁可多绕一点,也不要用过孔换层来“抄近路”,因为过孔引入的寄生电容和电感对600MHz信号来说是不可忽视的。
3.3 I2C控制接口的寄存器配置流程
IT66341通过I2C接口进行配置,从机地址通常是0x4C或0x4E,具体看芯片的地址引脚接法。上电后,芯片处于默认状态,所有输入通道关闭,输出通道也关闭。软件需要按以下流程初始化:
- 复位芯片,等待至少10ms让内部逻辑稳定。
- 配置TMDS输出使能,设置预加重等级。预加重等级要根据输出走线长度来选,走线越长,预加重越强。我一般先用中间等级,然后根据眼图测试结果微调。
- 配置输入通道的均衡等级。均衡等级和输入线缆长度有关,线缆越长,均衡越强。如果输入是固定长度的短线,可以用较低等级。
- 使能HDCP 2.2,配置密钥加载模式。IT66341支持内部密钥和外部密钥两种模式,内部密钥是出厂烧录的,外部密钥需要通过I2C写入。大多数应用用内部密钥就够了。
- 配置CEC逻辑地址和仲裁参数。逻辑地址要根据产品类型来选,比如电视是0,回音壁是5,机顶盒是3。
- 打开需要的输入通道和输出通道,等待HDCP认证完成。
这些配置看起来简单,但寄存器数量不少,而且有些寄存器是只写的,读回来不是写入的值。我建议在调试阶段用逻辑分析仪抓I2C波形,确认每个寄存器的写入值是否正确。另外,芯片的数据手册里有些寄存器的默认值可能和实际需求不符,比如HPD的默认极性、DDC的默认速率等,这些都要在初始化时显式配置。
4. 常见问题排查与调试经验实录
4.1 切换后黑屏或闪屏的排查思路
切换后黑屏是最常见的问题,原因可能有很多。我一般按以下顺序排查:
第一步,查HPD信号。HPD是热插拔检测,下游设备通过拉高HPD告诉切换芯片“我已经准备好了”。如果HPD没有正确拉高,切换芯片就不会输出信号。用示波器看HPD引脚,确认切换后HPD是否在合理时间内拉高。如果HPD一直低,检查下游设备的HPD驱动电路和上拉电阻。
第二步,查HDCP认证状态。如果HPD正常但屏幕还是黑,大概率是HDCP认证没通过。读IT66341的HDCP状态寄存器,看认证是否完成。如果没有完成,检查密钥是否加载、认证流程是否被中断。有时候切换动作太快,HDCP认证还没完成就切走了,下游设备就会认为信号无效。
第三步,查TMDS信号质量。如果HDCP正常但画面闪烁或者有雪花,说明TMDS信号质量有问题。用示波器或者眼图仪看输出端的差分信号,确认眼图是否张开。如果眼图闭合,调整预加重等级和均衡等级,或者检查PCB走线是否满足阻抗要求。
第四步,查EDID。EDID是下游设备的能力描述,切换芯片需要读取EDID并转发给上游设备。如果EDID读取失败或者内容不对,上游设备可能输出不兼容的格式,导致黑屏。用I2C工具读EDID数据,确认分辨率和刷新率是否匹配。
4.2 CEC功能失效的典型原因
CEC失效的表现是遥控器无法控制其他设备,或者设备之间无法联动。常见原因有:
- 上拉电阻缺失或阻值不对。CEC总线需要上拉电阻,典型值是27k欧姆。如果电阻太大,总线拉低不够;如果太小,功耗增加而且可能损坏引脚。
- 逻辑地址冲突。如果两个设备用了同一个逻辑地址,CEC仲裁会失败。检查每个设备的逻辑地址配置,确保不重复。
- CEC消息格式错误。不同厂商对CEC消息的格式理解有差异,比如操作码的字节序、参数长度等。用CEC分析仪抓包,对比协议规范,确认消息格式正确。
- 电源管理问题。有些设备在待机时关闭CEC收发器,导致消息丢失。检查待机模式下的CEC电源是否保持。
我遇到过一个案例:客户回音壁的CEC音量控制时好时坏,最后发现是CEC线上的滤波电容太大,导致上升沿变缓,仲裁时误判。把电容从1nF降到100pF后问题解决。所以CEC的RC参数要折中,既要滤噪,又不能影响边沿速率。
4.3 眼图测试不过的整改案例
眼图测试是HDMI合规测试的必选项,IT66341的板子如果眼图不过,通常有以下几个整改方向:
| 问题现象 | 可能原因 | 整改措施 |
|---|---|---|
| 眼高不足 | 输出预加重不够 | 提高预加重等级 |
| 眼宽不足 | 通道间偏斜大 | 检查差分对等长,调整走线 |
| 抖动偏大 | 电源纹波大 | 加强核心电压去耦,检查LDO |
| 上升沿变缓 | 输出端寄生电容大 | 缩短输出走线,减少过孔 |
| 回波损耗差 | 阻抗不匹配 | 调整线宽和层间距,重新计算阻抗 |
我印象最深的一次是眼高怎么调都不够,最后发现是HDMI连接器的焊盘设计有问题,焊盘太大导致寄生电容偏高。把焊盘尺寸缩小到推荐值后,眼高直接提升了15%。所以PCB布局不只是走线的事,焊盘和过孔的设计同样关键。
5. 选型对比与方案扩展思路
5.1 IT66341与同类切换芯片的对比
市面上做HDMI 2.0切换的芯片不止IT66341一家,还有TI的TMDS系列、Pericom的PI3HDX系列等。选型时主要看几个维度:
| 对比项 | IT66341 | TI TMDS系列 | Pericom PI3HDX |
|---|---|---|---|
| 最大带宽 | 18Gbps | 18Gbps | 18Gbps |
| HDCP 2.2 | 内置 | 部分型号内置 | 需外挂 |
| CEC支持 | 内置 | 部分型号支持 | 需外挂 |
| 均衡/预加重 | 可配置 | 可配置 | 固定或可配置 |
| 封装 | QFN | QFN/BGA | QFN |
| 成本 | 中等 | 偏高 | 中等 |
IT66341的优势在于集成度高,HDCP和CEC都内置,外围器件少,适合成本敏感、板子空间有限的产品。TI的方案更灵活,但需要外挂HDCP芯片,整体BOM成本偏高。Pericom的方案介于两者之间,但CEC需要额外处理。
5.2 多级级联的注意事项
有些产品需要更多输入口,比如8进1出,这时候可以用两颗IT66341级联。级联时要注意:
- 第一级的输出接到第二级的输入,中间要走TMDS差分线,阻抗和等长要求同样适用。
- 两级之间的HDCP认证要协调,第一级作为发送端,第二级作为接收端,认证流程要串行完成。
- CEC总线要并联,逻辑地址要统一规划,避免冲突。
- 电源要独立滤波,避免两级之间的噪声耦合。
级联会增加信号延迟和抖动累积,所以级数不宜太多,一般不超过两级。如果输入口需求超过8个,建议考虑专用的大规模切换矩阵芯片。
5.3 固件升级与兼容性维护
IT66341的固件可以通过I2C或者专用升级接口更新。固件升级主要解决兼容性问题,比如某些电视的EDID格式特殊、某些机顶盒的HDCP时序偏紧等。我建议在产品量产前,尽可能多地测试不同品牌的电视、机顶盒、游戏机,把兼容性问题在固件里解决掉。
固件升级时要注意:升级过程中不能断电,否则芯片可能变砖;升级后要重新做HDCP密钥校验,确保密钥没有丢失;升级前后要记录寄存器配置,方便对比排查。
6. 个人实操体会与几个小技巧
调HDMI切换芯片这些年,我最大的体会是:信号完整性是基础,协议兼容性是关键,电源和地是隐形杀手。很多问题看起来是协议问题,查到最后其实是电源纹波或者地弹导致的。所以板子设计阶段就要把电源和地处理好,不然后面调试会非常痛苦。
几个小技巧分享给正在用IT66341的朋友:
第一,预留测试点。在TMDS差分对、HPD、CEC、I2C这些关键信号上预留测试点,调试时不用飞线,直接探头就能测。测试点要尽量小,寄生参数要低。
第二,I2C总线上加隔离。如果IT66341和主控的I2C总线上还挂了其他器件,建议加一个I2C缓冲器或者隔离器,避免某个器件拉死总线导致整个系统不工作。
第三,HDCP密钥备份。如果用的是外部密钥模式,一定要把密钥文件备份好,芯片损坏或者固件升级失败时可以直接恢复。内部密钥模式虽然省事,但芯片坏了就得换新片,密钥无法迁移。
第四,CEC逻辑地址用可配置电阻。不要用固定电阻,用拨码开关或者可配置的电阻网络,这样同一个板子可以适配不同产品类型,减少物料种类。
第五,眼图测试要留余量。合规测试的眼图模板是底线,实际设计要留至少20%的余量,因为批量生产时PCB阻抗、线缆长度、器件一致性都会有波动。余量不够的话,量产阶段很容易出现个别板子不过的情况。
这个芯片后续还可以往8K方向扩展,虽然HDMI 2.1的带宽要求更高,但切换的基本原理是一样的,把均衡和预加重的等级再细化,PCB材料升级到低损耗板材,应该能覆盖HDMI 2.1的48Gbps需求。不过那是另一个话题了,有机会再聊。