8.1 器件ID和指令集表( 八 )


图34 整片擦除指令(左为SPI模式,右为QPI模式)
8.2.21 擦除/编程挂起(0x75)
擦除/编程挂起指令0x75,允许系统中断一个扇区或者块的擦除操作,或者中断一个页的编程操作,此后,系统可以从芯片中读取数据,或者对其他的扇区或者块进行编程/擦除 。擦除/编程指令序列参见图35a和35b 。
写状态寄存器指令(0x01)和擦除指令(0x20,0x52,0xD8,0xC7,0x60,0x44)在擦除挂起期间不能再使用 。擦除挂起只能够应用于扇区擦除和块擦除操作 。如果在整片擦除过程中,擦除挂起指令会被忽略 。写状态寄存器指令(0x01,0x31,0x11)和编程指令(0x02,0x32,0x42)在编程挂起期间不能使用 。编程挂起指令只能够在页编程或者四输入页编程操作中使用 。
{擦除挂起后可以编程,编程挂起后可以擦除;擦除挂起后不能擦除,编程挂起后不能再编程}
擦除/编程挂起指令0x75仅在正进行扇区或者块擦除,或者正在进行页编程,并且状态寄存器的SUS=0且BUSY=1的情况下使用 。如果SUS位为1,或者BUSY位为0,挂起指令将被忽略 。挂起操作需要最大t_SUS(参见AC特性)时间来执行 。在t_SUS时间之后,BUSY位将会从1清0,而SUS位则将会从0变为1 。如果刚刚一次挂起操作被恢复,则要求在上次的恢复指令0x7A之后最短t_SUS时间之内,不能再次发出挂起指令0x75 。
发生在挂起期间的意料之外的断电行为,将会复位器件,释放挂起状态 。状态寄存器中的SUS位同样会被清为0 。被挂起操作的页/扇区/块中的数据可能已经被破坏 。因此建议用户从系统设计角度考虑引入一些技术手段,保护编程/擦除挂起期间的数据完整性 。
图35a 擦除/编程挂起指令(SPI模式)
图35b 擦除/编程挂起指令(QPI模式)
8.2.22 擦除/编程恢复(0x7A)
在使用擦除/编程挂起指令来挂起扇区/块擦除或者页编程操作后,必须使用擦除/编程恢复(0x7A)指令恢复操作 。仅在状态寄存器中SUS位为1并且BUSY位为0的情况下,这种操作才会被接收 。指令发出之后,SUS位会立刻从1变为0,而BUSY位会在200nS之内从0编程1,扇区/块擦除,或者页编程将会继续完成 。如果SUS位为0,或者BUSY位为1,则恢复指令0x7A将会被器件忽略 。擦除/编程恢复指令序列参见图36a和图36b 。
如果之前的擦除/编程挂起操作被不期望的掉电行为中断掉,则本恢复指令会被忽略 。另外在一次恢复指令发出之后的t_SUS时间之内,不能够再次给出擦除/编程挂起指令 。
图36a 擦除/编程恢复指令(SPI模式)
图36b 擦除/编程恢复指令(QPI模式)
8.2.23 下电(0xB9)
虽然正常操作时的待机电流已经很低,但是仍然可以通过下电指令更进一步降低待机电流 。极低的功率消耗使得下电指令特别适用于电池供电的应用(参见AC特性中的ICC1和ICC2) 。该指令通过拉低/CS发起,然后向器件发送指令码0xB9,参见图37和38 。
/CS引脚的拉高操作必须在第八个时钟位之后进行 。如果没有这么做,下电指令不会被执行 。在/CS拉高之后,将会在t_DP(参见AC特性)之后进入下电模式 。在下电模式下,仅有释放下电/器件ID(0xAB)指令会被识别,该指令恢复器件为正常操作状态 。所有其他指令都会被忽略 。这些指令包括读状态寄存器指令,该指令在正常模式下的任何时刻都是有效的 。在下电模式下,忽略除1条指令外的其他的所有指令,有利于最大程度地进行写保护 。器件上电后的正常模式下,待机电流是ICC1 。
图37a 深度下电指令(SPI模式)
图37b 深度下电指令(QPI模式)
8.2.24 释放下电/器件ID(0xAB)
释放下电/器件ID指令是个多用途指令 。其可以将器件从下电模式中释放,或者从器件中获取电气ID序号 。