單八路LVDS適配指南:從設(shè)備樹(shù)到U-Boot的踩坑實(shí)錄)
最近把一個(gè)項(xiàng)目里的屏幕從默認(rèn)的RGB/eDP顯示方案切到了單八路LVDS平臺(tái)是LS1028系列處理器。整個(gè)過(guò)程不算復(fù)雜但中間幾個(gè)坑差點(diǎn)讓人懷疑人生設(shè)備樹(shù)時(shí)序配錯(cuò)黑屏、VESA和JEIDA數(shù)據(jù)映射搞反導(dǎo)致顏色面目全非、U-Boot亮而內(nèi)核不亮、背光閃個(gè)不?!@篇文章我把整個(gè)適配過(guò)程從頭梳理一遍從單八路LVDS的物理信號(hào)構(gòu)成、設(shè)備樹(shù)參數(shù)換算到U-Boot與內(nèi)核的顯示銜接再到實(shí)際排查鏈路希望給正在做LS1028或類似平臺(tái)LVDS適配的朋友一點(diǎn)幫助。文章適合三類讀者一是剛接觸LVDS顯示適配的BSP/驅(qū)動(dòng)開(kāi)發(fā)工程師二是在做LS1028平臺(tái)整機(jī)集成、需要調(diào)底層的硬件工程師三是被“屏幕怎么都不亮”折磨的項(xiàng)目救火隊(duì)員。已經(jīng)熟悉LVDS協(xié)議的人也可以重點(diǎn)看第2章和第5章那部分參數(shù)換算和電源時(shí)序是最容易踩坑的地方。1. 單八路LVDS的信號(hào)拆解五對(duì)差分線是怎么傳輸24bit顏色的1.1 單八、雙八、單六這些行業(yè)黑話到底指什么在工控和車載屏領(lǐng)域“單八路”“雙八路”是特別常見(jiàn)的叫法。我第一次接觸時(shí)也懵了一下以為“八路”是指有8對(duì)差分線。實(shí)際不是。這個(gè)“八”指的是每個(gè)LVDS通道傳輸?shù)腞GB數(shù)據(jù)位寬是8bit也就是每通道24bit色深。單八路LVDS物理上只有5對(duì)差分線4對(duì)數(shù)據(jù)線DATA0~DATA3 1對(duì)時(shí)鐘線CLKOUT±一共10根信號(hào)線再算上電源、地和背光控制。那為什么8bit數(shù)據(jù)只需要4對(duì)數(shù)據(jù)線因?yàn)長(zhǎng)VDS是串行傳輸機(jī)制像素時(shí)鐘的每個(gè)周期里4對(duì)數(shù)據(jù)線共傳輸32bit數(shù)據(jù)其中24bit是RGB顏色數(shù)據(jù)剩下8bit用來(lái)放同步信號(hào)HS/VS/DE和顏色擴(kuò)展位。這就是為什么24bit色深的屏只要4對(duì)數(shù)據(jù)線而不是24對(duì)。順便提一嘴行業(yè)術(shù)語(yǔ)里的對(duì)應(yīng)關(guān)系大家以后看屏幕規(guī)格書不會(huì)懵單六Single LVDS 18bit3對(duì)數(shù)據(jù)線1對(duì)時(shí)鐘每周期傳18bit并行像素?cái)?shù)據(jù)加同步位。單八Single LVDS 24bit4對(duì)數(shù)據(jù)線1對(duì)時(shí)鐘就是本文的主角。雙八Dual LVDS 24bit8對(duì)數(shù)據(jù)線1對(duì)時(shí)鐘適合高分辨率高刷新率比如1080p60以上。雙六Dual LVDS 18bit比較少見(jiàn)某些老屏在用。LS1028這類帶原生LVDS控制器的平臺(tái)接口控制能力是到位的關(guān)鍵是搞明白你手里屏的規(guī)格是“單八”還是“雙八”以及它在4對(duì)數(shù)據(jù)線上到底按什么規(guī)則映射bit。這決定設(shè)備樹(shù)里>