s3c2440lcd控制器設(shè)置及代碼詳解.doc_第1頁(yè)
s3c2440lcd控制器設(shè)置及代碼詳解.doc_第2頁(yè)
s3c2440lcd控制器設(shè)置及代碼詳解.doc_第3頁(yè)
s3c2440lcd控制器設(shè)置及代碼詳解.doc_第4頁(yè)
s3c2440lcd控制器設(shè)置及代碼詳解.doc_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1. LCD工作的硬件需求:要使一塊LCD正常的顯示文字或圖像,不僅需要 LCD驅(qū)動(dòng)器,而且還需要 相應(yīng)的LCD空制器。在通常情況下,生產(chǎn)廠商把 LCD驅(qū)動(dòng)器會(huì)以COF/COGJ形 式與LCD玻璃基板制作在一起,而LCD空制器則是由外部的電路來(lái)實(shí)現(xiàn), 現(xiàn)在很 多的MCUJ部都集成了 LCD空制器,如S3c2410/2440等。通 過LCD空制器就可 以產(chǎn)生LCD驅(qū)動(dòng)器所需要的控制信號(hào)來(lái)控制 STN/TFT屏了。2. S3C2440內(nèi)部LCD空制器結(jié)構(gòu)圖:sy&ien busLPCSGtXJ 怪 3 timing control logic unM for LTS35OQ1 -PD1 o

2、r LTS350Q1-PDSLCC36M k a timing control logk unit for LTS350G1-PE1 or LTS350Q1-PE2我們根據(jù)數(shù)據(jù)手冊(cè)來(lái)描述一下這個(gè)集成在 S3c2440內(nèi)部的LCD控制器:a: LCD空制器由 REGBANKLCDCDMATIMEGEN VIDPRCSJ存器組成;b: REGBANK 17個(gè)可編程的寄存器組和一塊 256*16的調(diào)色板內(nèi)存組成,它們用來(lái)配置LCD空制器的;c: LCDCDMA一個(gè)專用的DMA它能自動(dòng)地把在偵內(nèi)存中的視頻數(shù)據(jù)傳送到 LCD 驅(qū)動(dòng)器,通過使用這個(gè)DMA1道,視頻數(shù)據(jù)在不需要CPU勺干預(yù)的情況下顯示在 L

3、CD屏上;d: VIDPRC援收來(lái)自LCDCDMA數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換為合適的數(shù)據(jù)格式,比如說(shuō)4/8位單掃,4位雙掃顯示模式,然后通過數(shù)據(jù)端口 VD23:0傳送視頻數(shù)據(jù)到LCD 驅(qū)動(dòng)器;e:TIMEGEN可編程的邏輯組成,他生成LCD1動(dòng)器需要的控制信號(hào),比如VSYNC HSYNCVCLKffi LEND?等,而這些控制 信號(hào)又與REGBANK存器組中的 LCDCON1/2/3/4/5的配置密切相關(guān),通過不同的配置, TIMEGENft能產(chǎn)生這些信 號(hào)的不同形態(tài),從而支 持不同的LCD驅(qū)動(dòng)器(即不同的STN/TFT屏)。3.常見TFT屏工作時(shí)序分析:VSYIKHS¥»C“Elf

4、HSTffCVCLKTOVDEWLENDTFT屏工作時(shí)序圖LCDS供的外部接口信號(hào):VSYNC/VFRAME/STV!直同步信號(hào)(TFT)/幀同步信號(hào)(STN)/SEC TFT信號(hào); HSYNC/VLINE/CPV水平同步信號(hào)(TFT)/行同步脈沖信號(hào)(STN)/SEC TFT信 號(hào);VCLK/LCD_HCLK象素時(shí)鐘信號(hào)(TFT/STN)/SEC TFT 信號(hào);VD23:0 : LCD像素?cái)?shù)據(jù)輸出端口(TFT/STN/SEC TFT);VDEN/VM/TP數(shù)據(jù)使能信號(hào)(TFT)/LCD驅(qū)動(dòng)交流偏置信號(hào)(STN)/SEC TFT信 號(hào);LEND/STH行結(jié)束信號(hào)(TFT)/SEC TFT信號(hào);

5、LCD_LPCO ESEC TFT OEt 號(hào);LCD_LPCRE VSEC TFT REW 號(hào);LCD_LPCREV BSEC TFT REVB言號(hào)。所有顯示器顯示圖像的原理都是從上到下,從左到右的。這是什么意思呢?這么說(shuō)吧,一副圖像可以看做是一個(gè)矩形,由很多排列整齊的點(diǎn)一行一行組成,這些點(diǎn)稱之為像素。那么這幅圖在 LCD上的顯示原理就是:A:顯示指針從矩形左上角的第一行第一個(gè)點(diǎn)開始,一個(gè)點(diǎn)一個(gè)點(diǎn)的在LCD上顯示,在上面的時(shí)序圖上用時(shí)間線表示就為 VCLK我們稱之為像素時(shí)鐘 信號(hào);B:當(dāng)顯示指針一直顯示到矩形的右邊就結(jié)束這一行,那么這一行的動(dòng)作在 上面的時(shí)序圖中就稱之為1 Line ;C:接

6、下來(lái)顯示指針又回到矩形的左邊從第二行開始顯示,注意,顯示指針 在從第一行的右邊回到第二行的左邊是需要一定的時(shí)間的,我們稱之為行 切換;D:如此類推,顯示指針就這樣一行一行的顯示至矩形的右下角才把一副圖 顯示完成。因此,這一行一行的顯示在時(shí)間線上看,就是時(shí)序圖上的HSYNC E:然而,LCD的顯示并不是對(duì)一副圖像快速的顯示一下,為了持續(xù)和穩(wěn) 定的在LCD上顯示,就需要切換到另一幅圖上(另一幅圖可以和上一副圖一 樣或者不一樣,目 的只是為了將圖像持續(xù)的顯示在 LCD上)。那么這一副 一副的圖像就稱之為幀,在時(shí)序圖上就表示為1 Frame,因此從時(shí)序圖上可 以看出1 Line只是1 Frame中的一

7、行;F:同樣的,在幀與幀切換之間也是需要一定的時(shí)間的, 我們稱之為幀切換, 那么LCDS個(gè)顯示的過程在時(shí)間線上看,就可表示為時(shí)序圖上的VSYNC上面時(shí)序圖上各時(shí)鐘延時(shí)參數(shù)的含義如下:(這些參數(shù)的值,LCD產(chǎn)生廠商會(huì)提 供相應(yīng)的數(shù)據(jù)手冊(cè))VBPD(vertical back porch):表示在一幀圖像開始時(shí),垂直同步信號(hào)以后 的無(wú)效的行數(shù),對(duì)應(yīng)驅(qū)動(dòng)中的 upper_margin ;VFBD(vertical front porch) :表示在一幀圖像結(jié)束后,垂直同步信號(hào)以 前的無(wú)效的行數(shù),對(duì)應(yīng)驅(qū)動(dòng)中的lower_margin ;VSPW(vertical sync pulse width):表

8、示垂直同步脈沖的寬度,用行數(shù)計(jì) 算,對(duì)應(yīng)驅(qū)動(dòng)中的 vsync_len ;HBPD(horizontal back porch):表示從水平同步信號(hào)開始到一行的有效數(shù) 據(jù)開始之間的VCLK勺個(gè)數(shù),對(duì)應(yīng)驅(qū)動(dòng)中的left_margin ;HFPD(horizontal front porth) :表示一行的有效數(shù)據(jù)結(jié)束到下一個(gè)水平 同步信號(hào)開始之間的VCLK勺個(gè)數(shù),對(duì)應(yīng)驅(qū)動(dòng)中的right_margin ;HSPW(horizontal sync pulse width):表示水平同步信號(hào)的寬度,用 VCLK 計(jì)算,對(duì)應(yīng)驅(qū)動(dòng)中的 hsync_len ;對(duì)于以上這些參數(shù)的值將分別保存到REGBANK存器

9、組中的LCDCON1/2/3/4/5寄存器中:(對(duì)寄存器的操作請(qǐng)查看S3c2440數(shù)據(jù)手冊(cè)LCD部分)LCDCON117 - 8 位 CLKVAL6 - 5位掃描模式(對(duì)于STN屏:4位單/雙掃、8位單掃)4 - 1位色位模式(1BPR 8BPP 16BP%)LCDCON231 - 24 位 VBPD23 - 14 位 LINEVAL13 - 6 位 VFPD5 - 0 位 VSPWLCDCON325 - 19 位 HBPD18 - 8 位 HOZVAL7 - 0 位 HFPDLCDCON4 7 - 0 位 HSPWLCDCON54.幀緩沖(FrameBuffer):幀緩沖是Linux為顯示設(shè)

10、備提供的一個(gè)接口,它把一些顯示設(shè)備描述成一 個(gè)緩沖區(qū),允許應(yīng)用程序通過 FrameBuffer定義好的接口訪問這些圖形設(shè)備, 從而不用去關(guān)心具體的硬件細(xì)節(jié)。對(duì)于幀緩沖設(shè)備而言,只要在顯示緩沖區(qū)與顯 示點(diǎn)對(duì)應(yīng)的區(qū)域?qū)懭腩伾?值,對(duì)應(yīng)的顏色就會(huì)自動(dòng)的在屏幕上顯示。下面來(lái)看 一下在不同色位模式下緩沖區(qū)與顯示點(diǎn)的對(duì)應(yīng)關(guān)系:下面看看2440test里面的1cd.c 文件static void PutPixel(U32 x,U32 y,U16 c)if(x<SCR_XSIZE && y<SCR_YSIZE)LCD_BUFFER(y)(x) = c;很容易發(fā)現(xiàn)TFT LCD上顯示

11、單個(gè)像素的函數(shù)實(shí)際上很簡(jiǎn)潔看來(lái)似乎只需要LCD_BUFFER(y)(x) = c 這一句話下面就來(lái)分析下,是女而通過這一句話來(lái)實(shí)現(xiàn)在LCD上顯示單個(gè)像素的先分析下LCD_Init()即LCD0始化函數(shù)rLCDCON1 = (LCD_PIXCLOCK << 8) | (3 <<5) | (12 << 1);LCDCON1 0x4d000000 #define LCD_WIDTH 240#define LCDHEIGHT 320 #define LCD_PIXCLOCK 4#define LCD_RIGHT_MARGIN 36#define LCD_LEFT_M

12、ARGIN 19#define LCD_HSYNC_LEN 5#define LCD_UPPER_MARGIN 1#define LCD_LOWER_MARGIN 5#define LCD_VSYNC_LEN 1CLKVAL17:8 = 4TFT: VCLK = HCLK / (CLKVAL+1) * 2 ( CLKVAL>=0 )MMODE7 = 0PNRMODE6:5 = 11TFT LCD panelBPPMODE4:1 = 110016bpp for TFTDisableENVID0 = 0rLCDCON2 = (LCD_UPPER_MARGIN << 24) | (

13、LCD_HEIGHT - 1) << 14) | (LCD_LOWER_MARGIN << 6) | (LCD_VSYNC_LEN << 0);LCDCON2 0x4d000004VBPD = 1VBPD(vertical back porch):表示在一幀圖像開始時(shí),垂直同步信號(hào)以后的無(wú) 效的行數(shù),對(duì)應(yīng)驅(qū)動(dòng)中的 upper_marginLINVAL = 240 - 1LINVAL: LCDW的垂直大小VFPD = 5VFPD(vertical front porch):表示在一幀圖像結(jié)束后,垂直同步信號(hào)以前的無(wú) 效的行數(shù),對(duì)應(yīng)驅(qū)動(dòng)中的lower_margi

14、nVSPW = 1VSPW(vertical sync pulse width) :表示垂直同步脈沖的寬度,用行數(shù)計(jì)算, 對(duì)應(yīng)驅(qū)動(dòng)中的vsync_lenrLCDCON3 = (LCD_RIGHT_MARGIN << 19) | (LCD_WIDTH - 1) <<8) |(LCD_LEFT_MARGIN << 0);LCDCON3 0x4d000008HBPD = 36HBPD(horizontal back porch):表示從水平同步信號(hào)開始到一行的有效數(shù)據(jù)開 始之間的VCLK勺個(gè)數(shù),對(duì)應(yīng)驅(qū)動(dòng)中的left_marginHOZVAL = 320 - 1HO

15、ZVAL LCDW的水平大小HFPD = 19HFPD(horizontal front porth):表示一行的有效數(shù)據(jù)結(jié)束到下一個(gè)水平同步信 號(hào)開始之間的VCLK勺個(gè)數(shù),對(duì)應(yīng)驅(qū)動(dòng)中的right_marginrLCDCON4 = (13 <<8) | (LCD_HSYNC_LEN << 0);LCDCON4 0x4d00000cMVAL = 13HSPW = 5HSPW(horizontal sync pulse width):表示水平同步信號(hào)的寬度,用 VCLK+算, 對(duì)應(yīng)驅(qū)動(dòng)中的hsync_len# define LCD_CON5 (1<<11) |

16、(1 << 9) | (1 << 8) | (1 << 3) | (1<< 0) rLCDCON5 = LCDCON5;LCDCON5 0x4d000010HWSWP = 1PWREN = 1Swap EnableEnable PWREN signalINVVFRAME = 1VFRAME/VSYNC pulse polarity Inverted選擇負(fù)極性脈沖INVVLINE = 1VLINE/HSYNC pulse polarityInverted選擇負(fù)極性脈沖FRM565 = 15:6:5 FormatrLCDINTMSK |= 3;INT

17、_FrSyn = 1LCD frame synchronized interrupt MaskedINT_FiCnt = 1LCD FIFO interrupt MaskedrTCONSEL &= (7);rTCONSEL &= (1<<4) 1);MODE_SEL = 0Sync modeRES_SEL = 0320 x 240LPC_EN = 0LPC3600 DisablerTPAL = 0x0;Temporary palette register enable bit Disablevolatile static unsigned short LCD_BUF

18、FERSCR_YSIZESCR_XSIZE;#define LCD_ADDR (U32)LCD_BUFFER)#define M5D(n) (n)&0x1fffff)rLCDSADDR1 = (LCD_ADDR >> 22) << 21) | (M5D(LCD_ADDR >> 1) <<0);rLCDSADDR2 = M5D(LCD_ADDR + LCD_WIDTH * LCD_HEIGHT * 2) >> 1);rLCDSADDR3 = LCD_WIDTH;LCDSADDR1 0x4d00001頓緩沖起始寄存器1LCDBAN

19、K29:21 = (U32)LCD_BUFFER >> 22These bits indicate A30:22 of the bank location for the video bufferin the system memory. LCDBANK value cannot be changed even when movingthe view port. LCDframe buffer should be within aligned 4MBregion, which ensures that LCDBANKvalue will not be changed when mo

20、ving the view port. So, care should be taken to use the malloc() Function系統(tǒng)內(nèi)存地址A30:22處的Bank位置為圖像緩沖。LCDBANK值在視圖移動(dòng)的 值在視圖移動(dòng)時(shí)不能改變,LCD幀緩沖應(yīng)該在4MB區(qū)域?qū)R,保證LCDBANK值 在移動(dòng)視圖時(shí)不會(huì)改變。LCDBASEU20:0 = (U32)LCD_BUFFER >> 1)&0x1fffffFor dual-scan LCD : These bits indicate A21:1 of the start address ofthe upper a

21、ddress counter, which is for the upper frame memory of dualscan LCD or the frame memory of single scan LCD.For single-scan LCD : These bits indicate A21:1 of the start addressof the LCD frame buffer.雙掃描:表明高地址計(jì)數(shù)器的起始地址 A21:1,用于LCD雙掃描的上部幀內(nèi)存或者單掃描的幀內(nèi)存單掃描:表明LCD幀緩沖的起始地址A21:1LCDSADDR2 0x4d0000l8緩沖起始寄存器2LCDBASEL20:0 = (LCD_ADDR+ LCD_WIDTH* LCD_HEIGH*T 2) >> 1)& 0x1fffff = (LCD_ADDR >> 1 + LCD_WIDTH *LCD_HEIGHT)& 0x1fffffFor dual-scan LCD: These bits indicate A21:1 of the start address ofthe lower address counter, which is used f

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論