首页 > 技术文章 > STM32(十五)FSMC

yuanqiangfei 2020-10-21 14:49 原文

一、FSMC简介

  FSMC(Flexible Static Memory Controller,可变静态存储控制器)是STM32系列采用的一种新型的存储器扩展技术。在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量静态存储器的扩展。它可以用于驱动包括SRAM、NOR FLASH以及NAND FLASH类型的存储器,不能驱动如SDRAM这种动态的存储器而在STM32F429系列中的控制中,它具有FMC外设,支持控制SDRAM存储器

二、FSMC技术优势

  • 支持多种静态存储器类型:

    STM32通过FSMC可以与SRAM、ROM、PSRAM、NOR Flash和NANDFlash存储器的引脚直接相连。

  • 支持丰富的存储操作方法:

    FSMC不仅支持多种数据宽度的异步读/写操作,而且支持对NOR/PSRAM/NAND存储器的同步突发访问方式

  • 支持同时扩展多种存储器

    FSMC的映射地址空间中,不同的BANK是独立的,可用于扩展不同类型的存储器。当系统中扩展和使用多个外部存储器时,FSMC会通过总线悬空延迟时间参数的设置,防止各存储器对总线的访问冲突。

  • 支持更为广泛的存储器型号

    通过对FSMC的时间参数设置,扩大了系统中可用存储器的速度范围,为用户提供了灵活的存储芯片选择空间。

  • 支持代码从FSMC扩展的外部存储器中直接运行,而不需要首先调入内部SRAM。 

三、FSMC内部结构

  在STM32内部,FSMC的一端通过内部高速总线AHB连接到内核Cortex-M3,另一端则是面向扩展存储器的外部总线。内核对外部存储器的访问信号发送到AHB总线后,经过FSMC转换为符合外部存储器通信规约的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互。FSMC起到桥梁作用,既能够进行信号类型的转换,又能够进行信号宽度和时序的调整,屏蔽掉不同存储类型的差异,使之对内核而言没有区别。

四、FSMC控制异步NOR FLASH的时序

 1、读时序

     

 

 地址总线(输出)

 

地址、数据线服用时作锁存信号(输出)

 

片选(输出)

 

 

输出使能【输出】

写使能(输出)

 

 

输入/输出      双向数据总线

 

 

 

 
 
该图表示一个存储器操作周期由地址建立周期(ADDSET)、数据建立周期(DATAST)以及 2 个 HCLK 周期组成。
  • 在地址建立周期中,地址线发出要访问的地址,
  • 数据掩码信号线指示出要读取地址的高、低字节部分。
  • 片选信号使能存储器芯片;
  • 地址建立周期结束后读使能信号线发出读使能信号。
  • 存储器通过数据信号线把目标数据传输给 FSMC,FSMC 把它交给内核。

二、写时序

 

 写时序和读时序类似,区别是它的一个存储器操作周期仅由地址建立周期(ADDSET)数据建立周期(DATAST)组成。

  • 在地址建立周期中,地址线发出要访问的地址,
  • 数据掩码信号线指示出要读取地址的高、低字节部分。
  • 片选信号使能存储器芯片;
  • 地址建立周期结束后写使能信号线发出写使能信号。
  • FSMC 把数据通过数据线传输到存储器中。

推荐阅读