👉个人主页:
highman110
👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容
目录
1.1 数据接口类型概览
ONFI目前支持5中不同的数据接口类型:SDR,NV-DDR,NV-DDR2、NV-DDR3和NV-LPDDR4。SDR是传统的NAND接口,使用RE_n锁存读数据,WE_n锁存写数据,没有时钟。NV-DDR是双数据率(DoubleDataRate-DDR)接口,含有用来锁存命令和地址的时钟,和一个用来锁存数据的数据选通信号。NV-DDR2是双数据率接口,含有额外的扩展速度(scaling speed)的功能,像on-dietermination以及差分信号。NV-DDR3接口包含所有NV-DDR2的特性,但操作在VccQ=1.2V。NV-LPDDR4接口IO使用LTT电平信号。数据接口包含的特性如下表所示。
不同数据速率下所需的功能对照表:
如果上电时VccQ=1.8V或3.3V,则 device 应该操作在SDR接口timing mode 0。如果 Host 在参数page中判定 NV-DDR 和NV-DDR2都被支持,则host可以通过Feature Address为01h的Set Feature命令,来选择其中一个接口以及支持的timing mode。参见ONFI 5.1 5.31.1。
如果上电时VccQ=1.2V,则 device 应操作在NV-DDR3接口timing mode 0。如果host 在参数page中判明了支持的NV-DDR3 timing mode,则host可以通过将CE_n转为高来使能支持的timing mode,并将接口速度改变为期望的timing mode。当host 将CE_n 拉低后,新的timing mode会生效。参见ONFI 5.1 5.31.1。
NV-DDR、NV-DDR2、NV-DDR3、NV-LPDDR4接口使用DDR协议。因此,传输的数据总是偶数byte的。当使用DDR协议时,列地址的最低位应该始终为 0。如果使用 DDR 协议时,列地址的最低位被设为了1,则结果是不确定的。
对于支持2400以上数据速率的设备,NV-DDR3和NV-LPDDR4接口实现具有以下选项。有关这些可选的或供应商特定的模式支持,请参阅供应商数据表。
输入路径拓扑:DQS是否匹配
通电时的差分信号:供应商特定
均衡:可选和供应商特定
写入占空比调整(WDCA):可选
写训练监视器:可选
每引脚Vrefq调整:可选
1.2 信号功能分配
对于NV-DDR,NV-DDR2、NV-DDR3和NV-LPDDR4接口,与 SDR 接口相比,其共同的变化有:
· I/O总线重命名为DQ总线
· 新加了一个名为DQS(DQ strobe)的 DQ 数据总线选通信号。DQS是双向信号,用于数据传输。DQS不能用于命令或地址周期。对于从host到device的数据传输(写),DQS的锁存沿对齐到有效数据窗口的中间;对于从device到host的数据传输(读),DQS的锁存沿对齐到DQ总线的转换沿。当操作在SDR接口时,DQS应该被host拉高,被device忽略。
对于 NV-DDR 接口,与SDR接口相比,主要变化有:
·WE_n变成时钟信号(CLK)。 CLK应该被使能并且具有有效的时钟周期,不论命令周期,地址周期和数据周期什么时候发生。在CE_n为低期间,CLK应保持相同的频率。参见2.9.1。
·RE_n变成写/读方向信号(W/R_n)。该信号表示谁拥有DQ总线和DQS信号。 Host应该仅在ALE和CLE被锁存到0时才能转换W/R_n。参见4.20.2.6中W/R_n 要求。
对于NV-DDR2和NV-DDR3接口,与SDR接口相比,主要变化有:
·RE_n 可作为单端信号(single-ended)或者作为一个互补信号对(RE_t,RE_c)使用
·增加了名为DQS(DQ strobe)的DQ数据总线选通信号。DQS可作为单端信号或者作为一个互补信号对(DQS_t,DQS_c)使用。
对于NV-LPDDR4数据接口,与SDR数据接口相比,变化如下:
•RE_n必须用作互补信号对(RE_t、RE_c)。
•增加了一个用于DQ数据总线的选通信号,称为DQS(DQ选通)。DQS必须用作互补信号对(DQS_t、DQS_c)。
•添加了一个用于DQ数据总线的可选数据总线反相信号,称为DBI_n。DBI_ n指定DQ信号是否被反转。DBI_n被视为DQ,因此AC参数和接口训练等规范应适用于DBI。
信号的对比表格如下:
所有信号定义如下表,不一一翻译了:
1.3 接口模式切换
以下是支持的数据接口间的转换:
·
SDR
到 NV-DDR
·
SDR
到 NV-DDR2
·
NV-DDR
到 SDR
·
NV-DDR2
到 SDR
·
NV-DDR3
到NV-LPDDR4
不支持从 NV-DDR 直接转到 NV-DDR2(反之亦然)。这种情况, host 应先转到 SDR 接口,然后再选择期望的NV-DDR或NV-DDR2接口。而NV-DDR3、NV-LPDDR4的VCCQ为1.2V,自然也不能与其他接口互转。
为了转变接口为 NV-DDR 或 NV-DDR2,或者转变任何时序模式,则需要使用带有Timing Mode feature的Set Feature命令。 Set Feature 命令(EFh),Feature Address,及四个参数,使用当前选定的接口,用当前选中的时序模式来执行。 当发送 Set Feature 命令时,host应在整个命令执行期间(包括参数)驱动DQS信号为高(如果接口支持,则发送Set Feature命令)。 在第四个参数 P4 被执行后,直到经过tlTC 时间之前,host 不能向 device 发送任何命令。在发送 Set Feature 命令后,CE_n 信号转变为高之前, host应在一个idle状态周期内保持信号,并且DQS应被设为1。另外,当使用NV-DDR 接口时,CLK只能在CE_n为高时改变。
不支持从 NV-DDR3或NV-LPDDR4转到其它接口(SDR,NV-DDR或NV-DDR2)。如果 VccQ=1.2V,则只支持 NV-DDR3或NV-LPDDR4 接口。为了改变 NV-DDR3或NV-LPDDR4的时序模式,host应将CE_n变为高,然后将接口速度转换为期望的时序模式。当 host 将 CE_n 拉低后,新的时序模式生效。当转变NV-DDR3 的时序模式时,CE_n变为高之前, host应在一个idle总线状态中保持信号,并且 DQS 应被设为 1。
向device发送任何新命令之前,host应将CE_n转为高。当host将CE_n拉低后,新的接口或时序模式生效。
今天分享到这里,下篇分享ONFI数据接口相关的剩下内容,谢谢