MIPI转LVDS与BT1120转MIPI:LT9211C转接板设计与调试

发布时间:2026/11/3 16:33:05
MIPI转LVDS与BT1120转MIPI:LT9211C转接板设计与调试 简介LT9211C_U1 数据手册Draft5面向从事显示接口转换的硬件工程师、FPGA 开发者与方案选型人员提供龙迅LontiumLT9211C 这颗 MIPI/TTL/双端口 LVDS 互转芯片的完整技术参考。文档详列 MIPI 收发器符合 DCS1.02、D-PHY1.2、DSI1.2 与 CSI-2 1.00 规范单 lane 达 2.5Gb/s支持双端口同时显示LVDS 部分兼容 VESA 与 JEIDA含可编程预加重与 SSCTTL 支持 24bit RGB、BT656/BT1120 及 DDR/SDR 采样。三者均可覆盖 3840×216030Hz 及 6.25297MHz 像素时钟内的分辨率支持突发与非突发模式另附 I2C 从机配置、muxer/splitter 与 FPGA 电平转换等设计要点便于对照接口能力与时序细节。压缩包仅含 1 个 PDF约 1.9MB已有 953 人学习。1. 需求一块转接板要同时兼容 MIPI 屏、双端口 LVDS 屏和并口摄像头主控只剩一路 MIPI DSI样机上却挂着双端口 LVDS 屏下个项目换成 BT1120 并口摄像头主控又只有 CSI-2。每换一种组合就重画一块转接板抽屉里堆了七八块BOM 和调试时间都压不住。LT9211C 这类 MIPI/TTL/LVDS 到 MIPI/TTL/LVDS 的双向互转芯片就是冲这个场景来的一颗 QFN64、两路电源域、I2C 配置把 MIPI DSI/CSI-2、双端口 LVDS、24bit TTL 与 BT656/BT1120 之间的组合收进同一套硬件还能兼职做 Repeater、Muxer 和 Splitter。适合做屏驱转接板、车载显示与摄像头链路、FPGA 到 MIPI 屏电平桥接的毕设课设也适合需要快速出样的小批量方案。下面按我实际落板的顺序从选型一路写到验收。2. 选型与能力边界互转矩阵、带宽预算与 FPGA 方案的取舍拿到一颗转接芯片多数人第一眼看分辨率我看的是它「不支持什么」。数据手册第 2 节 General Description 里那句以 except for 开头的排除条款比后面所有参数都重要——它决定了你的板子能不能立项。这一章先把能力边界钉死再把带宽账算清楚最后说清什么情况下该老老实实上 FPGA。2.1 互转矩阵一张表决定这块板子能不能画手册给的引脚是复用的输入输出方向是可换的理论上 MIPI、双端口 LVDS、TTL 三者两两互转都成立。但实际能落地的组合得按下面这样分类输入RX输出TX结论典型场景MIPI DSI/CSI-21~4 laneMIPI / 双端口 LVDS / TTL支持主力用法DSI 转 LVDS 屏、CSI 摄像头转 TTL双端口 LVDS6/8/10bitMIPI / TTL支持老平台 LVDS 信号进新主控24bit TTL / BT656 / BT1120MIPI / LVDS支持并口摄像头、FPGA 直接出图24bit TTLSYNC 与 DE 同时使能24bit TTL不支持手册明确排除别在这里耗时间双端口 10bit LVDS24bit TTLSYNC 与 DE不推荐需要 10bit 就改走 MIPI或降位深MIPI / LVDS 输入同协议输出支持Repeater14dB 输入均衡 可编程预加重用来拉长走线两路 MIPI/LVDS 输入一路输出支持Muxer/SplitterCSI RAW 格式需配合连续时钟第一行和最后两行是这颗芯片真正的价值点双端口同时显示two port simultaneous display意味着你能一路输入拆给两块屏反过来也能两路输入选一路送到主控。做双屏异显、或者主控只有一个 DSI 却要接两块屏的项目Muxer/Splitter 这个用法比单纯转换更省事。注意 CSI RAW 只在 Repeater、Muxer、Splitter 三种模式下支持并且要求连续时钟别在纯转换模式下试。2.2 带宽预算把 2.5Gb/s 和 297MHz 换算成你自己的分辨率手册写的是「3840x2160 30Hz或像素时钟在 6.25MHz 到 297MHz 之间的任何分辨率」。这是一个包络不是保证值。真正决定你能不能跑的是每条 lane 的占用率。MIPI 侧每数据 lane 最高 2.5Gb/s扣掉协议开销有效载荷按 80% 估比较稳LVDS 侧每端口 1 个时钟 lane 加 5 个数据 lane单 lane 上限 1.05Gb/s24bit RGB 时每 lane 每像素时钟传 7bit。这段计算我一般写成脚本改分辨率直接跑def budget(h, v, fps, bpp24, mipi_lanes4): 链路占用率校核 h/v/fps: 有效分辨率与刷新率 bpp: 色深24 表示 RGB888 mipi_lanes: MIPI 数据 lane 数 # 消隐期吃掉的像素时钟约 15%~25%这里按 1.2 估 pix_clk h * v * fps * 1.2 # MIPI每 lane 2.5Gb/s8b/10b 编码后有效载荷按 80% mipi_load (pix_clk * bpp) / (mipi_lanes * 2.5e9 * 0.8) # LVDS24bit 用 4 条数据 lane每 lane 每周期 7bit单 lane 上限 1.05Gb/s lvds_lane_rate pix_clk * 7 lvds_load lvds_lane_rate / 1.05e9 return round(pix_clk / 1e6, 1), round(mipi_load, 2), round(lvds_load, 2) print(budget(1920, 1080, 60)) # (149.3, 0.45, 1.00) print(budget(3840, 2160, 30)) # (298.6, 0.45, 1.99) - 必须走双端口第二行输出很说明问题1080p60、24bit、单端口 4 lane LVDS 时占用率已经打到 1.00也就是每条 lane 跑 1.04Gb/s贴着 1.05Gb/s 的天花板。这种设计能点亮但走线稍长、连接器稍差、温度一高就开始闪属于典型的「实验室能用、量产就翻车」。要把余量留到 85% 以下只有三条路降刷新率、把数据拆到双端口、或者输出改走 MIPI。4K30 那一行更直接占用率 1.99双端口不是可选项而是必需品。像素时钟上限 297MHz 对应的就是 4K30 这个档再往上加分辨率先看这一条是不是已经超了。2.3 什么时候不该省这颗芯片FPGA 加收发器的方案能干的事更多缩放、裁切、多路混合、自定义时序全都能做。代价是要写 SerDes、要处理 D-PHY 的电气规范、功耗和 BOM 都下不来点亮周期以周计。判断标准其实很简单——链路的输入输出格式固定、要量产、对功耗敏感就用专用芯片需要在这条链路上做图像处理或者输出时序要自己生成就上 FPGA。还有一种折中用法值得一提手册里明确写了这颗芯片可以当 MIPI-LVDS 之间的电平转换器给 FPGA 用。FPGA 出 LVDS芯片转成 MIPI 打给屏等于把 D-PHY 这块最难的电气部分从 FPGA 那边剥离出去FPGA 只管出标准 LVDS省下的不只是功耗。带过完整项目的工程师通常会把这条写进方案对比页答辩时也是加分项——它说明你想过的不只是「能不能用」还有「哪一段该谁做」。3. 硬件设计QFN64 引脚复用、三个供电域与 25MHz 参考时钟QFN64、7.5mm×7.5mm、带 ePad64 个脚里真正需要动脑子的其实只有十来组差分对。但复用也意味着原理图阶段最容易出错——同一个物理引脚在三种模式下承担三种角色网络名写错一个板子回来就得飞线。3.1 引脚复用的读法一个球三张嘴而且顺序是反的引脚命名规则是「MIPI 名 / LVDS 名 / TTL 名」三段拼起来的比如 MRA0P/LRA3P/RD14意思是这个脚在 MIPI 接收模式下是 Port A 的 Lane0 正端在 LVDS 接收模式下是 Port A 的 Lane3 正端在 TTL 模式下是数据位 RD14。把 Port A 这一组按引脚号排开交叉关系就露出来了引脚号复用名MIPI RXLVDS RXTTL61/62MRA0P/N · LRA3P/N · RD15/14Lane0Lane3RD[15:14]59/60MRA1P/N · LRACP/N · RD17/16Lane1ClockRD[17:16]57/58MRACP/N · LRA2P/N · RD19/18ClockLane2RD[19:18]55/56MRA2P/N · LRA1P/N · RD21/20Lane2Lane1RD[21:20]53/54MRA3P/N · LRA0P/N · RD23/22Lane3Lane0RD[23:22]MIPI 的 Lane0 落在 LVDS 的 Lane3 上MIPI 的 Lane1 落在 LVDS 的时钟对上MIPI 的时钟对又落在 LVDS 的 Lane2 上。这组镜像加错位如果按顺序直连表现就是花屏、颜色通道错乱、或者整幅图左右错位——而且你会怀疑是软件配置白白调两天。提示一块板只服务一种模式时原理图网络名就按该模式命名别贪心写三套要做多模式兼容板串 0Ω 电阻做跳线矩阵并且每组模式单独出一页连接器靠改电阻而不是靠改软件来切换。软件切模式是能切的但方向、lane 数、时钟极性这些一旦错位排查成本远高于几颗 0Ω 电阻。3.2 供电域VCCIO 决定 TTL 电平其余走 1.8V电源这块看起来简单实际是第二个高频错误来源。规则就三条整颗芯片支持 1.8V 与 3.3V 供电VCCIO 是 TTL 侧所有输入输出的电平基准除 TTL 输入以外VCCIO 可以用 1.8V。电源脚典型值作用说明VCC18_TX / VCC18_RX / VCC18_RXA1.8V发送侧、接收侧与接收模拟尽量各自独立去耦别串在一起省电容VCCIO1.8V 或 3.3VTTL 输入输出电平TTL 输出高电平就等于 VCCIOOVDD / AVDD / VDD按手册 8.2 节内部各域与 8.5 节功耗表一并核对ePadGND散热与地平面QFN64 的焊盘必须打过孔阵列最容易犯的错是接 3.3V 主控却只给 VCCIO 供 1.8V。手册写得很清楚TTL 输入时VCCIO 电压必须大于 TTL 输入的高电平。主控输出 3.3V 摆幅VCCIO 只有 1.8V输入级长期工作在超出范围的状态轻则误判电平重则直接损伤。反过来纯 MIPI 到 LVDS 的转换项目里 VCCIO 给 1.8V 就够TTL 侧根本不用能省一点功耗。3.3 时钟、复位与 I2C25MHz ±50ppm 不能凑合参考时钟手册推荐外部 25MHz ±50ppm 晶振。这个精度要求不是摆设——输出 SSC 和输入 De-SSC 都锁在 30kHz±5% 这个范围里参考时钟本身偏得太多跟踪余量就被吃掉了。用普通 100ppm 的贴片晶振凑合短期内看不出来批次一换或者温度一拉就出问题。REXT 脚上的外接电阻是内部终端电阻校准用的手册标的是校准误差小于 5%。这个电阻用 1% 精度即可但绝对不能省省掉或者贴错阻值LVDS 接收端共模和摆幅都不对表现就是长线能通短线不通、或者干脆一条 lane 起不来。I2C 从机支持 100kHz 和 400kHz 两档SDA/SCL 上拉按 2.2k~4.7k 取长走线取小一点。INT 脚建议接主控 GPIO中断来了再去读状态比定时轮询省事也省电RST/N 低有效可以用 GPIO 控制也可以 RC 复位用 GPIO 的话调试阶段能主动重来一次。嵌入式平台下的设备树大致长这样地址和 GPIO 按实际硬件改i2c3 { status okay; clock-frequency 400000; /* 400kHz 档长走线可降到 100kHz */ bridge4c { compatible vendor,lt9211c; reg 0x4c; /* 7bit 地址按实际硬件填写 */ reset-gpios gpio1 12 GPIO_ACTIVE_LOW; interrupt-parent gpio1; interrupts-extended gpio1 13 IRQ_TYPE_EDGE_FALLING; vccio-supply reg_1v8; /* 与原理图上的 VCCIO 保持一致 */ status okay; }; };reset-gpios 和中断两个属性一定要有否则上电时序只能靠碰运气出了问题也没法主动恢复。vccio-supply 写上去是为了让驱动在做模式切换前先确认电平域接 3.3V 器件时改成对应的 regulator 就行。4. 配置落地上电时序、I2C 初始化序列与四种典型模式硬件画对了剩下就是配置。这颗芯片所有模式都靠 I2C 从机寄存器决定没有配置引脚所以「上电顺序 初始化序列 回读自检」这三段必须一次做对否则你面对的就是一块通电但什么都不出的板子。4.1 上电与复位先电后钟再放复位手册 8.6 节给了上电与复位时序我按实际调试的经验把它拆成四步先让 1.8V 和 VCCIO 稳定再等 25MHz 参考时钟起振稳定然后释放 RST/N最后才允许访问 I2C。顺序错一步最常见的结果是 I2C 能读到应答但寄存器写不进去。import time class LT9211C: 初始化骨架。寄存器地址与位域以配套寄存器手册为准这里只保留流程。 def __init__(self, bus, addr0x4c): self.bus, self.addr bus, addr def wr(self, reg, val): self.bus.write_byte_data(self.addr, reg, val) def rd(self, reg): return self.bus.read_byte_data(self.addr, reg) def power_on(self, set_rst): time.sleep(0.010) # 1) 1.8V 与 VCCIO 建立留 10ms time.sleep(0.005) # 2) 25MHz 起振留 5ms set_rst(1) # 3) 释放复位低有效 time.sleep(0.010) # 复位后留初始化时间按手册 8.6 节核对 chip_id self.rd(0x00) # 4) 读 ID确认通路 if chip_id in (0x00, 0xFF): raise RuntimeError(I2C 通路异常ID0x%02X % chip_id) return chip_id读回全 0xFF 通常是 SDA 被拉低或者地址写错先量上拉和地址脚读回全 0x00 多半是器件根本没上电去量 VCC18 和 VCCIO。这两个返回值是最省时间的判据比拿示波器一上来就打差分对高效得多。4.2 四种典型模式配置项其实就四组寄存器看着多按功能归一下只有四组输入通路输入类型、lane 数或 port 数、端口选择、时序分辨率、H/V total、DE 或 SYNC 极性、输出格式RGB888/RGB666/RGB565/YCbCr422、bit 深度、DDR 还是 SDR、链路增强预加重、SSC 开关、输入均衡。四种常用模式的差异只落在这四组上模式输入输出配置重点ADSI 转双端口 LVDSMIPI DSI 4 lane双 Port LVDSVESA双 port 时序必须同一套预加重按线长开BLVDS 转 MIPI双 Port LVDSJEIDAMIPI DSI 4 laneJEIDA/VESA 映射别选错10bit 时降到 8bitCBT1120 转 MIPI24bit TTLSDRMIPI DSITTL 侧 SYNC 模式VCCIO 跟着主控走DRepeaterMIPI 或 LVDS同协议输入均衡开满 14dB输出预加重按眼图调模式 A 的初始化大致是这样寄存器号用占位表示def mode_a_mipi_to_dual_lvds(dev): dev.wr(0x10, 0x01) # 输入选择MIPI RX dev.wr(0x11, 0x03) # MIPI 数据 lane 数4 lane dev.wr(0x20, 0x02) # 输出选择双 Port LVDS dev.wr(0x21, 0x00) # LVDS 映射VESA dev.wr(0x22, 0x01) # 输出格式RGB888 dev.wr(0x30, 0x4B) # H total 低字节按屏 timing 表填 dev.wr(0x31, 0x02) # V total 低字节 dev.wr(0x40, 0x00) # DE 模式极性按屏规格 dev.wr(0x50, 0x02) # 预加重档位短线可关 dev.wr(0x01, 0x01) # 使能输出写这类序列有个顺序上的讲究先配输入再配时序最后使能输出。反过来先使能再改时序中间那几十毫秒输出的是非法时序有些屏会直接锁死得断电才能恢复。另外一个细节是双端口模式必须把两个 port 的时序寄存器都写一遍只写 port A 的话port B 会停在默认值上输出就是一半图像加一半噪声。4.3 回读与自检状态寄存器是唯一的黑匣子配完之后不要急着接屏先回读三样东西。第一是 ID 和版本确认器件型号没拿错第二是链路状态位看输入 lane 是否全部锁定、像素时钟是否检测到第三是中断标志清一次再看会不会反复置位反复置位基本就是输入不稳定。这一步花十分钟能省掉后面反复拔插屏线的一整天。5. 避坑与排查五个最容易翻车的点及现场定位方法这颗芯片的坑很集中翻来覆去就那么几类。下面五条是我在几块板子上真实踩过的按「现象 → 原因 → 解决」写方便你对着现场症状直接跳转。5.1 三类「起不来」黑屏、花屏、间歇闪屏一、全黑背光亮但没图像。现象是屏背光正常、没有任何画面读状态寄存器显示输入未锁定。原因多半在输入侧MIPI 的 lane 数配错硬件走了 4 lane寄存器写的 2 lane或者输入端口选错Port A 和 Port B 的位置在复用表里是分开的两组。解决方法是先用示波器量输入差分对的共模和摆幅确认物理层有信号再逐项核对寄存器里的 lane 数与端口选择MIPI 输入还支持极性翻转走线为了布线方便反接时记得在配置里把极性位打开。二、有图像但花屏、颜色错位。屏幕上能看到轮廓颜色却像被洗过或者图像整体左右偏移。原因基本是两个LVDS 的 lane 顺序反了或者 VESA 与 JEIDA 映射选错。回头看第 3 章那张表就明白了MIPI Lane0 对应 LVDS Lane3这个交叉关系如果按顺序直连靠软件是补不回来的。解决办法只有改硬件或者用 0Ω 电阻把四条 lane 重新排一遍。颜色偏淡、红蓝互换这类现象则优先查映射标准和 RGB666/Loosely RGB666 的区别——Loosely RGB666 是 18bit 数据占 24bit 位宽接错了就是通道整体位移。三、能点亮跑十几分钟后开始闪。现象是冷机正常热了以后闪屏、偶尔黑一下再恢复。两个原因叠加带宽占用率贴着上限第 2 章算过1080p60 单端口正好 1.00加上预加重没开、电源纹波偏大。解决办法是先降刷新率或改双端口验证是否是带宽问题确认后把预加重打开、按线长调档同时量一下 1.8V 的纹波。这条属于最容易被误判成「屏的问题」的故障我见过有人换了三块屏才发现是自家 lane 速率贴边。5.2 参数与板级双端口同步、REXT 与晶振四、双屏同时显示时画面撕裂或不同步。现象是两块屏各自正常但一块比另一块慢半帧快速运动的画面能明显看出差异。原因是对两个 port 的配置没有完全对齐比如只改了 port A 的 H totalport B 还是默认值也可能只使能了一个 port 的输出另一个靠自动跟随。解决办法是把双端口的时序寄存器整组写一遍使能位一起置起不要分两次写。五、换一批板子就不亮或者同一块板子换个温度就挂。现象是打样五块亮三块或者常温正常、高温下偶发丢锁。原因集中在三个地方REXT 电阻贴错阻值或精度不够导致内部终端校准超差25MHz 晶振用了 ±100ppm 的普通料SSC 跟踪余量被吃掉LDO 输出电容离芯片太远上电斜率不一致。解决办法是把 REXT 和晶振列进关键物料清单贴片后逐板量阻值晶振按 ±50ppm 采购去耦电容按手册布局要求贴近引脚。注意De-SSC 与 SSC 是两端的事。源端已经开了 SSC接收端的 De-SSC 就要跟着打开两端都开或两端都关才对得上。一端开一端关表现为极低频的横向抖动肉眼看上去像图像在轻微呼吸。6. 验收与答辩一张测试记录表证明链路真的通板上电、屏点亮只是「能跑」离「验收通过」还差一份可复现的记录。我一般按下面这张表逐项过每项都要有数值不能只写「正常」测试项方法判据静态电流分别测 1.8V 与 VCCIO 支路与手册 8.5 节功耗表同量级I2C 通路读 ID 与版本寄存器返回值稳定重试 100 次无失败链路锁定读状态位 观察 INT连续 30 分钟不丢锁差分信号质量示波器测 LVDS 摆幅与共模落在手册 8.4 节交流特性范围内像素时钟测 TTL 侧时钟脚与 timing 表偏差小于 1%双端口同步双屏同显运动画面无撕裂、无半帧延迟长时间拷机静态图 动态图各 2 小时无花屏、无闪断、无丢帧温度-40°C 与 85°C 各 1 小时功能正常无丢锁答辩或者评审的时候这张表比任何 PPT 都管用但真正让人信服的是你怎么讲三件事。第一讲约束主动说出这颗芯片不支持 24bit TTL 到 24bit TTL、不推荐双端口 10bit LVDS 转 24bit TTL说明你的方案是在边界内选的不是碰巧能跑。第二讲取舍为什么不用 FPGA把 BOM、功耗、点亮周期三个维度摆出来对比比空谈优缺点有说服力。第三讲失败记录花屏那次是 lane 反序闪屏那次是带宽贴边这两个案例一讲评委立刻知道你真的动过手。资料本身是 Draft5 版本的数据手册第 6 章引脚表、8.4 节交流特性和 8.6 节上电时序是最该翻烂的三处配套的寄存器手册得对着一起看光有数据手册配不出模式来。这份原文放在文末需要的自取。从那以后我每次出转接板都强制先跑一遍带宽预算脚本再对着复用表逐脚核一遍网络名最后才动烙铁——两块板子的学费换来的习惯比任何检查清单都管用。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询