STM32 FSMC简介(一)

以下内容整理自《STM32中文参考手册》、正点原子《STM32F1开发指南--库函数版》、野火《零死角玩转STM32F103霸道V2》,仅为个人学习方便所整理

1.STM32控制器芯片内部有一定大小的SRAMFLASH作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了,扩展内存时一般使用SRAMSDRAM 存储器。STM32F1系列的芯片不支持扩展SDRAM (STM32F429系列支持),它仅支持使用FSMC外设扩展SRAM,由于引脚数量的限制,只有STM32F103ZE 或以上型号的芯片才可以扩展外部SRAM

STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展,内存条实质是由多个内存颗粒(SDRAM芯片)组成的通用标准模块,而STM32直接与SRAM芯片连接。

STM32F1系列芯片使用FSMC外设来管理扩展的存储器,FSMCFlexible Static Memory Controller的缩写,译为灵活的静态存储控制器。它可以用于驱动包括SRAMNOR FLASH以及NAND FLSAH类型的存储器,不能驱动如 SDRAM这种动态的存储器。

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

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

3.FSMC包含四个主要模块:AHB接口(包含FSMC配置寄存器)NOR闪存和PSRAM控制器;NAND闪存和PC卡控制器;外部设备接口。FSMC框图如图1

                                        STM32 FSMC简介(一)_第1张图片

                                                                                         图1 FSMC框图

3.1通讯引脚:在框图的右侧是FSMC外设相关的控制引脚,控制不同类型存储器的时候会有一些不同的引脚,其中地址线FSMC_A和数据线FSMC_D是所有控制器都共用的。NOR闪存和PSRAM接口的典型信号如表1~3,其中具有前缀“N”的信号表示低有效信号。

                                                                             表1 非复用信号的NOR闪存接口

                                                      STM32 FSMC简介(一)_第2张图片

                                                                             表2复用信号的NOR闪存接口

                                      STM32 FSMC简介(一)_第3张图片

 

                                                                          表3 非复用信号的PSRAM接口

                                       STM32 FSMC简介(一)_第4张图片

 

3.2存储器控制器:上面不同类型的引脚是连接到FSMC内部对应的存储控制器中的。NOR/PSRAM/SRAM设备使用相同的控制器,NAND/PC卡设备使用相同的控制器,不同的控制器有专用的寄存器用于配置其工作模式。

控制SRAM的有FSMC_BCR1/2/3/4控制寄存器、FSMC_BTR1/2/3/4片选时序寄存器以及FSMC_BWTR1/2/3/4写时序寄存器。每种寄存器都有4个,分别对应于4个不同的存储区域,各种寄存器介绍如下:

FSMC_BCR控制寄存器可配置要控制的存储器类型、数据线宽度以及信号有效极性能参数。

FSMC_BTR时序寄存器用于配置SRAM访问时的各种时间延迟,如数据保持时间、地址保持时间等。

FSMC_BWTR写时序寄存器与FMC_BTR寄存器控制的参数类似,它专门用于控制写时序的时间参数。

3.3时钟控制逻辑FSMC外设挂载在AHB总线上,时钟信号来自于 HCLK (默认72MHz),控制器的同步时钟输出就是由它分频得到。

你可能感兴趣的:(STM32)