☰
IT6626:HDMI 2.1转双模MIPI桥接芯片调试指南
2026/10/31 6:22:55 网站建设 项目流程

HDMI 2.1 RX与双模MIPI TX,IT6626这颗桥接芯片,从型号就能看出它是“HDMI输入、MIPI输出”的那类翻译官。做显示方案的人应该都有过这种经历:手里有块MIPI DSI接口的屏幕,但信号源是HDMI;或者想在RK3588开发板上外接一块MIPI显示器,却不想折腾设备树。IT6626这类芯片就是为了把这种场景变成“插上就能亮”的工程化方案。这篇文章把我读规格书、调驱动、看示波器的心得整理出来,适合硬件工程师、嵌入式Linux工程师、FPGA显示链路开发的人参考。需要说明的是,具体寄存器地址和位定义以官方最新手册为准,我更想讲清楚的是这类芯片的通用工作逻辑和调试方法。

1. IT6626在显示链路里的角色:一个两端都要懂的桥接芯片

1.1 为什么HDMI信号不能直接接MIPI屏

HDMI和MIPI其实是两个世界的接口协议。HDMI走的是TMDS/FRL串行数据,链路上带着DDC、CEC、HDCP、音频回传一大堆附加协议;而MIPI DSI是面向移动设备显示面板的低功耗差分接口,强调的是驱动模组、控制命令、低电磁干扰。两者从电平标准到协议包结构都谈不上兼容。

电平和时序上,HDMI源输出的差分电压摆幅一般在几百毫伏到1伏级别,而MIPI D-PHY在HS传输模式下的共模电压、端接方式和LP/HS切换机制完全不一样。很多人想靠转接线把这俩接一起,结果就是画面灰屏。因为就算你把8根信号一一对应,源也不认识面板,面板也听不懂HDMI的包。IT6626要做的事就是:把HDMI流解码出完整的视频时序和像素数据,再做必要的色彩、时序处理,最后重新打包成MIPI DSI或CSI的包结构输出。它是典型的RX+TX双端口芯片,一颗解决两类协议之间的翻译问题。

1.2 双模TX带来两类玩法

“双模MIPI TX”这几个字是这颗芯片最有意思的地方。MIPI TX可以工作在DSI模式,也可以工作在CSI模式。DSI是Display Serial Interface,专门驱动屏幕;CSI是Camera Serial Interface,本来用来串接摄像头传感器。一个HDMI RX出来,接成DSI就能把HDMI信号变成嵌入式屏幕的输入;接成CSI就能把HDMI视频流伪装成一路“摄像头数据源”,直接灌给SoC的ISP或视频输入通道。这在一些工业视觉、视频采集、边端推理设备里特别好用,因为很多处理器原生只有CSI RX接口,没有完整的HDMI RX。

实际做项目时,模式和通道映射通常通过硬件pin脚或I2C寄存器切换。设计板子之前一定要想清楚下游到底是显示还是采集,因为PCB上TX端走线虽然物理管脚可能是复用的,但外围需求差异不小。比如接DSI屏要额外考虑面板供电和背光控制;接CSI模块要核对MIPI CSI虚拟通道、数据类型和帧同步格式。

1.3 典型应用场景与选型思路

如果你在调试车机、工控一体机、人脸识别闸机、医疗设备,经常能看到IT6626这类芯片的身影。一个很典型的链路是:电视盒子的HDMI 2.1输出→IT6626→MIPI DSI屏幕。盒子这边根本不需要知道后面接的是什么屏,它只负责把HDMI信号发出去;IT6626负责通过EDID告诉盒子“我支持什么分辨率”,然后屏幕就能被点亮。

另一种是国产FPGA驱动MIPI的项目。很多工程师搜“fpga实现mipi”时头大,因为D-PHY物理层和DSI协议栈并不好写。如果系统输入源本来就是HDMI,那么用IT6626做HDMI RX和MIPI TX,FPGA只做中间的视频处理和逻辑控制,能省掉大量高速模拟层工作。这种组合在紫光同创FPGA方案、RK3588边缘设备上都有人这么干。

选型时不要只看“HDMI 2.1”这个标签,要拆开看三件事:输入侧能不能接住源端的最高分辨率;输出侧MIPI lane数和时钟让不让够带宽;系统上电和I2C初始化链路能不能落实。下面几个章节我把这三件事展开讲。

2. HDMI 2.1 RX输入侧:带宽、EDID和源端协商

2.1 先算一笔账:接口标称和实际视频流

HDMI 2.1规范把人唬得最厉害的就是48Gbps带宽。48Gbps是FRL模式下三到四对差分lane叠加出来的理论上限,实际视频数据还要看timing、色彩格式和像素时钟。对IT6626这种桥接芯片来说,RX侧“支不支持HDMI 2.1”只是一半,关键是它能不能把源端发来的视频流完整接住,并且消化成下游能跑的样子。

我习惯在设计前先把带宽算一遍。以最常见的1080p60 RGB888为例,我们要计入blanking。CEA标准里1080p60的像素时钟是148.5MHz,每个像素RGB888按24bit算,整条链路大约是:

148.5MHz x 24bit = 3.564Gbps

如果是4K60 RGB888,像素时钟按594MHz算:

594MHz x 24bit = 14.256Gbps

这个数超过了单组4 lane MIPI D-PHY 1.5Gbps/lane的12Gbps上限。所以IT6626如果只有一个4 lane TX,大概率就只能在4K60下用RGB666、压缩色度,或者降刷新率、开缩放跑到2K。这类桥接芯片通常会做两个4 lane MIPI口,或者支持DSC压缩,但DSC能不能开启还取决于面板端有没有对应的DSC解析能力。我在项目里最常踩的坑是:规格书说支持HDMI 2.1输入,结果下游MIPI带宽不够,画面只能缩到1080p,客户还说为什么不能点对点?所以设计第一周就把上下游带宽算清楚,比啥都重要。

2.2 EDID与HPD:让HDMI源认识这块屏幕

HDMI源端(电脑显卡、机顶盒、开发板)不是上电就乱发信号的,它要先通过DDC/SCL总线读显示器的EDID,知道显示器支持什么分辨率、什么色彩格式,再把对应的timing发出来。IT6626作为RX芯片,通常内部集成或外挂EEPROM做EDID。调试时最容易被忽视的就是EDID内容和屏幕真实分辨率对不上。

比如面板实际物理分辨率是720x1280,但IT6626的EDID用默认的1080p显示模式,源就会输出1080p。如果IT6626内部没有缩放器,最终面板上要么被裁剪,要么因为缺少驱动IC初始命令而花屏。所以我在调试时第一时间用I2C工具读HDMI源那边的EDID回读值,确认首选timing就是面板的native分辨率。

热插拔检测HPD pin也容易出问题。HDMI源的HPD信号要拉高才能让源认为有显示器接入,很多Demo板为了省事直接把HPD接到固定高电平,这样做有时候能亮,但是源端重新协商timing时可能异常。正确做法是让HPD跟随IT6626的检测逻辑走,确保热插拔时源端能正确地重新去读EDID、重新开始发送视频流。

2.3 RX侧要留意的HDCP和色彩格式

如果你只是接自己单位的信号发生器或者PC显卡,HDCP一般不会挡路。但接的是机顶盒、蓝光机、某些流媒体设备,HDCP会在后台做握手。IT6626和证书库支持到HDCP几版,直接影响能不能出画面。我遇到过开发板明明显示链路都通,但接上合法的加密片源就黑屏,查了大半天发现是HDCP密钥没烧录。

色彩格式也要在RX端提前确定。HDMI源可以输出RGB、YCbCr444、YCbCr422、甚至YCbCr420。MIPI DSI面板绝大多数是RGB,少部分老屏只支持RGB666。如果IT6626不能做色彩空间转换,或者转换后色阶和边界处理不好,会在灰阶渐变处看到明显断层。调试时可以先用源端输出RGB888,排除色彩转换带来的干扰,再逐步去测其他格式。

3. 双模MIPI TX输出侧:DSI和CSI其实是两条不同的路

3.1 DSI面向屏幕,CSI面向处理器

MIPI DSI和CSI虽然在D-PHY物理层上很接近,但协议差异不小。DSI是host主动把像素和命令推给屏幕,固定带着VS/HS空档和像素数据包;CSI则通常由摄像头传感器作为master,向处理器持续推帧,带frame start/end、line start/end,还有虚拟通道用于多路复用。

IT6626做双模TX,意味着同一组MIPI输出引脚可以根据配置变成DSI或者CSI。这非常实用,尤其当你手上只有一块现成的HDMI信号源,但下游SoC只开了MIPI CSI RX接口。比如做低延迟视频采集盒,电视盒子输出HDMI,IT6626转成CSI流,SoC的ISP直接把HDMI画面当成一路摄像头画面处理,省掉HDMI RX芯片和繁琐的驱动。

接DSI屏时,IT6626扮演的是MIPI DSI Host,它要主动给屏发同步事件、像素流和命令包。很多MIPI驱动的LCD、OLED屏模组在上电后需要一段初始化命令流,比如ST7701S、ILI9881C这类常见驱动IC。桥接芯片内部如果没预设命令表,就要有办法通过外部I2C/SPI辅助把初始化命令灌给面板。这个在选型阶段必须确认,否则到贴片回来才发现点不亮,非常被动。

3.2 通道数、时钟频率与带宽怎么配置

MIPI DSI/CSI在D-PHY下,单lane速率常见从几百Mbps到1.5Gbps。实际MOS管功耗、PCB走线、连接器质量都影响这个值能不能跑满。桥接芯片输出一般会提供4 lane或8 lane选项,也可能提供两个4 lane口做拼接。

配置MIPI lane数时,要和面板或CSI接收端保持一致。接ST7701S做主控的720x1280屏,通常用4 lane,每lane速率大概四五百兆就够。比如720x1280x60Hz RGB888,像素时钟约74.52MHz:

74.52MHz x 24bit / 4lane = 447Mbps/lane

这个速率并不高,走十几厘米FPC完全没压力。但如果面板是1080p以上,单lane就要跑到900Mbps甚至更高。这时候FPC连接器选型、差分阻抗连续性和线序顺序都变得很敏感。

很多人改lane配置后忘了检查连续时钟模式。 有的MIPI屏要求clock lane保持continuous clock,有的支持non-continuous。IT6626输出端是不是默认开启连续时钟、可不可通过寄存器切换,都要提前问清楚。我碰到过一次屏幕能亮但时不时闪横条,就是因为时钟模式没和面板端匹配,后来强制continuous clock就稳了。

3.3 Deskew Calibration与TX Driver强度:容易被忽略的信号完整性调试

搜“mipi dphy deskew calibration”的人,多半是被那些高速MIPI信号搞怕了。D-PHY的deskew校准,通俗讲就是补偿同一组lane之间的电气延迟差。四个数据lane加一个clock lane的信号从芯片引脚出来,经过PCB过孔、连接器、FPC到屏幕端,物理路径不可能完全一样长,眼图张开度就会下降。尤其在1500Mbps/lane的高速率下,数据lane与clock lane之间的时间偏差会导致采样错误。

IT6626这类桥接芯片一般会提供内部deskew调整或者要求外接校准寄存器。我实际调试时发现,有些面板“花屏但频率不高”并不是驱动IC损坏,而是lane间skew太大,接收端采样点没落在正确位置。可以先把MIPI TX驱动电流调到中间档,跑一个自带test pattern,然后从示波器上量每对差分线的延迟差。超过200ps就非常值得优化PCB等长,而不是一味靠寄存器救。

TX Driver强度也不能乱调。MIPI TX端驱动电流太小,HS信号摆幅不够,远端眼图闭合;驱动电流太大,振铃和过冲又会干扰EMI,甚至在某些连接器上产生串扰。稳妥的做法是短走线先把驱动电流调低,保证低频功能正常;长走线再把驱动电流逐步提升,同时看眼图高度和宽度。这个参数在屏幕远距、软排线弯折场景里尤其要折腾。

3.4 ST7701S这类面板的适配思路

ST7701S是目前小尺寸MIPI屏里很常见的驱动IC,很多工业手持、串口屏都在用它。它的初始化命令、分辨率、时序表可以直接参考Linux内核里的panel-sitronix-st7701驱动。如果你用IT6626接ST7701S屏,关键不是让IT6626去“听懂”ST7701S的命令,而是要让面板先完成上电初始化,再交给IT6626的视频流。

我习惯把初始化命令分为两类:一类是开机必需的命令流,比如exit sleep、PLL设置、gamma;另一类是运行中可选的动态调节命令,比如背光亮度调整。后者如果IT6626不支持通过DSI转发,就在背光驱动上单独控制。MIPI OLED屏驱动也是类似逻辑,OLED的对比度、偏压时序更敏感,面板端初始化没成功前,即使IT6626已经输出了正常像素,OLED也只会灰屏或者闪一下。

4. 从拿到芯片到点亮屏幕的调试顺序

4.1 上电顺序、复位和I2C初始化

每次拿到新的桥接芯片,第一件事是认真过上电顺序,而不是直接写寄存器。IT6626这类芯片通常有多个供电轨,数字核心、模拟、IO、TX/RX专门的电源。如果先给IO或MIPI TX VCC上电,再给核心上电,芯片可能进入闩锁或者I2C地址扫不到。很多时候“莫名其妙读不到寄存器”,根子在于顺序不对。

上电顺序规范做法是:先VCC核心,等稳定,再VCC模拟和IO,最后释放复位。有的板子在电源没稳定时就把复位拉高,芯片会在供电爬坡过程里尝试初始化内部PLL,最后频率不对。检查这类问题,用示波器看各路电源和复位时序是最快的。

I2C初始化要按阶段推进。第一阶段扫描出I2C设备地址,确认芯片活着;第二阶段写基础时钟和输出模式参数;第三阶段配置HDMI输入相关寄存器;第四阶段配置MIPI TX相关寄存器;最后打开视频通路。不要一上来就全量写“Demo板初始化表”,因为寄存器之间有时序依赖,跳着写容易出现“这一次成功、下一次失败”的怪现象。

4.2 用示波器看什么,用逻辑分析仪看什么

点亮屏幕调试时,我先用示波器看MIPI clock lane有没有连续的HS波形,再对比每根data lane有没有与之对齐的HS burst。很多逻辑分析仪支持MIPI D-PHY解码,但初次连上时,我更建议先看模拟量而不是一上来解码。因为解码器显示乱码有时不是逻辑错,而是信号质量差导致接收端采样错。

示波器要重点量三个东西:

  • HS信号摆幅,看差分电压是不是在400mV~600mV量级,别低于300mV。
  • 差分对的开关对称性,有没有明显共模噪声。
  • clock lane和数据lane之间有没有系统性偏移,这个偏移如果随着速率变化线性增大,多半是阻抗不连续或参考层断裂。

逻辑分析仪解出MIPI包以后,再回头核对DSI data type。视频模式一般有sync event包、像素包、blank包。如果都能按timing周期性出现,说明IT6626的TX已经在正常发数据,问题大概率在面板初始化或RX输入侧。

4.3 常见现象排查表:HDMI黑屏、MIPI花屏、闪屏

我整理了实际调试中遇到最多的几个现象,你可以直接对照排查:

现象优先检查点原因和方向
HDMI源检测不到显示器HPD电平、EDID回读HPD没拉高,或者EDID EEPROM没正常写入
HDMI源识别正常,但MIPI屏黑屏MIPI TX是否打开、test pattern是否通过先开test pattern,确认输出链路,再怀疑输入链路
花屏但能隐约看到图像lane数量配置、lane极性、时钟模式常见是配置的4lane和实际接的2lane不一致
灰屏无字符面板初始化命令流是否发出ST7701S和OLED屏缺初始化命令会出现灰屏
闪烁、横细线TX Driver强度、deskew校准、纹波信号幅度偏低或lane间skew过大
色彩不对,偏紫偏绿色彩格式配置HDMI端RGB888和面板端RGB888/666要匹配
偶尔能亮偶尔不能亮复位时序、电源时序上电顺序竞争,需要复位延时

4.4 我的习惯:先1080p60跑通,再挑战高分辨率

我见过不少人第一天就调4K120,结果在信号质量和寄存器配置两个大坑里来回跳,三天都出不来。我的做法永远是先在HDMI源端把输出改成1080p60,MIPI输出设置成2 lane或者4 lane低速率,先把链路跑通。低分辨率下即使TX驱动强度和deskew没调好,信号裕量也足够,屏幕大概率能亮。等确认HDMI RX和MIPI TX两个方向协议都正常后,再逐步提高时钟、增加lane数、切到4K分辨率。

这一步还有个优点:能顺带验证EDID。如果1080p下正常、4K下彩条乱跳,一般就是MIPI带宽不够或者时钟模式不对;如果低分辨率也点不亮,优先怀疑初始化配置和面板命令流,因为问题在更基础的位置。

5. 常见系统集成:RK3588、FPGA和单纯HDMI源

5.1 最省事的玩法:HDMI盒子直接驱动MIPI屏幕

如果只是把一个HDMI电视盒子、PC主机或者游戏机的信号转到MIPI屏上,整个系统可以不需要任何主控。IT6626负责RX和TX,屏的初始化命令如果芯片支持透传或内置命令表就能搞定。这种模式下IT6626的I2C从机接口可以由一个小单片机在开机时配置,也可以直接烧录EEPROM让芯片自加载。

这个方案的特点是“显示栈完全透明”。HDMI源认为自己在接显示器,面板认为自己在被一个DSI主机驱动,中间没有Linux、没有驱动开发,适合出货量大、硬件定制程度高的产品。缺点是灵活性低,面板切换后必须改配置表,而且面板初始化命令一旦写错,要重新烧录或飞线改寄存器。

5.2 用RK3588时,绕开原生MIPI适配的另一种思路

很多人搜“rk3588 linux适配mipi屏幕”,第一反应是在设备树里加panel节点、重置屏、背光,再在MIPI DSIs控制器里挂timing。这条路很正统但也麻烦,因为面板型号多,驱动代码动不动就要适配。

如果是在RK3588上快速验证,可以把RK3588的HDMI TX输出接到IT6626,再由IT6626转MIPI驱动屏幕。RK3588设备树只需要把HDMI当作一个普通外部显示器去使能,不用关心MIPI屏的DTS编码、初始化序列和面板兼容性。我做过类似的评估板,点亮速度比调原生MIPI面板快很多。代价是多了一颗桥接芯片的成本和PCB面积,而且HDMI的功耗会比原生MIPI略高一点。

反过来,如果你的RK3588方案本来就带MIPI原生接口,直接驱动ST7701S屏在软件上最干净。这两种思路没有绝对优劣,主要看项目阶段:快速验证原型用IT6626,量产追求低成本低功耗用原生DSI。

5.3 FPGA做图像处理器:D-PHY的雷区可以交给IT6626

FPGA实现MIPI最麻烦的不是DSI协议,而是D-PHY物理层。高速差分收发器的摆幅、共模电压、端接阻抗和HS/LP切换时序,全都不是普通IO能随便模拟的。搜“紫光同创fpga驱动mipi”的人应该都有体会,没有硬核D-PHY的话,代码写得再漂亮也过不了信号质量这一关。

用IT6626可以把FPGA从MIPI物理层里解放出来。FPGA内部先做自己的图像算法,把结果通过HDMI TX发出去,IT6626负责把HDMI流再转成MIPI DSI屏信号。这样FPGA端只需要处理数字逻辑,不用碰MIPI模拟层,开发周期会短很多。代价是HDMI TX和IT6626两级转换有额外时延,但对很多显示增强应用来说,这个时延完全可以接受。

5.4 Linux侧还是要懂一点:I2C控制与面板参数

即便是最自动化的IT6626方案,Linux侧工程师也至少要会两件事:第一件事是会用i2c-tools扫总线、读寄存器;第二件事是知道面板的时序参数存在哪里。嵌入式Linux里驱动MIPI屏时,面板的hactive、vactive、hfront porch、hsync len这些参数要填在设备树或驱动里;用IT6626后这些参数不一定要放在内核,但也要在桥接配置中统一定义。

我建议把所有参数写成一个配置文件,分HDMI源分辨率、MIPI输出分辨率、色彩格式、MIPI lane数、驱动强度、deskew档位、面板初始化命令序列这几个section。每次换屏只改配置文件,不要动逻辑代码。这类桥接方案看起来是纯硬件的活,但在项目落地时,电气调试、I2C初始化序列、面板兼容性测试决定了能不能稳定量产。先把这些梳理清楚,比反复烧录试错要省太多时间。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询