《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > STM32直接驅(qū)動RGB接口的TFT數(shù)字彩屏設(shè)計
STM32直接驅(qū)動RGB接口的TFT數(shù)字彩屏設(shè)計
李 鋼,王 飛 西安工程大學(xué)
摘要: 隨著LCD顯示技術(shù)的迅速發(fā)展,LCD顯示屏得到了廣泛的應(yīng)用。一般來說,對于RGB總線接口的數(shù)字屏都需要有控制器才能正常顯示,但是本文利用STM32處理器設(shè)計出了一種能直接掛載RGB接口數(shù)字屏的方法。實(shí)際應(yīng)用驗(yàn)證了該CPU有足夠的時間來處理用戶程序,一般中低端的CPU很難做到這一點(diǎn)。本方案能成功應(yīng)用在電腦橫機(jī)的人際界面顯示中,主要得益于STM32的強(qiáng)大功能:DMA傳輸以及高級定時器等的應(yīng)用。本方案降低了產(chǎn)品的硬件成本。
Abstract:
Key words :

引言
    隨著工業(yè)技術(shù)的不斷發(fā)展,人機(jī)界面的開發(fā)及應(yīng)用空前火熱,為了具有比較友好的人機(jī)界面,TFT數(shù)字彩屏被廣泛的應(yīng)用,但是TFT彩屏通常都不帶有控制器,所以現(xiàn)在驅(qū)動彩屏的方案大致有2種:
    ①采用ARM9或者更高級別的平臺,芯片上帶有TFT控制器,可以直接掛接TFT數(shù)字屏。
    ②采用低端CPU處理器平臺,外加TFT控制器模塊,再掛接TFT數(shù)字屏。
    對于方案①來說,系統(tǒng)的復(fù)雜度會莫名地增加,再加上該類的平臺中主MCU多為BGA封裝,對于需求很多小量多樣化產(chǎn)品的客戶來說,較難以接受這樣的方案;而 ②方案平白無故添加了一個LCD控制器。這兩種方案無論哪一種都增加了硬件成本,本文提出了一種由STM32的FSMC總線直接掛載RGB接口屏的方案,直接由一片 CPU(STM32F103VC)來完成TFT屏的顯示而且不會占用全部的CPU時間,從而節(jié)約了產(chǎn)品的成本。

1 總體方案與硬件整體架構(gòu)
    現(xiàn)在,TFT屏的價格與傳統(tǒng)的單色液晶模塊的價格幾乎相當(dāng),甚至比一些尺寸差不多的單色屏還要便宜;而從客戶和廠商的角度來看,很多設(shè)備/儀器/小型工業(yè)裝備的制造商也紛紛尋求彩色TFT的設(shè)計方案,以提升產(chǎn)品的競爭力和顯示效果?;谝陨显?,筆者以STM32處
理器的FSMC接口掛載RGB接口數(shù)字屏并結(jié)合DMA傳輸?shù)姆绞皆O(shè)計出了一種驅(qū)動RGB數(shù)字屏的方法。DMA即直接存儲器,存取用來提供在外設(shè)和存儲器之間或者存儲器和存儲器之間的高速數(shù)據(jù)傳輸。無須CPU干預(yù),數(shù)據(jù)可以通過DMA快速地移動,這就節(jié)省了CPU的資源來做其他操作。本文采用STM32F103VCT6外部掛接ISSI的25616 SRAM 512 KB的靜態(tài)RAM用作顯存,再使用DMA的Memory to Memory模式從外部顯存往FSMC的數(shù)據(jù)線不停地送數(shù)據(jù)來刷新彩屏,無需CPU的干預(yù)。其整體硬件方案如圖1所示。

a.jpg



2 軟件部分設(shè)計及實(shí)現(xiàn)
    本方案的所有功能都是在STM32內(nèi)部實(shí)現(xiàn),軟件部分主要是對系統(tǒng)、FSMC、DMA、定時器部分的初始化以及參數(shù)的設(shè)置,同時為了滿足RGB數(shù)字屏對接口時序的嚴(yán)格要求,本方案采用STM32自帶的定時器來產(chǎn)生精確的定時,滿足屏接口對時序的嚴(yán)格要求。由DMA的MEMORY TO MEMORY模式完成從SRAM到屏數(shù)據(jù)接口的數(shù)據(jù)傳輸以完成對屏的刷新。
2.1 系統(tǒng)初始化
    Syslemlnit();
    GPIOInit();
2.2 FSMC模塊介紹以及初始化程序
    FSMC即靈活的靜態(tài)存儲控制器,是內(nèi)置有大容量STM32F10XXX的外部存儲控制器。使用這個控制器,STM32F10XXX微控制器可以與許多存儲器連接,包括SRAM、NOR閃存和NAND閃存等。FSMC模塊如圖2所示。

b.jpg


    本文FSMC同時掛載SRAM和RGB接口屏,并且數(shù)據(jù)接口復(fù)用,因此對程序中數(shù)據(jù)總線的時間配置提出了嚴(yán)格的要求,以防止數(shù)據(jù)總線使用沖突。
    FSMC初始化部分代碼如下:
c.jpg
2.3 DMA模塊介紹及初始化代碼
    本文采用存儲器到存儲器之間的數(shù)據(jù)傳輸模式,由外部顯存SRAM傳輸數(shù)據(jù)到FSMC接口來完成數(shù)據(jù)更新。DMA部分初始化代碼如下所示:
d.jpg
e.jpg
2.4 屏接口時序的實(shí)現(xiàn)
    由于RGB接口數(shù)字屏對時序要求相對來說比較苛刻,所以采用STM32103VCT6的高級定時器來產(chǎn)生精確的時間單位,并以此為最小的時間單位來產(chǎn)生相應(yīng)的接口時序,STM32由定時器來控制對TFT的掃描,以保證足夠的刷新率。掃描時,STM32的CPU僅僅參與對DMA的設(shè)置和顯存的操作,由DMA控制器來直接從顯存中讀取顯示數(shù)據(jù)并送至連接RGB數(shù)字總線上,不停地讀寫。這都是由DMA控制器來完成的,占用CPU的時間是有限的,從而有足夠的時間來實(shí)現(xiàn)用戶程序代碼。

結(jié)語
    經(jīng)實(shí)際證明,本方案是可行的,能保證320×240點(diǎn)陣的TFT的刷新率,且留有足夠CPU時間給用戶程序。但是對于分辨率較高的彩屏,由于STM32主頻的限制,刷屏速度會很慢,達(dá)不到應(yīng)用要求,但是對于一些分辨率適當(dāng)?shù)牟势吝€是能勝任的。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。