一、LCD控制原理
S5PV210處理器中自帶LCD控制器,控制LCD的顯示,把 LCD 圖像數據從一個位於系統內存的 video buffer 傳送到一個外部的 LCD 驅動器接口。
類型:
- STN(超扭曲向列),它的特點是功耗低,但亮度不足,響應時間長;(1602那種類型的)
- TFT(薄膜晶體管),它的特點是響應時間短,畫面清晰,但功耗稍高,(自己實驗用的應該是這個類型的,這個類型當作計算機液晶顯示設備)。
- LTPS(低溫多晶硅),各方面性能優越,但技術要求高;
- 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:屏幕為什么能顯示?(集顯)
- 在初始化的時候,在內存開辟的一片空間作為顯存
- 將要顯示的內容寫到顯存上
- lcd控制器對顯存進行讀取,然后寫入顯示屏里。
A DMA完成顯示數據的傳輸,不需要CPU執行COPY函數
B LCD控制器向顯示屏提供時序信號、視頻數據、.....

二、LCD顯示原理

如果需要顯示一滿屏的數據,則數據的大小:80048024bits
- 幀同步信號:液晶屏的刷新頻率、垂直同步信號的頻率、場頻率
幀同步信號= 50Hz~70Hz,典型值:60Hz
- 行同步信號的頻率:一幀中有多少行?
行同步信號的頻率 = ( 480 +回掃的行數(45) )* 幀同步信號的頻率
- 像素時鍾的頻率:掃描像素點的頻率
像素時鍾頻率 = (800+一行中回掃的像素點(256))*行同步信號的頻率
注意:
- 液晶屏的分頻率越大,則VCLK的頻率越高
- VCLK的頻率的最大上限:HCLK_DSYS=166MHz
- 思考:S5PV210最大可以接多大的液晶屏?
計算:
在800*480的LCD中,VCLK的頻率值:
VCLK = (800+256)(480+45) 60Hz = 33.264MHz
三、LCD的描述參數(液晶屏的選型)
- 分辨率
行和列像素點的個數
- 尺寸
有效的顯示區對角線的長度,單位英寸。
- 色位
一個像素點用多少位數據來描述----24bits
- 響應時間
刷新時間---->60Hz(16ms)
響應時間---->幾ms
- 亮度 cd/m**2
高亮屏:600
一般屏:250
- 對比度
白色的亮度/黑色的亮度。
- 壽命
單位:小時 5萬小時
當液晶屏的亮度降低到出廠亮度的一半的時候,認為壽命到了。
- 可視角度
四個方向的可視角度是不對稱的,一般有一個方向是比較差的
四、硬件的設計接口
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的驅動主要做什么?
- 根據液晶屏的特定參數來設置LCD控制器(接口、bpp、......)
- 設置液晶屏的同步信號的頻率(VCLK、VSYNC、HSYNC.....)
- 設置液晶屏的時序參數(幀的回掃時間、行的回掃時間、同步信號的極性.....)
- 設置顯存的位置和大小
九、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背光要打開;
