LCD相關知識點

1.LCD即液晶顯示器,控制原理是控制其中的電子槍,在n行*n列的屏幕上投射不一樣顏色從而造成圖像編程

 

2.編程步驟:指針

①打開LCD背光
將LCD背光對應的GPIO設置爲禁止上拉(GPxUP相應位寫入1),選擇output類型(GPxCON相應位寫入01),輸出爲高電平(GPxDAT相應位寫入1)。視頻

②打開LCD電源
能夠將GPG4選擇爲LCD_PWREN(GPGCON:9-8寫入11),這時候LCD電源的打開/關閉能夠經過LCDCON5:3來控制。
也能夠自定義其餘GPIO用做LCD電源開關,只需將此GPIO設置爲禁止上拉(GPxUP相應位寫入1),選擇output類型(GPxCON相應位寫入01),輸出爲高電平(GPxDAT相應位寫入1)打開LCD電源。blog

③設置其餘信號線
其餘信號線包括VD0-VD23和VFRAME、VLINE、VCLK等,分別在GPCCON,GPDCON中選擇相應功能。內存

④設置LCD的頻率(VCLK)
LCD的Datasheet上通常會寫有一個推薦的頻率,好比我使用的屏幕推薦頻率爲6.4M,我須要經過一些計算選擇一個合適的CLKVAL以產生這個頻率:
對於TFT LCD,S3C2440提供的VCLK的計算公式爲:
VCLK = HCLK / ((CLKVAL+1)*2)
能夠得出:
CLKVAL = HCLK / (VCLK * 2) - 1
個人HCLK是100Mhz(CPU運行在400Mhz, CLKDIV_VAL設置爲5,Fclk:Hclk:Pclk = 1:4:8),VCLK使用屏幕推薦的6.4M,獲得:
CLKVAL = 100000000 / (6400000 * 2) - 1 = 6.8
選擇最接近的整數值7,寫入LCDCON1:17-8。
(VCLK其實就是根據 每秒幀數*幀行數*行像素  計算出來的,幀行數和行像素須要包含空白數和同步數)同步

⑤設置其餘相關參數
LCD相關的參數主要還有這幾個:
LINEVAL: LCD水平像素-1,如320-1 = 319
HOZVAL:  LCD垂直像素-1,如240-1 = 239
HFPD:    行開始前的VCLK時鐘數(LCD屏幕的Datasheet通常有推薦值)
HBPD:    行結束後的VCLK時鐘數(LCD屏幕的Datasheet通常有推薦值)
HSPW:    行之間水平同步的無效VCLK時鐘數(LCD屏幕的Datasheet通常有推薦值)
VFPD:    幀數據開始前的空白行數(LCD屏幕的Datasheet通常有推薦值)
VBPD:    幀數據結束後的空白行數(LCD屏幕的Datasheet通常有推薦值)
VSPW:    幀之間垂直同步的無效行數(LCD屏幕的Datasheet通常有推薦值)
(相關寄存器LCDCON2, LCDCON3, LCDCON4)原理

⑥設置視頻緩衝區的地址
2440支持虛擬屏幕,能夠經過改變LCD寄存器實現屏幕快速移動
PAGEWIDTH:虛擬屏幕一行的字節數,若是不使用虛擬屏幕,設置爲實際屏幕的行字節數,如16位寬320像素,設爲320 * 2
OFFSIZE:虛擬屏幕左側偏移的字節數,若是不使用虛擬屏幕,設置爲0
LCDBANK: 視頻幀緩衝區內存地址30-22位
LCDBASEU: 視頻幀緩衝區的開始地址21-1位
LCDBASEL: 視頻幀緩衝區的結束地址21-1位
(相關寄存器LCDSADDR1,LCDSADDR2,LCDSADDR3)im

⑦肯定信號的極性
2440的LCD控制器容許設置VCLK、VLINE、VFRAME等信號的極性(上升沿有效仍是降低沿有效),須要對照LCD的Datasheet一一確認。
(相關寄存器LCDCON5)數據

⑧禁止LPC3600/LCC3600模式!
若是不是使用三星LPC3600/LCC3600 LCD,必須禁止LPC3600/LCC3600模式(寫入0到TCONSEL)!img

⑨打開視頻輸出
ENVID設爲1 (LCDCON1:0寫入1)

 

3.

 

4.

A:顯示指針從矩形左上角的第一行第一個點開始,一個點一個點的在LCD上顯示,在上面的時序圖上用時間線表示就爲VCLK,咱們稱之爲像素時鐘信號;
B:當顯示指針一直顯示到矩形的右邊就結束這一行,那麼這一行的動做在上面的時序圖中就稱之爲1 Line;
C:接下來顯示指針又回到矩形的左邊從第二行開始顯示,注意,顯示指針在從第一行的右邊回到第二行的左邊是須要必定的時間的,咱們稱之爲行切換;
D:如此類推,顯示指針就這樣一行一行的顯示至矩形的右下角才把一副圖顯示完成。所以,這一行一行的顯示在時間線上看,就是時序圖上的HSYNC

E:然而,LCD的顯示並非對一副圖像快速的顯示一下,爲了持續和穩定的在LCD上顯示,就須要切換到另外一幅圖上(另外一幅圖能夠和上一副圖同樣或者不同,目的只是爲了將圖像持續的顯示在LCD上)。那麼這一副一副的圖像就稱之爲幀,在時序圖上就表示爲1 Frame,所以從時序圖上能夠看出1 Line只是1 Frame中的一行;F:一樣的,在幀與幀切換之間也是須要必定的時間的,咱們稱之爲幀切換,那麼LCD整個顯示的過程在時間線上看,就可表示爲時序圖上的VSYNC

相關文章
相關標籤/搜索