热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WINCE-MLC型NANDFLASHTWO_PLANEPAGEPROGRAM\READ

************************************************************************

/***********************************************************************/

/*                                           Bryan Wang                                                  */

/*                                              2013-8-1                                                    */

/***********************************************************************/

以K9GAG08U0D为例,整理TWO-PLANE读写操作。

1、TWO_PLANE PAGE PROGRAM

Two-Plane page program is an extension of page program, for a single plane with 4314 byte data registers. Since the device is equiped with two memory planes, activating the two sets of 4314 bytes data registers enables a simultaneous programing of two pages.

After writing the first set of data up to 4314 byte into the selected data registers via cache registers, Dummy Page Program commad(11h) instead of actual Page Program command(10h) is inputted to finish data-loading of the first plane. Since no programming process is involved, R//B remains in Busy state for a short period of time(tDBSY). Read Status command(70h) may be issued to find out when the device returns to Ready state by polling the Read/Busy status bit(I/O 6). Then the next set of data for the other plane is inputted after the 81h command and address sequences. After inputting data for the last plane, actual True Page Program(10h) instead of dummy Page Program command(11h) must be followed to start the programing process. The operation of Ready/Busy and Read Status is the same as that of Page Program. Although two planes are programmed simultaneously, pass/fail is not availalbe for each page when the program operation completes. Status bit of I/O is set to "1" when any of the page fails.


  • 基础知识

K9GAG08有两个memory plane, 分别为plane 0 和plane 1, 每个plane包含2048个块,每个plane都有一个data registers(有时也叫做页寄存器,page register),用于缓存数据。

Two-Plane编程的顺序如下图:

N=0时, 那么Flash会先写block 0的第0页,再写block 1的第0页,然后依次为:【block 0 page 1】 -->【 block1 page 1】 -->【block 0 page 2】 -->【 block1 page 2】......

  • 操作步骤、时序
(1)发送命令80h
(2)发送Plane 0中要操作的地址
(3)发送命令11h
(4)等待Read/Busy位变为Ready状态。可用通过检测R/B Pin脚电平,也可以发送Read Status命令,检测Ready/Busy位(I/O 6)。
(5)发送命令81h
(6)发送Plane 1中要操作的地址
(7)发送命令10h
(8)等待Read/Busy位变为Ready状态。可用通过检测R/B Pin脚电平,也可以发送Read Status命令,检测Ready/Busy位(I/O 6)。
(9)检验写操作是否成功:发送Read Status命令,检测状态为I/O 0, 如果该位为1,说明写操作失败;如果该位为0,说明写操作成功。

2、TWO-PLANE PAGE READ

Two-Plane Page Read is an extension of Page Read, for single plane with 4314 byte data registers. Since the dvice is equipped with two memory planes, activating the two sets of 4314 bytes data registers enables a random read of two pages. Two-Plane Page Read is initiated by repeating command 60h followed by three address cycles twice. In this case, only same page of same block can be selected from each time.

After Read Confirm command(30h) the 8628 bytes of data within the selected two page are transferred to the cache registers via data registers in less than 60us(tR). The system controller can detect the completion of data transfer(tR) by monitoring the output of R/B pin.

Once the data is loaded into the cache registers, the data output of first plane can be read out by issuing command 00h with Five Address Cycles, command 05h with two column address and finally E0h. The data output of second plane can be read out using the identical command sequences.


  • 操作步骤、时序

(1)发送60h,然后发送plane 0 中对应页的地址(3 cycle)

(2)发送60h,然后发送plane 1 中对应页的地址(3 cycle)

(3)发送30h,此时,8628字节的数据被传输每个plane的页寄存器中

(4)检测R/B pin脚信号,判断数据传输是否完成

(5)发送00h,并发送plane 0 中要操作的地址(5 cycle,其中两个cycle的 column address被置为全0状态),然后发05h,再发column address(2 cycle),最后发E0h, 接收plane 0 中读取的数据

(6)发送00h,并发送plane 1 中要操作的地址(5 cycle,其中两个cycle的 column address被置为全0状态),然后发05h,再发column address(2 cycle),最后发E0h, 接收plane 1 中读取的数据


推荐阅读
author-avatar
周笨笨真笨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有