10.1 概述
之前在51為核心的系統(tǒng)里面,常用的顯示器件有LED,數(shù)碼管,LCD1602和LCD12864,這些器件都有一個共同的特點,那就是只有一個顏色,沒有辦法顯示彩色圖片,為了顯示彩色圖片,我們引入了TFT顯示模組。TFT-LCD即薄膜晶體管液晶顯示器。其英文全稱為:ThinFilmTransistor-Liquid Crystal Display。TFT-LCD與無源TN-LCD、STN-LCD的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設(shè)置有一個薄膜晶體管(TFT),可有效地克服非選通時的串擾,使顯示液晶屏的靜態(tài)特性與掃描線數(shù)無關(guān),因此大大提高了圖像質(zhì)量。TFT-LCD也被叫做真彩液晶顯示器。
目前常用的TFT顯示模組按照接口類型可以分為MCU屏幕與RGB屏幕,其中MCU在STM32F1系列中比較常用,原因是MCU屏幕內(nèi)部集成了顯示控制器,只需要按照手冊指定的協(xié)議將輸入發(fā)送過去即可,但是MCU屏幕受限于屏幕尺寸,一般不會超過4.3英寸,RGB屏幕內(nèi)部沒有控制器,需要單片機或者CPU自帶控制器,但是RGB屏幕尺寸較大,且刷新速度快,通用性強,在生活中使用的更廣泛,由于STM32F1單片機中沒有RGB控制器(LTDC模塊),所以采用核心為5510的TFT屏幕來進行TFT顯示實驗。
注 :我們在網(wǎng)上看到的大尺寸MCU屏幕一般都是以屏幕+PCB的形式,這是因為板子上攜帶了8080并口轉(zhuǎn)RGB芯片,所以這種情況下,也可以使用MCU屏幕的驅(qū)動方式來進行驅(qū)動。
10.2 TFTLCD模塊原理圖
10.2.1 原理圖
CS:片選,低電平有效
RS:數(shù)據(jù)命令選擇,低電平代表命令,高電平代表數(shù)據(jù)
WR:寫控制,高電平有效
RD:讀控制,高電平有效
DB0~DB15:16位并行數(shù)據(jù)口
VCC:電源正極
GND:電源負極
LEDK:背光LED負極
LEDA:背光LED正極
Y-:觸摸屏Y軸數(shù)據(jù)
X-:觸摸屏X軸數(shù)據(jù)
Y+:觸摸屏Y軸數(shù)據(jù)
X+:觸摸屏X軸數(shù)據(jù)
10.3 FSMC
10.3.1 FSMC簡介
FSMC,即靈活的靜態(tài)存儲控制器,能夠與同步或異步存儲器和16位PC存儲器卡連接,STM32F1的FSMC接口支持包括SRAM、NANDFLASH、NOR FLASH和PSRAM等存儲器。一般大容量,且引腳數(shù)目在100腳及以上的 STM32F103芯片都帶有FSMC接口,F(xiàn)SMC的框圖如圖所示。
從上圖可知,STM32的FSMC將設(shè)備分為3種:NOR/PSRAM設(shè)備,NAND設(shè)備和PC設(shè)備,共用地址數(shù)據(jù)總線等信號,通過CS端口來區(qū)分不同的設(shè)備,比如我們這個實驗中LCD的片選就是接在FSMC_NE4端口上,其實本質(zhì)上就是把TFTLCD作為SRAM來控制。
外部SRAM設(shè)備的連接一般有地址線(A0~A18),數(shù)據(jù)線(D0~D15),寫信號(WR),讀信號(RD)和片選,TFTLCD顯然除了不具備地址線,其他的信號都是具備的,所以我們可以采用SRAM的方式來進行TFT的控制,這種控制方式的好處就是對比傳統(tǒng)的GPIO翻轉(zhuǎn)可以更快的將數(shù)據(jù)送入TFT。
STM32F1的FSMC支持8/16/32位數(shù)據(jù)寬度,我們的TFT模塊采用的是16位數(shù)據(jù)寬度,所以只需要將FSMC配置為外置16位寬度即可。FSMC的外部存儲器劃分為了固定的4個256 M的存儲塊,如下圖所示。
我們在驅(qū)動TFTLCD的時候,用到的存儲塊是塊1,STM32將FSMC的存儲塊1分為4個區(qū),每個區(qū)管理64M的空間,每個區(qū)都有獨立的寄存器對連接的存儲器進行配置,BANK1的256M空間由28根地址線尋址,這28根地址線如下表所示,其中低26個位來自外部存儲器的地址,我們可以將TFTLCD的片選接在低26位上,通過發(fā)送地址來選中片選,只有高2位才是內(nèi)部可以控制的。
BANK1區(qū)域 | 片選 | 地址范圍 | 地址線 |
---|---|---|---|
[27:26] | [25:0] | ||
區(qū)域1 | NE1 | 0x60000000 ~ 0x63FFFFFF | 00 |
區(qū)域2 | NE2 | 0x64000000 ~ 0x67FFFFFF | 01 |
區(qū)域3 | NE3 | 0x68000000 ~ 0x6BFFFFFF | 10 |
區(qū)域4 | NE4 | 0x6C000000 ~ 0x6FFFFFFF | 11 |
注:
當Bank1接的是16位寬度存儲器的時候:地址線的[25:1]對應(yīng)FSMC_A[24:0]
當Bank1接的是8位寬度存儲器的時候:地址線的[25:0]對應(yīng)FSMC_A[25:0]
對于NOR FLASH控制器,主要通過3個寄存器來設(shè)置FSMC的時序參數(shù),NORFLASH控制器支持同步和異步突發(fā)兩種訪問方式。
選用同步突發(fā)訪問方式時,FSMC將系統(tǒng)時鐘分頻后,發(fā)送給外部存儲器作為同步時鐘信號 FSMC_CLK。此時需要的設(shè)置的時間參數(shù)有2個,即系統(tǒng)時鐘HCLK與FSMC_CLK的分頻系數(shù)(可以2~16分頻),同步突發(fā)訪問中獲取第一個數(shù)據(jù)所需要的等待延遲。
選用異步突發(fā)訪問方式時,則需要設(shè)置3個時間參數(shù):地址建立時間、數(shù)據(jù)建立時間和地址保持時間。FSMC綜合了SRAM/ROM、PSRAM和NOR Flash產(chǎn)品的信號特點,定義了4種不同的異步時序模型。選用不同的時序模型時,需要設(shè)置不同的時序參數(shù)。
在實際擴展時,根據(jù)選用存儲器的特征確定時序模型,從而確定各時間參數(shù)與存儲器讀/寫周期參數(shù)指標之間的計算關(guān)系,利用該計算關(guān)系和存儲芯片數(shù)據(jù)手冊中給定的參數(shù)指標,可計算出FSMC所需要的各時間參數(shù),從而對時間參數(shù)寄存器進行合理的配置。
我們現(xiàn)在使用異步模式A方式來控制LCD,模式A的讀操作時序如下圖所示。
模式A支持獨立的讀寫時序控制,這個對驅(qū)動TFTLCD來說非常有用,因為TFTLCD在讀的時候,一般比較慢,而在寫的時候可以比較快,如果讀寫用一樣的時序,那么只能以讀的時序為基準,從而導致寫的速度變慢,或者在讀數(shù)據(jù)的時候,重新配置FSMC的延時,在讀操作完成的時候,再配置回寫的時序,這樣雖然也不會降低寫的速度,但是頻繁配置,比較麻煩。而如果有獨立的讀寫時序控制,那么我們只要初始化的時候配置好,之后就不用再配置,既可以滿足速度要求,又不需要頻繁改配置。
模式A的寫操作如下圖所示。
10.3.2 相關(guān)寄存器
(1)SRAM/NOR 閃存片選控制寄存器:FSMC_BCRx(x=1~4)
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
- | CBURSTRW | - | |||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
- | EXTMOD | WAITEN | WREN | WAITCFG | WRAPMOD | WAITPOL | BURSTEN | - | FACCEN | MWID | MTYP | MUXEN | MBKEN |
-
led
+關(guān)注
關(guān)注
242文章
23347瀏覽量
662648 -
單片機
+關(guān)注
關(guān)注
6042文章
44617瀏覽量
637929 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1883瀏覽量
91361
發(fā)布評論請先 登錄
相關(guān)推薦
評論