ISSI系列的NorFlash芯片留有隐藏的Safeguard寄存器,该寄存器每一位对应一个Sector,每个字节对应一个Block,默认全为0xFF,如果有bit位是0即代表对应扇区被写保护,无法擦除编程,验证操作如下:
1、读取Safeguard寄存器,确认数据是否全为0xFF,读取时序如下:
2、如果有bit位为0,则执行清除Safeguard寄存器指令,操作成功后Safeguard寄存器应该全部为0xFF。清除时序如下:
3、出现以上异常一般是不小心发送了芯片隐藏的Write Safeguard指令,Write Safeguard指令时序如下:
注:触发写safeguard register的时序有两种可能,因为写使能有两种方式:
55h XXXXXXh →AAh XXXXXXh→A0h XXXXXXh →AAh XXXXXXh→23h(Write safeguard register) 24 02 00 00 78 67 53 57h
06h(WREN) →23h(Write safeguard register) 24 02 00 00 78 67 53 57h