打印
[技术讨论]

W25Q128 只能读出来不能写不能擦除 怎么恢复?

[复制链接]
2541|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
肥羊|  楼主 | 2024-3-11 14:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
肥羊|  楼主 | 2024-3-11 14:03 | 只看该作者
仅仅3个状态/配置寄存器
  状态寄存器:
  读状态寄存器1、2、3指令可以用来提取闪存阵列可用性状态、设备是否是写使能、写保护状态、Quad SPI设置、保密寄存器上锁状态、擦除/编程挂起状态、输出驱动力、上电和当前地址模式。写状态寄存器指令可以用于配置写保护、Quad SPI设置、保密寄存器OTP锁、HOLD/RESET功能切换、输出驱动力、上电地址模式。对状态寄存器的写访问是由非易失性状态寄存器保护位(SRPO, SRP1)的状态控制的。
  状态寄存器1:


每个位的介绍:
(1) Erase/Write In Progress(BUSY)(只读)
  当设备正在执行页编程、Quad页编程、扇区擦除、块擦除、芯片擦除、写状态寄存器或者执行擦除、编程保密寄存器指令的时候,硬件置1。在此期间设备忽视其他指令。当完成上述操作之后有自动恢复为0表示不繁忙。
(2) Write Enable Latch(WEL)(只读)
  当接收到写使能指令之后该位置为1;当设备写失能之后该位清0。
(3) Block Protect Bits(BP2,BP1,BP0)(读写)
  这3个位提供写保护控制和状态。一般情况下用不着,除非怕别人抄板读取信息。
(4) TB(可写)
  非易失性的上/下位(TB)控制块保护位(BP2, BP1, BPO)是否保护数组的上(TB=0)或下(TB=1),如状态寄存器内存保护表所示。出厂默认设置为TB-0。TB位可以根据SRPO、SRP1和WEL位的状态通过写状态寄存器指令来设置。
该位配合BP2,BP1,BP0控制着着保护哪一块区域的内存,具体可以看看手册上的状态寄存器内存保护表(Status Register Memory Protection Table)。
(5) SEC(可写)
  该位为1表示保护的是4KB扇区,为0表示保护的是64KB扇区。同样可以参考状态寄存器的内存保护表。
(6) SRP0(可写)
  配合SRP1和WP引脚来决定写保护的方式。有软件保护、硬件保护、电源供应上锁、一次性可编程保护。
  状态寄存器2:


(1) Erase/Program Suspend Status(SUS)(只读)
  当执行擦除/编程挂起(75H)指令时,该位置1。当执行擦除/编程恢复指令(7AH),或者断电上电时该位为0。
(2) Security Register Lock Bits(LB3,LB2,LB1)(一次性可编程)
  出厂时这3个位为0,此时保密寄存器不上锁。LB3-1是一次性编程的,如果置位1之后就不能修改了,同时相应的256字节保密寄存器将永久的变为只读,不可修改。
(3) Quad Enable(QE)(可写)
  用于切换标准SPI或者是Quad SPI,当该位为0,WP引脚和HOLD引脚使能。当该位为1,WP引脚变为IQ2功能,HOLD变为IO3功能。该位置位1之后,可以发送38H(Enter QPI)指令切换到QSPI模式。如果没有置1就发送Enter QPI指令是没用的。在QSPI模式下,写状态寄存器命令是无法改变QE的。
  状态寄存器3:

(1) Write Protect Selection(WPS)(可写)
  该位用于选择写保护方案。为0使用的方案是CMP,SEC,TB,BP[2:0]位保护指定内存。为1使用的方案是个人块锁存。
(2) Output Driver Strength(DRV1,DRV0)(可写)
  用于读操作期间,默认为11,强度最低,最大的话就设置成00。这个应该是跟SPI驱动力有关的,了解下即可。
(3) /HOLD or /RESET Pin Function(HOLD/RST)(可写)
  用于选择对应硬件引脚的功能是HOLD还是RESET。当QE为1,该位不起作用。该位如果是1,对应引脚是复位的功能,否则是HOLD的功能。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/qq_40993639/article/details/122053404

使用特权

评论回复
板凳
肥羊|  楼主 | 2024-3-11 14:04 | 只看该作者
这里是介绍SR寄存器的文章

使用特权

评论回复
地板
肥羊|  楼主 | 2024-3-11 14:04 | 只看该作者
我不知道怎么回事改不了的

使用特权

评论回复
5
lfc315| | 2024-3-11 14:50 | 只看该作者
看看有没有写保护引脚,被设置成写保护状态。

使用特权

评论回复
6
yueguang3048| | 2024-3-11 15:10 | 只看该作者
极大概率是写保护

使用特权

评论回复
7
肥羊|  楼主 | 2024-3-11 15:20 | 只看该作者
lfc315 发表于 2024-3-11 14:50
看看有没有写保护引脚,被设置成写保护状态。

没有开始的时候还是好好的

使用特权

评论回复
8
trucyw| | 2024-3-12 08:31 | 只看该作者
WP的控制是不是不正常

使用特权

评论回复
9
一叶倾城wwq| | 2024-3-12 08:58 | 只看该作者
引脚接对了没?有一个引脚是控制写保护的,还有就是写函数有没有问题?排查一下

使用特权

评论回复
10
肥羊|  楼主 | 2024-3-13 15:47 | 只看该作者
不知道为什么莫名奇妙的写保护了,把SR1=0xFC 写成SR1=00;就可以继续使用了

使用特权

评论回复
11
肥羊|  楼主 | 2024-3-13 15:47 | 只看该作者
一叶倾城wwq 发表于 2024-3-12 08:58
引脚接对了没?有一个引脚是控制写保护的,还有就是写函数有没有问题?排查一下 ...

接对了

使用特权

评论回复
12
肥羊|  楼主 | 2024-3-13 15:52 | 只看该作者
https://blog.csdn.net/fjh1997/article/details/120751326
去除写保护

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

271

帖子

1

粉丝