ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RK3588砍掉原生LVDS?三条桥接方案与调屏实战

RK3588砍掉原生LVDS?三条桥接方案与调屏实战 一块从旧款工业设备上拆下来的7寸LVDS屏性能挺正常想接到新选的RK3588核心板上翻了半天原理图发现主控侧原生LVDS接口已经找不到了。这个画面在嵌入式圈子里越来越常见也引出很多选型工程师的疑问瑞芯微RK3588和RK3576这一代SoC为什么要把原生LVDS砍掉显示接口到底在往哪个方向演进手里的存量LVDS屏还能不能继续用这篇文章就围绕RK3588、LVDS、SoC这些关键词讲清楚背后的取舍逻辑再把DSI转LVDS、eDP转LVDS、FPGA桥接等几条落地路线拆开聊附上我在实际调屏过程中整理的时序参数计算和设备树配置经验。适合最近在做核心板选型、工控显示方案验证、显示驱动开发的朋友参考。1. 从“砍接口”说起RK3588/RK3576到底拿掉了什么1.1 新一代SoC显示接口清单里发生了什么变化先看结果。RK3588作为瑞芯微的旗舰级AIoT SoC显示资源其实很丰富支持HDMI、DP、eDP、MIPI DSI等多路接口能做多屏异显RK3576定位中高端AIOT/视觉处理平台同样保留HDMI、eDP、DP和MIPI DSI等主流数字显示接口。但如果你对照上一代RK3568/RK3566的规格书会发现原本出现在老型号上的LVDS支持在新一代主流选型中基本消失了取而代之的是大量MIPI DSI和eDP相关描述。这不是单纯的“漏掉”而是SoC设计团队在功能列表上做了一次非常明确的减法。LVDS这种接口在工业屏、车载屏上有大量存量但新出的高性能SoC不再愿意为它单独保留一套原生显示控制器和物理层。更准确地说是主控芯片内部已经没有可以直接引出LVDS差分信号的PHY。后续想接LVDS基本都是走协议转换。1.2 砍掉LVDS的三本经济账为什么SoC厂商敢砍核心原因有三点。第一是芯片面积和引脚成本。LVDS本身的协议不难难的是片上要集成一套并转串逻辑、PLL、通道间对齐电路、预加重驱动器和引脚这些都要占die面积和封装pin。RK3588/RK3576要堆的接口太多了HDMI要过认证、DP/eDP涉及链路训练、MIPI DSI要支持高频率如果把已经越来越少用的LVDS PHY再塞进去除了增加成本还会带来信号完整性测试和驱动维护的额外负担。第二是开发维护成本。一个显示接口不是有硬件就行还得有对应的内核驱动、backlight控制、时序配置、热插拔/识别机制。LVDS屏的规格五花八门不同厂商的线序定义、VESA/JEIDA映射、6bit/8bit配置还存在差异SoC原厂要长期维护这套兼容性投入产出比很低。相比之下外部桥片把这种“脏活”承担下来主控只需要输出标准的MIPI DSI或eDP信号。第三是市场盘子变了。RK3588/RK3576主攻的是高性能边缘计算、商显、平板、云终端、智能座舱类产品这些产品更多搭配eDP屏、HDMI显示器连MIPI DSI屏都是移动端逻辑。真正大量用LVDS的是工业控制、医疗器械、老旧车载屏这部分市场总体量不够大不足以让厂商为每一颗新SoC都保留原生LVDS接口。1.3 取舍的本质接口是系统设计不是功能列表所以看到“砍掉LVDS”先别急着吐槽它其实揭示了一个更底层的选型思路SoC厂商已经不把“接口数量”当作唯一卖点而是把“接口能复用、能转换、能组网”作为设计目标。RK3588/RK3576用MIPI DSI/eDP这类高速串行接口配合外部桥片实际上能覆盖更多显示场景而不是只能服务某一类存量屏。对硬件工程师来说这意味着选型时要算系统总成本主控差价、显示桥片成本、屏幕供应稳定性、驱动开发周期加在一起才是真实BOM。老项目想继续用LVDS屏确实要多花一颗桥片的钱但新项目如果直接选eDP屏幕反而能省掉桥片和一堆调试时间。这个方向改变是整个显示产业链逐步向高带宽、包传输协议转移的大势。2. LVDS为什么还能在工控圈里继续存在2.1 LVDS屏线接口的常见形态与分类聊优势之前先把LVDS屏线的常见分类说清楚很多新人第一次接手工业屏就是被这些名词搞晕的。按数据通道分单路Single LVDS和双路Dual LVDS。小尺寸屏一般单路1920×1080级别的屏通常要双路。按色彩深度分6bit18bit色深和8bit24bit色深。屏规格书里常常标注“6bitHi-FRC”或“8bit”。按数据映射分VESA标准和JEIDA标准。两种标准的RGB数据分布在差分通道上的顺序不一样配置错了颜色就会错乱。按物理连接分常见的LVDS接口有0.5mm/1.0mm间距的FPC软排线、30pin/40pin的板对板连接器、端子电源分开的工业线束等。只看这几条就知道LVDS不是一个“统一USB口”式的即插即用接口它更像一个“半定制接口”每款屏幕都要在驱动端做对应的配置。这也是它后来被MIPI DSI/eDP逐步替代的深层原因之一。2.2 信号本质并行RGB被转成了低压差分串行LVDS全称是Low-Voltage Differential Signaling核心是把传统的并行TTL RGB信号转换成低压差分信号。屏内部或者桥片内部先把RGB并行数据打包配上时钟通过一对对差分线串行传输。这样做的好处非常明显线束少了一大部分、抗干扰能力强、数据速率可以跑得更高。举个例子早期并行RGB要传输24bit颜色至少需要几十根线LVDS单路8bit模式下数据线只需要4对差分线加1对时钟线整条屏线清爽很多。正因为线少工业设备和车载设备才能把它当成长寿命的稳定接口。但LVDS也有明显天花板。它的控制通路很弱没有像MIPI DSI那样的命令通道也没有像eDP那样的辅助通道很多屏参数要靠初始化脚位和驱动端的寄存器硬写。带宽方面单路LVDS跑XGA分辨率没问题上1080P就比较吃力必须双路并行双路LVDS的线数、链路同步、PCB等长要求又会接着上来。2.3 工业屏10年生命周期拖慢了替换节奏LVDS到现在没被完全淘汰最大的底气来自工业市场。医疗器械、电力设备、轨道交通、老式数控系统这些领域一个屏幕型号可能连续供货5到10年产品认证周期又长整机厂没有动力随便更换显示方案。很多工控板卡沿用LVDS屏是因为仓库里还有几千片库存或者客户现场设备已经用了五六年只坏了一片屏得继续买同样接口的备件。这种“存量惯性”使得LVDS在工控显示市场中生命力很强。但终端客户的需求仍然是新一代SoC性能和算力矛盾就来了一边是高性能RK3588/RK3576一边是万年不坏的LVDS屏怎么把它们接起来答案就是中间加协议转换层。3. 三条落地路线把老LVDS屏挂到新SoC上3.1 路线一MIPI DSI转LVDS桥接方案这是目前最主流、也最推荐在RK3588/RK3576上优先尝试的方案。主控侧输出MIPI DSI信号经过一颗DSI转LVDS桥片转换为屏端需要的LVDS差分信号。市面上成熟的桥片不少TI的SN65DSI83/84系列、龙迅等国产桥片都能做关键是要选支持单路/双路LVDS输出、带寄存器配置接口的型号。桥片一般放在主板上靠近LVDS接口的位置供电、I2C/GPIO控制、复位时序都要单独设计。驱动方面桥片在系统初始化时通过I2C读取或写入配置包括单双路模式、VESA/JEIDA映射、6bit/8bit选择、LVDS输出时钟极性等。DSI侧则由主控的DSI控制器配置lane数、速率和时序参数。这个方案最大的优点是灵活性高。更换不同屏厂、不同规格的LVDS屏时通常不需要改硬件只需要改桥片寄存器和设备树中的时序参数。缺点是桥片会带来额外的信号转换延迟和一点底噪布局布线时需要格外注意差分线等长和阻抗匹配。3.2 路线二eDP转LVDS桥接方案如果板卡本身预留了eDP接口也可以用eDP转LVDS的小板或桥片。RK3588/RK3576的eDP接口带宽高对时序容错性更好主控通过对eDP链路做训练来识别屏幕参数再交给桥片转换为LVDS。实际项目中有些开发板上的LVDS插座旁边走的其实是eDP转LVDS的转板而不是主控原生LVDS。这个方案的好处是eDP信号本身有链路训练和自动校准调试难度比DSI低一些对屏幕参数差异的容忍度更好。缺点是需要多级转换桥片成本更高而且eDP转LVDS方案在低分辨率老屏上显得“大材小用”。如果只是接一块1024×600的工控屏我更建议老老实实走DSI转LVDS成本更低文档参考也更多。3.3 路线三并行RGB或FPGA做兜底还有一种思路是直接用FPGA接收并解析LVDS屏幕所需的数据或从SoC导出并行RGB信号后再转LVDS。但RK3588/RK3576这类新一代SoC几乎不会再提供并行RGB接口了强行用FPGA去接收主控的DSI信号再把像素解出来转成LVDS开发工作量和成本都极高只适合做通用转接设备比如FPGA同时做视频采集、格式转换的场合。如果碰到特别冷门的LVDS屏或者需要同时支持多路LVDS输入比如接LVDS摄像头传感器FPGA可以是兜底方案。但在常规显示屏场景下用FPGA点亮一块LVDS屏属于杀鸡用牛刀。只要桥片方案能跑没必要把复杂度抬上来。三种路线可以简单对比方案主控侧接口桥接成本开发难度适用场景DSI转LVDSMIPI DSI低中等常规工控屏、小尺寸LVDS屏eDP转LVDSeDP中较低高分辨率屏、已有eDP接口的板卡FPGA转LVDS任意可获取像素源高高冷门接口、多路视频处理、输入采集4. 实操手记RK3588点亮一块1024×600 LVDS屏4.1 拿到屏幕后先确认的不是接线而是规格很多朋友拿到一块LVDS屏第一件事就是查接口定义、找线序、接电源结果屏没点亮还烧了背光。我自己的经验是先看屏体标签和规格书确认三件事单路还是双路、6bit还是8bit、VESA还是JEIDA映射。这三个参数决定了桥片怎么配置也直接决定你后面会不会花屏、偏色。接下来确认供电LVDS屏逻辑电压常见3.3V或5V背光供电常见12V但也有少数5V/24V的背光方案。电源没确认清楚之前不要直接上电。再确认屏线是否自带触控触控IC是I2C、USB还是USB-HID这会决定系统里需要挂哪颗设备树节点。把信息整理成表格之后再开始走硬件连接。4.2 硬件连接与桥片复位时序硬件连接的核心有两点电源系统和差分布线。LVDS数据线要差分100Ω阻抗桥片输出到LVDS连接器之间的走线越短越好尽量做到等长、不要跨分割。背光电源要独立走线最好用单独的DC-DC和LC滤波避免背光开关瞬间的噪声通过地线串到LVDS数据上。桥片复位时序也是老坑。上电时要保证逻辑电源稳定后再释放复位有些桥片对复位脉宽有最低要求几十毫秒到上百毫秒不等。如果复位时序不对桥片I2C配置会失败屏表现为灯亮但无画面非常容易误判为DSI信号问题。4.3 设备树配置与参数计算过程以RK3588的MIPI DSI输出加DSI转LVDS桥片为例SDK内核里的设备树大致要配置DSI节点、panel节点、背光节点和触控节点。面板时序需要根据屏幕规格书计算比如一块1024×600的单路LVDS屏刷新率60Hz典型blanking参数如下hactive 1024hfront-porch 160hsync-len 70hback-porch 100vactive 600vfront-porch 12vsync-len 3vback-porch 12这只是示例值实际要以屏厂规格书为准。这样水平方向总长就是1024160701001354垂直方向总长60012312627像素时钟约为1354×627×6050.9MHz很多屏规格书会取52MHz左右。DSI侧的bit clock估算可以按这个简单公式来DSI总码率 像素时钟 × 每像素位数 ÷ lane数。如果是RGB888每像素24bit用4条lane再考虑DSI开销总码率大概在350Mbps到400Mbps完全在RK3588 DSI控制器能力范围内。设备树片段大概长这样dsi1 { status okay; panel0 { compatible my,lvds-panel; reg 0x00; backlight backlight; power-supply vcc3v3_lcd; reset-gpios gpio4 22 GPIO_ACTIVE_LOW; display-timings { timing0 { clock-frequency 52000000; hactive 1024; vactive 600; hfront-porch 160; hsync-len 70; hback-porch 100; vfront-porch 12; vsync-len 3; vback-porch 12; hsync-active 0; vsync-active 0; de-active 0; pixelclk-active 0; }; }; ports { #address-cells 1; #size-cells 0; port0 { reg 0; panel_in_dsi: endpoint { remote-endpoint dsi1_out_panel; }; }; }; }; ports { #address-cells 1; #size-cells 0; port1 { reg 1; dsi1_out_panel: endpoint { remote-endpoint panel_in_dsi; }; }; }; }; backlight { status okay; pwms pwm2 0 1000000 0; brightness-levels 0 100; num-interpolated-steps 101; default-brightness-level 80; };实际工作时桥片初始化可以在panel驱动里通过I2C写寄存器完成。比如把桥片配置为单路LVDS、VESA映射、8bit色深、时钟下降沿采样具体寄存器偏移值要查桥片的数据手册。最容易漏的是桥片I2C地址冲突以及复位GPIO被复用成其他功能。4.4 开机时序与背光闪烁的坑背光LED不是随便点亮的。正确顺序是先给屏逻辑供电等桥片初始化完成、DSI开始输出视频后再打开背光和PWM。如果背光在桥片还没初始化时就开会短暂亮一下或者出现“花屏闪”看起来像是信号问题实际是时序问题。反过来系统休眠时要先关背光再停DSI最后才给桥片断电。很多休眠唤醒后黑屏的问题不是DSI控制器崩了而是桥片没有按顺序复位初始化。我的做法是在suspend和resume的回调里显式控制背光、复位、I2C配置三者顺序而不是依赖自动电源管理。5. 调屏笔记常见故障、排查顺序与避坑5.1 屏幕完全不亮先从“灯”和“电”查起很多工程师一上来就怀疑时序和寄存器其实几个最简单的因素更容易翻车屏逻辑电源没供上、背光电压不对、背光开关信号/使能脚没拉高、桥片没有供电。排查顺序我建议这样用万用表量屏逻辑供电和背光供电是否正常。看背光是否亮如果亮说明背光通路没问题问题在信号或初始化。量桥片供电和复位脚电平确认复位GPIO没有被偷偷拉低。用示波器量LVDS接口的时钟差分对看有没有LVDS时钟信号。看内核日志确认DSI panel probe是否成功、I2C配置是否报错。其中示波器那一步最关键LVDS时钟对是否存在直接决定桥片有没有输出。没有时钟就查DSI信号和桥片状态有时钟但屏不亮再查屏端参数和面板电源时序。5.2 花屏、偏色和残影的常见原因花屏通常是以下几个原因引起的现象可能原因处理方式白屏或轻微闪烁复位时序、桥片初始化失败检查I2C日志重置后重新初始化满屏彩色噪点LVDS单双路设置错误对照屏规格配置为Single/Dual LVDS红蓝位置对调LVDS lane映射错误或线序反了交换数据通道或配置lane swap颜色整体偏色VESA/JEIDA映射错误切换桥片寄存器中的映射标准颜色过渡断层6bit/8bit色深配置错误按屏规格设置色彩深度底部水波纹/残影像素时钟偏低或PWM频率低校准时钟频率背光PWM设到1kHz以上偏色问题很容易被误判为屏坏了。如果你换过桥片配置还是偏色可以人肉验证一下在一个纯红色画面上如果面板显示成蓝色或绿色多半是LVDS的RGB通道错位或者VESA/JEIDA标准选错了而不是屏幕质量问题。5.3 休眠唤醒后闪屏、黑屏RK平台休眠唤醒之后DSI控制器和桥片的状态恢复顺序很敏感。最常见的情况是唤醒时背光先亮了DSI视频流还没恢复桥片又没被重新初始化导致屏闪一下然后黑屏。还有一个情况是eDP方案里唤醒后DP/eDP链路重新训练失败屏幕直接无信号。我的处理办法是在驱动的resume流程里做三件事先禁止背光输出释放桥片复位并等待复位完成后重新写入桥片寄存器再等待DSI视频流稳定最后恢复背光。实测下来绝大多数休眠唤醒闪屏问题都能通过这个顺序解决。如果还不行重点检查桥片的复位GPIO是否被系统其他子系统复用以及I2C总线上是否有别的设备影响了通信。5.4 最后的避坑心得这些看似琐碎的调屏经验往往比主控参数更重要。我自己的体会是选型阶段不要只看SoC规格书里有没有LVDS而要看整个系统能不能用最少的转换层完成稳定显示。RK3588/RK3576砍掉原生LVDS倒逼我们把屏幕选型和接口转换作为整体设计的一部分来考虑这反而是件好事。如果你手头项目预期生命周期超过五年建议在主板上预留一个DSI转LVDS桥片的标准封装位哪怕第一版用eDP屏后续切换老屏时也能用同一个PCB重新贴片完成兼容。预留一个I2C地址、一组复位GPIO和几颗电阻的成本很低后期省下的改版时间却不少。这算是从“原生LVDS消失”这件事里我最想说的一句经验。
返回列表