FSMC-灵活的静态存储控制器

2020-03-23来源: eefocus关键字:FSMC  静态存储控制器  SMT32

最近在学习SMT32的FSMC模块,现将我自己对FSMC的理解讲解一下,并对学习过程中遇到的疑点和难点进行分享。


0.前言

学习FSMC,我推荐《STM32F4xx中文参考手册》、《STM32F4开发指南-库函数版本_V1.1.pdf》和一些SRAM的技术文档,比如《IS62WV51216.pdf》。如果有STM32开发板那就更好了,如果没有开发板,只是想了解FSMC的工作原理及过程,可以参考STM32F407的程序代码,这些资料可以去正点原子官方网站免费下载:http://www.openedv.com/thread-13912-1-1.html。


本文主要是按照《STM32F4xx中文参考手册》FSMC部分讲解。对我在学习过程中的疑点难点进行补充。


1.FSMC概述

FSMC英文全称为Flexible Static Memory Controller,翻译成中文为:灵活的静态存储控制器。它是STM32的一个外设。


功能:扩展外部SRAM、NOR FLASH、NAND FLASH、ROM、PC卡等。

2.FSMC框图


FSMC 包含四个主要模块:

● AHB 接口(包括 FSMC 配置寄存器)

● NOR Flash/PSRAM 控制器

● NAND Flash/PC 卡控制器

● 外部器件接口

也就是说,STM32的FSMC模块可以用来外接静态随机访问存储器 (SRAM)、 只读存储器 (ROM)、 NOR Flash/OneNAND Flash、 PSRAM( 4 个存储区域)。至于如何连接呢?下图是正点原子的开发板STM32F407ZET6连接SRAM的原理图,

图中红色字体对应STM32芯片上的对应引脚,可以看到STM32芯片和SRAM都有相同的一些引脚,包括18根地址总线、16根数据总线、UB、LB、OE、WE、CE。


3.FSMC工作模式

FSMC分为同步模式和异步模式,其中异步模式又分为模式1、模式A、模式2/B、模式C、模式D、复用模式。不同模式的区别在于NBL0,NBL1,NOE,NWE,NEx几根控制信号线的时序不同,具体请参考《STM32F4xx中文参考手册》。


简单来说,对于SRAM芯片的控制就是配置STM32的寄存器,将复杂的时序封装起来,我们用户不用管,选择好模式后,STM32芯片自动按照模式对应的时序进行访问SRAM。


与此同时,被访问的SRAM也要遵循FSMC的工作方式,这样才能识别出是那种方式,才能够响应STM32控制芯片。至于被控制的SRAM采用何种工作模式以及其自身的命令,可参考具体的SRAM资料手册。


4.总结

此文并非详解,这是我个人学习后的一些想法。关于FSMC的细节部分一定要看《STM32F4xx中文参考手册》,这是最权威的资料,也非常详细。一定耐下心多看几遍,最好对照程序源码,会达到事半功倍的效果。

关键字:FSMC  静态存储控制器  SMT32 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic492335.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32-FSMC-SRAM
下一篇:STM32 FSMC 详解

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm32 灵活静态存储控制器(FSMC)(NORFLASH\PSRAM)
Flexible static memory controller(FSMC)今天在处理TFT彩屏的时候突然发现有人用FSMC控制器来处理,然后就认真的研究了下FSMC;可见他分为4个块,三个类型,我们可以根据自己的需要来选择;这次我就直说FSMC 的Block 1;首先,基地址BASE_ADDR = 6000 0000;至于片选,datasheet上也说了,我们可以通过控制HADDR(27,26)来选择操作;然后还有今天一直困扰我的问题,我要选择A16,我用的是16位数据,他的数据地址为6000 0000 + 2^16*2 = 6002 0000;我一直都在疑惑:明明是A16,为什么是第17位被置1,后来终于在datasheet
发表于 2020-03-02
stm32 灵活静态存储控制器(FSMC)(NORFLASH\PSRAM)
STM32接口中FSMC/FMC难点问题理解
一,FSMC简FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32 的 FSMC 接口支持包括 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存储器。二,FSMC存储块STM32F767的FMC将外部存储器划分为6个固定大小的256M的存储区域,如下图如图:    FSMC分为4块,每块256M字节又被划分为4*64,即四个片选    NOR / PSRAM使用块1,共256M    NAND闪存使用块2,3,共512M    PC卡使用块4,共256M
发表于 2020-02-13
STM32接口中FSMC/FMC难点问题理解
STM32之FSMC驱动LCD屏应用
首先,你得稍微了解一下FSMC的基本原理,就是说它是怎么用的,怎么配置,为什么能这么用。这个东西可以看看STM32F4的参考手册。这里不具体说了。FSMC其实就是把芯片内部的数据总线和地址总线引出来了,其实51单片机也是有这个总线外接的。没有说把SRAM读到内部内存再读到CPU,SRAM就是内存,直接读到CPU的寄存器,通过内部的AHB总线传输的。我使用的是野火开发板的屏,因为想用开发板提供的程序直接移植。(小白就只能干这种事)因为买的最小系统板是100脚封装的,所以在使用上有点小问题了。我在网上查了好多关于怎么在100引脚的板子上用FSMC上驱动LCD,没有找到合适的答案,既然自己运气好点,调出来了,那么就分享一下。即使不能帮到
发表于 2020-02-13
STM32之FSMC驱动LCD屏应用
FSMC如何读写CPLD
STM32通过FSMC读写CPLD的程序,CPLD挂在STM32的地址线和数据线上,将CPLD看做片外RAM的方式来进行读写,在我做的板子上CPLD挂在第四个区,因此基地址是0x6c000000,通过FSMC来进行读写,程序较为简单,具体的地方在函数中都有注释,仅供参考。
发表于 2020-02-12
FSMC如何读写CPLD
STM32开发设计中FSMC可能遇到问题应对方案
本文将就使用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-CS5、数据地址的选择本成员用于设置 FSMC 接口的数据宽度,可被设置为 8Bit 或 16bit
发表于 2020-02-12
STM32开发设计中FSMC可能遇到问题应对方案
浅谈STM32的FSMC的TFT笔记
1、FSMC初初了解:FSMC 包括4个模块:(1)AHB接口(包括FSMC配置寄存器)(2)NOR闪存和PSRAM控制器(驱动LCD的时候LCD就好像一个PSRAM的里面只有2个16位的存储空间,一个是DATA RAM 一个是CMD RAM)(3)NAND闪存和PC卡控制器(4)外部设备接口我们驱动TFT很明显用的是第二个模块:NOR闪存。2、FSMC的外设地址选择FSMC _Bank 用来选择外接存储器的地址,FSMC所控制的外存储器所映射的地址是0x6000 0000 ~ 0x9fff ffff其中属于NOR FLASH 的是0x6000 0000 ~ 0x6fff ffff ,然后这部分的地址空间又被分为四份,每份64MB
发表于 2020-02-11
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved