深度解读NAND_FLASH
- 格式:ppt
- 大小:1.31 MB
- 文档页数:27


友善之臂K9F1208U0C PCB04-5位,12代表512M位,也就是64M字节熟悉一下NandFlash的硬件:1主要的引脚:I/O0 —I/O7:数据输入输出端,命令,数据,地址复用端口(LDATA0-LDATA7)R/B: 准备忙输出(RnB)CE:芯片使能(nFCE)CLE: 命令锁存使能(CLE)ALE:地址锁存使能(ALE)WE:写使能(nFWE)RE:读使能(nFRE)2Mini2440的一些引脚设置:和寄存器设置:(NCON(Advflash), GPG13(页大小), GPG14(地址周期), GPG15(总线宽度)–参考引脚配置)#define rGSTATUS0 (*(volatile unsigned *)0x560000ac) //External pin status3NandFlash启动时,代码小于4k与大于4k的情况:在三星的NAND Flash 中,当CPU从NAND Flash开始启动时,CPU会通过内部的硬件将NAND Flash开始的4KB数据复制到称为“Steppingstone”的4KB 的内部RAM中,起始地址为0,然后跳到地址0处开始执行。
这也就是我们为什么可以把小于4KB的程序烧到NAND Flash中,可以运行,而当大于4KB时,却没有办法运行,必须借助于NAND Flash的读操作,读取4KB以后的程序到内存中。
4NandFlash的存储结构以及读写原理:4.1NandFlash中的块,页,位宽:●NAND Flash的数据是以bit的方式保存在memory cell(存储单元)一般情况下,一个cell中只能存储一个bit。
这些cell以8个或者16个为单位,连成bit line ,形成所谓的byte(x8)/word(x16),这就是NAND Flash的位宽。
这些Line会再组成Pape(页)。
然后是每32个page形成一个Block,所以一个Block(块)大小是16k.Block是NAND Flash中最大的操作单元。
NandFlash原理与启动详解一、Nandflash内部是怎么工作的:1片Nandflash=1设备;1设备=4096块;1块=32页;1页=528字节=数据大小(512字节)+oob块大小(16字节)(oob用于Nandflash命令执行完成后设置状态)可以通过NAND Flash命令00h/01h/50h分别对前半部、后半部、OOB进行定位,通过NAND Flash内置的指针指向各自的首地址。
存储操作特点有:擦除操作的最小单位是块;NAND Flash芯片每一位只能从1变为0,而不能从0变为1,所以在对其进行写入操作之前一定要将相应块擦除(擦除即是将相应块的位全部变为1);OOB部分的第6字节(即517字节)标志是否是坏块,值为FF时不是坏块,否则为坏块。
除OOB第6字节外,通常至少把OOB的前3字节用来存放NAND Flash硬件ECC码。
(ECC:"Error Correcting Code" "错误检查纠正",带有奇偶校验的内存的主要功能。
)1.Nand flash以page为单位进行读写,以block为单位进行擦除,没页分为main区和spare区,main区用于存放正常的数据,spare区用于存放一些附加信息2.S3c2440 支持从Nand 启动是因为内部有一个叫做Steppingstone的SRAM buffer,当启动的时候,nand 的前4k的将会代码将被拷贝到steppingstone中执行,注意前4k代码是不会经过ECC校验的,所以必须确保这些代码的准确3.对nand的操作都是通过使用命令来实现,有的操作只要一个命令就可以完成,而有的需要两个命令才能完成,下面是K9F1G08U0B的命令表:4 Flash烧写程序原理及结构基本原理:将在SDRAM中的一段存储区域中的数据写到NAND Flash存储空间中。
烧写程序在纵向上分三层完成。
Nand Flash 介绍及高通nand flash驱动1. Nand Flash 相关概念1.1 NOR flash与nand flash1) Nor flash 写速度要比Nand flash 慢得多,Nor flash的读速度比Nand flash快得多。
2.)Nor flash 可以挂上CPU 芯片的地址线,不需要额外的sdram 就可直接在Nor flash 中直接运行,而Nand flash 需要代码搬运到Ram中运行,所以需要Boot loader,需要额外的sdram 的开销。
3)Nandflash需要做badblock检测和ecc校验;每个page中需有一块区域标识坏块信息,而 Nor flash 没有badblock 和ecc 校验的概念。
4)Nand flash最小的program单位为page,而Nor flash 可以对bit进行1.2 什么是SLC和MLCSLC,Single Level Cell:单个存储单元,只存储一位数据,表示成1或0.对于数据的表示,单个存储单元中内部所存储电荷的电压,和某个特定的阈值电压Vth,相比,如果大于此Vth值,就是表示1,反之,小于Vth,就表示0.MLC,Multi Level Cell:与SLC相对应,就是单个存储单元,可以存储多个位,比如2位,4位等。
其实现机制,就是,通过控制内部电荷的多少,分成多个阈值,通过控制里面的电荷多少,而达到我们所需要的存储成不同的数据。
比如,假设输入电压是Vin=4V那么,可以设计出2的2次方=4个阈值, 1/4 的Vin=1V,2/4的Vin=2V,3/4的Vin=3V,Vin=4V,分别表示2位数据00,01,10,11。
对于写入数据,就是充电,通过控制内部的电荷的多少,对应表示不同的数据。
另,nand flash:页大小是512+16=528的称为small page页大小是2048+64=2112的称为large page1.3 Nand flash的组成结构图2 Nand flash 物理存储单元的阵列组织结构NAND Flash 的数据是以bit 的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。