本文將就使用FSMC可能遇到的問題進行說明。希望能對大家的學習有所幫助。
一、端口配置
1、 由于FSMC寫NOR時序與8080接口的時序十分相識,因此我們采用模擬8080時序,
2、 STM32的引腳圖如圖所示。
3、根據上圖我們可以得出,FSMC的數據端口D[15:0]如下
4、我們使用的是 FSMC 的信號線 NE1 作為控制 8080 的 CSX 片選信號,所以我們把本成配置為 FSMC_Bank1_NORSRAM1 (NE1 片選BANK1)。由上圖得FSMC-NE1 ==PD7 ---------LCD-CS
5、數據地址的選擇
本成員用于設置 FSMC 接口的數據寬度,可被設置為 8Bit 或 16bit。對于16 位寬度的外部存儲器。在 STM32 地址映射到 FSMC 接口的結構中,HADDR信號線是需要轉換到外部存儲器的內部 AHB 地址線,是字節地址。
若存儲器的數據線寬為 8Bit,FSMC 的 26 條地址信號線 FSMC_A[25:0]直接可以引入到與 AHB 相連HADDR[25:0],26 條字節地址信號線最大尋址空間為 64MB。見圖 0-9。
若存儲器的數據線寬 16Bit,則存儲器的地址信號線是半字地址(16Bit) 。為了使 HADDR 的字節地址信號線與存儲器匹配,FSMC 的 25 條地址信號線FSMC_A[24:0]與 HADDR[25:1]相連,由于變成了半字地址(16Bit),僅需要 25條半字字地址信號線就達到最大尋址空間 64MB。正因地址線的不對稱相連,16bit 數據線寬下,實際的訪問地址為右移一位之后的地址。
如下,我的地址選擇FSMC_A16, 只需在命令地址上左移(16+1)位。
6、FSMC寄存器的配置
7、如果我們需要改動端口,只需注意以下幾個要點即可
(1)我們需要改動BANK1_SRAM[X],,如我改成BANK1_EN4,需改動
因為EN4的地址是0X6C000000,
(2)如需改動命令地址,FSMC_A[25:0],如我選擇A16
只需將命令地址改為0x6c000000+(16+1)
-
存儲器
+關注
關注
38文章
7523瀏覽量
164135 -
STM32
+關注
關注
2270文章
10921瀏覽量
356933
原文標題:STM32之FSMC的液晶使用
文章出處:【微信號:mcugeek,微信公眾號:MCU開發加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論