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