




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、STM32 FSMC 學習筆記FSMC 全稱 “靜態存儲器控制器 ”。使用 FSMC 控制器后,可以把 FSMC 提供的 FSMC_A25:0 作為地址線,而把 FSMC 提供的FSMC_D15:0 作為數據總線。(1) 當存儲數據設為 8 位時, (FSMC_NANDInitStructure.FSMC_MemoryDataWidthSMC_MemoryDataWidth_8b)地址各位對應 FSMC_A25:0,數據位對應 FSMC_D7:0(2) 當存儲數據設為 16 位時, (FSMC_NANDInitStructure.FSMC_MemoryDataWidthFSMC_MemoryD
2、ataWidth_16b)地址各位對應 FSMC_A24:0,數據位對應 FSMC_D15:0FSMC 包括 4 個模塊:(1)AHB 接口(包括 FSMC 配置寄存器)(2)NOR 閃存和 PSRAM 控制器(驅動 LCD 的時候 LCD 就好像一個 PSRAM 的里面只有 2 個 1 6 位的存儲空間,一個是 DATA RAM 一個是 CMD RAM )(3)NAND 閃存和 PC 卡控制器(4) 外部設備接口注:FSMC可以請求AHB進行數據寬度的操作。如果 AHB操作的數據寬度大于外部設備(NOR或NAND或LCD )的寬度,此時 FSMC將AHB操作分割成幾個連續的較小的數據寬度,以
3、適應外部設備的數據寬度。AfWrfrFStunksmem:>rv tvk6000 OCHWibBank 1NCtd . PSHAMFFFFFFFh70£>0©00hd M M IMF,TirrFFFFFti加CK) OOOChDnnt:3bFFF FFFFr.tMrm4PC CjirdAv M MegfFF FFrrhFSMC對外部設備的地址映像從0x60000000 開始,到 0X9FFF FFFF 結束,共分4個地址塊,每個地址塊 256M字節??梢钥磳?,每個地址塊又分為4個分地址塊,大小64M。對 NOR的地址映像來說,我們可以通過選擇HADDR27:26
4、來確定當前使用的是哪個64M的分地址塊,如下頁表格。而這四個分存儲塊的片選,則使用NE4:1來選擇。數據線/地址線/控制線是共享的。NE1 ->Ba nk1NE2->Ba nk2NE3->Ba nk3NE4->Ba nk4若NE1連接,貝yHADDR27:26選擇的存儲塊00存儲塊 1 NOR/PSRAM 101存儲塊 1 NOR/PSRAM 210存儲塊 1 NOR/PSRAM 311存儲塊 1 NOR/PSRAM 4每小塊 NOR/PSRAM 64M第一塊:60000000h-63ffffffh (DATA 長度為8位情況下,由地址線FSMC_A25:0 決定;DA
5、TA 長度為16位情況下,由地址線 FSMC_A24:0 決定)第二塊 :64000000h-67ffffffh第二塊 :68000000h-6bffffffh第三塊 :6c000000h-6fffffffh注:這里的 HADDR 是需要轉換到外部設備的內部 AHB 地址線, 每個地址對應一個字節單元。因此,若外部設備的地址寬度是 8 位的,則 HADDR25:0 與 STM32 的 CPU 引腳 FSMC_A25:0對應,最大可以訪問 64M 字節的空間。若外部設備的地址寬度是16 位的,則是 HADDR25:1 與 STM32 的 CPU 引腳 FSMC_A24:0對應。在應用的時候,可以
6、將 FSMCA 總線連接到存儲器或其他外設的地址總線引腳上。例: STM32F10XXFCMS 控制 LCD 的驅動FSMC 提供了所有的 LCD控制器的信號:FSMC_D16:016bit的數據總線FSMC NEx :分配給 NOR的 256M ,再分為 4 個區,每個區用來分配一個外設,這四個外設的片選分為是NE1-NE4 ,對應的引腳為: PD7 NE1 ,PG9 NE2 , PG1 0-NE3 ,PG12 NE4FSMCNOE :輸出使能,連接 LCD 的 RD 腳。FSMCNWE :寫使能,連接 LCD 的 RW 腳。FSMCAx :用在 LCD 顯示 RAM 和寄存器之間進行選擇的
7、地址線,即該線用于選擇LCD 的 RS 腳,該線可用地址線的任意一根線,范圍:FSMC_A25:0注:RS = 0時,表示讀寫寄存器;RS = 1表示讀寫數據 RAM。舉例 1 :選擇 NOR 的第一個存儲區, 并且使用 FSMC_A16 來控制 LCD 的 RS 引腳, 則我們訪問 LCD 顯示 RAM 的基址為 0x60020000 ,訪問 LCD 寄存器的地址為: 0x60000000 。因為數據長度為 16bit , 所以 FSMC_A24:0對應 HADDR25:1所以顯示 RAM 的基址 =0x60000000+216*2=0x60000000+0x20000=0x60020000
8、舉例 2:選擇 NOR 的第四個存儲區,使用FSMC_A0 控制 LCD 的 RS 腳,則訪問 LCD 顯示 RAM 的基址為 0x6c000002 ,訪問 LCD寄存器的地址為: 0x6c000000 。例:FSMC_D15:0 ,連 16bit 數據線;FSMC_NE1 ,連片選:只有 banki 可用FSMC NOE :輸岀使能FSMC NEW : FSMC 寫使能FSMC Ax :連接 RS,可用范圍 FSMC_A24:0般使用模式B來做LCD的接口控制,不適用外擴模式。并且讀寫操作的時序一樣。此種情況下,我們需要使用三個參數:ADDSET,DATAST,ADDHOLD。這三個參數在位
9、域 FSMC_T/* 使能 FSMC, GPIOD, GPIOE, GP IOF, GPIOG和AFIO 時鐘*/CRx中設置。當HCLK的頻率是72MHZ,使用模式B,則有如下時序:地址建立時間:0x1地址保持時間:0x0數據建立時間:0x2注:這里地址建立 地址保持 數據建立三個時間不知道怎么設出來的。我是根據別人的經驗來設定的。高手知道這個設置不同有什么區別的話,請指教,謝謝:)/*函數名:LCD_CtrlLinesConfig配置LCD控制口線,FSMC管腳設置為復用功能*/staticvoidLCD_CtrlLinesConfig(void )GPIO _lnitT yp eDef
10、GP IO_lnitStructure;RCC_AHB Perip hClockCmd(RCC_AHB Perip h_FSMC, ENABLE);RCC_A PB2Penp hClockCmd(RCC_A PB2Penph_GPI0B | RCC_A PB2Penph_GPI0D | RCC_A PB2Periph_GP lOE |RCC_A PB2 Periph_GP lOF | RCC_A PB2 Perip h_G PIOG |RCC_A PB2Penp h_AFIO, ENABLE);為復用推挽輸出*/* 設置 P D.00(D2), P D.01(D3), P D.O4(NOE),
11、 P D.05(NWE), P D.08(D13), P D.09(D14),P D.10(D15), P D.14(D0), P D.15(D1)GPIO InitStructure.GPIO Pin = GPIO Pin 0 | GPIO Pin 1 | GPIO Pin 4 | GPIO Pi n_5 |GPIO Pin 8 | GPIO Pin 9 | GPIO Pin 10 | GPIO Pin 14GPIO_P in_15;/ | GPIO_P in_7;GP IO_lnitStructure.G PIO_S peed = GP IO_S peed_50MH z;GP IO_lni
12、tStructure.G PIO_Mode = GPI O_Mode_AF_ PP;GP IO_lnit(G PIOD, &GPI O_InitStructure);/* 設置 P E.07(D4), P E.08(D5), P E.09(D6), P E.10(D7), P E.11(D8), P E.12(D9), PE.13(D10),14 |P E.14(D11), P E.15(D12)為復用推挽輸出*/必須使能*/必須使能*/* PE3,PE4 用于 A19, A20, STM32F103ZE-EK(REV 2.0)/* PE5,PE6 用于 A19, A20, STM32
13、F103ZE-EK(REV 2.0)GPIO InitStructure.GPIO Pin = GPIO Pin 7 | GPIO Pin 8 | GPIO Pin 9 | GPIO Pi n_10 |GPIO Pin 11 | GPIO Pin 12 | GPIO Pin 13 | GPIO PinGPIO_P in_15 | GPIO_P in_3 | GPIO_P in_4 | GPIO_P in_50;| GPIO_P in_6;GP IO_lnit(G PlOE, &GPI O_lnitStructure);/* 設置 P F.00(A0 (RS)為復用推挽輸出*/GP IO
14、_lnitStructure.G PIO_ Pin = GPIO_P in_0;GP IO_lnit(G PIOF, &GP IO_lnitStructure);/* 設置 P G.12(NE4 (LCD/CS) 為復用推挽輸出-CE3(LCD /CS) */GP IO_lnitStructure.G PIO_ Pin = GPIO_P in_12;GPIO _lnit(G PIOG, &GP IO_lnitStructure);GP IO_lnitStructure.G PIO_Pin = GPIO_P in_1;GP IO_lnitStructure.G PIO_Mode
15、= GP IO_Mode_Out_ PP;GP IO_lnitStructure.G PIO_S peed = GPI O_S peed_50MH z;GP IO_lnit(G PIOB, &GPI O_InitStructure);GP IO_SetBits(G PIOB, GPIO_P in_1);static void LCD_FSMCConfig( void )FSMC_NORSRAMInitT yp eDef FSMC_NORSRAMInitStructure;FSMC_NORSRAMTiminglnitT yp eDef FSMC_NORSRAMTiminglnitStru
16、cture;/*- FSMC Configuration/*.-*/SRAM Bank 4-*/* FSMC_Bank1_NORSRAM4 configuration */FSMC_NORSRAMTiminglnitStructure.FSMC_AddressSetu pTime =1;FSMC_NORSRAMTiminglnitStructure.FSMC_AddressHoldTime =FSMC_NORSRAMTiminglnitStructure.FSMC_DataSetu pTime =2;FSMC_NORSRAMTiminglnitStructure.FSMC_BusTurnAro
17、undDuration =0;FSMC_NORSRAMTiminglnitStructure.FSMC_CLKDivision =0;FSMC_NORSRAMTiminglnitStructure.FSMC_DataLatency =0;FSMC_NORSRAMTiminglnitStructure.FSMC_AccessMode = FSMC_AccessMode_B;/* Color LCD configurationLCD configured as follow:-Data/Address MUX = Disable-Memory Type = SRAM-Data Width = 16
18、bit-Write Op eration = Enable-Extended Mode = Enable-Asynchronous Wait = Disable */FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM4;FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;FSMC_NORSRAMlnitStructure.FSMC_MemoryT ype = FSMC_MemoryT yp e_SRAM;FSMC_NORSRAMIni
19、tStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;FSMC NORSRAMlnitStructure.FSMC BurstAccessMode = FSMC BurstAccessMode Disable;FSMC_NORSRAMInitStructure.FSMC_WaitSignal Polarity = FSMC_WaitSignal Polarity_Low;FSMC_NORSRAMInitStructure.FSMC_Wra pM ode = FSMC_Wra pMode_Disable;FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;FSMC_NORSRAMInitStructure.FSMC_WriteO peration = FSMC_WriteO peration_Enable;FSMC_NORSRA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社會治理與公共政策互動研究試題及答案
- 項目管理中的人際關系與溝通試題及答案
- 計算機三級軟件測試技能要求解析試題及答案
- 2025年初級銀行從業資格(銀行管理)通關練習題庫
- 計算機測試過程中的數據管理試題及答案
- 機電工程職能定位試題及答案
- 項目團隊合作的成功案例分析試題及答案
- 行業動態對考試知識點的影響試題及答案
- 機電工程2025年基本技能試題及答案
- 2025年成人繼續教育線上學習模式下的學習效果提升與教學平臺功能優化研究報告
- 西南科技大學機械原理期末考試復習題及答案
- 讀后續寫:騎馬迷路 遇困難不放棄 課件 【知識建構+點播拓展】高考英語作文備考
- 2023年宜興市云湖茶禪文旅發展有限公司招聘筆試題庫及答案解析
- 初中地理會考知識點匯總
- Unit2Reading2知識點課件-高中英語牛津譯林版(2020)選擇性必修第一冊
- 交通協管員勞務外包服務方案
- 頂管工程頂進記錄表
- 安全生產、環境保護監督管理制度(最終版)
- 呼吸道病原體抗體檢測及臨床應用課件
- 戰略管理教學ppt課件(完整版)
- 太平歌詞唱詞
評論
0/150
提交評論