stm32专题二十:FSMC

       STM32F1 系列芯片使用 FSMC 外设来管理扩展的存储器,FSMC 是 Flexible Static Memory Controller 的缩写,译为灵活的静态存储控制器。它可以用于驱动包括 SRAM、NOR FLASH 以及 NAND FLSAH 类型的存储器不能驱动如 SDRAM这种动态的存储器而在 STM32F429 系列的控制器中,它具有 FMC 外设,支持控制 SDRAM存储器。

中文参考手册对FSMC的描述:

接下来是FSMC的结构框图:

       在框图的右侧是 FSMC 外设相关的控制引脚,由于控制不同类型存储器的时候会有一些不同的引脚,看起来有非常多,其中地址线 FSMC_A和数据线 FSMC_D是所有控制器都共用的。

       AHB时钟(HCLK)是FSMC的参考时钟。       

       其中比较特殊的 FSMC_NE 是用于控制 SRAM 芯片的片选控制信号线,STM32 具有FSMC_NE1/2/3/4 号引脚,不同的引脚对应 STM32 内部不同的地址区域。例如,当 STM32访问 0x68000000-0x6BFFFFFF 地址空间时,FSMC_NE3 引脚会自动设置为低电平,由于它连接到 SRAM的 CE#引脚,所以 SRAM的片选被使能,而访问 0x60000000-0x63FFFFFF地址时,FSMC_NE1 会输出低电平。当使用不同的 FSMC_NE 引脚连接外部存储器时,STM32 访问 SRAM 的地址不一样,从而达到控制多块 SRAM 芯片的目的。

控制寄存器:

控制 SRAM 的有FSMC_BCR1/2/3/4控制寄存器、FSMC_BTR1/2/3/4片选时序寄存器以及FSMC_BWTR1/2/3/4写时序寄存器。每种寄存器都有4个,分别对应 4个不同的存储区域,各种寄存器介绍如下:

 

地址映射:

这个是中文数据手册中给出的FSMC存储器地址映射:

然后在stm32内部,这1GB的空间又被具体细分:

而对于NOR / SRAM而言,存储块1用于访问最多4个NOR闪存或PSRAM存储设备。这个存储区被划分为4个
NOR/PSRAM区并有4个专用的片选。具体选择那一个小存储块,由以下决定:

图中左侧的是 Cortex-M3 内核的存储空间分配,右侧是 STM32 FSMC 外设的地址映射。可以看到 FSMC的NOR/PSRAM/SRAM/NAND FLASH以及 PC卡的地址都在 External RAM地址空间内。正是因为存在这样的地址映射,使得访问 FSMC 控制的存储器时,就跟访问STM32的片上外设寄存器一样。

使用FSMC读写内存数据的过程:

stm32种FSMC的传输时序(模式A):

读时序在FSMC_BTR寄存器中进行配置:

那么SRAM的控制模式还有一个模式1,有什么区别?中文参考手册中是这样描述的,模式A与模式1的区别是NOE的变化和相互独立的读写时序。也就是说,模式A允许我们对读 / 写操作的地址建立时间 数据读取时间等设置不同的数值。

对于模式A,我们用到的寄存器配置其实不多,stm32有规定,对于不需要使用的寄存器,应该配置成如下的值:

写操作时序:

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值