29.01.2015 Views

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and ...

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and ...

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Flexible static memory controller (FSMC)<br />

RM0008<br />

the start address for read operations. Using the attribute memory space makes it<br />

possible to use a different timing configuration of the FSMC, which can be used to<br />

implement the prewait functionality needed by some NAND Flash memories (see<br />

details in Section 19.6.5: NAND Flash pre-wait functionality on page 446).<br />

4. The controller waits for the NAND Flash to be ready (R/NB signal high) to become<br />

active, before starting a new access (to same or another memory bank). While waiting,<br />

the controller maintains the NCE signal active (low).<br />

5. The CPU can then perform byte read operations in the common memory space to read<br />

the NAND Flash page (data field + Spare field) byte by byte.<br />

6. The next NAND Flash page can be read without any CPU comm<strong>and</strong> or address write<br />

operation, in three different ways:<br />

– by simply performing the operation described in step 5<br />

– a new r<strong>and</strong>om address can be accessed by restarting the operation at step 3<br />

– a new comm<strong>and</strong> can be sent to the NAND Flash device by restarting at step 2<br />

19.6.5 NAND Flash pre-wait functionality<br />

Some NAND Flash devices require that, after writing the last part of the address, the<br />

controller wait for the R/NB signal to go low as shown in Figure 176.<br />

Figure 176. Access to non ‘CE don’t care’ NAND-Flash<br />

NCE<br />

NCE must stay low<br />

CLE<br />

ALE<br />

NWE<br />

NOE<br />

High<br />

tR<br />

I/O[7:0]<br />

0x00 A7-A0 A16-A9 A24-A17 A25<br />

tWB<br />

R/NB<br />

(1) (2) (3) (4) (5)<br />

1. CPU wrote byte 0x00 at address 0x7001 0000.<br />

2. CPU wrote byte A7~A0 at address 0x7002 0000.<br />

3. CPU wrote byte A16~A9 at address 0x7002 0000.<br />

4. CPU wrote byte A24~A17 at address 0x7002 0000.<br />

5. CPU wrote byte A25 at address 0x7802 0000: FSMC performs a write access using FSMC_PATT2 timing<br />

definition, where ATTHOLD 7 (providing that (7+1) × HCLK = 112 ns > t WB max). This guarantees that<br />

NCE remains low until R/NB goes low <strong>and</strong> high again (only requested for NAND Flash memories where<br />

NCE is not don’t care).<br />

ai14733<br />

446/995 Doc ID 13902 Rev 9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!