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

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

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

a.jpg



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

b.jpg


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

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

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