三星nand flash K9K8G08U0M详解

1 特点

  • 电压

      2.7V~3.6V
    
  • 结构

      记忆单元阵列:(1G + 32M)X  8bit
      数据寄存器:(2K + 64)  X  8bit
    
  • 自动编程与擦除

       页编程:(2K + 64)Byte
       块擦除:(128K + 4K)Byte
    
  • 页读取操作

      页大小:(2K + 64)Byte
      随机读:最大20us
      串行存取:最少25ns
    
  • 快速写周期

      页编程时间:典型200us
      块擦除时间:典型1.5ms
    
  • 命令/地址/数据复用I/O口

  • 硬件数据保护

       在电源切换过程中编程/擦除功能会被锁定
    
  • 可靠的CMOS浮栅技术

      耐久强度:100K次编程/擦除周期(带有1bit/512Byte的ECC功能)
      数据保质期:10年
    
  • 命令驱动操作

  • 带有内部1bit/528Byte EDC的智能回写

  • 产权保护的唯一ID

  • 封装

      - K9K8G08U0M-YCB0/YIB0
      	48 - Pin TSOP I (12 x 20 / 0.5 mm pitch)
      - K9K8G08U0M-PCB0/PIB0 : Pb-FREE PACKAGE
      	48 - Pin TSOP I (12 x 20 / 0.5 mm pitch)
      - K9WAG08U1M-YCB0/YIB0
      	48 - Pin TSOP I (12 x 20 / 0.5 mm pitch)
      - K9WAG08U1M-PCB0/PIB0 : Pb-FREE PACKAGE
      	48 - Pin TSOP I (12 x 20 / 0.5 mm pitch)
      - K9WAG08U1M-ICB0/IIB0
      	52 - Pin TLGA (12 x 17 / 1.0 mm pitch) 
    

2 一般说明

K9K8G08U0M有8Gbit的闪存容量以及256Mbit的备用空间,可以为固态应用市场提供最节能的方案。在(2K+64) Byte大小的页上执行写操作通常需要花费200us,在 (128K+4K)Byte大小的块 上执行擦除操作通常需要花费1.5ms。数据寄存器上的数据通常可以以25ns/byte的速度读取出来。I/O引脚可以传输地址、数据以及命令。片上写控制器会自动执行所有的编程和擦除功能,如需要,还包括脉冲重复,内部验证以及数据输出边限。即使是写密集型系统也可以利用K9K8G08U0M的100K次编程/擦除周期来提高可靠性,这100K次编程/擦除周期是通过为纠错码(ECC)提供实时映射算法实现的。K9K8G08U0M是大型非易失性存储应用的最佳解决方案,如固态文件存储和其他需要非易失性的便携式应用。标准TSOPI封装中还提供了两个8Gb芯片堆叠的超高密度解决方案。

表1 引脚描述
名称功能
I/O0~I/O7数据输入/输出
这些I/O脚用来输入命令、地址、数据以及在读操作中输出数据。在芯片没被选中或者输出没有使能的时候,这些I/O脚将处于浮空高阻态(float to high-z)
CLE命令锁存使能
CLE输入脚控制着将命令传输到命令寄存器的路径,当CLE处于高电平时,命令将会在WE信号的上升沿,通过I/O口写入命令寄存器
ALE地址锁存使能
ALE输入脚控制着将地址传输到内部地址寄存器的路径,当ALE处于高电平时,地址将会在WE信号的上升沿锁存进地址寄存器
CE/CE1芯片使能
CE/CE1输入脚是设备的选择控制脚,当设备处于忙碌状态时,CE/CE1高电平将被忽略,并且设备在编程或擦除操作中不会返回到待机模式。
CE2芯片使能
CE2输入脚用于使能第二片K9K8G08U0M
RE读使能
RE输入脚是用来控制串行数据输出的,当RE有效时,将驱动数据数据到I/O总线上。数据在RE下降沿后经过tREA时间开始有效,而内部列地址计数器也增加1
WE写使能
WE输入脚控制I/O口的写操作,命令、地址、数据在WE脉冲的上升沿被锁存。
WP写保护
WP脚可以在电源切换的过程中防止意外的编程/擦除操作,当WP脚处于低电平(有效)时,内部高压发生器发生复位。
R/B / R/B1就绪/忙碌状态输出
RB/RB1输出脚表明设备操作的状态。当输出低电平时,表明当前有编程,擦除或者随机读操作正在执行,当执行完成后,将输出高电平。这是一个开漏输出,当芯片没被选择或输出被禁用时,该引脚不会处于浮空高阻态。
VCC电源 VCC是设备的电源
VSS
N.CNO CONNECTION
导线没有内部连接

图1 K9K8G08U0M功能框图

图1 K9K8G08U0M功能框图

在这里插入图片描述

图2 K9K8G08U0M阵列组织

3 产品介绍

K9K8G08U0M的容量为8448Mbit(8858370048 bit),由524288行(页)组成,每行(页)由2112个列组成,64列备份空间的列地址范围为2048~2111。一个2112byte大小的数据寄存器与存储单元阵列相连,方便页编程和页读操作的数据传输。存储阵列由32个子单元组成,这些子单元串行连接形成一个nand结构。32个子单元的每一个都存在于不同的页内。每个块都由两个nand结构串组成,每个nand结构由32个子单元组成,一个块总共有1081344个nand结构。编程与读操作都是以页为单位进行的,而擦除操作是以块为单位进行的。存储阵列包含8192个可擦除的块,不支持以位为单位的擦除。
蓝色字迹部分可能理解得不是很到位,有疑问的读者建议参考英文版手册自行领悟,若有熟悉这部分内容的读者,可在文章后面留言
K9K8G08U0M复用8个I/O来寻址,该方案通过保持主板设计的一致性,显著减少了引脚数量,并允许系统升级到将来的容量密度。当CE为低电平时,命令、地址和数据可在WE的下降沿通过I/O发送出去,并且在WE的上升沿被锁存。命令和地址分别在CLE和ALE的作用下复用I/O。一些命令只要求一个总线周期,例如复位命令,读状态命令。一些命令要求两个总线周期,如页读(page read),块擦除(block erase),页编程(page program)命令,其中一个周期用来发起,另一个周期则是执行。1056M字节的物理空间需要31bit寻址,因此需要五个周期来寻址,按顺序分别是两个列寻址和三个行寻址。页读和页编程操作在输入命令后都需要5个地址周期来发送地址,而擦除操作则只需要3个行地址周期。通过写明确的命令到命令寄存器,设备将执行对应操作。
除了增强体系结构和接口,设备还包含一个复制编程功能(copy-back),该功能可在不使用额外的缓冲区下将一个页的数据搬到另一个页,与普通页编程操作相比,减少了串行访问和数据输入的时间,极大的提高了固态硬盘应用的系统性能。
K9WAG08U1M是由两片K9K8G08U0M芯片组成的,可通过CE1和CE2单独访问其中的任意一个。因此,就每个CE而言,除了一些AD/DC特性,K9WAG08U1M的基本操作与K9K8G08U0M是一样的。

表2 命令集
名称第1周期第2周期在忙碌时可接收的命令
Read00h30h
Read for copy back00h35h
Read ID90h-
ResetFFh-O
Page Program80h10h
Two-Plane Page Program(4)80–11h81–10h
Copy-Back Program85h10h
Two-Plane Copy-Back Program(4)85–11h81–10h
Block Erase60hD0h
Two-Plane Block Erase60–60hD0h
Random Data Input(1)85h-
Random Data Output(1)05hE0h
Read Status70hO
Read EDC Status(2)7BhO
Chip1 Status(3)F1hO
Chip2 Status(3)F2hO
注意:1.Random Data Input/Output 可以在1页内执行
           2.Read EDC Status只在Copy Back操作上有效
           3.允许在两片芯片间交替操作。除了交替操作,禁止在其它操作中使用F1h和F2h命令。
           4.除了70h,F1h,F2h和FFh命令,禁止在11h和81h命令之间发送任何其它命令。

4 存储映射

K9K8G08U0M是有4块2Gb大小的plane组成。每个plane包含2048个块和2112 byte大小的页寄存器。这将允许在每个plane上同时执行页编程和块擦除操作。块地址映射被规划成可以被划分为存储器上的plane0-1或plane2-3的模式,这样就能执行two-plane program/erase操作。
例如,禁止在plane0和plane2上执行two-plane program/erase操作,也就是说,可以在plane0和plane1或者plane2和plane3上执行two-plane program/erase操作。
图3 存储映射结构示意图

图3 存储映射结构示意图

5 闪存技术说明

初始化无效块

初始无效块是指那些包含1个或多个初始无效位的块,这些块的可靠性没有保障。关于初始无效块的信息称为初始无效块信息。那些带有初始无效块的设备和没有初始无效块的设备拥有相同的质量,它们都拥有相同的AC/DC特性。一个初始无效块不会影响另一个有效块的性能,因为它们的位线(bit line)和公共源线(common source line)被一个选择晶体管隔开。系统设计必须能够通过地址映射屏蔽初始无效块。第1个块,也就是块地址为00h的块,被保证一定是有效块,该块在1bit/512Byte ECC的情况有高达1k次的编程/擦除次数。

识别初始无效块

在出厂之前,除了带有初始无效块信息的位置没有被擦除,其余所有位置都会被擦除。初始无效块的状态记录在备用空间的第1 byte。三星保证在初始无效块的第1页和第2页的第2048 byte地址上的数据不是FFh。初始无效块的信息在大多数情况下也是能擦除的,一旦擦除就不可能恢复。因此,系统必须在原始的初始无效块信息中识别出初始无效块,并且通过下图的推荐流程去创建一张初始无效块表。禁止故意删除原始的无效块信息。
图4 创建初始无效块表流程图

图4 创建初始无效块表流程图

写或读操作中的错误

在闪存的生命周期内,可能会产生额外的无效块。实际情况可参考鉴定报告,为了实现高度可靠的系统,应考虑以下可能的故障模式。如果擦除或编程后状态读取显示错误,应进行块替换。因为某页的编程出错不会影响该块下的其它页中的数据,所以块替换是找一个已擦除的空块,重新编程当前的数据并将原数据块中的数据复制到该替换块中。在读操作中必须使用ECC,为了提高存储率,建议将由单bit错误导致的读取或验证失败由ECC进行回收而无需更换任何块,也就是说,额外的坏块不包含这些回收块。

表3 错误类型与处理
失败类型 检测与对策
擦除失败 擦除之后读状态-->块替换
编程失败编程之后读状态-->块替换
单bit失败 ECC检验-->ECC纠错

图5 编程操作流程图

图5 编程操作流程图
如果编程结果显示出错,标记该块以及出错的页,并将目标数据复制到另一个块。

图6 擦除操作流程图

图6 擦除操作流程图

如果擦除结果显示出错,标记出错的块并用另一个块替换

图7 读操作流程图

图7 读操作流程图

图8 块替换流程图

图8 块替换流程图
步骤1
在擦除/编程操作中,块‘A’在第n页发生一个错误
步骤2
复制块‘A’第1至(n-1)页的数据到另一个块(块‘B’)
步骤3
然后,复制块‘A’保存在缓冲区中第n页的数据到块‘B’的第n页。
步骤4
通过建立无效块表或者其它合适的方案,不再对块‘A’进行擦除或编程。

带EDC的复制操作以及EDC的扇区定义

通常情况下,复制编程操作是一种非常有效的搬迁数据的方式,这种方式无需利用任何外部寄存器,但如果源地址页因为电荷的减少或增加导致出现1bit错误,那么在没有EDC的情况下,复制编程操作可能也会导致错误bit数的累积。
K9K8G08U0M支持带EDC的复制编程操作,这种方法可以防止错误bit数的累积,为了使EDC有效,页程序操作应该在整页(2112byte)或扇区(528byte)上执行。EDC状态位对通过随机数据输入操作修改某些位或字节的扇区无效,然而,在同一地址一次性修改528字节扇区单元的情况下,EDC状态位有效。
一个2112字节的页由4个528字节的扇区组成,一个528字节的扇区由512字节的主区和16字节的备用区组成。
图9 页空间分配图

图9 2112Byte 页定义

图10 512Byte 扇区定义

图10 512Byte 扇区定义

编程操作的寻址

在一个块内,页的编程必须由低地址页往高地址页顺序编程,禁止随机页寻址编程。
图11 页寻址编程

图11 页寻址编程

交替页编程

K9K8G08U0M是由两片K9F4G08U0M组成的,K9K8G08U0M可以在两片K9F4G08U0M之间交替编程。这种交替页编程的系统吞吐量是非交替编程的近2倍。
首先,主机发送页编程命令给其中一片K9F4G08U0M,这里称为片1,由于片1进入繁忙状态,与此同时,片2处于就绪状态,所以主机这是可以给片2发送页编程命令。当片1的页编程命令执行完成,则主机可以无需理会片2的状态,直接向片1发送另外的页编程命令,不过在主机向片1发送页编程命令之前,需先发送F1命令查询片1的状态,只有当片1处于就绪状态下,主机才能发送另外的页编程命令,如果片1处于忙碌状态,则主机需等待片1进入就绪状态。同样的,片2在前一次编程完成后也能发送另外的编程命令,主机可以通过发送F2命令检测片2的状态,当片2处于就绪状态,主机就可以向片2发送另外的编程命令。
这种交替算法将系统吞吐量提高了近2倍,主机可以单独给每片芯片发送页编程命令,这减少了完成操作的时间延迟。
注意:在交替操作过程中,禁用70h命令
图12 交替页编程示意图

图12 交替页编程示意图
状态A:片1正在执行页编程操作并且片2处于就绪状态,所以主机可以给片2发送页编程命令。
状态B:片1和片2都在执行页编程命令。
状态C:片1的页编程结束而片2的页编程还在执行,系统应该发送F1命令去检查片1的状态,如果片1处于就绪状态,即I/O6为1,则系统可以向片1发送另一个页编程命令。
状态D:片1和片2都处于就绪状态
根据上述过程,系统可以在片1、片2上交替页编程操作。

交替块擦除

图13  交替块擦除示意图

图13 交替块擦除示意图
状态A:片1正在执行块擦除操作并且片2处于就绪状态,所以主机可以给片2发送块擦除命令。
状态B:片1和片2都在执行块擦除命令。
状态C:片1的块擦除结束而片2的块擦除还在执行,系统应该发送F1命令去检查片1的状态,如果片1处于就绪状态,即I/O6为1,则系统可以向片1发送另一个块擦除命令
状态D:片1和片2都处于就绪状态
根据上述过程,系统可以在片1、片2上交替块擦除操作。

交替双平面页编程(Two-Plane Page Program)

图14 交替双平面页编程示意图

图14 交替双平面页编程示意图
状态A:片1正在执行页编程操作并且片2处于就绪状态,所以主机可以给片2发送页编程命令。
状态B:片1和片2都在执行页编程命令。
状态C:片1的页编程完成并且处于就绪状态,片2仍处于页编程过程中。
状态D:片1和片2都处于就绪状态。
注意:
在向片1发送下一个页编程命令前要求使用F1h命令查询片1的状态。
在向片1发送下一个页编程命令前要求使用F2h命令查询片2的状态。
根据上述过程,系统可以在片1、片2上交替页编程操作。

交替双平面块擦除(wo-Plane Block Erase)

图15 交替双平面块擦除示意图

图15 交替双平面块擦除示意图
状态A:片1正在执行块擦除操作并且片2处于就绪状态,所以主机可以给片2发送块擦除命令。
状态B:片1和片2都在执行块擦除命令。
状态C:片1的块擦除完成并且处于就绪状态,片2仍处于块擦除过程中。
状态D:片1和片2都处于就绪状态。
注意:
在向片1发送下一个块擦除命令前要求使用F1h命令查询片1的状态。
在向片1发送下一个块擦除命令前要求使用F2h命令查询片2的状态。
根据上述过程,系统可以在片1、片2上交替块擦除操作。

系统接口使用CE don’t-care

为了简化系统接口,CE在数据加载或者串行访问期间处于非活动状态,如下图所示。在该操作下,内部2112字节数据寄存器被当作独立缓冲区,使系统设计更加灵活。另外,对于那些微秒级的音频或者视频应用,在数据加载和串行访问期间不激活CE将明显减小功耗。
图16 带CE don’t-care 的读写操作

图16 带CE don’t-care 的读写操作

命令锁存周期

图17 命令锁存周期

图17 命令锁存周期

地址锁存周期

图18 地址锁存周期

图18 地址锁存周期

数据输入锁存周期

图19 数据输入锁存周期

图19 数据输入锁存周期

读命令之后的串行访问周期(CLE=L, WE=H, ALE=L)

图20 读命令之后的串行访问周期

图20 读命令之后的串行访问周期

注意:传输过程是在± 200mV 的带负载稳态电压下测量的,该参数是抽样测试的,并没有100%测试,当频率高于33MHz时tRLOH是有效的,当频率低于33MHz时tRHOH开始生效。

读命令之后的串行访问周期(EDO Type, CLE=L, WE=H, ALE=L)

图21  读命令之后的串行访问周期(EDO Type)

图21 读命令之后的串行访问周期(EDO Type)

读状态周期以及读EDC状态周期

图22 读状态周期以及读EDC状态周期

图22 读状态周期以及读EDC状态周期

读操作

图23 读操作

图23 读操作

读操作(CE被取消)

图24 读操作(CE被取消)

图24 读操作(CE被取消)

页内随机输出

图25 页内随机输出

图25 页内随机输出

页编程操作

在这里插入图片描述

图26 页编程操作
注意:tADL 是指最后一个地址周期中WE上升沿到第一个数据周期WE上升沿这段时间

带随机输入的页编程操作

图27 带随机输入的页编程操作

图27 带随机输入的页编程操作
注意:tADL 是指最后一个地址周期中WE上升沿到第一个数据周期WE上升沿这段时间, 对于带EDC的操作,相同地址只能使用一次随机数据输入

带随机输入的复制编程操作

图28 带随机输入的复制编程操作

图28 带随机输入的复制编程操作
注意:tADL 是指最后一个地址周期中WE上升沿到第一个数据周期WE上升沿这段时间, 对于带EDC的操作,相同地址只能使用一次随机数据输入

块擦除操作

图29 块擦除操作

图29 块擦除操作

双平面页编程操作

图30 双平面页编程操作
图30 双平面页编程操作

图30 双平面页编程操作
注:除了70h和FFh,禁止在11h和81h之间发送其它命令

双平面块擦除操作

图31 双平面块擦除操作
图31 双平面块擦除操作

图31 双平面块擦除操作

读ID操作

图32 读ID时序图

图32 读ID时序图
表4 ID值
设备 设备码(第2Byte) 第3Byte第4Byte 第5Byte
K9K8G08U0M D3h 51h95h 58h
K9WAG08U1M 与K9K8G08U0M一样
表5 ID定义表
含义
第1Byte制造商代码
第2Byte设备代码
第3Byte内部芯片数量,存储单元类型,可同时编程的页数等等
第4Byte页大小,块大小,冗余区大小,组织,串行访问最小值
第5Byte平面数量,平面大小
表6 第3Byte含义
含义I/O7I/O6I/O5 I/O4I/O3 I/O2I/O1 I/O0
内部芯片数量 1
2
4
8
0 0
0 1
1 0
1 1
存储单元类型 SLC
MLC
TLC
QLC
0 0
0 1
1 0
1 1
可同时编程的页数 1
2
4
8
0 0
0 1
1 0
1 1
多颗芯片间交替编程 不支持
支持
0
1
缓存编程不支持
支持
0
1
表7 第4Byte含义
含义I/O7I/O6I/O5 I/O4I/O3I/O2I/O1 I/O0
页大小(不包含冗余区)1KB
2KB
4KB
8KB
0 0
0 1
1 0
1 1
块大小(不包含冗余区) 64KB
128KB
256KB
512KB
0 0
0 1
1 0
1 1
冗余区大小(字节/扇区) 8
16
0
1
组织 X8
X16
0
1
串行访问最小时间值 50ns/30ns
25ns
保留
保留
0
1
0
1
0
0
1
1
表8 第5Byte含义
含义 I/O7 I/O6 / I/O5 I/O4I/O3 / I/O2 I/O1 I/O0
平面数量 1
2
4
8
0 0
0 1
1 0
1 1
平面大小(不包含冗余区) 64Mb
128Mb
256Mb
512Mb
1Gb
2Gb
4Gb
8Gb
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
保留 0 0 0

6 设备操作

页读取

通过写00h-30h命令以及5byte地址来初始化页读取。在上电初始化后,00h命令已经被锁存了,所以在上电初始化完成后只需要发送5byte地址和30h命令来初始化页读取操作。地址所指定的页的2122byte数据会在20us内传送到数据寄存器中,系统控制器可以通过检测R/B引脚来判断数据是否传输完毕,一旦页中的数据加载到数据寄存器中,则可以通过RE脉冲以25ns一个周期的速度读取数据,重复的RE时钟使数据从起始列地址到最后的列地址不断输出。
通过随机输出命令可以使设备随机输出数据而不是顺序输出数据。下一个要输出的数据的地址,可以通过随机输出命令来改变。在同一个页内,可以多次使用随机输出命令。
图33 读操作时序图

图33 读操作时序图

在这里插入图片描述

图34 随机读操作时序图

页编程

设备的编程是以页为基本单位操作的,但它允许在一个页编程周期内对一个字或连续字节进行多次部分页编程。一个页在没有擦除操作干预的情况下,最多可以有不超过4次的部分页编程操作。在块内应该是顺序寻址的,一个页编程周期包含将高达2112byte的数据加载到数据寄存器的时间以及将数据编程到存储单元这段无法改变的时间。
串行数据的加载周期起始于80h命令,后面跟着5byte地址和串行数据的加载,除了要编程的数据,其余的字无需加载。设备支持页内的随机输入。下一个要输入的数据的地址,可以通过随机输出命令85h来改变,在同一个页内,可以多次使用随机输入命令。
当使用随机输入命令改变某些位或字节时,EDC对相应的扇区是不生效的,然而,改变扇区内528byte数据,EDC状态位会生效。
页编程命令10h初始化编程过程,如果只是发送10h命令而没有前面串行数据加载过程的话,10h命令无法初始化编程过程。内部写状态控制器自动执行编程和验证所需的算法和计时,因此系统控制器可以去执行其它任务。一旦编程开始,可以发送读状态命令读取状态寄存器,系统控制器可以通过检测R/B引脚或状态寄存器的第6位来判断命令是否已完成。在编程没完成前,只有读状态命令和复位命令是有效的。当页编程完成后,可以检测状态寄存器的第0位来判断是否编程成功,内部写校验会检测到无法从1编程到0的错误。命令寄存器会保留读状态命令直到另一个有效命令被写入命令寄存器。

图35 页编程时序图

图35 页编程时序图

在这里插入图片描述

图36 随机编程时序图

复制编程

复制编程操作可以在不使用额外存储的情况下快速而有效的重写数据到一个页。因为不需要串行访问和重新加载这两个周期,这样提高了系统性能。当块的一部分需要更新并且块的其余部分需要复制到其它空闲块的时候,这种作用尤为明显。复制编程操作包含没有串行访问的页读取和页编程两个过程。页读取命令35h会将源地址页中的2112byte数据传送到数据缓冲区中,当设备返回就绪状态,发送85h命令和包含目的地址页的地址,接下来发送10h命令后将开始编程,在tPROG期间,设备会自动执行EDC。编程开始后,可以发送70h或7Bh命令来读取状态寄存器,系统控制器可以通过检测R/B引脚或状态寄存器的第6位来判断编程是否已完成,当复制编程完成后,可以检测状态寄存器的第0位或第1、2位来判断是否编程成功,内部写校验会检测到无法从1编程到0的错误,并且EDC会检查源地址页的每个扇区(528byte)是否只有1bit错误。每个扇区(528byte)不提供2bit以上的错误检测。命令寄存器会保留70h命令或7Bh命令直到另一个有效命令被写入命令寄存器。
在复制编程期间,可以使用85h命令修改数据。当使用85h命令改变某些位或字节时,EDC对相应的扇区是不生效的,然而,改变扇区内528byte数据,EDC状态位会生效。

图37 复制页编程时序图

图37 复制页编程时序图
注意:
1、复制编程操作只在同一平面内有效
2、在同一平面内,禁止将数据从奇数页复制编程到偶数页或者从偶数页复制编程到奇数页,也就是说,复制编程只适用于偶数页与偶数页或者奇数页与奇数页。

图38 复制随机页编程时序图

图38 复制随机页编程时序图
注意:带EDC的操作,同一地址只允许一次随机输入数据

EDC操作

当用户使用带EDC的复制编程操作时,同一地址只允许一次随机输入,当不使用EDC时,则没有这个限制
图39 带EDC的复制页编程时序图

图39 带EDC的复制页编程时序图

块擦除

擦除命令是以块为基本单位进行的,60h命令初始化擦除操作,其后跟着3byte块地址,其中只有A18到A30是有效的,A12到A17会被忽略,地址后面的D0h命令开启内部的擦除过程,这种分两个步骤的方式可以确保不会因为外部噪声导致意外擦除。
在WE的上升沿输入擦除命令,内部写控制器处理擦除和擦除验证,当擦除完成,可以检查写状态位(I/O0)

图40 块擦除时序图

图40 块擦除时序图

双平面页编程

双平面页编程是页编程的拓展,每个平面都有2112byte大小的页寄存器。当设备配置4个存储平面后,使用两组2112byte页寄存器来同时编程2页。但这有限制,双平面编程只能在平面01或者平面23内执行,举个例子,禁止在平面0和平面2使用双平面编程,也就是说,双平面编程可以在平面0和平面1或者平面2和平面3间使用。
当把数据写入到第一个选中的页寄存器后,使用11h命令替换10h命令,因为没有编程过程,R/B的忙碌时间很短,可以通过70h命令来判断设备是否已就绪,接下通过发送81h命令和地址来加载另一个平面的数据,当数据加载完毕,通过发送10h命令来启动编程过程。
R/B和读状态操作与页编程一样,虽然两个平面是同时编程的,但当编程操作完成,每个页都不能使用通过/失败来判断,只要有1页出错状态位0都会被置1.

图41 双平面页编程时序图

图41 双平面页编程时序图
注意:
1、除了A18外,两个块的行地址应该是相同的
2、在11h和81h命令之间禁止使用除70h和FFh命令以外的其它命令

图42 双平面页编程示例

图42 双平面页编程示例
注意:这是在平面0~1上的双平面编程,在平面2~3上双平面编程也是一样的,禁止在平面0&2(平面0&3,平面1&2,平面1&3)上使用双平面编程

双平面块擦除

双平面块擦除操作的基本概念与双平面页编程是相同的,不同平面的2个块同时擦除,发送两次60h命令和3byte地址来擦除2个块,每个平面只能选择一个块,D0h命令启动真正的擦除过程,可以通过R/B引脚或状态位6来检测是否完成。
双平面块擦除只能在平面01或者平面23内执行,举个例子,禁止在平面0和平面2使用双平面块擦除,也就是说,双平面块擦除可以在平面0和平面1或者平面2和平面3间使用。
图43 双平面块擦除时序图

图43 双平面块擦除时序图

双平面复制编程

双平面复制编程是复制编程的拓展,每个平面都有2112byte大小的页寄存器。当设备配置4个存储平面后,使用两组2112byte页寄存器来同时编程2页。
图44 双平面复制编程时序图

图44 双平面复制编程时序图
注意:
1、复制编程操作只能在同一存储平面内使用
2、在同一平面内,禁止将数据从奇数页复制编程到偶数页或者从偶数页复制编程到奇数页,也就是说,复制编程只适用于偶数页与偶数页或者奇数页与奇数页之间。
3、止在平面0&2(平面0&3,平面1&2,平面1&3)上使用双平面复制编程
4、在11h和81h命令之间禁止使用除70h和FFh命令以外的其它命令

图45 双平面复制随机编程时序图

图45 双平面复制随机编程时序图
注意:
1、复制编程操作只能在同一存储平面内使用
2、在同一平面内,禁止将数据从奇数页复制编程到偶数页或者从偶数页复制编程到奇数页,也就是说,复制编程只适用于偶数页与偶数页或者奇数页与奇数页之间。
3、在复制过程使用85h命令改变某些位或字节时,EDC对相应的扇区是不生效的,然而,改变扇区内528byte数据,EDC状态位会生效。
4、在11h和81h命令之间禁止使用除70h和FFh命令以外的其它命令

读状态

设备有一个状态寄存器,可以通过读取这个状态寄存器来判断是否已完成编程和擦除操作以及这两种操作是成功完成,发送70h命令后,一个读周期可以读出该寄存器的值,这两种控制使得系统可以在R/B为公共脚的情况下掌握多个设备的情况。命令寄存器会保留70h命令直到有新的命令发送过来,因此,如果在随机读过程中读状态寄存器,则在读周期开始之前应该发送00h命令。
图46 状态寄存器各位含义

图46 状态寄存器各位含义
注意:
1、表示为“Not Use”的建议在读状态时忽略。
2、F1和F2命令的状态定义和70h的一样。

读取EDC状态

只有在复制编程时才能读取EDC状态,设备包含一个EDC状态寄存器,可以通过读取这个寄存器来判断复制编程中的读有没有错误,发送7Bh命令后,一个读周期可以读出该寄存器的值,这两种控制使得系统可以在R/B为公共脚的情况下掌握多个设备的情况。命令寄存器会保留7Bh命令直到有新的命令发送过来

图47 EDC状态寄存器各位含义

图47 EDC状态寄存器各位含义
注意:
1、表示为“Not Use”的建议在读状态时忽略
2、当扇区(528byte)出现2bit以上的错去时是检测不出来的,也就是说,只能检测扇区中的1bit错误

复位

设备提供复位功能,通过发送FFh命令来执行这个功能,当设备正在执行随机读、编程、擦除操作时,会处于忙碌状态,复位操作将终止这些操作,而这些操作所涉及的存储单元也不再有效,命令寄存器会被清除,若WP为高则状态寄存器会被置成C0h。如果设备已经处于复位状态,那么新的复位命令依旧会被写入命令寄存器,发送复位命令后,R/B引脚会被拉低tRST时间
在这里插入图片描述

图48 复位时序图
  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值