FMC&FSMC

简介: FMC&FSMC

1、 FLASH 存储控制器(FMC)

FLASH 存储控制器(FMC)是一个存储加速单元,其提供:

  • 在设备和双行之间的一个接口,bank 0 由程序 flash 组成,bank 1 由 FlexNVM 组成。
  • 缓存可以加速 FLASH,和 FlexNVM 数据传输。

FLASH 存储控制器管理设备和双行之间的一个接口,64 位不易失性存储器。FMC 接收状态信息详细记录了存储器的配置,使用该信息可确保一个正确的接口。下表显示了支持 8位,16 位和 32 位读/写操作。

1-概述

FMC功能块可连接:

  • 同步/异步静态存储器-------SRAM、DRAM
  • NAN Flash----------------NOR Flash、OneNAND Flash
  • SDRAM存储器---------------SDRAM

所有外部存储器共享地址、数据和控制信号,但有自己的片选信号。FMC一次只能访问一个外部器件

2-框图

3-主要用途

  • 将AHB数据通信事务转换为适当的外部器件协议
  • 满足外部存储器件的访问时间要求

4-外部器件地址映射

FMC 总共管理 1.5GB 空间,拥有 6 个存储块(Bank)

从FMC的角度,外部器件比划分为固定大小的存储区域,每个存储取得大小为256MB

  • 区域1可连接多达4个NOR Flash或PSRAM器件,此区域被划分为NOR/PSRAM1~4共4个子区域,带4个专用片选信号
  • 区域3用于连接NAND Flash器件,此空间的MU存储器特性必须通过软件重新配置到寄存器中
  • 区域4和5用于连接SDRAM器件(每个存储区域一个器件)

2、(FSMC)灵活的静态存储控制器。

  • FSMC-Flexible static memory controller

FSMC全称“静态存储器控制器”。

Flexible static memory controller(FSMC)灵活的静态存储控制器

FSMC可以连接异步或同步存储器或16位PC存储卡,主要用途有:

  • 将 AHB 数据通信事务转换为适当的外部器件协议
  • 满足外部器件的访问时序要求

所有外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC 一次只能访问一个外部器件。

FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器卡连接,STM32的FSMC接口支持包括SRAM、NANDFLASH、NORFLASH和PSRAM等存储器。

FSMC( Flexible static memory controller)全称“灵活的静态存储器控制器”,是 STM32中一个很有特色的外设,通过 FSMC,STM32可以通过FSMC与SRAM、ROM、PSRAM、Nor Flash和NandFlash存储器的引脚相连,从而进行数据的交换。

要注意的是,FSMC 只能扩展静态的内存,即名称里面的 S:static,不能是动态的内存,比如 SDRAM 就不能扩展。

1-FSMC通俗讲解

既然我们知道FMC是可以方便的跟内存存储,那么到底方便到什么地方了呢?

我们用DRAM做一个最简单的举例,让你最直观的了解FMC的用处和便捷之处。

首先我们想一下,你想要在自己的电脑中查找一个文档文件的数据 ,然后拷到U盘里,需要的步骤是什么呢?

  • 找到该文档在电脑中的位置(地址)
  • 复制该文档(数据)
  • 将文档粘贴到U盘中(数据传输)

一共需要三步,而我们的DRAM和NOR FLASH 都是存储器,把它们想成电脑 ,U盘是我们的STM32

单片机跟外部存储器通信,也需要知道数据的地址(电脑中的位置),然后把数据的内容传递(复制粘贴)过来。 那这样的话,存储器就需要地址传输线跟数据传输线,还要加上一些控制时序引脚 比方说复位 写数据 读数据 等等

  • 1、地址线:是用来传输地址信息用的。举个简单的例子:cpu在内存或硬盘里面寻找一个数据时,先通过地址线找到地址,然后再通过数据线将数据取出来。 如果有32根.就可以访问2的32次方的字节,也就是4GB。
  • 2、数据线(data cable),来传递数据或通信。通俗点说,就是单片机发送指令给存储器,和存储器发送数据给单片机这两个功能

2-FSMC的功能

FSMC的功能总结:

  • 将AHB传输信号转换到适当的外部设备协议;
  • 满足访问外部设备的时序要求。

所有的外部存储器共享控制器输出的地址、数据和控制信号,每个外部设备可以通过一个唯一的片选信号加以区分。FSMC在任一时刻只访问一个外部设备。

3-FSMC的特点

  • 1、 FSMC的一大特点是支持不同位宽的异步读写操作。
  • 2、 FSMC的映射地址空间中,不同的BANK是独立的,可用于扩展不同类型的存储器。当FSMC同时使用多个外部存储器时,FSMC会通过总线悬空延时时间参数,来防止访问冲突发生。
  • 3、 支持代码从FSMC扩展的外部存储器中直接运行。不需要首先调入内部SRAM。

4-FSMC 框图

FSMC 的框图如图所示:

参考内容:

目录
相关文章
|
内存技术
【HARDWARE】 --- SPI接口协议介绍与应用说明
【HARDWARE】 --- SPI接口协议介绍与应用说明
2223 3
|
存储 开发框架 开发者
QT C++焦点事件:多角度解析实用技巧与方法
QT C++焦点事件:多角度解析实用技巧与方法
2959 0
|
IDE 数据可视化 Java
5款经典代码阅读器的使用方案对比
代码阅读是技术人的必备技能之一,高效地梳理代码能够极大程度上提高开发人员的工作效率,进一步为业务创造新价值。
15023 0
5款经典代码阅读器的使用方案对比
|
1月前
|
网络协议 物联网 编译器
STM32 MQTT客户端实现方案(基于二次开发包)
STM32 MQTT客户端实现方案(基于二次开发包)
|
4月前
|
运维 监控 前端开发
基于AI大模型的故障诊断与根因分析落地实现
本项目基于Dify平台构建多智能体协作的AIOps故障诊断系统,融合指标、日志、链路等多源数据,通过ReAct模式实现自动化根因分析(RCA),结合MCP工具调用与分层工作流,在钉钉/企业微信中以交互式报告辅助运维,显著降低MTTD/MTTR。
4477 28
|
2月前
|
人工智能
阿里云AI贺岁迎新,邀客得好礼活动规则详解,AI大模型这么玩更划算!
阿里云AI贺岁迎新活动开启!邀好友首购大模型节省计划(低至4.5折)或百炼Coding Plan(新客首月10元),双方各得代金券,最高返3000元。赠7000万tokens,限时至2026年3月31日。
549 3
|
固态存储 IDE 开发工具
手把手教你安装Keil MDK5:官方网盘资源+芯片支持包配置详解(附调试实战)
Keil是一款专为嵌入式系统开发设计的集成开发环境(IDE),由德国Keil Software公司开发,后被ARM收购整合为MDK-ARM工具链的一部分。本文详细介绍Keil MDK541的安装步骤、系统要求、运行环境配置及首次使用指南,包括许可证管理、芯片支持包安装和工程模板设置等。同时提供新建STM32工程、编写测试代码的具体操作,并解答常见问题,如缺少DLL文件、语言设置及编译错误处理。附延伸学习资源与版权声明,帮助用户高效上手Keil开发环境。
8248 24
|
算法 SoC
在写PWM风扇驱动之前:如何透过FG信号,获取风扇转速?
本文介绍了如何通过PWM风扇的FG信号线获取风扇转速的方法,包括风扇规格的解读、FG信号的公式推导、软件算法的解析,以及在全志H713平台上实现风扇转速获取的驱动代码示例。
3006 2
在写PWM风扇驱动之前:如何透过FG信号,获取风扇转速?
|
安全 Windows
win10系统:局域网下共享文件夹设置,解决其他电脑访问不成功问题
这篇文章是关于如何在Windows 10系统下设置局域网共享文件夹,并解决其他电脑访问不成功的问题的详细指南。
60532 7
win10系统:局域网下共享文件夹设置,解决其他电脑访问不成功问题
|
安全 数据可视化 编译器
AST 的应用
【10月更文挑战第23天】抽象语法树在软件开发的各个领域都有着广泛而重要的应用。它为代码的分析、优化、生成、转换等提供了基础和支持,是提升代码质量和开发效率的重要工具。随着技术的不断发展,AST 的应用还将不断扩展和深化,为软件开发带来更多的创新和便利。

热门文章

最新文章