基于STM32 的FSMC接口驅(qū)動(dòng)TFT彩屏的設(shè)計(jì)方案
4.1 FSMC簡介
FSMC是靈活靜態(tài)存儲(chǔ)控制器。STM32芯片可利用FSMC 控制NOR FLASH、PSRAM 和NAND FLASH 存儲(chǔ)芯片[3].這里,只使用FSMC 的NOR/PSRAM 模式控制LCD,所以只需分析NOR FLASH 控制信號(hào)線部分。
STM32 尋址空間的地址映射中的0×60000000 ~0x6FFFFFFF 是分配給PSRAM、NOR FLASH 這類可直接尋址的器件。當(dāng)外部接了NOR FLASH,并且FSMC外設(shè)被設(shè)置為正常工作,當(dāng)向0×60000000 地址寫入數(shù)據(jù)0xFFFF,FSMC會(huì)自動(dòng)把數(shù)據(jù)轉(zhuǎn)化成各信號(hào)線上相應(yīng)的電平信號(hào)寫入數(shù)據(jù)。
4.2 用FSMC模擬8080時(shí)序
FSMC寫NOR 時(shí)序跟8080接口的時(shí)序是十分相似的,對(duì)它們的信號(hào)線對(duì)比如表1所示。
為了模擬出8080 時(shí)序,把FSMC 地址線中的A0 連接8080的DCX,當(dāng)A0為低電平時(shí),數(shù)據(jù)線D[15:0]的信號(hào)會(huì)被理解為ILI9341命令,若A0為高電平時(shí),傳輸?shù)男盘?hào)則會(huì)被理解為數(shù)據(jù)。所以傳送數(shù)據(jù)時(shí)只需向地址為0x6xxxxxx1,0x6xxxxxx3,0x6xxxxxx5 這些奇數(shù)地址寫入數(shù)據(jù),此時(shí)地址線A0(D/CX)會(huì)為高電平;需要發(fā)送命令時(shí)向0x6xxxxxx0,0x6xxxxxx2,0x6xxxxxx4 這些偶數(shù)地址寫入數(shù)據(jù)時(shí),地址線A0(D/CX)會(huì)為低電平,這個(gè)數(shù)據(jù)會(huì)被理解為命令。在代碼中利用指針變量,向不同的地址單元寫入數(shù)據(jù),就能夠由FSMC 模擬出8080 接口向ILI9341寫入控制命令或GRAM的數(shù)據(jù)了。
4.3 部分代碼設(shè)計(jì)
(1)初始化液晶屏
初始化液晶屏是對(duì)液晶控制器ILI9341 用到的I/O口、FSMC 接口進(jìn)行初始化,并且向該控制器寫入了命令參數(shù),配置好LCD液晶屏的基本功能。除了復(fù)位、背光用的PD11和PD0設(shè)置為通用推挽輸出外,其他的與FSMC 接口相關(guān)的控制信號(hào)、地址信號(hào)、數(shù)據(jù)信號(hào)的端口全部設(shè)置為復(fù)用推挽輸出。代碼如下:
(2)初始化FSMC模式
LCD_Init()函數(shù)調(diào)用LCD_FSMC_Config()設(shè)置FSMC的模式使它模擬出8080接口,函數(shù)主要作用是設(shè)置各個(gè)信號(hào)的產(chǎn)生時(shí)間,使FSMC接口的時(shí)序與8080接口匹配。
模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)
評(píng)論