单片机/MCU论坛
直播中

SayHell0

3年用户 10经验值
擅长:电源/新能源 嵌入式技术 存储技术 控制/MCU
私信 关注
[问答]

关于SST26VF064B芯片硬件写入保护的问题

阅读芯片文档
文档中硬件写入保护有这样的描述:
  WPEN位通电时的出厂默认设置为“0”,这将在通电后禁用WP#的写入保护功能。WPEN是一个非易失性位;一旦该位设置为“1”,WP#通电后继续启用WP#引脚的写保护功能。WP#引脚仅可保护 块保护寄存器和配置寄存器  不发生更改。
  IOC位优先于配置寄存器中的WPEN位。当IOC位为“1”时,WP#引脚的功能被禁用,WPEN位没有任何功能。当IOC位为“0”,WPEN为“1”时,将WP#引脚拉低会禁止对写入块保护寄存器的操作。

如果WP#拉低(硬件上连接了地),IOC为“0”,WPEN设置成“1”了,我如何改WPEN位?
我知道通过WRSR指令给配置寄存器新值,我试过发送该命令,抓取的该指令波形也正常,读出配置寄存器(RDCR)仍然为0x88(见图)。并且发送RBPR指令读取块保护寄存器串口显示0xFFFF FFFF FFFF FFFF 5555(保护位全置为“1”了) ,抓取的波形图也是对应的波形。
可如图(写保护状态图)配置寄存器是处于保护状态的,WBPR指令是不允许执行的。


综上:相当于我锁住了flash,写也写不进,擦也擦不了。
目前有一个思路是硬件上直接将WP引脚拉高,但这个可能很麻烦。所以,大家有什么别的办法是在软件上可以解除这种保护,让我可以更改配置寄存器或者块保护寄存器中的保护位取消保护?
另外我想吐槽一下这种写入后就不能更改的设计(可能有些地方我根本不懂),这初始化配错了就得重新换一个吗?

  • 配置寄存器
  • 写保护状态
已退回8积分

回帖(1)

SayHell0

2021-10-28 14:11:43
大家注意配置这个芯片的时候,配置寄存器第八位WPEN千万别写入1。如果写入1了,直接改硬件把WP#引脚拉高;软件程序上找很久没找到好办法,但如果块保护寄存器的保护位为0的话,写还是能写的。总之,芯片文档一定要去看。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分