目录
1.1 时序参数
1.2 时序图详解
1.2.1命令锁存时序
1.2.2地址锁存时序
1.2.3数据输入时序
1.2.4数据输出时序
1.2.5数据输出时序(EDO)
1.2.6读状态时序
1.1 时序参数
ONFI协议中明确规定了时序参数的范围,如果不满足要求的最小和最大时序参数时,闪存设备的行为是不确定的。SDR、NV-DDR接口模式下有6种时序,NV-DDR2、NV-DDR3、NV-LPDDR4有22种时序模式,上电后闪存设备处于模式0状态下,闪存设备可以不支持所有时序模式,判断设备是否支持更高时序模式的方法是通过读取闪存的参数页。
SDR、NV-DDR、NV-DDR2、NV-DDR3、NV-LPDDR4各自有一些不同的时序参数,这里只针对SDR和NV-DDR参数进行说明,其他的接口类似,大家可以自行查阅标准文档。
下表为SDR、NV-DDR、NV-DDR2、NV-DDR3、NV-LPDDR4共有的时序参数:
下表为阵列时序参数,这些参数是固定的,具体查看芯片的datasheet。
(tRCBSY,tPCBSY)这两个busy 时间与 cache 操作关联,(tPLEBSY,tPLPBSY,tPLRBSY)这三个busy时间与多层操作关联。这些 busy 时间的典型值和最大值如下表:
CE_n引脚减少机制可能被用于任何接口中。 如果 VccQ=3.3V 或 1.8V,则 CE_n 引脚reduction的配置应该使用 SDR 接口完成。如果 VccQ=1.2V, CE_n 引reduction 的配置应该使用 NV-DDR3 接口完成。在封装内的 daisy chain使用的enumeration信号时序以及 Volume 寻址的时序参数如下表所示。
ZQ校准的时序参数如下表,SDR和NV-DDR没有ZQ校准:
SDR的时序参数如下:
NV-DDR的时序参数如下,所有NV-DDR接口的时序参数都是以CLK的上升沿或者 DQS的锁存沿为基准。注意, R/B_n和WP_n始终是异步信号。对于按时钟测量的参数(如 tDSH),参数分别从CLK或DQS的锁存沿开始测量。
以下两张表为SDR六种时序模式下的参数值:
下表为NV-DDR六种时序模式下的参数值:
1.2 时序图详解
时序图分析仅以SDR接口为例。
1.2.1命令锁存时序
命令锁存是在CLE为高、ALE为低时,在WE_n的上升沿锁存IO引脚上的命令值。时序图如下:
tCLS:CLE建立时间
tCLH:CLE保持时间
tCS:片选建立时间
tCH:片选保持时间
tWP:写使能脉冲宽度
tALE:ALE建立时间
tALH:ALE保持时间
tDS:数据建立时间
tDH:数据保持时间
tWB:写使能拉高到SR[6]为低(写完命令后,有一段时间flash是无法接收命令的)
1.2.2地址锁存时序
地址锁存是在ALE为高、CLE为低时,在WE_n的上升沿锁存IO引脚上的地址值。时序图如下:
tCLS:CLE建立时间
tCS:片选建立时间
tWC:写使能周期
tWP:写使能脉冲宽度
tWH:写使能高电平保持时间
tALE:ALE建立时间
tALH:ALE保持时间
tDS:数据建立时间
tDH:数据保持时间
1.2.3数据输入时序
在CLE、ALE、片选为低时,数据在写使能信号的上升沿写入数据寄存器中。
参数含义同上。
1.2.4数据输出时序
在CLE、ALE、片选为低时,数据在读使能信号的下降沿延迟一段时间后输出到IO上。
tCEA:片选接受时间
tCHZ:片选拉高到输出高阻
tCR:片选有效到读使能有效
tRP:读使能脉冲宽度
tCOH:片选拉高后的输出保持时间
tRR:ready准备好到数据可以输出的间隔
tRC:读使能信号周期
tREH:读使能高电平保持时间
tRHOH:读使能拉高后的输出保持时间
tRHZ:读使能拉高到输出高阻
tREA:读使能到数据可以输出
1.2.5数据输出时序(EDO)
在读使能信号周期小于30ns时,适用此时序图:
tRLOH:读使能拉低后的输出保持时间
1.2.6读状态时序
相当于一段命令锁存时序,一段数据输出时序。在写使能上升沿将读状态命令70h锁存,经过一段时间后将状态寄存器SR的值输出到IO上。
tWHR:命令、地址、数据输入周期到数据输出周期的间隔
tIR:输出高阻到读使能拉低
状态寄存器SR定义:
如果RDY位被清 0,则状态byte中所有其他位(除WP_n外)都是无效的,host应忽略这些值。
FAIL | 如果为1,则表示上一个命令失败。如果为 0,表示上一个命令成功。对于raw NAND操作,该位只在编程或擦除操作时有效。对于EZ NAND操作,该位在读、编程以及擦除操作中有效。在program cache操作期间,该位仅当 ARDY 为1时有效。在支持ZQ 校正的device中,如果ZQ校正失败,则该位被设为1。 |
FAILC | 如果为1,则上一个命令的前一个命令失败(上上个命令)。如果该位为0,在上一个命令的前一个命令成功。该位仅在program cache操作中有效。在Page Cache Program序列中,该位直到第二个15h命令或10h命令被发送后才会有效。如果不支持program cache 操作,则该位不会使用,应被清0。对于EZ NAND操作,该位不被使用(EZ NAND不支持cache命令)。 |
ARDY | 如果为1,则表示没有正在进行的阵列操作。如果为0,表示某个命令正在被执行(RDY被清为0),或正在进行一个阵列操作。如果不支持重叠多层操作(overlapped multi-plane)或cache命令,则该位不会被使用。 |
RDY | 如果为1,表示另一个命令的 LUN 或层地址已经准备好,并且状态值中所有其他位都有效。如果为0,则表示发送的上一个命令还没有执行完,并且SR[5:0]位是无效的,应该被 host 忽略。该位会影响R/B_n 的值,参见 2.18.2(R/B_n 是对应NAND target或Volume上所有LUNs的SR[6](状态寄存器bit6)的值的逻辑与。例如,R/B3_n是所有CE3_n上LUNs的SR[6]值的逻辑与。因此,R/B_n 反映的是特定NAND target上的任何LUN是否处于busy状态)。当cache操作正在进行时,该位表示另一个命令是否可被接受,而ARDY表示上一个操作是否完成。 |
WP_n | 如果为1,则表示 device 不是写保护的。如果为0,表示device是写保护的。不论RDY位是什么值,该位都始终是有效的。 |
VSP | 供应商定义 |