




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
STM32FSMC操作SRAM的步驟簡析本次操作的SRAM的型號是IS62WV51216,是高速,8M位靜態(tài)SRAM。它采用ISSI(IntergratedSiliconSolution,Inc)公司的高性能CMOS技術,按照512K個字(16)位進行組織存儲單元。其具有高性能、低功耗特點。為方便用戶擴展SRAM的存儲空間,為用戶有提供了兩個片選引腳;此外,含有兩個字節(jié)控制信號UB和LB,可方便用戶按字節(jié)訪問SRAM或按字訪問SRAM。IS62WV51216具有45ns/55ns訪問速度,因為是全靜態(tài)操作,因此無需外部時鐘和刷新要求。IS62WV51216功能框圖IS62WV51216有地址譯碼器、數(shù)據(jù)IO、控制邏輯和存儲陣列四部分構成。地址譯碼器將19根地址線上的輸入進行譯碼,將譯碼值與內部存儲陣列的單元地址進行建立映射。數(shù)據(jù)IO是SRAM是主控制器數(shù)據(jù)交互的通道,訪問數(shù)據(jù)時,即可字節(jié)進行訪問也可按字訪問,按字節(jié)訪問功能增強了其與8位機的兼容性??刂七壿嫴糠职ㄗx和寫的選通信號,以及字節(jié)訪問和片選引腳。在硬件連接上,SRAM與STM32F4通過FSMC接口進行互連。SRAM的片選信號CE與FSMC的NE3連接在一起。由此可知,SRAM被映射到Bank1的第3個存儲區(qū)當中,顯然,其首地址為0x68000000。由于SRAM的數(shù)據(jù)口有16根數(shù)據(jù)線,因此為加快訪問速度,提高數(shù)據(jù)吞吐量,這里仍將數(shù)據(jù)寬度設置為16位寬。此時,F(xiàn)SMC接口的一個地址,映射到AHB地址時對應2個地址空間,即u16數(shù)據(jù)類型所占寬度。但是,當用戶按字節(jié)AHB地址空間時,如讀取的是兩個相鄰字節(jié)地址空間(地址按2個字節(jié)對齊),則顯然此時映射到FSMC接口時,地址是一個值,此時用戶操作AHB地址空間中低地址的字節(jié),即相當于操作了FSMC對應地址的低字節(jié),而當用戶操作AHB地址窠中高地址字節(jié)時,則相當于操作了FSMC同一地址空間中的高字節(jié),即FSMC地址空間可以不變,但通過SRAM的UB和LB,分別訪問了同一地址的不同字節(jié)。同理,由于UB和LB的存在,可以按字節(jié)操作FSMC接口的外部設備。SRAM的初始化函數(shù)如下voidSRAM_Init(){//1.開時鐘PD/PE/PF/PGRCC->AHB1ENR|=0XF<<
3;//其他所有引腳復用為FSMC/*LCD_CS:PG12RS:PF12=>FSMC_A[6]WR:PD5RD:PD4D0-D1:PD14/PD15D2-D3:PD0/PD1D4-D12:PE7-PE15D13-D15:PD8-PD10*///2.PD(配置為復用)GPIOD->MODER&=~(0XF<<
0|0XF<<
8|0X3F<<
16|0xf<<
28);GPIOD->MODER|=0X0a<<
0|0xa<<
8|0x2a<<
16|0xa<<
28;//PD口復用GPIOD->OTYPER&=~(0X3<<
0|0X3<<
4|0X7<<
8|0X3<<
14);//推挽GPIOD->OSPEEDR|=(0XF<<
0|0XF<<
8|0X3F<<
16|0xf<<
28);//速度100MhzGPIOD->PUPDR&=~(0XF<<
0|0XF<<
8|0X3F<<
16|0xf<<
28);//無上下拉GPIOD->MODER&=0XF03FFFFF;//PD11-PD13GPIOD->MODER|=0X0A800000;GPIOD->OTYPER&=~(0X7<<
11);GPIOD->OSPEEDR|=0X3F<<
22;GPIOD->PUPDR&=~(0X3F<<
22);//PE口配置GPIOE->MODER&=0X00003FFF;GPIOE->MODER|=0Xaaaa8000;//PE復用GPIOE->OTYPER&=0X007F;//PE7-15推挽GPIOE->OSPEEDR|=0XFFFFC000;//PE7-15速度為100MhzGPIOE->PUPDR&=0X00003FFF;//PE7-15無上下拉GPIOE->MODER&=0XFFFFFFF0;GPIOE->MODER|=0X0000000A;//PE0/1復用GPIOE->OTYPER&=0XFFFFFFFC;GPIOE->OSPEEDR|=0X0000000F;GPIOE->PUPDR&=0XFFFFFFF0;//FP12GPIOF->MODER&=~(0X3<<
24);GPIOF->MODER|=2<<
24;GPIOF->OTYPER&=~(1<<
12);//推挽GPIOF->OSPEEDR|=0X3<<
24;//100mHZGPIOF->PUPDR&=~(0X3<<
24);//無上下拉//fsmc_a0~fsmc_a5:PF0~PF5//FSMC_A7~FSMC_A9:PF13~PF15GPIOF->MODER&=0X03FFF000;GPIOF->MODER|=0XA8000AAA;GPIOF->OTYPER&=~(0X3F<<
0|7<<
13);//推挽GPIOF->OSPEEDR|=0XFC000FFF;//100mHZGPIOF->PUPDR&=0X03FFF000;//無上下拉//FG10GPIOG->MODER&=~(0X3<<
20);GPIOG->MODER|=2<<
20;GPIOG->OTYPER&=~(1<<
10);//推挽GPIOG->OSPEEDR|=0X3<<
20;//100mHZGPIOG->PUPDR&=~(0X3<<
20);//無上下拉//FSMC_A10~FSMC_A15:PG0~PG5GPIOG->MODER&=0XFFFFF000;GPIOG->MODER|=0X00000AAA;GPIOG->OTYPER&=~(0X3F<<
0);//推挽GPIOG->OSPEEDR|=0X00000fff;//100mHZGPIOG->PUPDR&=0XFFFFF000;//無上下拉//選擇復用的功能:復用為FSMC//復用功能選擇//PD:PD0/1/4/5/8-15GPIOD->AFR[0]&=0XFF00FF00;GPIOD->AFR[0]|=0x00cc00cc;//PD0/1/4/5復用為FSMCGPIOD->AFR[1]=0;GPIOD->AFR[1]|=0XCCCCCCCC;//PD8-15:復用為FSMC//PE:GPIOE->AFR[0]&=0X0FFFFF00;GPIOE->AFR[0]|=0XC00000CC;//PE7復用為FSMCGPIOE->AFR[1]&=0x00000000;GPIOE->AFR[1]|=0XCCCCCCCC;//PE8-15復用,可以直接往AFR[1]中賦值//PF:0-512-15GPIOF->AFR[0]&=0xff000000;GPIOF->AFR[0]|=0X00CCCCCC;//PF0-5復用為FSMCGPIOF->AFR[1]&=0x0000ffff;GPIOF->AFR[1]|=0XCCCC0000;//PF12-15復用為FSMC//PG:0-510GPIOG->AFR[0]&=0xff000000;GPIOG->AFR[0]|=0X00CCCCCC;//PF0-5復用為FSMCGPIOG->AFR[1]&=0xfffFf0ff;GPIOG->AFR[1]|=0X00000C00;//PG10復用為FSMC//配置FSMC//3.開FSMC時鐘RCC->AHB3ENR|=1<<
0;//4.配置FSMC寄存器//BCR3FSMC_Bank1->BTCR[4]&=~(1<<
19);//始終在異步模式下操作FSMC_Bank1->BTCR[4]&=~(1<<
15);//不考慮等待信號FSMC_Bank1->BTCR[4]|=1<<
14;//使能擴展功能,即讀寫時序分開FSMC_Bank1->BTCR[4]&=~(1<<
13);//禁止等待nWait信號FSMC_Bank1->BTCR[4]|=1<<
12;//使能寫操作FSMC_Bank1->BTCR[4]&=~(0x3<<
4);FSMC_Bank1->BTCR[4]|=1<<
4;//16位數(shù)據(jù)寬度FSMC_Bank1->BTCR[4]&=~(0x3<<
2);//存儲器類型為:SRAM//BTR4://BTR4(讀時序)FSMC_Bank1->BTCR[5]&=~(0x3<<
28);//異步模式AFSMC_Bank1->BTCR[5]|=0xf<<
16;//總線周轉階段持續(xù)時間為默認值FSMC_Bank1->BTCR[5]&=0xffff00ff;FSMC_Bank1->BTCR[5]|=5<<
8;//DATAST為5HCLKFSMC_Bank1->BTCR[5]|=0x10<<
0;//ADDSET為10HCLK//BWTR(寫時序)FSMC_Bank1E->BWTR[4]=0;FSMC_Bank1E->BWTR[4]&=~(0x3<<
28);//異步模式AFSMC_Bank1E->BWTR[4]|=0xf<<
16;//總線周轉階段持續(xù)時間為默認值FSMC_Bank1E->BWTR[4]|=8<<
8;//DATAST為3個HCLKFSMC_Bank1E->BWTR[4]|=0<<
0;//ADDSET為3個HCLK//使能存儲塊FSMC_Bank1->BTCR[4]|=1<<
0;}在主函數(shù)中調用SRAM初始化函數(shù),就可以直接操作SRAM,使用SRAM需要用到C語言中__attribute__((at()),絕對定位的應用。u16buf[512]__attribute__((at(SRAM_ADD+0)));//定位到RAM中起始地址為SRAM_ADD處定位到SRAM中,一般用于數(shù)據(jù)量比較大的緩存,如串口的接收緩存,再就是某個位置的特定變量。主函數(shù)#include"usart.h"#include"stdio.h"#include"stm32f4xx.h"#include"stdlib.h"#include"sram.h"http://注意:SRAM的使用空間為:0x68000000~0x680fffff//所以,開辟空間時,要保證開辟的空間在SRAM內u16bu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉庫轉讓合同協(xié)議書范本
- 護士合同或協(xié)議書范本
- 婚慶合同確認協(xié)議書模板
- 租賃合同的安全協(xié)議書
- 農村安裝水表合同協(xié)議書
- 到店轉讓合同協(xié)議書
- 認購協(xié)議書和正式合同
- 農業(yè)合同協(xié)議書范文大全
- 家紡供貨合同協(xié)議書
- 采購母牛合同協(xié)議書范本
- 焊工(初級)實操理論考試1000題及答案
- 校區(qū)無人機航測方案設計
- 統(tǒng)編版五年級語文水滸傳整本書閱讀交流課 公開課一等獎創(chuàng)新教學設計
- 工程造價咨詢項目委托合同
- 小學生烘焙知識
- 《法律職業(yè)倫理》課件-第二講 法官職業(yè)倫理
- 餐飲服務食品安全操作規(guī)范培訓課件
- (一統(tǒng))昆明市2025屆高三“三診一?!泵自\斷測試 化學試卷(含官方答案)
- 社區(qū)中心及衛(wèi)生院65歲及以上老年人健康體檢分析報告模板
- 個性化旅游定制服務設計與運營策略制定
- 機械制圖-形成性任務4-國開(ZJ)-參考資料
評論
0/150
提交評論