一FSMC的定义
英文名是(Flexible Static Memory Controller)即 可变静态存储控制器。是STM32系列采用一种新型的存储器扩展技术。在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量静态存储器的扩展。
利用FSMC就是发现32内存不够,或者其他原因需要外接内存,所以要用FSMC功能 外加内存。
二 我发现百度词条讲的很清楚。我提出来几个 给细讲一下。
FSMC技术优势
①支持多种静态存储器类型。STM32通过FSMC可以与SRAM、ROM、PSRAM、NOR Flash和NANDFlash存储器的引脚直接相连。
②支持丰富的存储操作方法。FSMC不仅支持多种数据宽度的异步读/写操作,而且支持对NOR/PSRAM/NAND存储器的同步突发访问方式。
③支持同时扩展多种存储器。FSMC的映射地址空间中,不同的BANK是独立的,可用于扩展不同类型的存储器。当系统中扩展和使用多个外部存储器时,FSMC会通过总线悬空延迟时间参数的设置,防止各存储器对总线的访问冲突。
④支持更为广泛的存储器型号。通过对FSMC的时间参数设置,扩大了系统中可用存储器的速度范围,为用户提供了灵活的存储芯片选择空间。
⑤支持代码从FSMC扩展的外部存储器中直接运行,而不需要首先调入内部SRAM。
看完这个 大家肯定迷惑在①上,上面的SRAM、ROM、PSRAM、NOR Flash和NANDFlash说的都是外部的,stm32自己也带有flash,叫做rom和ram,记住不要冲突了,想着控制的是内部。其实是控制外部的。
Stm32 ROM和RAM的区别,两者都是内存,唯一的区别就是RAM断电后数据丢失,而ROM则不会。
NOR Flash和NAND Flash的却别是NOR FLASH可以运行代码,而NAND FLASH则不能,他只能供mcu读取 而且是按块读取,比如一次读512个字节。
FSMC内部结构
STM32微控制器之所以能够支持NOR Flash和NAND Flash这两类访问方式完全不同的存储器扩展,是因为FSMC内部实际包括NOR Flash和NAND/PC Card两个控制器,分别支持两种截然不同的存储器访问方式。在STM32内部,FSMC的一端通过内部高速总线AHB连接到内核Cortex-M3,另一端则是面向扩展存储器的外部总线。内核对外部存储器的访问信号发送到AHB总线后,经过FSMC转换为符合外部存储器通信规约的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互。FSMC起到桥梁作用,既能够进行信号类型的转换,又能够进行信号宽度和时序的调整,屏蔽掉不同存储类型的差异,使之对内核而言没有区别。