Flexible static memory controller (FSMC)
RM0365
DocID025202 Rev 7
14
Flexible static memory controller (FSMC)
Note:
Only the STM32F302xD/E devices include the FMC.
S
The Flexible static memory controller (FSMC) includes two memory controllers:
•
The NOR/PSRAM memory controller
•
The NAND/PC Card memory controller
This memory controller is also named Flexible memory controller (FMC).
14.1
FMC main features
The FMC functional block makes the interface with: synchronous and asynchronous static
memories, and 16-bit PC card memory. Its main purposes are:
•
to translate AHB transactions into the appropriate external device protocol
•
to meet the access time requirements of the external memory devices
All external memories share the addresses, data and control signals with the controller.
Each external device is accessed by means of a unique Chip Select. The FMC performs
only one access at a time to an external device.
The main features of the FMC controller are the following:
•
Interface with static-memory mapped devices including:
–
Static random access memory (SRAM)
–
NOR Flash memory/OneNAND Flash memory
–
PSRAM (4 memory banks)
–
16-bit PC Card compatible devices
–
Two banks of NAND Flash memory with ECC hardware to check up to 8 Kbytes of
data
•
Burst mode support for faster access to synchronous devices such as NOR Flash
memory, PSRAM
•
Programmable continuous clock output for asynchronous and synchronous accesses
•
8-,16-bit wide data bus
•
Independent Chip Select control for each memory bank
•
Independent configuration for each memory bank
•
Write enable and byte lane select outputs for use with PSRAM, SRAM devices
•
External asynchronous wait control
•
Write Data FIFO with 16 x33-bit depth
•
Write Address FIFO with 16x30-bit depth
The FMC embeds two Write FIFOs: a Write Data FIFO with a 16x33-bit depth and a Write
Address FIFO with a 16x30-bit depth.
•
The Write Data FIFO stores the AHB data to be written to the memory (up to 32 bits)
plus one bit for the AHB transfer (burst or not sequential mode)
•
The Write Address FIFO stores the AHB address (up to 28 bits) plus the AHB data size
(up to 2 bits). When operating in burst mode, only the start address is stored except