❶ NAND的基本操作
每一个页均包含一个2048字节的数据区和64字节的空闲区,总共包含2,112字节。空闲区通常被用于ECC、耗损均衡(wear leveling)和其它软件开销功能,尽管它在物理上与其它页并没有区别。NAND器件具有8或16位接口。通过8或16位宽的双向数据总线,主数据被连接到NAND存储器。在16位模式,指令和地址仅仅利用低8位,而高8位仅仅在数据传输周期使用。
擦除区块所需时间约为2ms。一旦数据被载入寄存器,对一个页的编程大约要300μs。读一个页面需要大约25μs,其中涉及到存储阵列访问页,并将页载入16,896位寄存器中。
接口由6个主要控制信号构成
除了I/O总线,NAND接口由6个主要控制信号构成:
1.芯片启动(Chip Enable, CE#):如果没有检测到CE信号,那么,NAND器件就保持待机模式,不对任何控制信号作出响应。
2.写使能(Write Enable, WE#): WE#负责将数据、地址或指令写入NAND之中。
3.读使能(Read Enable, RE#): RE#允许输出数据缓冲器。
4.指令锁存使能(Command Latch Enable, CLE): 当CLE为高时,在WE#信号的上升沿,指令被锁存到NAND指令寄存器中。
5.地址锁存使能(Address Latch Enable, ALE):当ALE为高时,在WE#信号的上升沿,地址被锁存到NAND地址寄存器中。
6.就绪/忙(Ready/Busy, R/B#):如果NAND器件忙,R/B#信号将变低。该信号是漏极开路,需要采用上拉电阻。
数据每次进/出NAND寄存器都是通过16位或8位接口。当进行编程操作的时候,待编程的数据进入数据寄存器,处于在WE#信号的上升沿。在寄存器内随机存取或移动数据,要采用专用指令以便于随机存取。
数据寄存器输出数据的方式
数据寄存器输出数据的方式与利用RE#信号的方式类似,负责输出现有的数据,并增加到下一个地址。WE#和RE#时钟运行速度极快,达到30ns的水准。当RE#或CE#不为低的时候,输出缓冲器将为三态。这种CE#和RE#的组合使能输出缓冲器,容许NAND闪存与NOR、SRAM或DRAM等其它类型存储器共享数据总线。该功能有时被称为“无需介意芯片启动(chip enable don't care)”。这种方案的初衷是适应较老的NAND器件,它们要求CE#在整个周期为低(译注:根据上下文改写)。
输入寄存器接收到页编程(80h)指令时,内部就会全部重置为1s,使得用户可以只输入他想以0位编程的数据字节
带有随机数据输入的编程指令。该指令只需要后面跟随着数据的2个字节的地址
指令周期
所有NAND操作开始时,都提供一个指令周期
当输出一串WE#时钟时,通过在I/O位7:0上设置指令、驱动CE#变低且CLE变高,就可以实现一个指令周期。注意:在WE#信号的上升沿上,指令、地址或数据被锁存到NAND器件之中。如表1所示,大多数指令在第二个指令周期之后要占用若干地址周期。注意:复位或读状态指令例外,如果器件忙,就不应该发送新的指令。
注意:因为最后一列的位置是2112,该最后位置的地址就是08h(在第二字节中)和3Fh(在第一字节中)。PA5:0指定区块内的页地址,BA16:6指定区块的地址。虽然大多编程和读操作需要完整的5字节地址,在页内随机存取数据的操作仅仅用到第一和第二字节。块擦除操作仅仅需要三个最高字节(第三、第四和第五字节)来选择区块。
总体而言,NAND的基本操作包括:复位(Reset, FFh)操作、读ID(Read ID, 00h)操作、读状态(Read Status, 70h)操作、编程(Program)操作、随机数据输入(Random data input, 85h)操作和读(Read)操作等。
❷ NandFlash中的ECC校验的作用是先向NandFlash中写数据再读出来比较二者的ECC值,还是怎么应用
ECC确实是写入 spare area, ECC的值是根据写入的数据计算出来的。读出数据以后用数据计算ECC值然后与从spare area读出的ECC值进行比较,如果不对则说明数据有问题。然后根据你具体使用多少位的ECC来判断错误了多少位,如果在ECC的纠错范围内数据是可以恢复出来的,超出了ECC的纠错范围则数据只能是unrecoverble 了
❸ 要用什么型号的编程器刷FLASH
1. 高集成的 NAND Flash 管理平台 前面已经向大家剖析了 NAND Flahs 的编程结构,对 NAND Flash 编程是业界公认的难 题,操作 NandFlash 过程中会随机出现坏块,这是每个嵌入式系统的致命隐患。随着移动技 术的发展, 很多数据终端等产品的功能不断增加, 必须要进行平台化、 系统化的整合。 灵活、 宽泛的 Android、Linux、WinCE 系统是平台的首选。 系统的调试、引导程序的装载、文件系统的启动,如果每个文件都需要工程师通过电脑 操作,并衍生到生产端,整个研发、生产流程将异常繁琐,无疑会导致下载速度慢、效率低。 下面介绍用 SmartPRO 6000F 通过 5 个步骤来完成对 NAND Flash 的“一键”编程 1.1 SmartPRO 6000F 编程 NAND Flash 的步骤: 1.1.1 第一步:调入需要编程的文件; 通过 SmartPRO III 软件,选择需要编程的芯片后,在“操作选择”中调入文件。如下图: 图 1 调入需要编程的文件 1.1.2 第二步:填写文件地址 注意,如果文件是否自带备用区(OOB)数据,直接填地址即可。 产品应用笔记 ?2014Guangzhou ZHIYUAN Electronics Stock CO., LTD. 1 广州致远电子股份有限公司 编程器应用文档 NAND Flash 编程解析 图 2 填写文件地址 1.1.3 第三步:选择 ECC 算法 如果文件没有备用区数据,请指明 ECC 算法,目前 SmartPRO III 软件支持 10 多种 主流的 ECC。 产品应用笔记 ?2014Guangzhou ZHIYUAN Electronics Stock CO., LTD. 2 广州致远电子股份有限公司 编程器应用文档 NAND Flash 编程解析 图 3 选择 ECC 算法 1.1.4 第四步:设置坏块管理策略 坏块管理涉及到 NAND Flash 的烧录良率,SmartPRO III 软件完全按照各半导体公 司的标准标注坏块的方法对 NAND Flash 坏块进行标注,绝对不会误操作。 产品应用笔记 ?2014Guangzhou ZHIYUAN Electronics Stock CO., LTD. 3 广州致远电子股份有限公司 编程器应用文档 NAND Flash 编程解析 图 4 设置坏块管理策略 1.1.5 第五步:保存工程 点击 “保存工程” , 1 分钟后可以得到您设置 NAND Flash 的所有管理项的批处理文 件了。 图 5 保存工程 1.1.6 第六步:一键量产 以后每次烧录 NAND Flash 的时候,调入保存好的工程文件,一键量产! 图 6 一键量产 产品应用笔记 ?2014Guangzhou ZHIYUAN Electronics Stock CO., LTD. 4 广州致远电子股份有限公司 编程器应用文档 NAND Flash 编程解析 2. NAND Flash 编程小结 虽然 NAND Flash 有这些特殊的地方,但随着人们对“大数据”的追求,应用将越 来越广,高效、稳定的编程工具将能大幅提高由研发到生产的导入效率,为产品市场化 提供有效保障。