調(diào)試LCD,反被調(diào)戲了……
#LCD顯示的一些基本概念引自網(wǎng)絡(luò)
數(shù)字視頻的基本概念源自于模擬視頻。對(duì)于模擬視頻我們可以這樣理解:視頻可以分解為若干個(gè)基本視點(diǎn)(像素),每個(gè)像素都有獨(dú)立的色彩信息,在屏幕上依次將 這些點(diǎn)用電子槍按照行和列打出來(lái),就形成了一幅完整畫(huà)面,連續(xù)的打出畫(huà)面,利用人眼的延遲特點(diǎn)就可以“顯示”動(dòng)態(tài)的圖像了。
水平消隱:電子槍從左到右畫(huà)出象素,它每次只能畫(huà)一條掃描線(xiàn),畫(huà)下一條之前要先回到左邊并做好畫(huà)下一條掃描線(xiàn)的準(zhǔn)備,這之間有一段時(shí)間叫做水平消隱(HBlank)。
垂直消隱:在畫(huà)完全部256條掃描線(xiàn)之后它又回到屏幕左上角準(zhǔn)備下一次畫(huà)屏幕(幀),這之間的一段時(shí)間就是垂直消隱(VBlank)。電子槍就是在不斷的走‘之’字形。
-
行同步(HSYNC):行同步就是讓電子槍控制器知道下面要開(kāi)始新的一行像素
-
場(chǎng)同步(VSYNC: 場(chǎng)同步就是告訴電子槍控制器下面要開(kāi)始新的畫(huà)面
-
數(shù)據(jù)使能(DE):在數(shù)據(jù)使能區(qū)是有效的色彩數(shù)據(jù),不在使能范圍內(nèi)的都顯示黑色。
-
前肩(Front Porch)/后肩 (Back Porch) :行同步或場(chǎng)同步信號(hào)發(fā)出后,視頻數(shù)據(jù)不能立即使能,要留出電子槍回掃的時(shí)間。以行掃描為例,從HSYNC結(jié)束到DE開(kāi)始的區(qū)間成為行掃描的后肩(綠色區(qū)域),從DE結(jié)束到HSYNC開(kāi)始稱(chēng)為前肩(紫色區(qū)域)。同樣對(duì)于場(chǎng)掃面也可以由類(lèi)似的定義。
-
Pixel clock:像素時(shí)脈(Pixel clock)指的是用來(lái)劃分進(jìn)來(lái)的影像水平線(xiàn)里的個(gè)別畫(huà)素, Pixel clock 會(huì)將每一條水平線(xiàn)分成取樣的樣本,越高頻率的 Pixel clock,每條掃瞄線(xiàn)會(huì)有越多的樣本畫(huà)素。
-
HFP: Horizon front porch
-
HBP: Horizon back porch
-
VFP: Vertical front porch
-
VBP: Vertical back porch
-
HDP:Horizon display period
-
VDP: Vertical display period
HTP = HSYNC + HDP + HFP + HBP
VTR = VSYNC + VDP + VFP + VBP
f dot _ clk = pixel clock f dot _ clk = f v * VTR * HTP f v = vertical frequency (這個(gè)是頻率,平時(shí)見(jiàn)到的很多時(shí)候是60HZ)
pixel clock = () 制式 總掃描線(xiàn) 圖像區(qū)域掃描線(xiàn) 水平總象素 圖像區(qū)域水平象素 采樣頻率 1080I/60Hz 1125 1080 2200 1920 74.25MHz 1080I/50Hz 1125 1080 2640 1920 74.25MHz 720P/60Hz 750 720 1650 1280 74.25MHz 720P/50Hz 750 720 1980 1280 74.25MHz
帶寬:視頻帶寬代表顯示器顯示能力的一個(gè)綜合指標(biāo),指每秒鐘所掃描的圖素個(gè)數(shù),即單位時(shí)間內(nèi)每條掃描線(xiàn)上顯示的頻點(diǎn)數(shù)總和,在模擬視頻中以MHz為單位,圖1的視頻模擬帶寬計(jì)算如下:
Analog BandWidth=165075060=74.25MHz 含義為每個(gè)時(shí)鐘要傳輸74.25M個(gè)模擬視頻數(shù)據(jù)。所以720p60 的pclk為74.25Mhz,同理1080P60的P CLOCK為148.5MHz
但是在數(shù)字視頻中由于每個(gè)像素都是由3種不同的顏色來(lái)表示,每種顏色右由一定數(shù)量的比特來(lái)傳輸,因此通常會(huì)用bps來(lái)表示數(shù)字帶寬,如果圖1中使用了RGB傳輸,每種顏色用1個(gè)字節(jié)來(lái)輸出,那么該視頻的數(shù)字帶寬為:
Digital BandWidth= 模擬帶寬8bit3=1.782Gbps 含義為每秒要傳輸1.782G個(gè)比特?cái)?shù)據(jù)
#DSI Clock計(jì)算
目前主流的lcd都是使用mipi總線(xiàn),涉及到的一些clock在這里整理一下:
H-total = HorizontalActive + HorizontalFrontPorch + HorizontalBackPorch + HorizontalSyncPulse + HorizontalSyncSkew
V-total = VerticalActive + VerticalFrontPorch + VerticalBackPorch + VerticalSyncPulse + VerticalSyncSkew
Total pixel = H-total * V-total * 60(Hz通常都是這個(gè),當(dāng)然可以變).
Bitclk = Total pixel * bpp(byte) *8/lane number(有幾路mipi data lane).
Byteclk = bitclk/8
Dsipclk(Dsi pixel clock) = (Byteclk * lane number)/bpp(byte) = Total pixel * 8
Byteclk = pclk * pixel depth / lane number
#調(diào)試過(guò)程描述
這個(gè)是一個(gè)新平臺(tái)舊屏幕的調(diào)試,我們?cè)趓k平臺(tái)上已經(jīng)能點(diǎn)亮,這個(gè)是新的項(xiàng)目,我們滿(mǎn)懷信心的時(shí)候,卻發(fā)現(xiàn)怎么都不能讓這個(gè)該死的屏幕正常亮起來(lái)。
這個(gè)過(guò)程是一個(gè)非常血腥的,我們從早上10點(diǎn)就開(kāi)始搞,到晚上12點(diǎn)還沒(méi)有搞通,我們領(lǐng)導(dǎo)這時(shí)候突然走到我們身邊,我跟他說(shuō)了一句,我們先回去休息明天再搞了。我確實(shí)覺(jué)得有點(diǎn)累,而且繼續(xù)搞可能也沒(méi)有機(jī)會(huì)搞好。所以我們就下班回去了,今天早上過(guò)來(lái),就把問(wèn)題給解決了。
#解決思路
##燒錄BIST模式測(cè)試屏幕
BIST模式是LCD的一個(gè)測(cè)試模式,如果MIPI通信正確,我們發(fā)送BIST模式后,LCD會(huì)循環(huán)顯示測(cè)試的顏色界面。這一步我們測(cè)試了,確實(shí)可以進(jìn)入BIST,說(shuō)明我們的MIPI通信是正常的。應(yīng)該從其他部分尋找問(wèn)題。
##找LCD模組廠(chǎng)確認(rèn)參數(shù)
LCD的參數(shù)肯定是模組廠(chǎng)的技術(shù)最專(zhuān)業(yè),所以在微信群里發(fā)了下LCD的參數(shù)配置給他們看了下,馬上就發(fā)現(xiàn)了問(wèn)題所在。如下圖
##排查硬件
排查硬件這一步應(yīng)該在拿到樣機(jī)就開(kāi)始搞了,我們這個(gè)屏幕用的是另外項(xiàng)目的,所以理論上硬件是沒(méi)有問(wèn)題的。點(diǎn)不亮的原因應(yīng)該只有一個(gè),那就是軟件有問(wèn)題,俗話(huà)說(shuō),人在路上走,鍋從天山來(lái),就是這個(gè)意思。
整個(gè)調(diào)試有點(diǎn)驚險(xiǎn)也有點(diǎn)刺激,文章中還沒(méi)有談到LCD的休眠喚醒流程,調(diào)試中也遇到一些平臺(tái)性的問(wèn)題。因?yàn)閷?duì)平臺(tái)不熟悉也成了我們都阻礙,其中非常感謝一個(gè)MTK的大牛,雖然最終不是他的思路解決問(wèn)題,但是在過(guò)程中給我們提了非常有效的建議。
完…
……
作者:寫(xiě)代碼的籃球球癡
來(lái)源:嵌入式Linux
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀(guān)點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!