屏G121ICE-LH1詳解:從LVDS接口到點(diǎn)亮調(diào)試全攻略)
在工業(yè)顯示這個(gè)圈子里待久了提到12.1寸屏很多人的第一反應(yīng)就是群創(chuàng)的G121系列。這塊G121ICE-LH1算是其中的常青樹LVDS接口、1024×768分辨率、12.1英寸、工業(yè)寬溫、長期供貨很多老項(xiàng)目跑了好幾年還在用同一顆物料。今天不聊虛的就把它從規(guī)格書到點(diǎn)亮再到排錯(cuò)的完整邏輯捋一遍看完你基本能獨(dú)立判斷“這塊屏到底適不適合我的項(xiàng)目、如果要用該怎么點(diǎn)亮、出問題從哪里查”。無論你是做工業(yè)HMI、醫(yī)療設(shè)備、自助終端還是嵌入式顯示方案這篇都值得存一下。1. 項(xiàng)目拆解先搞清楚G121ICE-LH1是一塊什么樣的屏1.1 型號(hào)命名與核心參數(shù)群創(chuàng)光電Innolux的屏幕型號(hào)命名是有規(guī)律的。G代表群創(chuàng)Innolux/G121代表12.1英寸ICE是產(chǎn)品系列代號(hào)通常指向工業(yè)級(jí)寬溫TFT-LCD產(chǎn)品線LH1則是電氣版本后綴一般對(duì)應(yīng)背光類型和接口配置的某個(gè)具體組合。也就是說這塊屏不是隨手挑的“庫存款”而是群創(chuàng)工業(yè)產(chǎn)品線里定位明確的一塊基礎(chǔ)面板。它的核心參數(shù)大致如下參數(shù)項(xiàng)典型值屏幕尺寸12.1英寸對(duì)角線有效顯示區(qū)域約246.0×184.5mm分辨率1024×768XGA4:3像素間距約0.240mm接口LVDS 單通道常見6bit/8bit以規(guī)格書為準(zhǔn)背光LED 側(cè)入式亮度典型400~500cd/m2對(duì)比度典型600:1~700:1工作溫度寬溫型常見-20℃~70℃部分批次可到-30℃~85℃可視角度水平/垂直典型80/80度上下這里有個(gè)很關(guān)鍵的提醒液晶面板這類物料不同批次、不同切割版本個(gè)別參數(shù)會(huì)有微調(diào)。別看型號(hào)一樣實(shí)際拿到的貨可能亮度等級(jí)、背光電壓、連接器規(guī)格都有差異。所以買之前一定要向供應(yīng)商索取對(duì)應(yīng)批次的規(guī)格書datasheet別拿舊批次參數(shù)套新批次物料這在項(xiàng)目量產(chǎn)階段特別容易翻車。1.2 為什么工業(yè)項(xiàng)目偏愛它這幾年國產(chǎn)屏和消費(fèi)類面板價(jià)格壓得很低但很多工業(yè)設(shè)備依然點(diǎn)名要群創(chuàng)的工業(yè)屏原因很現(xiàn)實(shí)第一是供貨周期。消費(fèi)級(jí)顯示器面板可能半年一換代今天做好的產(chǎn)品明年屏停產(chǎn)了整機(jī)就要重新開模。工業(yè)屏廠商會(huì)把某些型號(hào)承諾為長期供貨比如5年、7年甚至更久這對(duì)設(shè)備生命周期長的行業(yè)來說是最重要的選型依據(jù)。第二是寬溫特性。普通商用屏的工作溫度范圍通常是0℃到50℃設(shè)備放車間、戶外、車載環(huán)境夏天暴曬冬天挨凍很容易出現(xiàn)低溫白屏、高溫色彩漂移。G121ICE-LH1這類工業(yè)屏可以在更寬的溫度范圍內(nèi)保持穩(wěn)定這是它貴出來的價(jià)值所在。第三是接口和生態(tài)成熟。工業(yè)屏用LVDS接口旁邊配套的驅(qū)動(dòng)方案、線材、轉(zhuǎn)接板都極其成熟資料遍地都是。相比那些需要專用驅(qū)動(dòng)IC、保密協(xié)議才能拿到規(guī)格書的接口LVDS項(xiàng)目做起來輕松得多。1.3 它和你手里那臺(tái)“LCD顯示器”的差別很多人第一次拿到這種屏?xí)兑幌逻@不是一塊顯示屏嗎怎么還要接一堆線它不是插上電就出畫面的。家用液晶顯示器是一個(gè)完整產(chǎn)品外殼、電源、驅(qū)動(dòng)板、OSD控制、HDMI/VGA接口什么都給你做好了你只需要接一根HDMI線。而G121ICE-LH1是一塊裸面板只有玻璃面板、背光、柔性排線和接口連接器。它沒有外殼沒有驅(qū)動(dòng)板沒有OSD菜單甚至連“信號(hào)輸入格式”都必須由外部設(shè)備自己生成。打個(gè)比方家用顯示器像一本印刷好的雜志拿到就能讀裸屏像一沓白紙和一臺(tái)打印機(jī)你得自己把內(nèi)容印上去。你的工作就是做那臺(tái)“打印機(jī)”——把電腦或主板要顯示的內(nèi)容按LVDS協(xié)議轉(zhuǎn)換成它認(rèn)識(shí)的像素?cái)?shù)據(jù)。2. LVDS接口這塊屏的“語言”和它的工作原理2.1 LVDS的本質(zhì)一對(duì)差分線是怎么抗干擾的LVDS全稱是低壓差分信號(hào)Low-Voltage Differential Signaling。要理解這塊屏必須先理解LVDS。它不是某種“協(xié)議”而是一種電氣傳輸標(biāo)準(zhǔn)。傳統(tǒng)單端信號(hào)比如TTL電平用一根線對(duì)地傳0或1“1”是高電平“0”是低電平。線越長越像一根天線外界干擾疊加上去接收端誤判的概率就越高。LVDS換了個(gè)思路用兩根線傳一個(gè)信號(hào)發(fā)送端在兩根線上同時(shí)輸出大小相等、方向相反的電流接收端檢測的是兩根線之間的電壓差不是某根線對(duì)地的絕對(duì)電壓。因?yàn)楦蓴_信號(hào)通常同時(shí)作用在兩根線上這叫共模干擾接收端把兩線相減時(shí)干擾就被抵消了。LVDS的優(yōu)勢不只是抗干擾還有低擺幅輸出擺幅只有大約350mV驅(qū)動(dòng)電流也就3.5mA左右所以功耗低、EMI小。能不能傳得快也跟擺幅有關(guān)系小擺幅信號(hào)可以在更短時(shí)間內(nèi)穩(wěn)定下來所以LVDS可以跑到幾百M(fèi)bps甚至Gbps級(jí)別。用生活里的事來類比兩個(gè)人抬一根扁擔(dān)扁擔(dān)兩端的落差才是真正值得關(guān)注的信息風(fēng)吹、腳步顛簸這種同時(shí)影響兩個(gè)人的擾動(dòng)并不影響“落差”本身。差分傳輸就是靠這個(gè)“只看差值”的思路把長距離傳輸時(shí)最頭疼的共模干擾直接消滅掉。LVDS接口在工業(yè)LCD上的具體形態(tài)是一對(duì)時(shí)鐘差分線加若干對(duì)數(shù)據(jù)差分線把像素信息串行化后傳過去。2.2 像素是怎么裝進(jìn)LVDS的數(shù)據(jù)通道與映射G121ICE-LH1用的是LVDS接口常見配置是單通道也就是4對(duì)數(shù)據(jù)線加1對(duì)時(shí)鐘線6bit單通道是3對(duì)數(shù)據(jù)線加1對(duì)時(shí)鐘線。每對(duì)數(shù)據(jù)線內(nèi)部是串行傳輸在一個(gè)像素時(shí)鐘周期里傳7個(gè)連續(xù)的數(shù)據(jù)位。72塊屏的像素?cái)?shù)據(jù)就是按特定的映射關(guān)系被“拆”進(jìn)這3對(duì)或4對(duì)數(shù)據(jù)線里的。以VESA標(biāo)準(zhǔn)映射為例6bit單通道常見是這樣安排的數(shù)據(jù)通道位分配VESA 6bit映射常見格式DATA0R0 R1 R2 R3 R4 R5 G0 G1DATA1G2 G3 G4 G5 B0 B1 B2 B3DATA2B4 B5 DE VS HS8bit單通道則多占一隊(duì)常見是把R6、R7、G6、G7、B6、B7這些高位補(bǔ)進(jìn)去數(shù)據(jù)通道位分配VESA 8bit映射常見格式DATA0R0 R1 R2 R3 R4 R5 G0 G1DATA1G2 G3 G4 G5 B0 B1 B2 B3DATA2B4 B5 B6 B7 DE VS HSDATA3R6 R7 G6 G7 B6 B7 預(yù)留/備用位看到這個(gè)表你就明白為什么上電前要仔細(xì)核對(duì)規(guī)格書了。不同面板制造商對(duì)DATA2/DATA3上的備用位、同步信號(hào)位可能有不同安排。如果你按A面板的驅(qū)動(dòng)配置去驅(qū)動(dòng)B面板結(jié)果往往是整個(gè)畫面的色彩通道錯(cuò)亂甚至干脆白屏。數(shù)據(jù)映射的意義在哪里它決定了你從主控側(cè)看到的“RGB888像素”到面板側(cè)看到的“一串差分?jǐn)?shù)據(jù)”之間哪些位負(fù)責(zé)紅、哪些位負(fù)責(zé)綠、哪些位是同步信號(hào)。驅(qū)動(dòng)端的FPGA或者橋接芯片就要嚴(yán)格按這個(gè)表去拼數(shù)據(jù)。2.3 6bit與8bit的區(qū)別以及時(shí)鐘怎么算6bit的意思是RGB每個(gè)顏色通道用6位表示共18位能顯示的顏色數(shù)是2^18等于262144色大約26萬色。8bit則是每個(gè)顏色通道8位共24位能顯示1670萬色。G121ICE-LH1這塊料不少資料標(biāo)的是6bit單通道版本但不同后綴版本可能不一樣拿貨時(shí)一定要確認(rèn)。有人會(huì)覺得“26萬色也太少了現(xiàn)在手機(jī)都10億色了”。工業(yè)屏不追求這個(gè)因?yàn)楣I(yè)場景最看重的是穩(wěn)定、可讀性和成本。而且6bit屏配合FRC幀率控制抖動(dòng)技術(shù)可以模擬出近似8bit的視覺效果對(duì)于曲線圖、儀表盤、參數(shù)表這種顯示場景完全夠用。時(shí)鐘頻率則是另一個(gè)關(guān)鍵數(shù)字。LVDS是異步傳輸嗎不是。它依賴一對(duì)差分時(shí)鐘線來鎖存數(shù)據(jù)。像素時(shí)鐘和分辨率、刷新率之間的關(guān)系可以用公式算像素時(shí)鐘 ≈ 水平總像素 × 垂直總像素 × 刷新率以1024×76860Hz為例標(biāo)準(zhǔn)VESA時(shí)序中水平總像素約1344垂直總像素約806都包含了消隱區(qū)所以像素時(shí)鐘約為1344×806×60算出來大約是65MHz。于是LVDS每對(duì)數(shù)據(jù)線的實(shí)際傳輸速率就是65MHz×7大約455Mbps。算時(shí)鐘的目的是什么你在給FPGA寫時(shí)序約束、給驅(qū)動(dòng)板調(diào)分辨率時(shí)都要用這個(gè)數(shù)做基準(zhǔn)。時(shí)鐘偏了畫面會(huì)滾動(dòng)、閃動(dòng)甚至直接鎖不住信號(hào)。2.4 為什么工業(yè)LCD普遍選LVDS而不是RGB早期工業(yè)屏很多是RGB/TTL接口紅色、綠色、藍(lán)色各8根線再加時(shí)鐘線和同步線二十多根線。低頻下問題不大但分辨率一高、刷新率一高每根線的信號(hào)延遲不一樣一組像素?cái)?shù)據(jù)到達(dá)面板時(shí)參差不齊就容易出現(xiàn)重影、噪點(diǎn)。LVDS把二十多根線壓成4對(duì)加1對(duì)時(shí)鐘線線束少、接線簡單、EMI小、抗干擾強(qiáng)還能在更長的排線上穩(wěn)定工作。所以從1024×768這個(gè)分辨率往上工業(yè)面板基本都從RGB轉(zhuǎn)向LVDS。后來eDP、MIPI DSI這些接口雖然更先進(jìn)但它們的生態(tài)更多圍繞筆記本和移動(dòng)設(shè)備工業(yè)屏如果改用它們設(shè)備商要付更高的授權(quán)成本、買更難調(diào)試的工具鏈。因此LVDS在工業(yè)顯示領(lǐng)域一直保有穩(wěn)定的存量市場G121ICE-LH1這種屏到今天還在大量出貨就是最好的證明。3. 點(diǎn)亮這塊屏接線、時(shí)序、代碼與兩種典型方案3.1 接口定義先看懂電源、背光、LVDS信號(hào)拿到屏先別急著上電。第一步是打開規(guī)格書把連接器的引腳定義逐項(xiàng)看清楚。G121ICE-LH1這類屏的接口通常分成三塊屏邏輯電源、LVDS差分信號(hào)、LED背光電源。常見的30pin或20pin排線接口里引腳大致分成幾組電源和地VDD典型3.3V或5V、GND若干LVDS差分信號(hào)RXO0-/RXO0、RXO1-/RXO1、RXO2-/RXO2、RXO3-/RXO3、RXCLK-/RXCLK背光電源LED、LED-典型12V輸入具體看燈串設(shè)計(jì)這里有個(gè)特別容易混淆的地方規(guī)格書里RXO0-和RXO0這樣的正負(fù)標(biāo)記是“進(jìn)入面板的方向”。它對(duì)應(yīng)到你主板/驅(qū)動(dòng)板側(cè)就是TXO0、TXO0-這樣的發(fā)送端。正負(fù)極性絕對(duì)不能接反否則差分信號(hào)變成“差模變共?!苯邮斩耸裁炊冀獠怀鰜?。背光部分也要分清楚。LED背光不是簡單地接個(gè)12V就能亮它需要恒流驅(qū)動(dòng)。面板規(guī)格書會(huì)給出額定電流常見范圍大約在300mA到600mA之間超一點(diǎn)點(diǎn)電流都可能讓燈珠加速老化。所以我的建議是背光供電用一個(gè)專門的LED恒流驅(qū)動(dòng)器或驅(qū)動(dòng)板上的恒流通道不要圖省事直接拿穩(wěn)壓電源懟上去。3.2 電源上電與背光控制的時(shí)序細(xì)節(jié)工業(yè)LCD面板對(duì)上電時(shí)序有明確規(guī)定順序錯(cuò)了可能不會(huì)立刻燒但長期會(huì)縮短壽命嚴(yán)重時(shí)還會(huì)閂鎖latch-up導(dǎo)致IC失效。標(biāo)準(zhǔn)順序是這樣的先給面板邏輯電源VDD等VDD穩(wěn)定后再送LVDS信號(hào)信號(hào)穩(wěn)定后最后才開啟LED背光。斷電順序相反先關(guān)背光再斷LVDS信號(hào)最后斷VDD。為什么要這樣面板內(nèi)部的時(shí)序控制器TCON在上電瞬間會(huì)做初始化如果LVDS信號(hào)先來了或者信號(hào)線懸空亂跳TCON可能抓到錯(cuò)誤狀態(tài)導(dǎo)致后續(xù)畫面異常。背光后開則保證你第一眼看到的不是“亮著背光的白屏”或“亮著背光的亂碼屏”。很多調(diào)試現(xiàn)場出現(xiàn)“背光亮了但沒圖像”的情況十有八九是信號(hào)還沒就緒就把背光打開了看起來就像屏壞了。具體延遲時(shí)間參考規(guī)格書。常見要求是VDD穩(wěn)定后等待約幾十毫秒再送信號(hào)信號(hào)穩(wěn)定后再開背光。如果平臺(tái)端不好控制這么細(xì)的時(shí)間至少保證背光使能信號(hào)是由軟件或硬件延時(shí)控制的別用物理開關(guān)直接噼里啪啦一通亂開。另外一點(diǎn)LVDS排線不要熱插拔。帶電插拔時(shí)差分線上的電平處于不定狀態(tài)面板側(cè)接收IC很容易被靜電或電涌打壞。這算是維修和調(diào)試?yán)镒畛R姷娜藶閾p壞方式?jīng)]有之一。3.3 方案A用現(xiàn)成驅(qū)動(dòng)板快速點(diǎn)亮如果你手里只有一塊裸屏和一臺(tái)帶HDMI/VGA輸出的電腦想快速看到畫面最省事的方法就是買一塊通用的LVDS驅(qū)動(dòng)板也叫SCALER板。這類驅(qū)動(dòng)板一般有三個(gè)輸入接口VGA、HDMI、DVI輸出則是LVDS接口板上還會(huì)預(yù)留背光供電接口。用驅(qū)動(dòng)板點(diǎn)屏的流程大概是把LVDS排線連接驅(qū)動(dòng)板和屏注意排線方向插反很可能燒屏。接上屏幕背光供電線很多驅(qū)動(dòng)板自帶背光輸出口插上即可。給驅(qū)動(dòng)板接12V或5V電源接HDMI線上電。調(diào)整驅(qū)動(dòng)板上的分辨率跳線或按鍵菜單把輸出設(shè)置為1024×76860Hz、6bit/8bit、DE模式或SYNC模式。屏幕應(yīng)該能正常顯示。驅(qū)動(dòng)板方案最大的價(jià)值是“驗(yàn)證”它能在幾分鐘內(nèi)告訴你這塊屏本身是不是好的、有沒有壞點(diǎn)、背光是否正常、可視角度怎樣。很多工程師做FPGA或主板方案前都會(huì)先用驅(qū)動(dòng)板把屏確認(rèn)一遍免得后面分不清問題出在屏上還是自己的驅(qū)動(dòng)代碼上。但也要清醒驅(qū)動(dòng)板方案只適合調(diào)試和打樣不太適合產(chǎn)品量產(chǎn)。通用驅(qū)動(dòng)板的穩(wěn)定性、電源設(shè)計(jì)、EMI處理往往不如專門定制的驅(qū)動(dòng)方案而且長期供貨沒有保障。真做產(chǎn)品還是要走方案B。3.4 方案BFPGA或SoC直接發(fā)LVDS信號(hào)產(chǎn)品化的時(shí)候通常要自己產(chǎn)生LVDS信號(hào)。兩條主流路線路線一是專用橋接芯片。主控端輸出RGB/HDMI/MIPI中間掛一顆LVDS發(fā)送器芯片比如TI的SN75LVDS83B、DS90C383這類芯片負(fù)責(zé)把并行的RGB數(shù)據(jù)和同步信號(hào)轉(zhuǎn)成LVDS差分對(duì)。它的優(yōu)點(diǎn)是主控側(cè)工作量極小芯片手冊成熟按參考設(shè)計(jì)布線基本就能跑通。缺點(diǎn)是成本和PCB面積多了一顆料而且這類芯片也是長期供貨的老料選型時(shí)也要確認(rèn)交期。路線二是用FPGA或者帶LVDS接口的SoC直接掏差分信號(hào)。FPGA的IO理論上可以配置成LVDS電平標(biāo)準(zhǔn)直接把RGB數(shù)據(jù)按前面說的映射關(guān)系拼好再通過差分IO輸出。這樣省掉一顆橋接芯片靈活性也最好——以后換分辨率、換面板、加圖像處理都在代碼里改就行不用改PCB。很多老法師的建議是如果只是驅(qū)動(dòng)一塊屏優(yōu)先走橋接芯片方案省心。如果后續(xù)要做圖像縮放、疊加、文字渲染這些處理FPGA方案才值得投資。別一上來就自己寫LVDS時(shí)序那是把簡單問題復(fù)雜化。3.5 代碼示例生成1024×768的LVDS畫面假設(shè)你選了FPGA方案驅(qū)動(dòng)這塊屏的代碼套路大致如下。這里給一個(gè)精簡但完整的骨架核心是產(chǎn)生XGA時(shí)序并在有效顯示區(qū)域內(nèi)輸出一塊彩條測試圖。首先是行場時(shí)序參數(shù)。1024×76860Hz的標(biāo)準(zhǔn)VESA時(shí)序常用以下參數(shù)參數(shù)數(shù)值水平有效像素1024水平前肩 H_FRONT24水平同步 H_SYNC136水平后肩 H_BACK160水平總長 H_TOTAL1344垂直有效行768垂直前肩 V_FRONT3垂直同步 V_SYNC6垂直后肩 V_BACK29垂直總長 V_TOTAL806Verilog代碼骨架// 1024x76860Hz timing generator localparam H_ACTIVE 1024; localparam H_FRONT 24; localparam H_SYNC 136; localparam H_BACK 160; localparam H_TOTAL H_ACTIVE H_FRONT H_SYNC H_BACK; // 1344 localparam V_ACTIVE 768; localparam V_FRONT 3; localparam V_SYNC 6; localparam V_BACK 29; localparam V_TOTAL V_ACTIVE V_FRONT V_SYNC V_BACK; // 806 reg [11:0] h_cnt; reg [10:0] v_cnt; reg hsync_r; reg vsync_r; reg de_r; reg [7:0] r_r; reg [7:0] g_r; reg [7:0] b_r; always (posedge clk_65m or negedge rst_n) begin if (!rst_n) begin h_cnt 0; v_cnt 0; end else begin if (h_cnt H_TOTAL - 1) begin h_cnt 0; if (v_cnt V_TOTAL - 1) v_cnt 0; else v_cnt v_cnt 1; end else begin h_cnt h_cnt 1; end end end // Generate sync and de always (posedge clk_65m or negedge rst_n) begin if (!rst_n) begin hsync_r 1b0; vsync_r 1b0; de_r 1b0; end else begin hsync_r (h_cnt H_ACTIVE H_FRONT) (h_cnt H_ACTIVE H_FRONT H_SYNC); vsync_r (v_cnt V_ACTIVE V_FRONT) (v_cnt V_ACTIVE V_FRONT V_SYNC); de_r (h_cnt H_ACTIVE) (v_cnt V_ACTIVE); end end // Generate color bars in active area always (posedge clk_65m or negedge rst_n) begin if (!rst_n) begin r_r 8d0; g_r 8d0; b_r 8d0; end else if (de_r) begin r_r (h_cnt[7:5] 3d0) ? 8hFF : 8h00; g_r (h_cnt[7:5] 3d1) ? 8hFF : 8h00; b_r (h_cnt[7:5] 3d2) ? 8hFF : 8h00; end else begin r_r 8h00; g_r 8h00; b_r 8h00; end end這段代碼的關(guān)鍵就是行計(jì)數(shù)器、場計(jì)數(shù)器、數(shù)據(jù)使能DE。在DE為高時(shí)輸出有效像素?cái)?shù)據(jù)否則輸出黑色。同步信號(hào)根據(jù)計(jì)數(shù)器區(qū)間產(chǎn)生。下一步把RGB數(shù)據(jù)按規(guī)格書里的LVDS映射表拼成差分?jǐn)?shù)據(jù)通道。比如6bit VESA映射你需要把R[7:2]拿到R0~R5G[7:2]拆成G0~G5B[7:2]拆成B0~B5然后按前文的位分配表填進(jìn)DATA0、DATA1、DATA2。拼好之后再用FPGA的差分IO原語如OBUFDS把單端數(shù)據(jù)轉(zhuǎn)成正負(fù)差分輸出。到這里為止理論上你已經(jīng)能讓屏亮起來并看到彩條了。不過實(shí)機(jī)調(diào)試時(shí)99%的坑都不在代碼邏輯上而在信號(hào)電平、線纜、極性和時(shí)序匹配這些物理層面。4. 調(diào)試實(shí)錄白屏、花屏、條紋的一線排查方法4.1 白屏不是電源問題而是“沒信號(hào)”白屏是點(diǎn)亮這塊屏?xí)r最常見的現(xiàn)象表現(xiàn)形式是背光正常亮起、整塊屏均勻白亮沒有任何圖像。很多人第一反應(yīng)是“屏壞了”或“背光電壓不夠”但真正的原因絕大多數(shù)是LVDS信號(hào)沒到或者無法被識(shí)別。排查順序通常是這樣的用萬用表確認(rèn)邏輯電源VDD是否在規(guī)格書范圍常見3.3V或5V再看背光電源是否到位。用示波器測量LVDS時(shí)鐘差分對(duì)。正常工作時(shí)時(shí)鐘線上應(yīng)該有規(guī)律的方波差分信號(hào)。如果時(shí)鐘線上什么都沒有問題在主控側(cè)或者線纜。檢查LVDS排線是否插反、松動(dòng)、P/N對(duì)調(diào)。差分對(duì)極性接反最典型的表現(xiàn)就是白屏或滿屏雜色。確認(rèn)主控/驅(qū)動(dòng)板輸出的分辨率是否和面板原生分辨率一致。你用HDMI 1920×1080輸入想讓驅(qū)動(dòng)板強(qiáng)行拉到1024×768驅(qū)動(dòng)板這邊不匹配就會(huì)白屏。試一把“驅(qū)動(dòng)板交叉驗(yàn)證”。拿一塊確認(rèn)好的驅(qū)動(dòng)板接這塊屏如果亮了說明屏本身沒問題如果還是白屏再回頭查屏的參數(shù)配置。白屏的底層原因可以總結(jié)為面板沒有收到“能鎖定”的像素時(shí)鐘和有效數(shù)據(jù)。只要時(shí)鐘差分對(duì)存在且頻率正確數(shù)據(jù)傳輸通道基本正常畫面大概率會(huì)出來最多是顏色錯(cuò)亂而不是一片死白。4.2 花屏的三種典型成因花屏比白屏信息量大說明信號(hào)是有的但有地方不對(duì)。我把它總結(jié)為三類第一類是整屏雪花點(diǎn)或斜紋。常見原因是差分線接觸不良、排線壓接不到位、線纜過長導(dǎo)致信號(hào)劣化或者時(shí)鐘信號(hào)質(zhì)量差。解決辦法是先換一根短一點(diǎn)的優(yōu)質(zhì)LVDS排線再看花屏是否消失。第二類是正常的畫面內(nèi)容但顏色完全不對(duì)比如紅色變綠色、藍(lán)色變黃色。這通常是LVDS數(shù)據(jù)映射錯(cuò)誤也就是你按8bit映射去送而屏其實(shí)是6bit或者DATA0、DATA1、DATA2接錯(cuò)了位置。排查方法是把主控側(cè)的發(fā)位配置逐個(gè)和規(guī)格書對(duì)一遍重點(diǎn)看同步信號(hào)位有沒有被挪到數(shù)據(jù)位上。第三類是畫面有規(guī)律地錯(cuò)位、切割、滾動(dòng)。這多半是同步極性或像素時(shí)鐘不對(duì)。比如同步信號(hào)極性反了、像素時(shí)鐘和實(shí)際時(shí)序不匹配面板鎖不住正確的行場同步畫面就會(huì)亂跳。處理任何花屏問題我的習(xí)慣是先降頻把刷新率從60Hz降到50Hz甚至更低看現(xiàn)象是否變化。如果低頻下畫面變好說明是高頻率下信號(hào)完整性出了問題優(yōu)先查布線、線材和阻抗匹配而不是改代碼。4.3 四個(gè)容易忽略的坑長期和各種LVDS工業(yè)屏打交道我總結(jié)過四個(gè)特別容易坑人的點(diǎn)坑一LVDS信號(hào)一定要按100Ω差分阻抗走線。普通杜邦線、飛線、隨意絞合的雙絞線在65MHz像素時(shí)鐘下可能還能撐住但在更高的頻率下眼圖劣化明顯。做產(chǎn)品PCB時(shí)差分走線要控制線寬線距保證100Ω差分阻抗調(diào)試階段也盡量用專用的LVDS排線別手搓線??佣彻獠皇呛唵蔚亟觽€(gè)電壓。LED背光本質(zhì)是一串隧道二極管燈珠它需要的是限流或恒流驅(qū)動(dòng)。有人圖省事直接拿12V穩(wěn)壓電源點(diǎn)亮電流很容易超額定值燈珠當(dāng)場燒掉或者快速衰退。工業(yè)屏的背光額定電流規(guī)格書里都有務(wù)必按額定電流設(shè)計(jì)恒流源再用PWM或模擬調(diào)光??尤叩蜏丨h(huán)境下的表現(xiàn)差異。寬溫屏雖然能工作在低溫環(huán)境但LED背光的發(fā)光效率隨溫度下降亮度會(huì)明顯降低。深冬戶外設(shè)備開機(jī)的瞬間屏幕可能比較暗需要開機(jī)預(yù)熱或給屏做加熱方案。反過來高溫下對(duì)比度會(huì)下降也是正常物理現(xiàn)象別以為屏壞了??铀拿姘宓摹斑壿嬰娫础焙汀氨彻怆娫础辈荒懿⒃谝黄鸷唵瓮瑫r(shí)開啟。有些工程師圖方便把VDD和LED電源用一個(gè)總開關(guān)控制結(jié)果上電瞬間背光搶先點(diǎn)亮畫面還沒出來等待過程中背光滿功率空燒既浪費(fèi)功耗又可能讓人誤判屏壞了。正確做法是分開控制嚴(yán)格按時(shí)序。5. 把屏用好中文顯示、亮度控制與待機(jī)管理5.1 讓LVDS屏顯示中文字庫和渲染才是關(guān)鍵很多人第一次接觸“裸屏”時(shí)會(huì)問LVDS屏能不能顯示中文答案是能但這事和屏本身沒關(guān)系屏只是一塊像素點(diǎn)陣你送什么像素它就顯示什么。真正決定中文能不能顯示、顯示得漂不漂亮的是你信號(hào)源那一側(cè)的“字庫”和“渲染引擎”。如果你用的是嵌入式GUI方案比如LVGL、Qt、TouchGFX它們自帶字體引擎。你需要做的是把中文字庫文件常見GB2312、GBK、GB18030編碼燒錄或掛載到系統(tǒng)里字體引擎會(huì)自動(dòng)從字庫中提取字形點(diǎn)陣或矢量輪廓并渲染到顯存最后掃描輸出到LVDS。如果你是用單片機(jī)裸金屬開發(fā)沒有現(xiàn)成GUI那工作量就多一步先要對(duì)要顯示的漢字做“取?!薄R粋€(gè)16×16的漢字點(diǎn)陣需要32字節(jié)數(shù)據(jù)每2個(gè)字節(jié)代表一行16個(gè)像素。先用取模軟件PCtoLCD2002這類把需要的漢字生成點(diǎn)陣數(shù)組再在代碼里做“字符編碼→數(shù)組下標(biāo)”的查表映射把點(diǎn)陣按位置寫入顯示緩沖區(qū)。我見過不少項(xiàng)目在顯示屏上跑英文效率很高一碰中文就卡。原因往往不是LCD驅(qū)動(dòng)慢而是字體渲染算法差比如每次全屏刷新、沒有做臟矩形更新、字庫放在速度很慢的Flash里。解決思路是GBK/GB18030編碼轉(zhuǎn)換做成查表字庫點(diǎn)陣預(yù)加載到RAM刷新時(shí)只更新變化區(qū)域。原理和電腦上的圖形加速思路完全一樣。5.2 亮度調(diào)節(jié)不能只調(diào)背光電壓工業(yè)屏的“亮度”通常涉及兩個(gè)概念一是背光亮度二是圖像亮度。這兩者不能混為一談。背光亮度調(diào)節(jié)最常用的方式是PWM調(diào)光。LED恒流驅(qū)動(dòng)電路有兩個(gè)調(diào)節(jié)通道模擬調(diào)光調(diào)節(jié)電流大小和PWM調(diào)光以高頻開關(guān)占空比控制平均電流。PWM調(diào)光頻率通常選在100Hz到1kHz之間。頻率太低會(huì)有可感知的閃爍頻率太高又會(huì)引入EMI和音頻噪聲。工業(yè)環(huán)境下建議選200Hz~500Hz配合軟件平滑過渡避免亮度突變產(chǎn)生刺眼感。千萬不要用調(diào)背光電壓的方式來調(diào)亮度。LED燈珠的電流-電壓曲線是非線性的電壓稍微一調(diào)電流可能暴漲或驟降輕則亮度不均勻重則燒燈。安全的亮度調(diào)節(jié)路徑是軟件給“目標(biāo)亮度百分比”→映射成PWM占空比→驅(qū)動(dòng)板/恒流板執(zhí)行PWM波→LED電流平均下來變低。圖像亮度則是另一回事。它是在主控側(cè)通過RGB數(shù)據(jù)增益或Gamma表調(diào)整“像素值到輸出亮度”的曲線。比如夜間模式降低圖像亮度上限配合背光調(diào)暗整體觀感比只調(diào)背光更細(xì)膩。只是要注意Gamma調(diào)整會(huì)影響灰階層次工業(yè)應(yīng)用里如果顯示的是B超灰度圖、X光片這類醫(yī)學(xué)影像亂調(diào)Gamma是危險(xiǎn)的需要嚴(yán)格按應(yīng)用場景定義。5.3 “close lcd”待機(jī)信號(hào)關(guān)斷與背光關(guān)斷的正確順序很多帶觸摸屏的工業(yè)終端為了省電經(jīng)常需要長時(shí)間運(yùn)行但關(guān)閉顯示畫面Linux驅(qū)動(dòng)里常叫做blank screenWindows下叫關(guān)顯示器。這里涉及“先關(guān)哪個(gè)”的問題。正確的低功耗策略是先關(guān)背光再關(guān)LVDS信號(hào)。背光是大頭一塊12.1寸工業(yè)屏背光功耗通常能占整屏功耗的一半以上。先把背光關(guān)掉功耗立刻降下來。之后維持LVDS信號(hào)與否取決于電源策略如果只是短暫待機(jī)可以保持LVDS信號(hào)和邏輯電壓避免重新喚醒時(shí)等待時(shí)序初始化如果是長時(shí)間待機(jī)再把邏輯電源VDD也關(guān)掉進(jìn)入真正的深度睡眠。但深度睡眠后重新喚醒一定要記得重新執(zhí)行一遍上電時(shí)序也就是VDD穩(wěn)定后再送LVDS信號(hào)最后開背光。否則可能出現(xiàn)喚醒后白屏閃一下或者屏幕顯示錯(cuò)亂。系統(tǒng)層面看起來只是“屏幕亮不亮”的問題實(shí)際后面藏著一整套電源管理和時(shí)序管理邏輯。產(chǎn)品化做“close lcd”功能時(shí)建議給顯示路徑加一個(gè)明確的“狀態(tài)機(jī)”顯示中、背光關(guān)閉、信號(hào)保持、邏輯電源關(guān)斷、喚醒流程。狀態(tài)遷移由軟件控制每一個(gè)狀態(tài)變更都附帶延時(shí)和保護(hù)條件。別用裸的GPIO直接拉高拉低背光使能就算完事長期使用中你會(huì)感謝當(dāng)初多做的這幾行狀態(tài)管理。這塊屏我用下來的總體感覺是硬件本身皮實(shí)資料也透明真正考驗(yàn)人的是驅(qū)動(dòng)鏈路和電源管理是否嚴(yán)謹(jǐn)。點(diǎn)亮一塊屏只是開始把它放到一個(gè)真實(shí)產(chǎn)品里長期穩(wěn)定跑才是見功夫的地方。