LCD驅(qū)動軟硬件設(shè)計
OMAP5910內(nèi)部具有獨立的LCD控制模塊,其功能如圖1所示。從圖中可以看出LCD控制模塊的核心單元是控制器,負(fù)責(zé)和其他各個部分的控制以及和外設(shè)的連接。控制器連接兩個外設(shè),一個是到OMAP5910的DMA請求,一個是到外設(shè)的LCD的中斷請求。這樣,0MAP5910作為主設(shè)備,可以在CPU不參與的情況下實現(xiàn)對LCD的顯示核控制。LCD作為被動設(shè)備,有少量需要返回的狀態(tài),發(fā)送中斷到OMAP5910,由OMAP5910安排時間讀取LCD狀態(tài)。這樣,使得整個LCD的顯示和控制占用較少的CPU資源。
圖1 LCD控制器的功能框圖
LCD控制模塊的數(shù)據(jù)通道由調(diào)色板RAM、灰度/串行器和輸出FIFO這3個部分組成。這3個部分支持12或16位STN方式,由控制器控制輸出數(shù)據(jù)到LCD的數(shù)據(jù)總線上。而對于16位薄膜工藝學(xué)(TFT,Thin ̄Film Technology)方式,數(shù)據(jù)直接傳輸?shù)絃CD的總線,提供2(16)=64K的彩色信號。
LCD控制模塊的寄存器單元用于對模塊的設(shè)置,寄存器包括一個控制寄存器、3個時間寄存器和一個狀態(tài)寄存器。主要用來設(shè)置LCD的寬度和高度、彩色或單色選擇、被動或主動顯示選擇、引腳的極性選擇、幀時鐘的脈沖寬度、像素時鐘和偏轉(zhuǎn)頻率以及各種狀態(tài)值等??刂破骺梢愿鶕?jù)寄存器的內(nèi)容對各種時鐘信號進(jìn)行控制和復(fù)位。
LCD控制模塊和TFT-LCD之間的控制信號有PCLK(像素時鐘信號)、HS(水平同步信號)、VS(垂直同步信號)以及AC(輸出使能信號)等4個信號,這些信號均由LCD控制模塊輸出到LCD。
LCD驅(qū)動電路和0MAP5910的迕接如圖2所示。使用OMAP5910的LCD控制器接口連接LZ9FC22。LZ9FC22是Sharp公司專門配合LQ035Q7D型號LCD的驅(qū)動芯片,可以和LQ035Q7D進(jìn)行無縫連接。
LZ9FC22和OMAP5910的LCD控制器連接,由于LZ9FC22是18位控制器(RGB信號各有6位),而OMAP5910的LCD控制器的輸出只有16位數(shù)據(jù),為此必須損失兩位數(shù)據(jù),將LZ9FC22的R0和BO接地,或者將R0和R5、BO和B5連接在一起。
LCD的像素同步時鐘信號、水平同步信號、垂直同步信號和輸出使能直接連接到LZ9FC22上。LZ9FC22有兩個水平和垂直刷新設(shè)置信號,分別為HRVE和VRVE引腳,使用OMAP5910的兩個GPIO引腳控制,通過改變GPIO引腳的狀態(tài)設(shè)置LCD的刷新方式。為了保證LZ9FC22正常工作,OMAP5910提供復(fù)位信號到LZ9FC22,一旦LQ035Q7D顯示不正?;蛘唔憫?yīng)異常,OMAP5910通過復(fù)位引腳控制LZ9FC22恢復(fù)到初始狀態(tài)。
圖2 LCD驅(qū)動電路的連接
LZ9FC22和0MAP5910的引腳連接如表所示。
表 LZ9FC22和OMAP5910的引腳連接
LQ035Q7D面板顯示需要15V的高壓,而LQ035Q7D的邏輯電平需要3.3V電源。圖3實現(xiàn)從3.3V轉(zhuǎn)換到15V和3.3V的電源原理。其中3.3V到3.3V使用TI公司的TPS79333,是為了保證輸出到LCD的3.3V穩(wěn)定可靠,如果TPS79333的輸入3.3V足夠穩(wěn)定,滿足LQ035Q7D的要求,也可以直接將該電源連接到LCD。
LQ035Q7D的背光電路如圖4所示。使用TI公司的TPS61042驅(qū)動4個LED燈管,同時使用PWM信號控制電壓的輸出,以調(diào)節(jié)4個LED燈管的亮度。PWM信號的控制頻率在100~50kHz之間,頻率過低,會產(chǎn)生閃爍。如果不使用PWM信號,可以直接連接一個GPIO引腳,設(shè)置高低電平控制LED燈的開關(guān)。
圖3 LCD的電源電路設(shè)計
圖4 LCD的背光電路設(shè)計
OMAP59 10對LCD驅(qū)動的軟件設(shè)計包括觸摸屏的驅(qū)動、LCD的驅(qū)動、背光的驅(qū)動以及LCD亮度的驅(qū)動等4個部分。其中,LCD亮度的驅(qū)動較為簡單,設(shè)置OMAP59l0內(nèi)部的LCD Brt寄存器就可以控制LCD的亮度,該寄存器為32位數(shù)據(jù)格式,設(shè)置OxOFFFF FFFF為最大亮度,OxOOOO OOOO為最小亮度。此外,還可以在OMAP5910內(nèi)部的StLED-Gm和StLED-Red寄存器調(diào)整輸出的黃色和紅色像素的寬度,從而改變LCD的亮度和顏色。
LCD背光的控制由OMAP5910的PWM信號完成,設(shè)置OMAP5910內(nèi)部的PWT FRO寄存器就可以控制輸出脈沖的頻率,置OMAP5910內(nèi)部的PWT-VCR寄存器就可以控制輸出脈沖的高電平寬度,從而實現(xiàn)對背光的控制。
LCD觸摸屏的控制由OMAP5910的Touc廴Screen寄存器完成。該寄存器主要設(shè)置觸摸屏和OMAP5910的SPI接口協(xié)議。包括觸摸中斷的響應(yīng)、SPI雙向數(shù)據(jù)的傳輸以及SPI時鐘等信息。此外,也可以設(shè)置SPI的CS片選信號打開或關(guān)閉觸摸屏,這種功能在觸摸屏和鍵盤同時存在的系統(tǒng)非常有用。當(dāng)OMAP5910檢測到鍵盤中斷時,可以屏蔽觸摸屏的中斷,從而可以避免多種輸人信息的沖突。
在Linux下驅(qū)動LCD的設(shè)計主要包括幀緩沖設(shè)各設(shè)計、主要結(jié)構(gòu)體定義、內(nèi)核配置和編譯等幾個部分。
幀緩沖設(shè)備為圖像硬件設(shè)備提供了一種抽象化處理。它代表了一些視頻硬件設(shè)各,允許應(yīng)用軟件通過定義明確的界面來訪問圖像硬件設(shè)各。這樣軟件無需了解任何涉及硬件底層驅(qū)動的東西(如硬件寄存器)。它允許上層應(yīng)用程序在圖形模式下直接對顯示緩沖區(qū)進(jìn)行讀寫和I/O控制等操作。通過專門的設(shè)備節(jié)點可對該設(shè)備進(jìn)行訪問,如/dev/fb*。
在LCD控制器操作中,幀緩沖器用于存放全部屏幕的所有編碼像素數(shù)據(jù)。在它的最低位地址處是32或512字節(jié)的緩沖器,用來存放調(diào)色板數(shù)據(jù)表。32位緩沖器用于4、12或16位像素編碼的16項調(diào)色板;512字節(jié)緩沖器用于裝入8位像素編碼的256項調(diào)色板。在12或16位像素編碼時,不使用調(diào)色板,此時的幀緩沖器的起始32字節(jié)必須填入全零。