1. 一颗芯片搞定双屏异显:IT66631到底解决了什么问题
第一次拿到IT66631的规格书时,我正被一个双屏项目折磨得够呛。客户要求一台设备同时驱动两块HDMI 2.0屏幕,而且两块屏要显示不同的内容——一块放主画面,一块放数据面板。市面上常见的方案要么是走两套独立输出通道,成本高得离谱;要么是单路输出加分屏器,但分屏器只能镜像,做不到异显。IT66631的出现,算是把这类需求从"堆料硬扛"拉回到了"单芯片解决"的轨道上。
先把话说清楚:IT66631是一颗HDMI 2.0双路输出转换芯片,核心能力是把一路视频源拆分成两路独立的HDMI 2.0输出,支持双屏异显和双屏同显两种模式。它主要面向的场景包括商显广告机、车载双屏娱乐系统、会议一体机、医疗双屏工作站、游戏设备副屏等。适合谁来参考?硬件工程师、嵌入式驱动开发者、以及做多屏方案选型的系统架构师。如果你只是想让笔记本外接两个显示器,那不需要看这颗芯片,直接买扩展坞就行;但如果你是在做产品级的多屏输出方案,需要控制BOM成本、简化PCB布局、保证双路4K@60Hz的稳定输出,那IT66631值得花时间研究。
这颗芯片之所以能引起关注,跟HDMI 2.0本身的带宽特性分不开。HDMI 2.0的理论带宽是18Gbps,支持4K@60Hz、HDR、32声道音频。要把这样一路高带宽信号"一分为二"且保证两路都符合HDMI 2.0规范,不是简单复制信号就能做到的。IT66631内部做了TMDS信号的重定时和均衡处理,每一路输出都有独立的时钟恢复和驱动电路,这是它跟普通分屏器最本质的区别。普通分屏器是"复制粘贴",IT66631是"重新生成"——前者信号质量会衰减,后者每一路都是干净的。
我在实际项目中用这颗芯片做过一轮完整的验证,从原理图设计到PCB布局,从EDID配置到双屏异显调试,踩了不少坑,也积累了一些规格书上不会写的经验。下面就把整个架构设计和实操过程拆开来讲,尽量让做硬件的和做驱动的都能找到自己需要的东西。
2. 架构拆解:IT66631内部到底怎么工作的
2.1 从输入到双输出的信号链路
IT66631的信号处理链路可以分成四个阶段:输入接收、信号解码与处理、双路独立编码、输出驱动。这四个阶段对应芯片内部不同的功能模块,理解这条链路是做好外围设计的前提。
输入接收阶段,芯片通过HDMI接收器接收来自SoC或视频源的TMDS信号。这里有一个关键点:IT66631的输入端口支持HDMI 2.0的全部特性,包括18Gbps带宽、HDR10、HDCP 2.2。输入端的均衡器(EQ)会根据线缆长度自动调整增益,补偿高频衰减。我在实测中发现,输入线缆超过2米时,EQ的自动补偿效果会明显下降,建议输入走线尽量短,或者选用带信号增强的HDMI线缆。
信号解码与处理阶段是这颗芯片最核心的部分。输入的TMDS信号被解码成像素数据后,会进入一个内部视频处理管线。这个管线负责色彩空间转换、分辨率缩放(如果两路输出分辨率不同)、帧率适配等工作。这里要特别注意:IT66631支持两路输出独立设置分辨率和刷新率,但输入信号只有一路。也就是说,如果输入是4K@60Hz,两路输出可以一路4K@60Hz、一路1080P@60Hz,但不能两路都4K@60Hz同时输入又是4K@60Hz——总带宽是共享的。
双路独立编码阶段,处理后的像素数据被送到两个独立的HDMI编码器。每个编码器都有自己的TMDS时钟恢复电路和输出驱动。这意味着两路输出的时序是独立的,可以分别配置。我在调试双屏异显时,就是通过这个特性让主屏和副屏跑不同的分辨率。
输出驱动阶段,两路TMDS信号分别经过各自的驱动电路输出到HDMI接口。每路输出的驱动电流可以独立配置,这在走线长度不同的两块屏场景下很有用——长走线的那一路可以加大驱动电流来补偿衰减。
2.2 双路输出的三种工作模式
IT66631支持三种双路输出模式,理解这三种模式的区别是方案选型的基础。
镜像模式:两路输出完全相同的画面和时序。这种模式最简单,芯片内部只需要把处理后的像素数据复制一份送到两个编码器。适合广告机、展示屏这类需要多屏同显的场景。优点是延迟低、配置简单;缺点是无法独立控制两路输出。
扩展模式(异显):两路输出显示不同的内容。这需要视频源端配合,把画面分成两个独立的图层或区域,分别送到芯片的两个输入通道。注意,IT66631只有一个HDMI输入端口,所以异显的实现方式通常是:SoC输出一个拼接好的超宽画面(比如3840x1080),芯片内部把它切成两个1920x1080分别输出。或者SoC通过其他接口(如MIPI)输入两路信号,芯片内部做切换。具体用哪种方式,取决于你的SoC支持什么输出格式。
混合模式:一路输出主画面,另一路输出叠加了OSD信息的画面。这种模式在车载和医疗场景比较常见,副屏显示参数、状态等信息。IT66631内部有OSD叠加功能,可以通过SPI接口加载OSD图层数据。
2.3 关键参数与选型对照
在确定用IT66631之前,我对比了几种常见的双路HDMI输出方案,整理成表格供参考:
| 方案类型 | 典型芯片 | 双路4K@60支持 | 异显支持 | BOM成本 | PCB面积 | 开发难度 |
|---|---|---|---|---|---|---|
| 单芯片双路输出 | IT66631 | 支持(带宽共享) | 支持 | 中等 | 小 | 中等 |
| 双芯片独立输出 | 两颗HDMI TX | 支持(独立带宽) | 支持 | 高 | 大 | 低 |
| 分屏器方案 | 普通Splitter | 不支持 | 不支持 | 低 | 小 | 低 |
| DP MST方案 | DP转双HDMI | 支持 | 支持 | 中等 | 中等 | 中等 |
从表格可以看出,IT66631的核心优势是在单芯片上实现了双路独立输出,同时支持异显。代价是两路输出共享总带宽,在极端场景下(比如两路都跑4K@60Hz加HDR)需要仔细核算带宽预算。
注意:IT66631的总带宽是18Gbps,这是输入和输出共享的。如果输入是4K@60Hz 4:4:4 8bit,占用约17.82Gbps,那两路输出加起来不能超过这个值。实际项目中建议留20%余量,输入用4K@60Hz 4:2:0,给双路输出留出空间。
3. 硬件设计实操:从原理图到PCB布局
3.1 电源树设计与去耦电容配置
IT66631需要三路电源:1.1V核心电压、1.8V IO电压、3.3V模拟电压。这三路电源的上电时序有严格要求,规格书里写的是1.1V先上,然后1.8V,最后3.3V,每路之间延迟至少1ms。我一开始没注意这个时序,结果芯片偶尔能工作偶尔不能,排查了两天才发现是电源时序问题。
电源树的设计建议用独立的LDO给模拟部分供电,数字部分可以用DCDC。模拟3.3V的纹波要控制在50mV以内,否则HDMI输出眼图会明显变差。我在实测中对比过,用普通DCDC供电时眼图张开度比用LDO差了约15%。
去耦电容的配置也有讲究。规格书建议每个电源引脚配0.1uF电容,但实际项目中我在1.1V核心电源上额外加了两个10uF的钽电容,在3.3V模拟电源上加了1个4.7uF的陶瓷电容。这样做的原因是:核心电压的瞬态电流变化大,需要大容量电容储能;模拟电源对低频纹波敏感,需要大电容滤除低频噪声。
3.2 HDMI接口的ESD防护与走线规则
HDMI接口是整板最容易出问题的地方。IT66631的TMDS输出引脚直接连到HDMI连接器,中间需要加ESD防护器件。我推荐用低电容的TVS二极管阵列,结电容要小于0.5pF,否则会影响TMDS信号的高频特性。
走线规则方面,TMDS差分对要走100欧姆差分阻抗,误差控制在10%以内。四对差分线之间的长度偏差要小于5mil,否则会出现颜色偏差或画面闪烁。我在第一版PCB上就是因为一对差分线多走了8mil,导致4K@60Hz下偶尔出现绿色噪点,后来重新绕线才解决。
HDMI连接器的地引脚要直接连到芯片的模拟地,不要经过数字地。这个细节很多新手会忽略,但实测下来对信号质量影响很大。我试过把连接器地接到数字地,眼图抖动明显增加。
3.3 EDID配置与I2C通信
IT66631通过I2C接口与主控通信,EDID数据存储在芯片内部的EEPROM或外部EEPROM中。EDID配置是双屏异显能否成功的关键——两路输出需要分别配置EDID,告诉视频源每路输出支持什么分辨率和刷新率。
EDID的配置流程是这样的:先通过I2C把EDID数据写入芯片的EDID RAM,然后设置输出端口映射寄存器,把EDID RAM 0映射到输出端口0,EDID RAM 1映射到输出端口1。这里有一个坑:如果两路EDID都配置成4K@60Hz,但输入带宽不够,芯片会自动降分辨率,但降的是哪一路取决于内部仲裁逻辑,不一定是你想要的那一路。所以建议在EDID里明确标注优先级,或者干脆把两路EDID配置成不同的分辨率,避免仲裁冲突。
I2C的时钟频率建议用100kHz,不要用400kHz。我试过400kHz,在EDID写入过程中偶尔出现数据错误,降到100kHz后就没再出现过。I2C的上拉电阻用4.7k欧姆,走线尽量短,远离TMDS差分线。
4. 双屏异显调试实录:从点亮到稳定输出
4.1 初次上电与基本输出验证
第一次上电时,不要急着接双屏。先接一路输出,确认基本功能正常。我的验证步骤是这样的:
- 给芯片上电,测量三路电源电压是否正常,纹波是否在范围内。
- 通过I2C读取芯片ID寄存器,确认通信正常。
- 配置输入端口,设置输入分辨率为1080P@60Hz(先用低分辨率验证)。
- 配置输出端口0,设置输出分辨率为1080P@60Hz,EDID用标准1080P配置。
- 接上显示器,看是否能正常点亮。
这一步如果点不亮,先查三个地方:电源时序、I2C通信、TMDS输出是否使能。我遇到过输出使能寄存器没配置的情况,芯片默认输出是关闭的,规格书里这个寄存器的说明藏在很后面,容易漏掉。
4.2 双路输出独立配置与异显实现
单路点亮后,开始配置第二路输出。第二路的配置流程跟第一路类似,但有几个额外注意点:
- 两路输出的时钟源要选择正确。IT66631内部有两个PLL,分别给两路输出提供时钟。如果两路输出分辨率不同,两个PLL要分别配置。
- 输出驱动电流要分别设置。我一般先设成中间值,然后根据实际线缆长度调整。
- 如果要做异显,需要配置输入画面的切割区域。比如输入是3840x1080,输出0取左半部分1920x1080,输出1取右半部分1920x1080。这个切割是通过配置裁剪寄存器实现的。
异显调试时,我建议先用静态测试画面,比如左半屏纯红、右半屏纯绿,这样一眼就能看出切割是否正确。等切割正确了,再换成实际视频内容。
4.3 带宽核算与分辨率取舍
双路4K@60Hz是很多人的目标,但实际能不能做到,要看带宽预算。我整理了一个带宽核算表:
| 输入格式 | 输入带宽占用 | 输出0格式 | 输出1格式 | 总带宽占用 | 是否可行 |
|---|---|---|---|---|---|
| 4K@60 4:4:4 8bit | 17.82Gbps | 4K@30 4:4:4 | 4K@30 4:4:4 | 17.82Gbps | 临界 |
| 4K@60 4:2:0 8bit | 8.91Gbps | 4K@60 4:2:0 | 4K@60 4:2:0 | 17.82Gbps | 可行 |
| 4K@60 4:2:0 8bit | 8.91Gbps | 4K@60 4:4:4 | 1080P@60 4:4:4 | 13.37Gbps | 可行 |
| 1080P@60 4:4:4 | 4.45Gbps | 1080P@60 4:4:4 | 1080P@60 4:4:4 | 8.9Gbps | 轻松 |
从表里可以看出,如果坚持两路都4K@60Hz 4:4:4,带宽是不够的。实际可行的方案是:输入用4:2:0色度采样,两路输出都4K@60Hz 4:2:0;或者一路4K@60Hz 4:4:4,另一路1080P@60Hz。具体怎么取舍,看你的应用场景对画质的要求。
提示:4:2:0色度采样在显示文字时会有边缘模糊,如果副屏是显示数据表格的,建议副屏用4:4:4但降分辨率到1080P,主屏用4K@60Hz 4:2:0。这样文字清晰度和画面流畅度都能兼顾。
5. 常见问题排查与避坑经验
5.1 输出无信号或间歇性黑屏
这是最常见的问题,排查思路按优先级排列:
| 现象 | 可能原因 | 排查方法 | 解决方案 |
|---|---|---|---|
| 完全无信号 | 输出使能未配置 | 读输出控制寄存器 | 配置输出使能位 |
| 间歇性黑屏 | 电源纹波过大 | 示波器测3.3V纹波 | 增加去耦电容或换LDO |
| 间歇性黑屏 | TMDS差分线阻抗不匹配 | TDR测试差分阻抗 | 调整走线宽度和间距 |
| 特定分辨率黑屏 | EDID配置错误 | 读EDID RAM内容 | 重新写入正确EDID |
| 双路同时黑屏 | 总带宽超限 | 计算输入输出带宽 | 降低分辨率或色度采样 |
我遇到过一次间歇性黑屏,排查了半天发现是HDMI连接器的屏蔽地没接好。连接器的金属外壳要直接连到PCB的模拟地,而且要用多个过孔连接,减少接地阻抗。这个细节在规格书里没有强调,但实际影响很大。
5.2 画面偏色或噪点
画面偏色通常是TMDS差分对的问题。具体来说:
- 某一对差分线走线过长或过短,导致该颜色通道时序偏差。
- 差分对之间的间距不均匀,导致串扰。
- ESD防护器件的结电容过大,导致高频衰减。
我的排查方法是:先用测试图案(比如纯红、纯绿、纯蓝分别显示),看哪个颜色有问题,然后重点检查对应的差分对。如果是绿色有问题,就查绿色差分对的走线和防护器件。
噪点问题还可能是电源噪声引起的。我在一次调试中发现,当SoC负载增加时,HDMI输出会出现随机噪点。后来在IT66631的1.1V核心电源上并联了一个100uF的电解电容,问题就解决了。原因是SoC负载变化导致电源波动,核心电压不稳影响了TMDS编码器。
5.3 双屏异显不同步
双屏异显时,两路输出的帧同步很重要。如果两路输出的帧率不一致,会出现画面撕裂或延迟差异。IT66631支持两路输出帧同步,但需要配置同步寄存器。
配置方法是:把输出0设为主端口,输出1设为从端口,从端口的时钟源选择主端口的时钟。这样两路输出的帧时序就对齐了。我在车载项目里用过这个配置,两路屏幕的延迟差异控制在1帧以内。
如果不需要严格同步,也可以让两路各自独立运行,但要注意两路输出的帧率最好成整数倍关系,比如一路60Hz一路30Hz,这样视觉上不会觉得别扭。
5.4 热设计注意事项
IT66631的功耗不算大,但在双路4K@60Hz满负荷运行时,芯片表面温度会到60度左右。如果环境温度高,需要加散热片。我在一个商显项目里,环境温度45度,芯片温度到了85度,触发了内部过热保护,输出会间歇性中断。后来加了铝制散热片,温度降到70度以下,就稳定了。
PCB布局时,芯片底部的散热焊盘要打足够多的过孔连接到地平面,利用地平面散热。我一般打9个过孔,阵列排列。如果空间允许,芯片周围留出散热铜箔区域,增加散热面积。
6. 方案扩展与选型建议
6.1 与SoC的接口适配
IT66631的输入是HDMI,所以你的SoC需要有HDMI输出。如果SoC只有MIPI DSI输出,需要加一颗MIPI转HDMI的桥接芯片。这种情况下,整体方案就变成了:SoC → MIPI转HDMI → IT66631 → 双路HDMI输出。多了颗桥接芯片,成本和PCB面积都会增加,但灵活性更高。
如果SoC本身有HDMI 2.0输出,那就直接连到IT66631的输入端口,这是最简洁的方案。需要注意的是,SoC的HDMI输出要支持HDCP 2.2,否则IT66631的HDCP中继功能无法工作。
6.2 音频处理方案
IT66631支持音频提取和嵌入。输入HDMI中的音频可以被提取出来,通过I2S或SPDIF接口送到外部DAC;也可以把外部音频嵌入到输出HDMI中。双路输出时,两路可以嵌入不同的音频,这在车载场景很有用——主屏放导航语音,副屏放娱乐音频。
音频配置的坑在于采样率和通道数的匹配。如果输入音频是192kHz 8通道,而输出配置成了48kHz 2通道,芯片会自动降采样,但降采样的质量取决于内部算法。我建议在EDID里明确标注音频支持格式,让视频源输出匹配的音频格式,避免芯片内部转换。
6.3 成本与竞品对比
IT66631的单价在同类芯片中属于中等偏上,但考虑到它省掉了一颗HDMI接收器和一颗额外的HDMI发送器,整体BOM成本反而有优势。我算过一笔账:用两颗独立HDMI TX芯片的方案,芯片成本加上外围电路(两颗晶振、两套电源、两套ESD防护)比IT66631方案贵约30%,PCB面积大40%。
竞品方面,市面上有类似功能的芯片,但要么不支持HDMI 2.0全带宽,要么双路输出共享同一个时钟源导致无法独立配置分辨率。IT66631的优势在于两路完全独立的编码器和时钟恢复电路,这是做双屏异显的硬性条件。
6.4 固件升级与寄存器配置工具
IT66631的寄存器配置可以通过I2C在线修改,也可以通过外部EEPROM加载。批量生产时,建议把配置好的寄存器值烧录到EEPROM里,芯片上电后自动加载。这样主控只需要发一个启动命令,不需要每次上电都重新配置。
调试阶段可以用芯片厂商提供的配置工具,通过USB转I2C适配器连接芯片,实时修改寄存器并观察输出变化。这个工具在调试EDID和输出时序时特别有用,比盲改寄存器效率高很多。
我在实际项目中总结了一个寄存器配置模板,包含输入配置、输出配置、EDID配置、音频配置四个部分。每次新项目直接套用模板,改几个参数就能用,省去了从头配置的时间。这个模板的核心思路是:先把输入和输出都设成最低分辨率(比如720P),确认通路正常后再逐步提高分辨率,最后配置EDID和音频。这样排查问题时范围小,容易定位。