little_white321 2023-01-29 17:36 采纳率: 66.7%
浏览 41

如何解除s25系列FLASH的写保护

在完成通过网口的远程更新过程中,我在sdk中将例程srec spi bootloader引导程序跑通可以成功加载功能程序后,无法再用spi相关指令对s25fl256s FLASH进行擦除读写,调试中发现读id正确,读FLASH发现readbuffer中均为0xcc,用vivado读flash数据发现对应区域均为0xff,但是用vivado可以向flash中烧写程序,如下图所示:

img

在这之前调试flash发送相关指令进行擦除读写时均正确,我猜测是bootloader跑通之后将flash的写保护打开了,需要解保护才能对flash操作,根据s25fl256s数据手册,我尝试过将SR1的BP2、BP1、BP0这三位修改为0以及CR1寄存器的BPNV位设置为1来解除写保护,不仅没有解决问题,反而遇到了更大的错误,原先可以用vivado向flash中烧写文件现在用vivado烧写也失败,报错如下图:

img

仔细阅读flash数据手册发现CR1的BPNV位是OTP(One Time Program)类型的,即设备出厂后只能更改一次,CR1的BPNV位出厂状态下是0,被改为1后flash每次掉电重新上电后全局写保护始终开启,且无法再次将BPNV位改回去(目前我没找到办法),所以目前我遇到的问题就是如何解除s25fl256sFLASH的写保护,以及srec spi bootloader引导程序是如何给flash加上保护的,我给代码打断点实在没看出来。
想问下大家有没有遇到过这种情况,以及怎么解决的,先谢谢各位了。

  • 写回答

2条回答 默认 最新

  • 「已注销」 2023-01-29 22:34
    关注

    你用的什么厂家的

    评论

报告相同问题?

问题事件

  • 创建了问题 1月29日

悬赏问题

  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败