OLED與薄膜場(chǎng)效應(yīng)晶體管液晶顯示器(TFT—LCD)相比,具有響應(yīng)快、全彩色、自發(fā)光、視角寬、對(duì)比度高、低電壓、可實(shí)現(xiàn)柔性顯示等優(yōu)點(diǎn),能更好地應(yīng)用于手機(jī)、MP3、小尺寸儀表盤等。OLED顯示器以其卓越的顯示性能成為下一代平板顯示器15’的一個(gè)強(qiáng)有力競(jìng)爭(zhēng)者,目前市場(chǎng)上已出現(xiàn)多種中小尺寸OLED,但配套的驅(qū)動(dòng)接口電路設(shè)計(jì)嘲很少,筆者擬采用STCllL60XE單片機(jī)作為OLED顯示模塊CMEL C0283QGLD—T的主控制器。嘗試在SPI模式下實(shí)現(xiàn)OLED全彩靜態(tài)圖片顯示。
CMEL C0283QGLD-T顯示模塊是240xRGBx320點(diǎn)陣的2.8 in全彩OLED顯示模塊,集成了S6E63D6驅(qū)動(dòng)器”1,圖l為S6E63D6的結(jié)構(gòu)框圖。S6E63D6是一款帶控制器的OLED驅(qū)動(dòng)專用芯片,最大可支持240xRGBx320點(diǎn)陣的圖形顯示。內(nèi)置容量為240x18x320位的圖像存儲(chǔ)器(GRAM),向GRAM中寫入圖像數(shù)據(jù)可實(shí)現(xiàn)65 k、260 k色圖片顯示。其具有四種可編程彩色顯示接口模式:
18一/16?/9/8位并行接口模式、18?/16/6位的RGB接口模式、串行外圍設(shè)備接口(SPI)模式和高速串行接口(MDDI)模式。S6E63D6內(nèi)嵌DC—DC電壓轉(zhuǎn)換器,提供OLED模塊內(nèi)部像素驅(qū)動(dòng)電壓。
圖l S6E63D6結(jié)構(gòu)框圖
硬件電路設(shè)計(jì)
實(shí)現(xiàn)靜態(tài)圖片顯示需預(yù)存圖像數(shù)據(jù)。而單片機(jī)內(nèi)部程序空間有限(60 k),不適合存儲(chǔ)圖像數(shù)據(jù),采用Flash存儲(chǔ)器作為圖像數(shù)據(jù)存儲(chǔ)區(qū)能有效地解決這一問題。單片機(jī)只需讀取Flash存儲(chǔ)器中的圖像數(shù)據(jù),再傳送到顯示模塊即可實(shí)現(xiàn)靜態(tài)圖片顯示。系統(tǒng)硬件結(jié)構(gòu)框圖如圖2所示,整個(gè)系統(tǒng)采用5 V直流供電,兩個(gè)電源模塊提供整個(gè)控制電路所需電壓和OLED顯示所需電壓,微控制器(MCU)模塊實(shí)現(xiàn)與OLED模塊和Flash存儲(chǔ)器的通信,并提供了在線編程接口和硬件復(fù)位接口,使用SPI協(xié)議18I進(jìn)行串行通信。
圖2系統(tǒng)硬件結(jié)構(gòu)框圖
電源模塊
電源模塊1輸出電壓3.3 V,為微控制器和接口電路供電。電源模塊2采用高效率開關(guān)電源,為OLED顯示提供正常工作所需的VDD和VSS。鑒于OLED顯示屏對(duì)供電電壓變化極其敏感,而安森美生產(chǎn)的NCP58 10芯片一1輸出電壓精準(zhǔn)、轉(zhuǎn)換率高、封裝尺寸dx(3.00 mmx3.00 mmx0.55 mm),可提供l%電壓容差的精確反饋電壓且輸出負(fù)載瞬態(tài)響應(yīng)好,作為OLED驅(qū)動(dòng)供電電源尤為合適。
微控制器
宏晶科技的STCll/lOxx系列單片機(jī)HOl相比于傳統(tǒng)的89系列及205l系列單片機(jī),成本更低,性能更強(qiáng),故本設(shè)計(jì)系統(tǒng)選用STCl 1L60XE單片機(jī)作為微控制器。通過寄存器配置將單片機(jī)P3.0/RXD、P3.1/TXD設(shè)置為系統(tǒng)可編程(ISP)下載專用通信口。USB和串口轉(zhuǎn)換完成與用戶系統(tǒng)的USB連接,實(shí)現(xiàn)在用戶系統(tǒng)上調(diào)試和下載單片機(jī)程序。P4.7/RST引腳出廠時(shí)就被配置為復(fù)位引腳,外接復(fù)位電路實(shí)現(xiàn)上電復(fù)位。P3.4一P3.7預(yù)置為時(shí)鐘(SCK)、數(shù)據(jù)輸入端(SI)、數(shù)據(jù)輸出端(SO)、使能信號(hào)(CE),作為單片機(jī)與Flash存儲(chǔ)器的SPI接口,實(shí)現(xiàn)SPI串行通信。P2口部分引腳預(yù)置為時(shí)鐘線(CL)、片選信號(hào)(CSB)、數(shù)據(jù)輸出端(SDO)、數(shù)據(jù)輸入端(SDI),作為單片機(jī)與OLED顯示模塊的SPI接口,實(shí)現(xiàn)SPI串行通信。將P2.7預(yù)置為RE.SETB,用于控制整個(gè)OLED顯示模塊的復(fù)位。
SPI接口設(shè)計(jì)
硬件系統(tǒng)中SPI接口部分為:?jiǎn)纹瑱C(jī)與Flash存儲(chǔ)器的SPI通信接口和單片機(jī)與OLED顯示模塊的SPI通信接口。為了行文方便,約定單片機(jī)與Flash存儲(chǔ)器的SPI通信為SPI模式I,單片機(jī)與OLED顯示模塊的SPI通信為SPI模式2。在SPI模式2下單片機(jī)與OLED顯示模塊的連接采用接插件形式,更改接插件可實(shí)現(xiàn)不同尺寸OLED顯示模塊的硬件接口連接,實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的通用性。SPI模式1為四線制,包括CE,SCK,SI和SO;SPI模式2也為四線制,包括SCL,CSB,SDO,SDI。由于STCl 1L60XE單片機(jī)沒有硬件SPI接口,需設(shè)置單片機(jī)普通I/O口模擬SPI時(shí)序進(jìn)行數(shù)據(jù)通信。SPI模式1中Flash存儲(chǔ)器SST25VF020I“1的器件地址為43H,存儲(chǔ)范圍為000000H~03FFFFH;SPl模式2中OLED顯示模塊SPI模式下寫指令起始地址為70H,寫數(shù)據(jù)起始地址為72H。
軟件設(shè)計(jì)
顯示之前,預(yù)存儲(chǔ)圖像數(shù)據(jù)到Flash存儲(chǔ)器,主程序主要完成從Flash中讀取數(shù)據(jù),然后在SPI方式下通過單片機(jī)I/O口向顯示模塊中的GRAM輸人數(shù)據(jù)實(shí)現(xiàn)靜態(tài)圖片顯示。主程序軟件流程圖如圖3所示。主要功能包括:1)MCU初始化,設(shè)置單片機(jī)時(shí)鐘為外部輸入模式,設(shè)置ISP通信口和定時(shí)器。配置各個(gè)I/O口為數(shù)字口。軟件延時(shí)使能電源模塊2的正負(fù)壓輸出。2)SPI初始化,將SPI相關(guān)的片選信號(hào)、時(shí)鐘信號(hào)和數(shù)據(jù)信號(hào)拉高,不產(chǎn)生通信。3)OLED初始化,先配置所需顯示制式時(shí)鐘模式和接口模式,再執(zhí)行清屏操作(寫入數(shù)據(jù)0x0000),預(yù)定義圖片顯示范圍(行列起始地址),最后開顯示(允許GRAM中數(shù)據(jù)顯示)。4)讀數(shù)據(jù),單片機(jī)以SPI模式l從Flash存儲(chǔ)器中讀取相應(yīng)的位圖數(shù)據(jù)。5)數(shù)據(jù)寫入GRAM,單片機(jī)從Flash存儲(chǔ)器中讀數(shù)據(jù)的同時(shí)以SPI模式2向GRAM中寫人數(shù)據(jù),寫滿后停止SPI通信。OLED模塊會(huì)自動(dòng)顯示。.GRAM中的圖像信息。
圖3OLED顯示軟件流程圖
單片機(jī)模擬SPI模式l的時(shí)序需嚴(yán)格按照?qǐng)D4所示的讀寫時(shí)序,任何時(shí)候讀寫需先將片選CE拉低,在SCK的上升沿SI上數(shù)據(jù)寫入,SCK下降沿SO上數(shù)據(jù)輸出。寫數(shù)據(jù)時(shí)SO必須保持高阻狀態(tài).讀數(shù)據(jù)時(shí)SI狀態(tài)可任意。Flash存儲(chǔ)器中數(shù)據(jù)存儲(chǔ)格式為8位。
從Flash中讀取數(shù)據(jù)后,向GRAM中寫入數(shù)據(jù)即可實(shí)現(xiàn)OLED顯示,而向GRAM中寫指令、寫數(shù)據(jù)和讀狀態(tài)都是在SPI模式2下進(jìn)行的,所以顯示子程序關(guān)鍵是模擬實(shí)現(xiàn)SPI的讀、寫時(shí)序。SPI模式2下寫指令時(shí)序如圖5所示,初始化時(shí)將CSB,SCL和SDI都拉高,先寫入器件地址,再寫入相應(yīng)指令,指令格式為16位雙字節(jié)形式。寫操作時(shí)需先將片選CSB拉低,在SCL上跳變時(shí)SDI上的數(shù)據(jù)寫入,在SCL上升沿時(shí)SDI的數(shù)據(jù)必須保持穩(wěn)定,結(jié)束時(shí)將SCL,SDI拉高,同時(shí)CSB置1。SPI模式2的寫數(shù)據(jù)時(shí)序如圖6所示,數(shù)據(jù)格式為16位,每寫一次數(shù)據(jù)都必須先發(fā)送一次8位器件地址,與寫指令一樣,SCL上升沿時(shí)SDI的數(shù)據(jù)必須保持穩(wěn)定才能準(zhǔn)確寫入。
實(shí)驗(yàn)結(jié)果
CMEL C0283QGLD—T顯示模塊內(nèi)部GRAM只支持16位格式的圖像數(shù)據(jù)信息,需通過圖片轉(zhuǎn)換軟件將圖片信息轉(zhuǎn)化為8位寬度的位圖信息,存儲(chǔ)到Flash存儲(chǔ)器中。軟件編程時(shí)需預(yù)先將數(shù)據(jù)格式從8位轉(zhuǎn)化為16位,然后在SPI模式2T逐位傳輸?shù)紾RAM中。圖7為SPI模式下的240x320的65 k色靜態(tài)圖片顯示效果。圖8為RGB(紅綠藍(lán))三色圖片顯示效果,F(xiàn)lash存儲(chǔ)器中還可存儲(chǔ)其他測(cè)試圖片用以顯示。
結(jié)語
本設(shè)計(jì)實(shí)現(xiàn)了一種基于OLED顯示模塊CMELC0283QGLD—T的全彩色靜態(tài)圖片顯示系統(tǒng)。該系統(tǒng)設(shè)計(jì)簡(jiǎn)單可靠,是一套通用的中小尺寸OLED驅(qū)動(dòng)控制系統(tǒng).同時(shí)單片機(jī)預(yù)留了多個(gè)I/O口可作后續(xù)擴(kuò)展功能使用。通過與Flash存儲(chǔ)器的SPI通信解決了單片機(jī)內(nèi)部存儲(chǔ)空間有限、無法存放過多圖片問題。可預(yù)置多幅測(cè)試圖片到Flash存儲(chǔ)器進(jìn)行循環(huán)顯示,供用戶進(jìn)行相應(yīng)的OLED顯示性能測(cè)試。