ARM9 mini2451裸机学习——NAND flash驱动学习 1


一。基础

Flash:NOR Flash ,NAND Flash

系统上电时,会执行IROM中固化代码,把NAND Flash中的前4k拷贝到0x4000 0000(芯片内部RAM)位置运行。内存(外接芯片)(0x3000 0000)

如果执行的代码小于4k,程序直接在内部RAM直接运行。

如果执行代码大于4k,要把代码完整搬到内存运行。

NOR Flash的块(擦除单元)大小为 64kb-128kb 擦除时间4s

NAND Flash 8kb-64kb    2ms

Flash可靠性考虑3点:位反转(用EDC/ECC检测恢复),坏块,可擦除次数。


二。重点

1、mini2451 NAND Flash大小为 256MB,型号为K9F2G08U0B

2、命名规则:看官网文档(三星)

ARM9 mini2451裸机学习——NAND flash驱动学习 1_第1张图片

    ARM9 mini2451裸机学习——NAND flash驱动学习 1_第2张图片

3、

ARM9 mini2451裸机学习——NAND flash驱动学习 1_第3张图片

一页:2K+64B

一块:64页 即 128K+4K

1 device:2048块 * 64页 * (2K+64B)

NAND Page = 2048B+64B(2K+64B)

block = 64 * page

     = 64 * 2048B        //1024B = 1KB

   =128K

device = 2048 * 128K = 256M = 2GBit

4、NAND Flash 接口:

ARM9 mini2451裸机学习——NAND flash驱动学习 1_第4张图片

RnB:忙信号 1:ready 0:busy

nRFE:读使能

nFCE:chip enable 0:有效,选中芯片 1:操作无效

FCLE:命令锁存(cmd lock enable)

FALE:地址锁存(address lock enable)

nFWE:写使能 (write enable)0:有效

5、NAND Flash初始化

确定TACLS,TWRPH0,TWRPH1三个值

TACLS :表征了从 CLE/ALE 锁存信号有效到写使能经过的时间,具体时间为:=HCLK 时钟周期 * TACLS
TWRPH0 :表征了写有效持续时间,具体时间:=HCLK 时钟周期 * (TWRTH0 + 1)
TWRPH1 :表征了写无效到锁存无效的时间,具体时间:=HCLK 时钟周期 * (TRWTH1 + 1)

ARM9 mini2451裸机学习——NAND flash驱动学习 1_第5张图片

TACLS = 1,TRWTH0 = 4 , TRWTH1 = 1

6、时序图

ARM9 mini2451裸机学习——NAND flash驱动学习 1_第6张图片


A0-A11用来页内寻址 2048+64B

A18-A28用来块寻址   2048块

A12-A17用来表示某块中的第几页 64页

你可能感兴趣的:(ARM)