1. 程式人生 > >LCD之mipi DSI介面驅動除錯流程

LCD之mipi DSI介面驅動除錯流程

1、LCD MIPI DSI協議

MIPI-DSI是一種應用於顯示技術的序列介面,相容DPI(顯示畫素介面,Display Pixel Interface)、DBI(顯示匯流排介面,Display Bus Interface)和DCS(顯示命令集,Display Command Set),以序列的方式傳送畫素資訊或指令給外圍,而且從外圍中讀取狀態資訊或畫素資訊,而且在傳輸的過程中享有自己獨立的通訊協議,包括資料包格式和糾錯檢錯機制。

MIPI-DSI具備高速模式和低速模式兩種工作模式,全部資料通道都可以用於單向的高速傳輸,但只有第一個資料通道才可用於低速雙向傳輸,從屬端的狀態資訊、畫素等式通過該資料通道返回。時鐘通道專用於在高速傳輸資料的過程中傳輸同步時鐘訊號。此外,一個主機端可允許同時與多個從屬端進行通訊。

LCD mipi系統簡單示意圖如下:



1.1、mipi DSI協議分層

主要分為四個層:應用層、協議層、通道管理層、物理層



1.2、物理層

在接收到低速傳送請求時,邏輯電路將待發送的指令或資料序列化,並控制輸出高擺幅低功耗電平進行低功耗傳送請求,隨後將指令或資料序列地載入到通道,接收端則識別傳送模式完成序列資料的並行轉換。

當接收到高速請求後,電路傳送高擺幅低功耗電平進行高速傳送請求,然後將待發送資料經過序列轉換之後驅動差分驅動模組以低擺幅訊號在通道上傳送,接收端則識別高速模式後正確地檢測其同步訊號將高速序列資料完成串並轉換成功地接收。

除此之外,匯流排控制權可在主機端與從屬端之間交換,傳送端傳送放棄匯流排請求,接收端接收請求之後控制匯流排發起應答,總的過程為TA(turn around)操作,在LCD中我們稱之為BTA(Bus Turn-Around)。當主機端需要獲取從屬端接收資料的狀況或者讀取顯示模組的引數或顯示資料的時候,主機端發起TA操作,在從屬端傳送資料完畢之後自動發起TA操作,歸還匯流排控制權。

訊號兩種工作狀態,高速模式狀態(LP)和低速模式狀態(HS)。

物理層,就是要控制硬體訊號的(時序),MIPI-DSI兩種訊號型別: 

時鐘lane,兩根線一個Dp,Dn;

資料lane,兩根線一個Dp,Dn;

資料lane根據需求有多個,最少一個lane(lane0),最多4個lane(lane0,lane1,lane2,lan3),其中只有lane0是雙向的(低速模式雙向,高速模式也只能是單向),其他的都只能是單向(高速模式單向)。

資料lane電平:

低速模式LP:0-1.2V,空閒電平(LP11)Dp,Dn是1.2V。

高速模式HS:100-300mV (200mV) 

按照D-PHY協議,在整個協議的物理層中,在主機端和從屬端之間採用的是同步連線,時鐘通道用於傳送高速時鐘,一個或多個數據通道用於傳送低功耗資料訊號或高速資料訊號每一個通道都是利用兩根互連線實現主機端和從屬端的連線,並且支援高速模式和低速ESCAPE模式。

在高速模式下,傳送端同時驅動該通道僅有的兩根互連線,輸出低擺幅差分訊號,例如200mV;

低速模式下,傳送端分別驅動互連線,各自輸出單端訊號,但擺幅相對較大,例如1.2V,如下圖所示:


差分發送模組(HS_TX)以差分訊號驅動互連線,高速通道上呈現兩種狀態:differential-0和differential-1。低功耗單端傳送模組(LP_TX)獨立地驅動兩根互連線,通道上則有四種不同的狀態:LP00、LP01、LP10和LP11。協議針對線路電平作了具體的定義並設定了三種工作模式:高速模式、控制模式和ESCAPE模式,通道預設為控制模式,線路處於STOP狀態。當通道需要進入高速模式或ESCAPE模式,傳送模組則需驅動線路為LP01或LP10向接收端傳送請求,傳送完請求序列之後便進行相應工作模式,傳送LP11
便可退出結束傳送回到STOP控制狀態。接收端需要時刻進行LP-RX接收,偵測線路電平明確通道的工作模式。


1.2.1、時鐘通道

時鐘通道支援高速模式和ULPS(超低功耗模式)模式:

高速模式應用於整個介面工作於高速資料傳送模式,用於傳送高速時鐘:


ULPS模式用於外圍(如整個顯示模組)要進入休眠模式時將時鐘通道置於超低功耗狀態,節省外圍介面功耗。


1.2.2、資料通道

資料通道支援高速模式和ESCAPE模式,在此還包括另外一個重要的功能匯流排控制權交換——BTA模式。高速模式是以高速的低擺幅差分訊號傳送資料,速度快,最高可達
1Gps。在經過請求序列LP11->LP01->LP00之後,HS_TX開始傳送序列高速資料,傳送結束之後,LP_TX傳送LP11回到正常的控制模式。
 


ESCAPE模式是由LP_TX直接驅動線路通道傳送電平序列傳送低功耗資料。其進入方式為LP11->LP10->LP00->LP01->LP00,退出方式為LP10->LP11。經過請求序列之後,LP_TX傳送模式命令,包括trigger命令和低功耗資料傳送(LPDT)等,如下如所示:


 BTA模式用於交換匯流排控制權,在控制模式下完成。LP_TX傳送請求序列LP11->LP10->LP00->LP10->LP00,經過BTA-GO之後停止驅動匯流排。相對於匯流排另一端來說,在接收到請求序列並且經過BTA-SURE之後,LP_TX開始驅動匯流排,傳送確認訊號,接管匯流排。


1.3、通道管理層

依據設計所設定最多為4個數據通道,該層在傳送端將需要傳送的資料按照通道次序分成N組輸送到相應的資料通道,使其經資料通道同時傳送至從屬端。在接收端,該層需要做的是將接收到的N組資料組合在一起恢復成原始的資料序列。

資料分組與恢復如下圖:


 資料分組:


資料恢復:


資料操作過程:


1.4、協議層

資訊傳送採用資料包格式,包括長資料包和短資料包。傳送資料的時候,將資料按照資訊型別及內容進行壓包,完成ECC碼的生成和CRC碼的新增。接收資料的時候,依據ECC碼和CRC碼就整個資料包進行檢錯糾錯,完成對包頭和資料內容的譯碼併合理輸送到應用層中。

DSI協議是一個基於資料包傳送的通訊協議,主機端和顯示模組之間傳送的命令和資料基本上都以資料包格式進行。DSI所定義的資料包有兩種:端資料包(short packet) 
和長資料包(long packet),短資料包主要用於傳輸命令、讀寫暫存器,長資料包主要用用於傳輸大量圖象資料或部分控制命令。

1.5、應用層

根據應用模組的需要,在傳送端對傳送的命令和資料進行初步編碼轉化為MIPI-DSI所規定的格式,而在接收端則將接收的資料還原為應用模組所支援的資料格式及時序要求。

應用層模組直接連線到顯示模組,負責著與顯示模組的通訊。按照協議要求,介面電路支援命令模式和視訊模式,命令模式則是經過介面轉換之後主機端依然得以“命令+引數”格式對顯示模組進行讀寫操作,而視訊模式下,主機端可以直接將顯示資料寫入顯示模組,無需命令操作,實時顯示視訊。該模組在設計的過程中應支援命令模式和視訊模式。

根據協議所定義的資料型別的意義,其中一些資料型別是專門應用於video模式,如0x01指代的是場同步訊號(Vsync)開始。所以在此模組電路的設計中,分成了視訊模式應用電路和命令模式應用電路兩個模組,視訊模式應用電路模組僅接收視訊模式相關的命令和資料並以DPI時序格式傳送到驅動中。

cmd模式應用電路模組適用於非視訊模式的控制命令和資料,對其進行譯碼並以DBI時序格式寫入到顯示模組中的暫存器或SRAM中。當需要讀取資料的時候,命令模式應用電路模組通過DBI口可從顯示模組中讀取相關暫存器的資訊等。

mipi總體框圖:


2、MIPI DSI實踐

2.1、mipi速率

mipi_clk = resX * resY * bps * 1.25 * fps / lane_num                  

注:bps = 3 * 8 = 24位

1.25為餘量 

如:

解析度:2560*1440,fps = 65

MIPI lane:2條資料lane,1條時鐘lane

mip_clk = 2560*1440*60fps*(3*8)* 1.25 * 65 / 2/8/104/1024 = 429Mhz

2.2、LCD dsi簡圖

今天以LCD MIPI為例做簡要討論。Display對應MIPI DSI,Camera對應MIPI CSI。和Display相關的就是MIPI DSI,DPI,DBI等,規範了host display controller到panel之間通訊時從物理層,鏈路層到應用層的協議。

DPI:Video-mode displays

DBI:Command-mode displays


2.3、mipi導致花屏問題

2.3.1、切換螢幕畫面,中間閃一條豎線

原因:mipi clk_post偏低

分析:data lane在傳輸完成最後一幀資料後進入lp模式,clklane繼續傳輸時鐘訊號的時間過短導致datalane未完全進入lp11,狀態不穩定。

解決:

1、增大clk_post

2、時鐘改為continue模式,功耗大

2.3.2、LCD右半邊閃屏

原因:mipi clk偏低,lk階段clk偏低,kernel階段clk正常

分析:資料包長短不一致會導致進入lp11時間點不一致,屬於正常現象  --- 排除    lk頻率偏低導致問題

解決:修整頻率

2.3.3、panel電荷無法釋放導致閃屏 --- 硬體設計

2.4、時序異常

2.4.1、IOVCC上電瞬間,mipi異常脈衝

此時mipi介面還沒準備好,lp-tx被開啟,輸出異常脈衝

2.4.2、reset低電平時,mipi訊號被拉低

器件由於低功耗考慮,reset為低時,進入深度待機模式,regulator關閉,保護二極體分流,拉低訊號。

2.5、mipi測試

需要引出clkp、clkn、data0p,data0n

參考:

1、mipi DSI

http://blog.csdn.net/redredbird/article/details/12648847

http://blog.csdn.net/eZiMu/article/details/56279847?locationNum=14&fps=1

2、LCD除錯流程

http://blog.csdn.net/dearsq/article/details/52354593?locationNum=9&fps=1

3、lcd DSI論文

http://www.doc88.com/p-0877384948107.html