RM0082
RS_Flexible static memory controller (FSMC)
Doc ID 018672 Rev 1
665/844
Note:
Multiple chip enable pins allow to connect up to four different memory devices
simultaneously. Address and data buses are shared. Controller performs only one access at
a time.
31.4.2 Address
map
The address space for FSMC is further divided as follows:
Note:
CL and AL signals for NAND Flash correspond to A16 and A17, respectively on FSMC. So,
if we write at an address within the address range of a particular NAND bank such that the
address bit 16/17 is '1', the CL/AL pin at output will go high. Data on data lines is thus
interpreted as command and address respectively.
31.4.3 Register
map
The FSMC can be fully configured by programming its 32-bit wide registers which can be
accessed at the base address 0x9400_0000.
Independent configuration registers are associated with each chip select, and they allow to
specify the type of external device (SRAM or Flash) as well as the associated timings (i.e.,
how many HCLK cycles to complete a transaction), and other external device characteristics
so that FSMC can use the correct protocol.
Table 593.
NAND Flash
Signal
Direction
Description
D[15:0]
Bidir
Data lines.
CL
Out
Command Latch Enable Active High.
AL
Out
Address Latch Enable Active High.
/W
Out
Write Enable Active Low.
/R
Out
Read Enable Active Low.
/E1, /E2, /E3 and /E4
Out
Chip Enable Active Low.
R/B
In
Wait Signal Active Low.
Table 594.
FSMC Address Map
From
To
Description
0x8000_0000
0x83FF_FFFF
NAND on Bank0
0x8400_0000
0x87FF_FFFF
NAND on Bank1
0x8800_0000
0x8BFF_FFFF
NAND on Bank2
0x8C00_0000
0x8FFF_FFFF
NAND on Bank3
0x9000_0000
0x90FF_FFFF
NOR/SRAM on Bank0
0x9100_0000
0x91FF_FFFF
NOR/SRAM on Bank1
0x9200_0000
0x92FF_FFFF
NOR/SRAM on Bank2
0x9300_0000
0x93FF_FFFF
NOR/SRAM on Bank3
0x9400_0000
0x98FF_FFFF
FSMC Configuration Registers