Lcd(一)顯示原理
一、LCD控制原理
S5PV210處理器中自帶LCD控制器,控制LCD的顯示,把 LCD 影象資料從一個位於系統記憶體的 video buffer 傳送到一個外部的 LCD 驅動器介面。
型別:
1、STN(超扭曲向列),它的特點是功耗低,但亮度不足,響應時間長;(1602那種型別的)
2、TFT(薄膜電晶體),它的特點是響應時間短,畫面清晰,但功耗稍高,(自己實驗用的應該是這個型別的,這個型別當作計算機液晶顯示裝置)。
3、LTPS(低溫多晶矽),各方面效能優越,但技術要求高;
4、OLED(有機發光二極體),各方面效能優越,但技術要求高。
LCD驅動介面支援 3 種介面:
- RGB 介面:((並行 24 位,序列 8 位)自己用的使這種)
- indirect-i80 介面
- UV 介面
SoC如何控制LCD顯示原理:
LCD驅動器:LCD驅動器一般與LCD面板整合在一起,面板需要一定的模擬電訊號來控制液晶分子,LCD驅動器晶片負責給面板提供控制液晶分子的模擬電訊號,驅動器的控制訊號(數字訊號)來自於LCD控制器的提供的介面。
LCD控制器:LCD控制器整合在SoC內部,它負責通過數字介面向外部的LCD驅動器提供要顯示的畫素數字訊號。它必須按照一定的時序和LCD驅動器通訊,LCD控制器受SoC控制,SoC會從記憶體中拿出畫素資料給LCD控制器並最終傳給LCD驅動器。
視訊記憶體:SoC在記憶體中選一段記憶體,用來存放顏色資料,然後通過配置將LCD控制器和這一段記憶體連線起來,構成一個對映關係,一旦這個關係建立以後,LCD控制器就會自動從視訊記憶體中讀取畫素資料傳給LCD驅動器,LCD驅動器會自動的控制每個畫素點的液晶分子,以形成最終的影象,建立這個對映以後就不需要SoC在來參與任何行為了。
總結一下:SoC控制LCD液晶顯示的過程分為兩個部分:
(1) SoC的LCD控制器引出一定的引腳與LCD驅動器連線,按照標準設定一定的時序;
(2) 把LCD要顯示的畫素資訊放入記憶體中,在通過設定LCD控制器中的暫存器,與LCD控制器建立對映;之後過程就是LCD控制器晶片與驅動器晶片自動完成的事情了,整個LCD影象的顯示過程就是這樣。
S5PV210 的 LCD 控制器支援多種顏色格式,例如
- RGB (1BPP 到 24BPP)
- YCbCr 4:4:4 (只有本地匯流排)
1:顯示屏跟記憶體的關係。
我們都買過顯示卡,知道買獨立顯示卡的好,那麼為什麼獨顯好?
獨顯跟集顯的區別又在哪裡?
獨顯的特點
可以獨立複製內容(DMA控制器)
集顯的特點:跟主機板共用記憶體
可以獨立複製內容(DMA控制器)
2:螢幕為什麼能顯示?(集顯)
1)在初始化的時候,在記憶體開闢的一片空間作為視訊記憶體
2)將要顯示的內容寫到視訊記憶體上
3)lcd控制器對視訊記憶體進行讀取,然後寫入顯示屏裡。
A:DMA完成顯示資料的傳輸,不需要CPU執行COPY函式
B:LCD控制器向顯示屏提供時序訊號、視訊資料、.....
二、LCD顯示原理
如果需要顯示一滿屏的資料,則資料的大小:800*480*24bits
1、幀同步訊號:液晶屏的重新整理頻率、垂直同步訊號的頻率、場頻率
幀同步訊號= 50Hz~70Hz,典型值:60Hz
2、行同步訊號的頻率:一幀中有多少行?
行同步訊號的頻率 = ( 480 +回掃的行數(45) )* 幀同步訊號的頻率
3、畫素時鐘的頻率:掃描畫素點的頻率
畫素時鐘頻率 = (800+一行中回掃的畫素點(256))*行同步訊號的頻率
注意:
1、液晶屏的分頻率越大,則VCLK的頻率越高
2、VCLK的頻率的最大上限:HCLK_DSYS=166MHz
3、思考:S5PV210最大可以接多大的液晶屏?
計算:
在800*480的LCD中,VCLK的頻率值:
VCLK = (800+256)*(480+45)* 60Hz = 33.264MHz
三、LCD的描述引數(液晶屏的選型)
1、解析度 行和列畫素點的個數
2、尺寸 有效的顯示區對角線的長度,單位英寸。
3、色位 一個畫素點用多少位資料來描述----24bits
4、響應時間 重新整理時間---->60Hz(16ms)
響應時間---->幾ms
5、亮度 cd/m**2 --->高亮屏:600
一般屏:250
6、對比度 白色的亮度/黑色的亮度。
7、壽命 單位:小時 5萬小時
當液晶屏的亮度降低到出廠亮度的一半的時候,認為壽命到了。
8、可視角度 四個方向的可視角度是不對稱的,一般有一個方向是比較差的
四、硬體的設計介面
1、S5PV210 LCD控制器的介面
看一下核心板原理圖:LCD接線為24條VD資料輸出線,用來傳輸RGB888 24位顏色資料,VCLK時鐘線,HSYNC:水平同步訊號線;VSYNC:垂直同步訊號線,VDEN:資料使能線;
RGB介面訊號:
LCD_HSYNC: 行同步訊號,表示一行資料的開始,LCD控制器在整個水平線(整行)資料移入LCD驅動器後,
插入一個LCD_HSYNC訊號;
LCD_VSYNC: 幀同步訊號,表示一幀資料的開始,LCD控制器在一個完整幀顯示完成後立即插入一個LCD_VSYNC訊號,
開始新一幀的顯示;VSYNC訊號出現的頻率表示一秒鐘內能顯示多少幀影象,稱為“顯示器的頻率”
LCD_VCLK: 畫素時鐘訊號,表示正在傳輸一個畫素的資料;
LCD_VDEN: 資料使能訊號;
LCD_VD[23:0]: LCD畫素資料輸出埠
五、英寸液晶屏介面
0xffff
1-11位是功能 剩下的每八位 分別是藍綠紅
八、LCD的驅動主要做什麼?
1、根據液晶屏的特定引數來設定LCD控制器(介面、bpp、......)
2、設定液晶屏的同步訊號的頻率(VCLK、VSYNC、HSYNC.....)
3、設定液晶屏的時序引數(幀的回掃時間、行的回掃時間、同步訊號的極性.....)
4、設定視訊記憶體的位置和大小
九、LCD的時序圖
1、LCD控制器的輸出時序
(1)幀的傳輸過程
1)VSYNC訊號有效時,表示一幀資料的開始, 訊號寬度為 (VSPW + 1)個HSYNC訊號週期,即(VSPW + 1)個無效行;
2)VSYNC訊號脈衝之後,總共還要經過(VBPD + 1)個HSYNC訊號週期,有效的行資料才出現; 所以,在VSYNC訊號有效之後,還要經過(VSPW + 1 + VBPD + 1)個無效的行;
3)隨即發出(LINEVAL + 1)行的有效資料;
4)最後是(VFPD + 1)個無效的行;
(2)行中畫素資料的傳輸過程
1)HSYNC訊號有效時,表示一行資料的開始,訊號寬度為(HSPW + 1)個VCLK訊號週期,即(HSPW + 1)個無效畫素;
2)HSYNC訊號脈衝之後,還要經過(HBPD + 1)個VCLK訊號週期,有效的畫素資料才出現;
3)隨後發出(HOZVAL + 1)個畫素的有效資料;
4)最後是(HFPD + 1)個無效的畫素;
(3)將VSYNC、HSYNC、VCLK等訊號的時間引數設定好之後,並將幀記憶體的地址告訴LCD控制器,它即可自動地發起DMA傳輸從幀記憶體中得到影象資料,最終在上述訊號的控制下出現在資料匯流排VD[23:0]上。使用者只需要把要顯示的影象資料寫入幀記憶體中。
2、LCD液晶屏輸入時序
十、相關暫存器
暫存器:DISPLAY_CONTROL 設定為10或11;RGB模式可行即可;
VIDCON0:Video Main Control 0 Register
bit28-26視訊輸出格式,設為RGB模式
bit18:設定RGB資料傳輸方式為並行還是序列,因為有24根資料線所以為並行;
bit2選擇時鐘源,選HCLK 連的是HCLC_DSYS 為166MHz
bit4:開啟分頻;
bit13-6設定時鐘大小,時鐘頻率要小於控制器的最大時鐘,也要小於LCD驅動器的最大時鐘。
bit0 bit1為使能控制訊號都使能
VIDCON1暫存器 Video Main Control 1 Register
bit5 bit6設定HSYNC和VSYNC的極性,如果LCD的高低電平脈衝是相同的話,則Normal,如果極性相反則Invert。
VIDTCON0:設定時序,根據LCD資料手冊中的時序來設定,結合“LCD控制器的輸出時序”
VIDTCON1
VIDTCON2
WINCON0暫存器
bit1:使能window0
bit5-2選擇RGB888模式 1011
bit15:設定輸出順序為 red green blue還是 blue green red 設定為1:BGR 設定為0:RGB
VIDOSD0A VIDOSD0B這兩個暫存器是用來設定記憶體中window0大小;
比如設定為LCD螢幕的尺寸(即左上座標為(0, 0) 右下座標為(799, 479))
VIDOSD0C也是設定記憶體中window0的大小
比如設定為LCD螢幕的尺寸=800*480
VIDW0xADD0Bx設定記憶體中window0的起始地址的
VIDW0xADD1Bx設定記憶體中window0的結束地址的
SHODOWCON暫存器來設定虛擬windows顯示的;
以下位可以分別設定哪個windows顯示;
補充:看核心板、地板原理圖相應引腳要設定為LCD的引腳模式,LCD背光要開啟;