最近在学习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中文参考手册》,这是最权威的资料,也非常详细。一定耐下心多看几遍,最好对照程序源码,会达到事半功倍的效果。
上一篇:STM32-FSMC-SRAM
下一篇:STM32 FSMC 详解
设计资源 培训 开发板 精华推荐
- 使用 Analog Devices 的 LT1585ACT 的参考设计
- esp32_N20电机驱动板
- LTC1749、12 位、80Msps 宽带宽 ADC 的典型应用
- B-LCD40-DSI1,4 英寸 WVGA TFT LCD 子板,带 MIPI DSI 接口和电容式触摸屏
- 使用 Diodes Incorporated 的 PT8A3519 的参考设计
- ADM8611 超低电压监控器的典型应用电路
- 用于音频的 3V 模拟放大
- 用于汽车电源的 LTC3638MPMSE 12V/250mA 降压稳压器的典型应用电路
- 基于 AL8400Q 的 LED 串的高压操作 Tapping VCC 典型应用
- 85BK-V92对讲机方案(二)