简介
FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接, STM32F4 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器
从上图我们可以看出, STM32F4 的 FSMC 将外部设备分为 2 类: NOR/PSRAM 设备、NAND/PC 卡设备。 通过不同的CS来区分不同的设备。 STM32F4 的 FSMC 支持 8/16/32 位数据宽度 STM32的FSMC 将外部存储器划分为固定大小为 256M 字节的四个存储块,共有1G。
特性
FSMC 能够连接同步、异步存储器和 16 位 PC 存储卡。其主要用途如下: ● 将 AHB 数据通信事务转换为适当的外部器件协议 ● 满足外部器件的访问时序要求 所有外部存储器共享地址、数据和控制信号,但有各自的片选信号。 FSMC 一次只能访问一 个外部器件。 FSMC 具有以下主要功能: ● 连接静态存储器映射的器件: — 静态随机访问存储器 (SRAM) — 只读存储器 (ROM) — NOR Flash/OneNAND Flash — PSRAM( 4 个存储区域) ● 两个带有 ECC 硬件的 NAND Flash 存储区域,可检查多达 8 KB 的数据 ● 16 位 PC 卡兼容设备 ● 支持对同步器件( NOR Flash 和 PSRAM)的突发模式访问 ● 8 或 16 位宽的数据总线 ● 每个存储区域有独立的片选控制 ● 每个存储区域可独立配置 ● 可对时序进行编程,以支持各种器件,尤其是: — 等待周期可编程(最多 15 个时钟周期) — 总线周转周期可编程(最多 15 个时钟周期) — 输出使能和写入使能延迟可编程(最多 15 个时钟周期) — 独立的读和写时序和协议,以支持各种存储器和时序 ● 写使能和字节通道选择输出,可配合 PSRAM 和 SRAM 器件使用 ● 将 32 位的 AHB 事务转换为针对外部 16 位或 8 位器件进行的连续 16 位或 8 位访问。 ● 用于写入的 FIFO, 2 字长(对于 STM32F42x 和 STM32F43x,为 16 字长),每个字为 32 位宽,仅用于存储数据,而不存储地址。因此,此 FIFO 仅会缓冲 AHB 批量写事务。 从而可对慢速存储器执行写入操作后能快速释放 AHB,以供其它操作使用。每次仅缓 冲一个突发事务:如果在有操作正在进行时发生一个新的 AHB 突发事务或者一个单独 事务,则 FIFO 将会清空。 FSMC 将插入等待周期,直至当前存储器访问已完成)。 ● 外部异步等待控制 定义外部器件类型和其特性的 FSMC 寄存器通常在启动时进行设置,并且在下次上电或复位 前保持不变。但也可随时更改这些设置。
与SRAM的连接一般有
地址线:A0-A25 数据线:D0-D15 控制线:写信号(WE,WR)、读信号(OE,RD)、片选信号(CS)、字节控制(UB/LB)
|