1,Nandflash的要害接口引脚 (要求:记住)
2,容量核算: (要求:了解怎么核算)
3,读写最根本时序 (要求:记住)
4,会装备读写时序timing (要求:了解怎么核算)
5,MCU的nandflash装备时,首要运用的寄存器 (要求:记住)
6,常用操作 (要求:记住)
7,nandflash的boot形式 (要求:记住)
8,ecc作业原理 (待做)
9,坏块根本处理方法 (要求:记住)
10,nandflash和norflash的根本差异 (要求:记住)
依据2440+nandflash(K9F2G08U0A)的温习
1,Nandflash的要害接口引脚(要求:记住)
CE(片选),nWE(使能写),nWE(使能读),ALE(地址/数据锁存),CLE(指令锁存),RnB(忙标志),nWP(使能写
维护)
2,容量核算:(要求:了解怎么核算)
1 Page = (2K + 64)Bytes
1 Block = (2K + 64)B x 64 Pages
= (128K + 4K) Bytes
1 Device = (2K+64)B x 64Pages x 2,048 Blocks
= 2,112 Mbits
留意单位为Mbits=264Mbyte
别的,列地址A0-A11共12根线,为2^12=4K,其实要么2K,比(2K + 64)大,那么便是4K,需求12根线。 行地址17根
线,即2^17=131072,也便是64Pages x 2,048 Blocks。
3,读写根本最时序如下(要求:记住)

4,会装备读写时序timing。(要求:了解怎么核算)
比照如下图后得知TACLS=tcls-twp=0;TWRPH0=twp;TWRPH1=tclh,接着依据公式自己算寄存器值等等。
TACLS [13:12] CLE & ALE duration setting value (0~3)
Duration = HCLK x TACLS
2440nandflash接口延时命名如下:

nandflash时序及延时命名如下:

5,MCU的nandflash装备时,首要运用的寄存器(要求:记住)
a,装备寄存器:首要是装备timing。
b,操控寄存器:首要是操控nandflash使能等。
c,指令根底器:向寄存器写入指令数据后。则接口会主动产生一个写指令的时序。
d,地址寄存器:向寄存器写入地址数据后。则接口会主动产生一个写地址的时序。
e,数据寄存器:向寄存器读出数据后。则接口会主动产生一个读数据的时序。
f,状况寄存器:显现RnB的状况。
6,常用操作(要求:记住)
1,reset流程
当然先要片选使能,然后产生reset指令,检测经过状况寄存器检测RnB脚从低到高。就算reset成功了。
2,read ID
使能片选,检测RnB为闲后,写readid指令,延时后,读取data寄存器中的数据,读5次后,则让片选失效。
3,读操作
使能片选,检测RnB为闲后,写第一个读指令,然后写地址(列+行),再写第二个读指令,等候RnB由忙到闲,则
读取data寄存器中的数据。最终让片选失效。
注:其中有Read Operation with CE don’t-care,即CE连接在MCU的一个一般IO口上。能够不必管。
4,写操作
使能片选,检测RnB为闲后,写第一个写指令,然后写地址(列+行),再写第二个写指令,等候RnB由忙到闲后,
再读I/O bit0是否为0,为0则阐明编程没过错。即完成对nandflash的编程操作。
5,擦除操作
使能片选,检测RnB为闲后,写第一个擦除指令,然后写地址(列+行),再写第二个擦除指令,等候RnB由忙到闲
后,再读I/O bit0是否为0,为0则阐明擦除没过错。即完成对nandflash的擦除操作。
7,nandflash的boot形式(要求:记住)
MCU能够操控外部nandflash的boot方法。OM【1:0】=0时,则挑选从外部nandflash发动程序。
nandflash的发动机制:
a,条件:程序现已烧录到nandflash的0地址开端处。能够用jlink直接烧录法等。
b,2440MCU上电后,会主动读取nandflash的前4K到它的内部sarm(该区域名称为SteppingStone),然后在
SteppingStone中运转程序。那么假定nandflash中的数据大于4K,而主动仿制巨细仅为4K,怎么办呢?所以,在这4K
代码中需求参加copynand2ram。然后,复制完后,接着PC跳到下一个标志方位持续履行。(解释一下标志方位,怎么
一开端在内部sarm中,或许地址为0x100,可是当copynand2ram函数运转完后,此标志方位就会变成
0x30000000+0x100。那么就能够持续履行,而不是重复履行了)
8,ecc作业原理(待做)
9,坏块根本处理方法(要求:记住)
当检测到坏块后,nandflash会主动运用预留的block来替代。而且为此坏块做符号。
* Step1
When an error happens in the nth page of the Block ’A’ during erase or program operation.
* Step2
Copy the data in the 1st ~ (n-1)th page to the same location of another free block. (Block ’B’)
* Step3
Then, copy the nth page data of the Block ’A’ in the buffer memory to the nth page of the Block ’B
’.
* Step4
Do not erase or program to Block ’A’ by creating an ’invalid block’ table or other appropriate
scheme.
10,nandflash和norflash的根本差异(要求:记住)
a,接口不同,nandflash是地址指令线共用的。norflash是分隔的。
b,速度不同,nandflash的写入是擦除速度比norflash快许多,norflash的读取速度比nandflash快。
c,可靠性不同,nandflash简单呈现坏块
d,寿数不同,nandflash可擦除一百万次,norflash可擦除十万次。
e,文件体系不同。nandflash选用yaffs文件体系,norflash选用jffs文件体系
f,价格容量不同。nandflash容量大,价格偏低。norflash容量小,价格偏高。