6.1 SPI/QPI操作( 三 )


{此处说64KB块共512块似乎有误,按此计算器件容量为32MB,实际上是16MB 。按照后文,应是256块}
状态寄存器中的WPS位用来决定是否使用写保护机制 。当WPS=0(出厂缺省),器件仅使用CMP,SEC,TB,BP[2:0]位来保护指定的阵列区域;当WPS=1时,器件会使用独立块锁定来实现写保护 。
7 状态和配置寄存器
包含3个状态和配置寄存器 。读状态寄存器-1/2/3指令可以用来查询部分信息,如写保护状态,四线SPI设置,安全寄存器锁定状态,擦除/编程挂起状态,输出强度设置,上电和当前地址模式等,注意该访问不关心写入功能是否使能 。写状态寄存器可以用来配置器件的写保护功能,四线SPI设置,安全寄存器OTP锁定,HOLD/RST引脚功能,输出强度和上电地址模式 。对状态寄存器的写访问受到状态寄存器中保护位(SRP0,SRP1)的控制,还受到写使能指令的控制,此外,在标准/双线SPI模式下,还受到/WP引脚的控制 。
7.1 状态寄存器
图4a 状态寄存器1
7.1.1 擦除/写正在进行(BUSY)-仅状态
BUSY是状态寄存器中的只读位,当器件正在执行页编程,四页编程,扇区擦除,块擦除,芯片擦除,写状态寄存器或者擦除/编程安全寄存器等指令时,该位为1 。此时,器件会忽略其他指令,除了读状态寄存器指令,和擦除/编程挂起指令(关注t_W,t_PP,t_SE,t_BE和t_CE等AC参数) 。当编程,擦除或者写状态寄存器/写安全寄存器指令完成后,BUSY位将会清0,以指示器件已经就绪,可接受新的指令 。
7.1.2 写使能锁定(WEL)-仅状态
WEL是状态寄存器中的只读状态位 。当发出一条写使能指令后,WEL会置位 。当器件写禁止后WEL位会清0 。写禁止状态在上电后或者在以下指令完成后发生:写禁止,页编程,四页编程,扇区擦除,块擦除,整片擦除,写状态寄存器,擦除安全寄存器和编程安全寄存器等指令 。
7.1.3 块保护位(BP2,BP1,BP0)-易失/非易失性可写入
块保护位(BP2,BP1,BP0)是非易失性的可读可写位,提供写保护控制和状态 。块保护位可使用写状态寄存器指令(参见t_W参数)来设置 。所有的、无的、部分的存储器阵列区域可以被设置为避免被编程或擦除(参见状态寄存器存储器保护表) 。出厂缺省设置是0,表示任何阵列区域都不保护 。
7.1.4 top/块保护(TB)-易失/非易失性可写入
非易失性的Top/位(TB)控制着块保护位(BP2,BP1,BP0)保护的区域是从Top(TB=0)算起还是从(TB=1)算起(参见状态寄存器存储器保护表) 。出厂缺省状态是TB=0 。TB位可以通过写状态寄存器指令来设置,注意该指令受控于SRP0,SRP1和WEL等位 。
7.1.5 扇区/块保护位(SEC)-易失/非易失性可写入
非易失性的扇区/块保护位(SEC)控制着块保护位(BP2,BP1,BP0)究竟是保护位于Top(TB=0)或者(TB=1)阵列中的4KB的扇区(SEC=1)还是64KB的块(SEC=0),参见状态寄存器存储器保护表 。缺省设置是SEC=0 。
7.1.6 互补保护(CMP)-易失/非易失性可写入
互补保护位(CMP)是状态寄存器中的非易失性的可读可写位 。其用来联合SEC,TB,BP2,BP1,BP0等位,提供更高的存储阵列保护灵活性 。如果CMP设置为1,之前所说的通过SEC,TB,BP2,BP1,BP0设置的保护区域反而不再被保护 。举例而言,当CMP=0时,如果Top 64KB块被设置为保护,其他区域都设置为不保护,则当CMP=1时,Top 64KB块变成非保护区域,但是其他区域变成只读的 。参考状态寄存器存储器保护表 。缺省设置是CMP=0 。
7.1.7 状态寄存器保护(SRP1,SRP0)-易失/非易失性可写入
状态寄存器保护位(SRP1和SRP0)是状态寄存器中的非易失性读写位(位于S8和S7) 。SRP位控制着写保护的方法:软件保护,硬件保护,本次锁定至下次上电时保护,OTP保护等 。