微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > nandflash(K9F2G08U0A)的复习--APPLE的学习笔记

nandflash(K9F2G08U0A)的复习--APPLE的学习笔记

时间:11-10 来源:互联网 点击:
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=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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top