S3C2410 TFT LCD顯示原理分析
1、系統(tǒng)結(jié)構(gòu)框圖
2、LCD控制器
由REGBANK、LCDCDMA、VIDPRCS、TIMEGEN和LPC3600組成。
REGBANK有17個(gè)可編程寄存器和256×16的調(diào)色板存儲(chǔ)器,用來(lái)設(shè)定LCD控制器。LCDCDMA是一個(gè)專用DMA,自動(dòng)從幀存儲(chǔ)器傳輸視頻數(shù)據(jù)到LCD控制器,用這個(gè)特殊的DMA,視頻數(shù)據(jù)可不經(jīng)過(guò)CPU干涉就顯示在屏幕上。VIDPRCS接受從LCDCDMA來(lái)的視頻數(shù)據(jù)并在將其改變到合適數(shù)據(jù)格式后經(jīng)VD[23:0]將之送到LCD驅(qū)動(dòng)器,如4/8單掃描或4雙掃描顯示模式。TIMEGEN由可編程邏輯組成,以支持不同LCD驅(qū)動(dòng)器的接口時(shí)序和速率的不同要求。TIMEGEN產(chǎn)生VFRAME、VLINE、VCLK、VM信號(hào)等。
數(shù)據(jù)流描述如下:FIFO存儲(chǔ)器位于LCDCDMA。當(dāng)FIFO空或部分空時(shí),LCDCDMA要求從基于突發(fā)傳輸模式的幀存儲(chǔ)器中取來(lái)數(shù)據(jù),存入要顯示的圖像數(shù)據(jù),而這個(gè)幀存儲(chǔ)器是LCD控制器在RAM中開(kāi)辟的一片緩沖區(qū)。當(dāng)這個(gè)傳輸請(qǐng)求被存儲(chǔ)控制器中的總線仲裁器接收到后,從系統(tǒng)存儲(chǔ)器到內(nèi)部FIFO就會(huì)成功傳輸4個(gè)字。FIFO的總大小是28個(gè)字,其中低位FIFOL是12個(gè)字,高位FIFOH是16個(gè)字。S3C2410有兩個(gè)FIFO來(lái)支持雙掃描顯示模式。在單掃描模式下,只使用一個(gè)FIFO(FIFOH)。
3、LCD控制器輸出信號(hào)分析
VFRAME/VSYNC:LCD控制器和LCD驅(qū)動(dòng)器之間的幀同步信號(hào)。該信號(hào)告訴LCD屏新一幀開(kāi)始了。LCD控制器在一幀顯示完成后立即插入一個(gè)VFRAME信號(hào),開(kāi)始新一幀的顯示。VLINE/HSYNC--LCD控制器和LCD驅(qū)動(dòng)器之間的行同步脈沖信號(hào)。該信號(hào)用于LCD驅(qū)動(dòng)器將水平線(行)移位寄存器的內(nèi)容傳送給LCD屏顯示。LCD控制器在整行數(shù)據(jù)移人LCD驅(qū)動(dòng)器后,插入一個(gè)VLINE信號(hào)。VCLK--LCD控制器和LCD驅(qū)動(dòng)器之間的像素時(shí)鐘信號(hào)。LCD控制在VCLK的上升沿處送出數(shù)據(jù),LCD驅(qū)動(dòng)器在VCLK的下降沿處采樣。VM/VDEN--LCD驅(qū)動(dòng)器的AC信號(hào)。VM信號(hào)被LCD驅(qū)動(dòng)器用于改變行和列的電壓極性,從而控制像素點(diǎn)的顯示。VM信號(hào)能夠和每幀同步,也能夠和可變數(shù)據(jù)的VLINE信號(hào)同步。VD[23:0]--LCD像素?cái)?shù)據(jù)輸出端口。
4、時(shí)序分析
需要注意的是:在幀的領(lǐng)域里,我們所說(shuō)的周期單位是一行;而在行的時(shí)候,我們所說(shuō)的周期單位是VCLK時(shí)鐘周期。
以240*320的屏為例,一個(gè)VCLK周期傳輸一組VD信號(hào),從而給一個(gè)像素著色。要點(diǎn)亮一行,那么要有240個(gè)VCLK周期將240個(gè)pixel的VD值輸出,而且這240個(gè)周期內(nèi) VDEN應(yīng)該一直是有效的。現(xiàn)在我們的思路從點(diǎn)擴(kuò)展到了行,理想情況下,兩行之間不需要間隔,也就是說(shuō)這一行結(jié)束馬上傳輸下一行的第一個(gè)pixel的 VD。但是這樣做并不好,因?yàn)橐粋€(gè)點(diǎn)的偏差會(huì)造成滿盤(pán)皆輸。因此我們引入了行同步HSYNC信號(hào),也就是說(shuō)在傳輸完一行的數(shù)據(jù)后,先歇一會(huì)兒,等待若干個(gè)時(shí)鐘(我們稱之為后插入等待周期);然后我們送一個(gè)行同步信號(hào),當(dāng)然這個(gè)信號(hào)的有效周期數(shù)我們也能控制(我們稱之為同步周期);之后呢,我們?cè)诘纫粫?huì),讓 LCD驅(qū)動(dòng)電路準(zhǔn)備好接收,我們?cè)诎岩恍械臄?shù)據(jù)發(fā)下去(這個(gè)等待時(shí)間我們稱之為前插入等待周期)。下圖為證:
從圖中我們可以看到:HSPW+1、HBPD+1、HFPD+1就是我們分別定義了同步周期、前插入等待周期、后插入等待周期。而HOZVAL+1則是一行的有效象素?cái)?shù)目。這些都可以在寄存器里面進(jìn)行設(shè)置。說(shuō)完行與行之間的顯示,我們就可以擴(kuò)展到幀與幀之間的顯示。我們很容易想到,在幀的領(lǐng)域里面也應(yīng)該是類似于行的結(jié)構(gòu),同樣包含了同步周期、前插入等待周期、后插入等待周期。上圖為證:
經(jīng)過(guò)上述的分析,我們可以把TFT LCD的接口歸納到8個(gè)參數(shù)上:HSPW、HBPD、HFPD、HOZVAL、VSPW、VBPD、VFPD、LINEVAL。另外,通過(guò)上述分析,我們可以看到,顯示一幀圖像總共需要的VCLK周期為:(HSPW+HBPD+HFPD+HOZVAL+4)*(VSPW+VBPD+VFPD+ LINEVAL+4),VCLK是可調(diào)的,因此通過(guò)選擇適當(dāng)?shù)姆诸l比保證幀率在60Hz左右就可保證液晶的正常工作了。
舉例說(shuō)明:YFARM9-EDU-1 采用的是Samsung 公司的1 款3.5 寸TFT 真彩LCD 屏,分辨率為240*320,下圖為該屏的時(shí)序要求。
于是:
VSPW+1=2 -> VSPW=1 HSPW+1=4 -> HSPW=3
VBPD+1=2 -> VBPD=1 HBPD+1=7 -> HBPW=6
VFPD+1=3 -> VFPD=2 HFPD+1=31 -> HFPD=30
LINVAL+1=320-> LINVAL=319 HOZVAL+1=240-> HOZVAL=239
5、LCD可編程寄存器
5.1、LCDCON1
LINECNT:行計(jì)數(shù)器的狀態(tài)位。只讀,不用配置。
CLKVAL:確定VCLK頻率的參數(shù)。公式為VCLK=HCLK/[(CLKVAL+1)×2],單位為Hz。筆者所用的硬件系統(tǒng)HCLK=100 MHz,640×480的顯示屏需要VCLK=20 MHz,故需配置CLKVAL=1。
MMODE:確定VM的改變速度。在此選擇MMODE=O,為每幀變化模式。PNRMODE:確定掃描方式。選擇PNRMODE=0x3,為TFT LCD面板掃描模式。BPPMODE:確定BPP(每像素位數(shù))模式。在此選擇BPPMODE=0xC,為TFT 16位模式。ENVID:數(shù)據(jù)輸出和邏輯信號(hào)使能控制位。選擇ENVID=1,為允許數(shù)據(jù)輸出和邏輯控制。
5.2、LCDCON2
VBPD:確定幀同步信號(hào)和幀數(shù)據(jù)傳輸前的一段延遲時(shí)間,是幀數(shù)據(jù)傳輸前延遲時(shí)間和行同步時(shí)鐘間隔寬度的比值。
LINEVAL:確定顯示的垂直方向尺寸。公式:LINEVAL=YSIZE-1=479。
VFPD:確定幀數(shù)據(jù)傳輸完成后到下一幀同步信號(hào)到來(lái)的一段延遲時(shí)間,是幀數(shù)據(jù)傳輸后延遲時(shí)間和行同步時(shí)鐘間隔寬度的比值。
VSPW:確定幀同步時(shí)鐘脈沖寬度,是幀同步信號(hào)時(shí)鐘寬度和行同步時(shí)鐘間隔寬度的比值。
5.3、 LCDCON3
HBPD:確定行同步信號(hào)和行數(shù)據(jù)傳輸前的一段延遲時(shí)間,描述行數(shù)據(jù)傳輸前延遲時(shí)間內(nèi)VCLK脈沖個(gè)數(shù)。
HOZAL:確定顯示的水平方向尺寸。公式HOZAL=XSIZE-1。
HFPD:確定行數(shù)據(jù)傳輸完成后到下一行同步信號(hào)到來(lái)的一段延遲時(shí)間,描述行數(shù)據(jù)傳輸后延遲時(shí)間內(nèi)VCLK脈沖個(gè)數(shù)。
5.4、 LCDCON4寄存器
HSPW:確定行同步時(shí)鐘脈沖寬度。描述行同步脈沖寬度時(shí)間內(nèi)VCLK脈沖個(gè)數(shù)。
5.5、LCDCON5寄存器
VSTATUS:垂直方向狀態(tài)。只讀,不用配置。
HSTATUS:水平方向狀態(tài)。只讀,不用配置。
BPP24BL:確定顯示數(shù)據(jù)存儲(chǔ)格式。此處配置BPP24BL=0x0,為小端模式存放。
FRM565:確定16位數(shù)據(jù)輸出格式。此處配置FRM565=0x1,為5:6:5格式輸出。
INVVCLK:確定VCLK脈沖有效邊沿極性。如INVVCLK=0xl,VCLK上升沿到來(lái)時(shí)數(shù)據(jù)傳輸開(kāi)始。
INVVLlNE:確定HSYNC脈沖的極性。
INVVFRAME:確定VSYNC脈沖的極性。
INVVD:確定數(shù)據(jù)輸出的脈沖極性。
INVVDEN:確定VDEN信號(hào)極性。
INVPWREN:確定PWREN信號(hào)極性。
INVLEND:確定LEND信號(hào)極性。
PWREN:PWREN信號(hào)輸出允許。
ENLEND:LEND輸出信號(hào)允許。
BSWP:字節(jié)交換控制位。如配置BSWP=0x0,禁止字節(jié)交換。
HWSWP:半字交換控制位。如配置HWSWP=0xl,使能半字節(jié)交換。