调试LCD反被调戏了
相關(guān)文章
調(diào)試,是一件有挑戰(zhàn)的事情
這篇文章的題目應(yīng)該寫做 - 我又被LCD艸了一個(gè)晚上。寫個(gè)文檔簡(jiǎn)單總結(jié)下
#LCD顯示的一些基本概念
數(shù)字視頻的基本概念源自于模擬視頻。對(duì)于模擬視頻我們可以這樣理解:視頻可以分解為若干個(gè)基本視點(diǎn)(像素),每個(gè)像素都有獨(dú)立的色彩信息,在屏幕上依次將 這些點(diǎn)用電子槍按照行和列打出來(lái),就形成了一幅完整畫(huà)面,連續(xù)的打出畫(huà)面,利用人眼的延遲特點(diǎn)就可以“顯示”動(dòng)態(tài)的圖像了。
水平消隱:電子槍從左到右畫(huà)出象素,它每次只能畫(huà)一條掃描線,畫(huà)下一條之前要先回到左邊并做好畫(huà)下一條掃描線的準(zhǔn)備,這之間有一段時(shí)間叫做水平消隱(HBlank)。
垂直消隱:在畫(huà)完全部256條掃描線之后它又回到屏幕左上角準(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)始稱為前肩(紫色區(qū)域)。同樣對(duì)于場(chǎng)掃面也可以由類似的定義。
Pixel clock:像素時(shí)脈(Pixel clock)指的是用來(lái)劃分進(jìn)來(lái)的影像水平線里的個(gè)別畫(huà)素, Pixel clock 會(huì)將每一條水平線分成取樣的樣本,越高頻率的 Pixel clock,每條掃瞄線會(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 = () 制式 ? ? ? ? ?總掃描線 ? ? ? 圖像區(qū)域掃描線 ? ? ? 水平總象素 ? ? ? 圖像區(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)每條掃描線上顯示的頻點(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總線,涉及到的一些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)目,我們滿懷信心的時(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模組廠確認(rèn)參數(shù)
LCD的參數(shù)肯定是模組廠的技術(shù)最專業(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)題,俗話說(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ò)程中給我們提了非常有效的建議。
完…
……
如果想討論人生~就點(diǎn)擊下面~
你不知道在我的小蜜圈會(huì)發(fā)現(xiàn)什么好東西
? 回復(fù)「?籃球的大肚子」進(jìn)入技術(shù)群聊
回復(fù)「1024」獲取1000G學(xué)習(xí)資料
總結(jié)
以上是生活随笔為你收集整理的调试LCD反被调戏了的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LinuxGPIO操作和MTK平台GPI
- 下一篇: AD9361 补充(中)