44B0X的LCD 控制器資料
LCD 控制器用來把定位在系統存儲器中的視頻緩衝區的LCD圖象數據傳輸到LCD驅動器,並
產生必須的LCD控制信號。
LCD 控制器使用時間抖動算法和幀速率控制方法,支持在灰白LCD上的單色、4級灰度(一個
點佔兩位)、16級灰度(一個點佔4位)顯示,也能與彩色LCD的接口支持最大256色(每點8
位)的顯示 。
LCD 控制器可以編程支持不同水平和垂直點數(640x480, 320x240, 160x160等等)、不同數
據線寬度、不同的接口時序和刷新速率的LCD,支持4位雙掃描、4位單掃描、8位單掃描的LCD
顯示器,並支持水平/垂直捲動,用來支持更大的屏幕顯示(如1280*1280)。
LCD顯示數據流如下:
當LCDCDMA(LCD專用DMA,用來在不用CPU參與的情況下自動傳輸幀存儲器的視頻數據到
LCD驅動器顯示)中的FIFO 存儲區爲空或部分爲空時,LCDCDMA請求從幀存儲器預取數據(使
用突發傳輸模式,一次預取4個字,在傳輸期間,不允許總線控制權轉讓。FIFO 存儲區總的尺
寸是24個字(12個FIFOL,12個FIFOH,用來支持雙掃描,在單掃描模式,僅一個12個FIFOH
可用).
灰度顯示:4級灰度顯示模式使用查找表,允許在16級可能的灰度中選擇四級灰度顯示,該查找
表和彩色查找表的蘭色查找表公用一個寄存器BULEVAL[15:0],灰度0由BLUEVAL[3:0]值表示,
灰度1由BLUEVAL[7:4]值表示,灰度2由BLUEVAL[11:8]值表示,灰度3由BLUEVAL[15:12]值表
示。在16級灰度顯示模式不使用查找表。
彩色8位顯示模式:3位分配爲紅,3位綠,可以同時顯示8個紅色與8個綠色,,2位藍色位,可
以同時顯示4個蘭色,合起來最大顯示256色。紅、綠、藍分別使用不同的查找表,紅色、綠色
查找表入口都是32位(並分成8組),分別由REDVAL[31:0]、GREENVAL[31:0]寄存器指示,
蘭色查找表入口爲16位,由BLUEVAL[15:0] 寄存器指示,並分成4組。也就是說紅、綠色可以
在在32位中顏色組合中選擇8色進行顯示,蘭色可以在在16位中顏色組合中選擇4色進行顯示。
LCD自刷新模式:S3C44B0X支持LCD自刷新模式,以減少電源消耗,這時VCLK爲低,VD保持
先前的值,其它信號不變,這時電源管理模式可以進入SL_IDLE模式。
LCD寄存器
1 LCD控制寄存器1
LCDCON1 0x01F00000 R/W LCD控制寄存器1 初始值 0x00000000
位名稱 BIT 描述
LINECNT(只讀) [31:22] 這些位反映行計數值
CLKVAL [21:12] 這些位確定VCLK的頻率. 如果該值在ENVID=1改變,將下
一幀使用.
公式爲 VCLK = MCLK / (CLKVAL x 2) ( CLKVAL 32 )
WLH [11:10] 這些位確定VLINE高電平的寬度
00 = 4 clock, 01 = 8 clock, 10 = 12 clock, 11 = 16 clock
WDLY [9:8] 這些位確定VLINE和VCLK之間的延時
00 = 4clock, 01 = 8 clock, 10 = 12 clock, 11 = 16 clock
MMODE [7] 這位確定VM的改變速度.
0 = Each Frame, 1 = The rate defined by the MVAL
DISMODE [6:5] 這些位選擇顯示模式
00 = 4-bit dual scan display mode
01 = 4-bit single scan display mode
10 = 8-bit single scan display mode
11 = Not used
INVCLK [4] 該位控制VCLK 的極性
0 = The video data is fetched at VCLK falling edge
1 = The video data is fetched at VCLK rising edge
INVLINE [3] 該位指示行脈衝的極性
0 = normal 1 = inverted
INVFRAME [2] 該位指示幀脈衝的極性
0 = normal 1 = inverted
INVVD [1] 該位指示(VD[7:0]) 的極性.
0 = Normal
1 = VD[7:0] output is inverted.
ENVID [0] LCD視頻輸出和邏輯的允許與否
0 = 不允許,LCD FIFO 清除
1 = 允許
2 LCD控制寄存器1
LCDCON2 0x01F00004 R/W LCD控制寄存器2 初始值 0x00000000
位名稱 BIT 描述
LINEBLANK [31:21] 這些位確定行掃描的返回時間. LINEBLANK I的單位是MCLK.
如: LINEBLANK 爲10, 返回時間在10個系統時鐘期間插入VCLK
HOZVAL [20:10] 這些位確定LCD屏的水平尺寸,HOZVAL值的確定必須滿足一行總
的字節數是2的倍數 如120點的LCD 的水平尺寸X=120不支持,因
爲一行包含15個字節,而X=128可以被支持(16個字節),額外的8點
將被LCD驅動器放棄.
公式:
HOZVAL = ( Horizontal display size / Number of the valid VD data line) -1
彩色模式: Horizontal display size = 3 * Number of Horizontal Pixel
LINEVAL [9:0] 這些位確定LCD屏的垂直尺寸
確定公式:
LINEVAL = (Vertical display size) -1:單掃描類型
LINEVAL = (Vertical display size / 2) -1: 雙掃描類型
3 LCD控制寄存器3
LCDCON3 0x01F00040 R/W LCD控制寄存器3 初始值 0x00
位名稱 BIT 描述
Reserved [2:1] 保留
SELFREF [0] LCD刷新模式允許位
0 : LCD self refresh mode disable
1 : LCD self refresh mode enable
4 幀緩衝區開始地址1
LCDSADDR1 0x01F00008 R/W 幀緩衝區開始地址1寄存器 初始值 0x000000
位名稱 BIT 描述
MODESEL [28:27] 這些位選擇顯示模式
00 = monochrome mode 01 = 4-level gray mode
10 = 16-level gray mode 11 = color mode
LCDBANK [26:21] 這些位指示視頻緩衝區在系統存儲器的段地址A[27:22]
LCDBANK在視點移動時不能變化, LCD 幀緩衝區應當與4M區域
對齊,因此在分配存儲區應當注意
LCDBASEU [20:0] 這些位指示幀緩衝區或在雙掃描LCD時的上幀緩衝區的開始地址
A[21:1]
注:1 LCDBANK在ENVID=1時不能變化.
2 如果LCDBASEU,LCDBASEL在ENVID=1時變化,新的量將在下一幀起作用,
5 幀緩衝區開始地址2
LCDSADDR2 0x01F0000C R/W 幀緩衝區開始地址2寄存器 初始值 0x000000
位名稱 BIT 描述
BSWP [29] 字節交換控制位
1 : Swap Enable 0 : Swap Disable
LCD DMA 以4個字的突發模式預取幀存儲區數據,在little endian
模式和BSWP = 0, 幀存儲區數據以n+3th, 4n+2th ,4n+1th ,4n-th
次序顯示
否則BSWP =1次序爲4n-th, 4n+1th,4n+2th, 4n+3th.
如果CPU在little endian模式,幀存儲區可以以字節存取模式存取,
因爲BSWP =1,存取的數據也將在little endian模式正常顯示,否則
BSWP 必須爲0
MVAL [28:21] 如果MMODE=1,這兩位定義VM信號以什麼速度變化
公式爲:VM Rate = VLINE Rate / ( 2 * MVAL)
LCDBASEL [20:0] 這兩位指示在使用雙掃描LCD時的下幀存儲區的開始地址 A[21:1]
公式如下:
LCDBASEL =LCDBASEU + (PAGEWIDTH + OFFSIZE) x (LINEVAL +1)
注:用戶通過改變LCDBASEU 和 LCDBASEL的值來滾動屏幕,但在幀結束時,不能改變LCDBASEU
和 LCDBASEL的值,因爲預取下一幀的數據優先於改變幀,如果這時改變幀, 預取的數據將無效
和將顯示不正確.爲了檢查LINECNT,中斷應當被屏蔽,否則如果在讀LINECNT後,任意中斷剛好執行,
因爲ISR的執行,LINECNT的值可能無效.,
6 幀緩衝區開始地址3
LCDSADDR3 0x01F00010 R/W 虛擬屏幕地址設置 初始值 0x000000
位名稱 BIT 描述
OFFSIZE [19:9] 虛擬屏幕偏移量(半字的數量),該值定義前一顯示行的最後的半
字和新的顯示一行首先的半字之間的距離
PAGEWIDTH [8:0] 虛擬屏幕寬度(半字的數量),該值定義幀的觀察區域的寬度
注: PAGEWIDTH 和 OFFSIZE必須在ENVID = 0時變化.
7 紅色查找表寄存器
REDLUT 0x01F00014 R/W 紅色查找表寄存器 初始值 0x00000000
位名稱 BIT 描述
REDVAL [31:0 ] 這些位定義8組的每一組中的16個影射的哪一個將選擇
000 = REDVAL[3:0], 001 = REDVAL[7:4]
010 = REDVAL[11:8], 011 = REDVAL[15:12]
100 = REDVAL[19:16], 101 = REDVAL[23:20]
110 = REDVAL[27:24], 111 = REDVAL[31:28]
8 綠色查找表寄存器
GREENLUT 0x01F00018 R/W 綠色查找表寄存器 初始值 0x00000000
位名稱 BIT 描述
GREENVAL [31:0 ] 這些位定義8組的每一組中的16個影射的哪一個將選擇
000 = GREENVAL[3:0], 001 = GREENVAL[7:4]
010 = GREENVAL[11:8], 011 = GREENVAL[15:12]
100 = GREENVAL[19:16], 101 = GREENVAL[23:20]
110 = GREENVAL[27:24], 111 = GREENVAL[31:28]
9 藍色查找表寄存器
BLUELUT 0x01F0001C R/W 藍色查找表寄存器 初始值 0x0000
位名稱 BIT 描述
BLUEVAL [15:0 ] 這些位定義4組的每一組中的16個影射的哪一個將選擇
00 = BLUEVAL[3:0], 01 = BLUEVAL[7:4]
10 = BLUEVAL[11:8], 11 = BLUEVAL[15:12]
10 抖動模式寄存器
DP1_2 0x01F00020 R/W 抖動模式佔空比爲1/2寄存器 初始值 0xa5a5
DP4_7 0x01F00024 R/W 抖動模式佔空比爲4/7寄存器 初始值 0xba5da65
DP3_5 0x01F00028 R/W 抖動模式佔空比爲3/5寄存器 初始值 0xa5a5f
DP2_3 0x01F0002C R/W 抖動模式佔空比爲2/3寄存器 初始值 0xd6b
DP5_7 0x01F00030 R/W 抖動模式佔空比爲5/7寄存器 初始值0xeb7b5ed
DP3_4 0x01F00034 R/W 抖動模式佔空比爲3/4寄存器 初始值 0x7dbe
DP4_5 0x01F00038 R/W 抖動模式佔空比爲4/5寄存器 初始值 0x7ebdf
DP6_7 0x01F0003C R/W 抖動模式佔空比爲6/7寄存器 初始值 0x7fdfbfe
DITHMODE 0x01F00044 R/W 抖動模式寄存器 初始值 0x00000
用戶必須改變該值爲0x12210.
LCD控制器的VCLK最大頻率是16.5MHZ(在系統時鐘爲66MHZ時),
VCLK(Hz)=MCLK/(CLKVAL x 2)
VCLK的速度應大於數據傳輸速率.
數據傳輸速率=HS × VS × FR × MV
HS: LCD 水平尺寸
VS: LCD 垂直尺寸
FR: 幀速率
MV: 由顯示模式確定的值
FR(Hz) = 1 / [ ( (1/VCLK) x (HOZVAL+1)+(1/MCLK) x (WLH+WDLY+LINEBLANK) ) x
( LINEVAL+1) ]
VCLK(Hz) = (HOZVAL+1) / [ (1 /(FR x (LINEVAL+1))) - ((WLH+WDLY+LINEBLANK) / MCLK )]
顯示模式 MV值
單色, 4位單掃描 1/4
單色, 8位單掃描或4位雙掃描 1/8
4級灰度, 4位單掃描 1/4
4級灰度,8位單掃描或4位雙掃描 1/8
16級灰度,4位單掃描 1/4
16級灰度,8位單掃描或4位雙掃描 1/8
彩色, 4位單掃描 3/4
彩色, 8位單掃描或4位雙掃描 3/8
LCDBASEU寄存器的量是幀緩衝區的開始地址,在突發4字存取模式,最低4位必須取消.
LCDBASEL寄存器的量由LCD尺寸和LCDBASEU的量確定,公式爲;
LCDBASEL = LCDBASEU + LCDBASEL offset
44B0X的LCD 控制器資料
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.