您的位置 首页 产品

STM32的FSMC学习手记(一)

FSMC应用简介FSMC全称静态存储器控制器,STM32可以通过FSMC与SRAM、ROM、PSRAM、NorFlash和NandFlash存储器的引脚相连,从而进行数据的交

FSMC运用简介

FSMC全称“静态存储器控制器”,STM32能够经过FSMC与SRAM、ROM、PSRAM、Nor Flash和NandFlash存储器的引脚相连,然后进行数据的交流。

一、FSMC的特色:

1、 FSMC的一大特色是支撑不同位宽的异步读写操作。
2、 FSMC的映射地址空间中,不同的BANK是独立的,可用于扩展不同类型的存储器。当FSMC一起运用多个外部存储器时,FSMC会经过总线悬空延时时刻参数,来避免拜访抵触发生。
3、 支撑代码从FSMC扩展的外部存储器中直接运转。不需要首要调入内部SRAM。

二、FSMC的结构组成:

如图所示,FSMC首要分为四部分:
1、 FSMC一端连接着AHB高速总线,与Cortex-M3内核相连接。
2、 FSMC内部实践上包含Nor Flash和Nand/PC Card两个控制器,支撑两种不同的存储办法。
3、 外部设备接口。
4、 装备寄存器,用于挑选FSMC的功用。

三、FSMC的映射空间

FSMC办理1GB的映射地址空间。能够划分为4个256M的BANK,每个BANK又划分为4个64M的子BANK,如下表所示。

FAMC对每个存储块分配一个仅有的片选信号NE[4:1]。

四、FSMC的初始化

在运用SRAM之前,咱们需要对SRAM运用的FSMC BANK进行参数装备,使之与SRAM芯片的要求相符合。
FSMC所占用的引脚初始化
在STM32技能手册中,针对FSMC引脚的GPIO形式装备,现已进行了阐明,详细FSMC总线装备办法如下。下表指的是整个FSMC接口的引脚初始化装备阐明,应该依据实践初始化相关的引脚。

完结FSMC引脚初始化后,要装备可编程存储器的参数,包含时序,是否支撑非对齐拜访和等候周期办理(只针对突发形式拜访PSRAM和NOR闪存



p.FSMC_AddressSetupTime = 0; //地址树立时刻
p.FSMC_AddressHoldTime = 0; //地址坚持时刻
p.FSMC_DataSetupTime = 2; //数据树立时刻
p.FSMC_BusTurnAroundDuration = 0; //总线恢复时刻
p.FSMC_CLKDivision = 0; // 时钟分频因子
p.FSMC_DataLatency = 0; //数据发生时刻
p.FSMC_AccessMode = FSMC_AccessMode_A; //FSMC NOR控制器时序
存储器类型、RAM数据宽度、AM地址规模、用的FSMC BANK、FSMC作业形式的初始化等。

FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3; //运用了FSMC的BANK1的子板块3
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;//制止地址数据线复用
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM; //存储器类型为SRAM
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; //存储器数据宽度为16位
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; //封闭突发形式拜访
//等候信号优先级,只要在使能突发拜访形式才有用
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
//封闭Wrapped burst access mode,只要在使能突发拜访形式才有用
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
//等候信号设置,只要在使能突发拜访形式才有用
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; //使能这个BANK的写操作
//使能/封闭等候信息设置,只在使能突发拜访形式才有用
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; //封闭Extend Mode
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; //封闭Write Burst Mode
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; //读操作时序参数
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; //写操作时序参数

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/263025.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部