硬件 WP 引脚(Write Protect Pin) 是 NOR Flash(如 SST25VF016B)芯片上的一个专门引脚,用于通过外部电平信号控制写保护行为。
✅ 简单解释:
当 WP#(Write Protect)引脚为低电平(0)时,会启用某些写保护机制,从而限制对特定寄存器或区域的写操作。
📌 WP# 引脚的具体作用(以 SST25VF016B 为例):
💡 用途一:保护状态寄存器(SR)不被修改
-
SST25VF016B 的状态寄存器(
Status Register
)包含位BP0~BP2
,用于设置写保护区域。 -
若 WP# 引脚为 低电平,则:
-
状态寄存器中的写保护位(Block Protect Bits)不可被写入
-
也就是说,软件不能修改写保护配置,即使你用写指令(
0x01
)
-
💡 用途二:与 SR 配合,实现部分 Flash 区域不可写
-
你可以在软件中设置写保护某个区域(比如前 1/4 Flash)
-
然后拉低 WP#,让该配置锁定
-
程序运行时,即使有人想通过 SPI 解锁,也无效
🎯 举例说明:
✅ 正常写流程(WP# = 高电平或悬空):
主控 SPI 发: 1. 写使能(0x06) 2. 写状态寄存器(0x01)设置保护区域 BP2/BP1/BP0 3. 写数据(0x02)
→ 写保护位生效,你可以控制保护或不保护哪些区域。
❌ 拉低 WP# 后:
-
第 2 步将失败(写状态寄存器被硬件禁止)
-
原有的写保护设置无法更改
-
达到防篡改效果
⚠️ 注意事项:
项目 | 说明 |
---|---|
WP# 是低电平有效(Low Active) | 所以引脚名常写作 WP# |
引脚通常需上拉电阻 | 防止浮空导致误保护 |
若系统不使用 WP 功能 | 可直接接高电平或悬空(看手册) |
WP# 只保护“状态寄存器” | 不影响普通数据写入(除非状态寄存器禁止) |
📦 WP# 作用总结
功能 | 是否影响 |
---|---|
禁止写入状态寄存器 | ✅ 是(主作用) |
禁止修改 Block Protect 位 | ✅ 是 |
影响普通数据页写操作 | ❌ 否(除非区域被 SR 限制) |
✅ 总结
-
WP#
是硬件层的写保护控制引脚 -
主要用来锁定写保护配置(SR),防止被软件修改
-
在一些安全敏感系统中,可配合上电时拉低
WP#
达到固化保护策略的目的 -
如果不需要该功能,可以悬空或拉高