DocID018909 Rev 11
RM0090
Flexible static memory controller (FSMC)
1588
The application software uses the 3 sections to access the NAND Flash memory:
•
To send a command to NAND Flash
memory
: the software must write the command
value to any memory location in the command section.
•
To specify the NAND Flash address that must be read or written
: the software
must write the address value to any memory location in the address section. Since an
address can be 4 or 5 bytes long (depending on the actual memory size), several
consecutive writes to the address section are needed to specify the full address.
•
To read or write data
: the software reads or writes the data value from or to any
memory location in the data section.
Since the NAND Flash memory automatically increments addresses, there is no need to
increment the address of the data section to access consecutive memory locations.
36.5
NOR Flash/PSRAM controller
The FSMC generates the appropriate signal timings to drive the following types of
memories:
•
Asynchronous SRAM and ROM
–
8-bit
–
16-bit
–
32-bit
•
PSRAM (Cellular RAM)
–
Asynchronous mode
–
Burst mode for synchronous accesses
–
Multiplexed or nonmultiplexed
•
NOR Flash
–
Asynchronous mode
–
Burst mode for synchronous accesses
–
Multiplexed or nonmultiplexed
The FSMC outputs a unique chip select signal NE[4:1] per bank. All the other signals
(addresses, data and control) are shared.
For synchronous accesses, the FSMC issues the clock (CLK) to the selected external
device only during the read/write transactions. This clock is a submultiple of the HCLK clock.
The size of each bank is fixed and equal to 64 Mbytes.
Each bank is configured by means of dedicated registers (see
The programmable memory parameters include access timings (see
) and support
for wait management (for PSRAM and NOR Flash accessed in burst mode).
Table 214. NAND bank selections
Section name
HADDR[17:16]
Address range
Address section
1X
0x020000-0x03FFFF
Command section
01
0x010000-0x01FFFF
Data section
00
0x000000-0x0FFFF