只读分享解决方案文档调试&解决方案📅 2026-09-21🔖 Rev 1.0⏳ 29天有效(至 2026-10-31)
🔧解决方案&应用市场分析 -> 调试&解决方案 -> 存储_量产问题排查 -> 写保护误触发_SR_BP位_量产排查

写保护误触发_SR_BP位_量产排查

生成时间 2026-09-28 13:34:50 有效期至 2026-10-31 23:59:59(29天有效(至 2026-10-31))

写保护误触发 · SR BP 位 量产排查

编制日期 2026-09-21 | 版本号 Rev 1.0

XTX 芯天下 · FAE 现场技术文档 | SPI NOR 状态寄存器(SR)Block Protect 位误触发 | 量产烧录 / 在板写失败 / 读回 FF | 2026-09 版

技术事实核查纪律(执行前必读)

SR 位定义、BP[2:0] 编码与保护范围、写 SR 命令码全部以具体料号 datasheet 为准;本文仅展示排查机制与典型布局。

  • 本文讨论的是状态寄存器 Block Protect 位误触发导致的写保护,与「烧录器找不到型号」是两件事。判别要点:烧录器能正常建工程、能烧、能校验通过,但装板写不进 / 读回 FF,就是本文范围;烧录器根本选不到型号,请查《SPI_NOR_烧录找不到型号_解决方案.html》。
  • 涉及解除 SR 写保护 / 整片擦除的操作在多数器件上会触发全片擦除,属不可逆动作,见第 8 章与 FAE 结案栏的危险操作提示。
  • 本文给出的位序、命令码(05h/35h/15h 读 SR、06h 写使能、01h 写 SR 等)是各厂商常见写法,并非所有器件与所有平台都一致,动手前逐条核对 datasheet。
先读 SR
BP / SEC / TB / CMP / WPS / WP#
再怀疑芯片坏了——多数「写死」只是寄存器锁着
BP[2:0]
编码 → 保护区间
顶 / 底方向由 TB 定,粒度由 SEC 定,语义由 CMP 反转
06h + 01h
WREN 后再 WRSR 才是清 BP 的正解
命令码以具体料号 datasheet 为准
出厂读 SR
必须落到已知值(通常 0x00 或 0x60)
只校验 ID 不校验 SR 会放走带保护的良品
装板实跑
唯一有效的验收动作
整片可写才是真的解保护

一句话结论:「烧录能过、装板写不了 / 读回 FF / verify 失败」优先读状态寄存器—— 看 BP / SEC / TB / CMP / WPS 与 WP# 引脚电平。解保护后再烧,并把出厂默认 SR 写进参数卡。 九成以上的「写保护误触发」不是器件坏,是SR 被写错 / 没清 / 被继承,属于可完全恢复的工艺与工装问题。

这份文档解决什么

解决的是SPI NOR 量产中因状态寄存器(SR)Block Protect 位误触发,导致擦写失败、数据写不进去、读回全 FF 这一类问题的定位与根治方法。全文按「机制 → 总览 → 六类误触发 → 速查 → 防复发 → 结案」组织: 第 1 章讲清 SR 架构与 BP 保护范围,第 2 章给排查主线和八类场景汇总, 第 3~8 章逐类拆解根因与立即 / 根治动作,第 9 章是可直接翻查的速查矩阵,第 10 章与附录给出防复发与结案模板。

场景 1
烧录器未发写使能直接改 SR
初始化流程里跳过 WREN(06h)就发 WRSR(01h),状态寄存器写不进去或被控制器忽略,残留的旧 BP 保护让后续擦写全部失败。器件本身完全正常,是「门没开就推」。
高发动作:烧录算法里漏掉 06h 前置
场景 2
烧录器给错 SR 字节值
默认把 SR 写成了 FF(全 1),等价于把所有 BP 位、SEC、TB、CMP 全部置位——整片进入最大保护。看起来像「芯片写死」,其实是寄存器被写爆了。
高发动作:参数卡里 SR 默认值填错
场景 3
工厂测试写 SR 忘了恢复
测试阶段为了验证某功能临时改了 BP / QE,下电前没写回出厂默认,这颗就带着保护状态流到下工位,烧录与装板都异常。
高发动作:测试脚本缺「最后一步恢复」
场景 4
verify 只校验 ID 不校验 SR
烧录工程的校验项里只有 ID 与数据,没有 SR 读回比对。于是「数据对、ID 对、但 BP 还锁着」的板子被当成良品放出去。
高发动作:良品判据漏了 SR 一项
场景 5
改 QE 时把 BP 一并改了
编程器在切 Quad 模式写 SR2 的 QE 位时,把 SR1 也顺手改了,BP 被带上新值。现象是「换个读模式就写不了」。
高发动作:SR2 与 SR1 分次写却共用脏值
场景 6
SR 寄存器顺序错误
先写 SR2 改了 QE,但 SR1 还没解锁(WEL 未置位 / 写保护锁着),后续对 SR1 的写操作失败,BP 停留在非预期值。
高发动作:多寄存器写入不按依赖顺序
场景 7
多线程同时改 SR 造成 race
烧录工装并发处理多颗或同一颗被两条线程交替写 SR,WREN 与 WRSR 交错,最终 BP 落在随机值。间歇性、难复现是它的最大特征。
高发动作:并行程式缺 SR 写互斥锁
场景 8
清空步骤遗漏:上一颗 BP 被继承
离线座的清空 / 初始化步骤被跳过,上一颗的 BP 状态直接继承到下一颗,呈现「同一夹具有的过有的不过」。
高发动作:座烧流程省了清 SR 这一步

怎么用这份文档

  1. 先读 SR,再动板子:拿到一颗「写不了」的器件,第一动作是用烧录器或逻辑分析仪读 SR1/SR2/SR3, 看 BP / SEC / TB / CMP / WPS 与 WEL 位,不要一上来就换芯片或判不良。
  2. 抓一份「已知好板 / 好料」基线:把能正常烧录那批料的 SR 默认值、参数卡、烧录算法版本各存一份, 后面所有比对都拿它当基准。
  3. 用第 2 章的排查主线收敛:读 SR → 判 BP/方向/粒度 → 判 WP#/WPS → 判是否锁死 → 解保护 → 重烧 → verify → 装板实跑, 不要跳步。
  4. 一次只改一个变量:WREN 前置、SR 字节值、写顺序、并发锁、清座步骤每次只动一处,改完重烧验证。
  5. 用装板实跑闭环:任何解保护动作的最终判定,以「装板跑通 + 关键区回读 + 一次断电重启」为准,而不是烧录器显示通过。

1. 问题本质:SR 寄存器与 BP 保护机制

「写保护误触发」这句话在现场被用得太泛。它可能是 BP 位被写成了全 1(最大保护), 可能是 TB 方向反了(你以为保护顶部、实际保护了底部),可能是 SEC 粒度错了(按 4 KB 算却按 64 KB 去解), 也可能是 CMP 把整张保护表反转了。本章先把寄存器还原成机制:讲清 SR 的三组关键位、 BP 位到底保护哪段地址,然后把本文的排查对象与「烧录器找不到型号」严格切开。

1.1 状态寄存器架构

SPI NOR 通过一组状态寄存器管理写保护、Quad 模式、保护语义等运行时行为。 不同厂商把位塞进 SR1 / SR2 / SR3 三组的命名不同,但职责高度一致: SR1 管 BP 块保护与写使能,SR2 管 QE 等扩展模式,SR3 管 CMP / WPS 等保护语义反转与 WP# 引脚语义。 下图为常见布局示意,实际位号以料号 datasheet 为准。

状态寄存器架构(位序为常见布局示意,具体位号以料号 datasheet 为准)SR1BP 与基础保护b7SRPb6SECb5TBb4BP2b3BP1b2BP0b1WELb0BUSYSR2Quad 与扩展b7–b6–b5–b4–b3–b2–b1QEb0–SR3保护语义反转b7–b6CMPb5–b4WPSb3–b2–b1–b0–关键位(BP0/1/2、SEC、TB、QE、CMP、WPS)以橙框标出;预留位以「–」表示。实际位号、读写属性、保留位定义以具体料号 datasheet 为准。
图 1 · SPI NOR 状态寄存器架构与关键位分布
读 SR 的命令码

SPI NOR 读状态寄存器通常是 05h(SR1)、35h(SR2)、15h(SR3), 返回 1 字节(部分大容量器件 SR2/SR3 也可能是不同命令或扩展读)。 命令码与返回字节数以具体 datasheet 为准,不要照抄其它厂商或型号。

寄存器关键位(以 datasheet 为准)职责误触发关注点
SR1BP0 / BP1 / BP2、SEC、TB、SRP、WEL、BUSY块保护范围、保护方向、粒度、写使能BP 被写错 / 没清 → 整片或半片不可写
SR2QE(Quad Enable)等扩展位Quad 模式使能、部分器件的保护扩展改 QE 时误改 SR1,连带 BP 变化
SR3CMP(Complement Protect)、WPS(Write Protect Select)等保护语义反转、WP# 引脚语义选择CMP=1 把保护范围整体反转

1.2 BP 位的保护范围

BP[2:0] 三位决定有多少存储区域被保护,但它不是孤立的——保护区间的起点方向由 TB 位定, 粒度由 SEC 位定,语义还能被 CMP 位整体反转。四者必须一起看:

  • BP[2:0]:保护块数编码,从 000(无保护)到 111(全片保护)。中间值对应「顶部 / 底部若干块」。
  • TB(Top/Bottom):0 = 从顶部(高地址)开始保护;1 = 从底部(低地址)开始保护。
  • SEC(Sector):0 = 按 64 KB 块计算保护粒度;1 = 按 4 KB 扇区计算(粒度更细,小区域也能精准保护)。
  • CMP(Complement):1 时保护语义整体反转——原本被保护的区域变开放、原本开放的变保护。
BP2BP1BP0典型保护比例(64 块器件,TB=0、SEC=0、CMP=0)说明
000无保护全片可写(出厂默认常见目标)
001顶部 1/64仅顶部最小块受保护
010顶部 1/32保护块数随编码递增
011顶部 1/16—
100顶部 1/8—
101顶部 1/4—
110顶部 1/2—
111全片保护等效写死,全部不可写
最容易踩的两个坑

坑一:只清 BP 没看 CMP。CMP=1 时你清掉 BP 反而把整片锁死,因为语义反转后「无 BP」等价于「全保护」。 解保护前务必先读 CMP,必要时先把它清零再处理 BP。

坑二:TB 方向搞反。你以为保护的是固件区(顶部),实际 TB=1 把启动代码(底部)锁了, 于是装板直接起不来。解保护前先确认 TB 与 BP 共同决定的真实保护区。

1.3 误触发的机理

「误触发」的本质是:BP 位携带的保护状态,和当前工序期望的状态不一致。 它不来自器件缺陷,而来自写 SR 这个动作本身出错——要么没写(漏 WREN)、要么写错值(FF 全开)、 要么写了但没清(测试残留)、要么并发写乱(race)、要么从上一颗继承(清座遗漏)。 第 2 章开始把八类场景按这个机理归类。

机理环节出了什么错现场表现对应类目
写 SR 的使能没发 WREN 就 WRSR,写被忽略BP 停留在旧值,改不动第 3 章
写 SR 的值写了 FF / 错误字节整片进入最大保护第 4 章
写 SR 的校验只校验 ID 不校验 SR带保护的板子被放良品第 5 章
写 SR 的顺序SR2 先于未解锁的 SR1SR1 写失败,BP 非预期第 6 章
写 SR 的并发多线程 / 多颗竞争写BP 落到随机值,时好时坏第 3 章
写 SR 的清理清座步骤遗漏,继承上颗同夹具有的过有的不过第 3 章
一句话机制

把「写保护误触发」拆成三个可证伪的命题,逐个排除: ① SR 有没有被正确读出来(命令码对不对、读没读到非 FF)、 ② BP/TB/SEC/CMP 组合是不是预期值(保护区是否错配)、 ③ WP#/WPS 有没有在硬件层面把写挡住。 任何一例现场问题,都必须先回答这三个问题再动手。

2. 方案总览:排查主线与场景汇总

写保护误触发在统计上不算「器件失效」,而是工艺 / 工装 / 参数卡的协同失误: 某一步把 SR 写错了、没清、被并发写乱、或从上一颗继承。它的难点不在修复(清 BP 即可), 而在定位是哪一步、以及怎么防止整批复发。本章先把排查主线画成一张可照做的流程图, 再把八类误触发场景汇总成一张可归档的表,后面六章逐类展开。

2.1 排查主线

无论现场表现多乱,都按下面这条主线走:读 SR → 判 BP/TB/SEC/CMP → 判 WP#/WPS → 判是否锁死 → 解保护 → 重烧 → verify → 装板实跑。 每一步只回答一个是非题,不要跳步——尤其是「先读全 SR 再动手」这一步,能避免把一顆本来没锁的料号误整片擦。

① 读 SRRDSR 05/35/15读 SR1/2/3② 判 BP/TB/SEC/CMP保护区间与方向③ 判 WP# / WPS引脚电平与语义④ 判是否锁死SR 写保护 / 整片锁⑤ 解保护WREN → WRSR清 BP / 关 CMP⑥ 重烧 + verify写回数据并校验⑦ 装板实跑确认整片可写⑧ 出厂登记记录 SR 已知值分支:② BP≠0 → 走 ⑤ 解保护;③ WP# 拉低 → 先拉到允许电平;④ 锁死 → 整片擦恢复(不可逆)。命令码(05/35/15/06/01/9F 等)为常见写法,具体以料号 datasheet 为准;解保护前务必先读全 SR 再判断。
图 2 · 写保护误触发排查主线:读 SR → 判保护 → 解保护 → 重烧 → 验收
主线里最容易被跳的一步

「判 WP# / WPS」常被跳过。软件层面把 BP 清得干干净净,但板子上 WP# 引脚被拉低 且 WPS=0(由引脚决定), 状态寄存器照样写不进去。在板烧录失败时,WP# 电平与 WPS 位是和 BP 同等优先级的排查项,见第 7 章。

2.2 八类误触发场景汇总

下面八类覆盖产线上 SR BP 误触发的绝大多数来源。归档时先按场景定到某一类,再翻对应章节——不要一上来就逐章读。

场景触发动作现场表现所属类目
1烧录器未发 WREN(06h)直接 WRSRSR 写不进去,BP 停留旧值第 3 章
2烧录器给错 SR 字节值(如默认 FF)整片进入最大保护,等效写死第 4 章
3工厂测试写 SR 后忘了恢复出厂带保护状态的料物流向下工位第 4 章
4烧录 verify 只校验 ID 不校验 SR带保护的板子被当良品放走第 5 章
5改 QE 时把 BP 一并改了切 Quad 模式后写不进第 4 章
6SR 顺序错误:先写 SR2 后 SR1 未解锁SR1 写失败,BP 非预期第 6 章
7多线程同时改 SR 造成 raceBP 落随机值,间歇性失败第 3 章
8清座步骤遗漏,上一颗 BP 被继承同夹具有的过有的不过第 3 章

2.3 BP 保护范围示意

理解 BP 位到底保护哪段地址,是解保护的前提。三个控制位必须一起看:TB 定方向、SEC 定粒度、CMP 定语义。 下图给出典型 8 块器件的保护区示意与 BP 编码速览,具体比例与方向务必回到 datasheet 核对。

BP 位保护范围示意(以 datasheet 为准;本图取 8 块示例)高地址(顶)块 7保护块 6保护块 5保护块 4块 3块 2块 1块 0低地址(底)示例:TB=0 且 BP 选中顶部 3/8 区域被保护TB 位 · 保护方向0=顶部保护;1=底部保护,决定保护区位置。SEC 位 · 保护粒度0=按 64KB 块;1=按 4KB 扇区(粒度更细)。CMP 位 · 语义反转1 时保护区语义整体反转(原保护变开放)。BP[2:0] 编码 → 保护比例(典型)000无保护(出厂默认常见目标)001顶部 1/64011顶部 1/16100顶部 1/8110顶部 1/2111全片保护(等效写死)具体比例 / 粒度 / 方向以料号 datasheet 为准;CMP=1 时上表整体反转。
图 3 · BP 位保护范围:保护方向、粒度与 CMP 反转示意
一个常用心智模型

把 BP 想成「从顶或底数起的连续保护区」:TB 决定从哪头数,BP[2:0] 决定数几块,SEC 决定每块是 4 KB 还是 64 KB, CMP 是一面镜子——镜子里保护区和镜子外互换。解保护时,先拿掉镜子(清 CMP),再看从哪头数、数了几块。

3. 第 1 类:烧录器初始化与状态继承

这一类是工艺步骤的缺失,不是器件问题:烧录器在写 SR 这件事上「没按规矩来」, 导致 BP 保护状态不正确地保留或随机化。它覆盖场景 1(缺 WREN)、场景 7(多线程 race)、场景 8(清座遗漏继承), 三者的共同点是解保护的「正确时序」被破坏或跳过。

烧录器初始化 / 写 SR 正确时序(命令码以 datasheet 为准)与三类失败注入点① 上电 / 复位编程器建立通信,确认器件在线② 读 SR1/2/3 建立基线记录当前 BP / WP# / CMP 状态③ 判保护状态若 BP≠0 或 CMP=1 → 需解保护④ 发 WREN(06h)先置 WEL,否则后续写 SR 无效⑤ 发 WRSR(01h)清 BP / 关 CMP写回预期 SR 值⑥ 读回 SR 确认已更新与预期值逐位比对⑦ 烧录数据 + verify写后校验数据正确⑧ 出厂前读 SR 落已知值若需量产保护,⑦ 前先写回保护场景 1 · 缺 WREN步骤 ④ 被跳过 → ⑤ 的 WRSR 写无效,BP 停留在旧值。立即动作:补 ④ 前置 / 加 SR 写互斥锁 / 每次烧前重读 SR。场景 7 · 多线程 race两条线程交替 ④⑤,WEL 被对方清掉,BP 落到随机值。立即动作:补 ④ 前置 / 加 SR 写互斥锁 / 每次烧前重读 SR。场景 8 · 清座遗漏步骤 ② 没做 → 直接沿用上一颗的 BP 状态,清座即继承。立即动作:补 ④ 前置 / 加 SR 写互斥锁 / 每次烧前重读 SR。正确时序里 ④ 必须在 ⑤ 之前且紧邻;并发场景下必须对 SR 写加互斥锁;清座步骤不可省略。
图 4 · 烧录器初始化与写 SR 的正确时序,及三类失败注入点

3.1 未发 WREN 直接 WRSR(场景 1)

SPI NOR 写状态寄存器有固定的先使能后写入时序:必须先发 06h(WREN)把 WEL 位置起来, 再发 01h(WRSR)才能真正改 SR。很多烧录算法的初始化流程里漏掉了 06h 这一步, 于是 WRSR 被器件忽略,BP 停留在上一颗 / 默认值,后续擦写全部失败—— 器件本身完好,是「门没开就推」。

怎么确认是这一类

读 SR 发现 BP / CMP 与预期不符,但你在烧录工程里明明勾了「解保护」。抓一帧 SPI 看 WRSR 之前有没有 06h: 没有 06h,就是场景 1;有 06h 但 SR 仍没变,转向第 6 章(顺序 / 锁死)。

3.2 多线程同时改 SR 造成 race(场景 7)

烧录工装并发处理多颗、或同一颗被两条线程交替写 SR 时,如果没有对 SR 写加互斥锁, 就会出现「线程 A 发 06h,线程 B 也发 06h,线程 A 发 WRSR,线程 B 又发 WRSR」这种交错。 WEL 位是全局的,一方刚置起就被另一方清掉,最终 BP 落在随机值。这类故障间歇性、难复现, 是它最典型的特征。

现象根因怎么确认处置
同一料号时好时坏并发写 SR 无互斥锁,WEL 被交错清除在多线程烧录时抓 SR 写帧,看 06h/WRSR 是否成对且不被打断对 SR 写加互斥锁,单颗串行或加锁
换一批料突然全过上一阶段恰好没写保护,本批继承了开放状态对比上一批最后一次 SR 状态每次烧前强制重读并清 SR
低压 / 高温下更易出错race 窗口随时序抖动变大在不同负载下重复烧录统计失败率缩短 06h→WRSR 间隔并加锁

3.3 清座步骤遗漏:上一颗 BP 被继承(场景 8)

离线座(socket)烧录有一步「清空 / 初始化」:把座上上一颗留下的 SR 状态清掉、读基线。 这一步被省掉时,新料直接继承上一颗的 BP 保护,于是同一夹具出现「有的过、有的不过」—— 过的是上一颗恰好没保护的,不过的是继承了保护的。呈现方式和器件批次无关,纯看上一颗状态。

检查项正确做法怎么确认常见错法
清座初始化每次上料先读 SR 并建立基线,再决定解保护在烧录日志里确认每颗都有「读 SR」记录直接跳过清座,沿用上一颗状态
WREN 前置WRSR 前必有 06h,且两者不被打断抓帧确认 06h 紧邻 WRSR把 06h 放在别处或漏发
读回确认WRSR 后读回 SR 与预期值比对日志里有无「SR 回读 = 预期」判定写完不回读,默认成功
状态隔离多颗并行时每颗独立 SR 上下文查工装是否共用一个 SR 缓存多颗共用一个 SR 影子值

3.4 立即动作与根治动作

动作类型具体动作验收标准
立即动作抓一帧 SPI,确认 WRSR 之前有 06h 且紧邻06h → WRSR 成对出现,中间无打断
立即动作读 SR 看 BP/CMP 是否与预期一致读回值与基线 / 出厂默认值逐位相符
立即动作多线程工装先改为单颗串行验证,隔离 race串行时失败率归零
根治动作在烧录算法里强制「烧前读 SR + WREN + WRSR + 读回」四步任一步缺失则工程报错退出
根治动作对 SR 写加互斥锁,禁止跨线程交错并发压测下 SR 值稳定
根治动作把清座步骤设为不可跳过,日志留痕每颗都有独立的读 SR 基线记录
危险操作

不要为了「绕过」保护而直接对带客户固件的器件做整片擦。解保护的首选是先读全 SR、确认 CMP/WPS、 再 WREN→WRSR 清 BP;只有确认 BP 是误触发且数据可重建时才擦除。涉及整片擦的不可逆操作,见第 8 章。

4. 第 2 类:SR 字节值写错

这一类是写进去的值本身就错了:不是没写,而是写了一个会把保护拉满、或残留测试状态、或牵连其它位的值。 它覆盖场景 2(默认 FF 全开 BP)、场景 3(工厂测试残留未恢复)、场景 5(改 QE 带改 BP)。 判别要点:读 SR 发现值「明显不对」——整片最大保护、或非出厂默认、或 QE 改了 BP 也变了。

SR 字节值写错的三类典型(位定义以具体料号 datasheet 为准)场景 2 · 默认 FF 全开 BP错误动作:参数卡把 SR 默认写成 0xFFSR1=0xFF → BP=111、SEC=1、TB=1后果:整片最大保护,等效写死SR 值是根因,读它即定位场景 3 · 工厂测试残留错误动作:测试改 SR 后没恢复出厂SR 停在测试残留值(非出厂默认)后果:带保护料流向下工位SR 值是根因,读它即定位场景 5 · 改 QE 带改 BP错误动作:写 SR2 的 QE 时连带改 SR1SR1 被改,BP 落到新值后果:切 Quad 后反而写不进SR 值是根因,读它即定位验收铁律:出厂前 SR 必须读回已知值(通常 0x00 或 0x60),与基线逐字节比对;任何偏差都视为异常拦截。
图 5 · SR 字节值写错的三类典型:默认 FF / 测试残留 / 改 QE 带改 BP

4.1 默认 FF 全开 BP(场景 2)

参数卡 / 烧录工程的 SR 默认字节一旦填成 0xFF,等于把 SR1 的 BP2/BP1/BP0 全置 1、 SEC=1、TB=1 一起生效。整片进入最大保护,表现和「芯片写死」一模一样, 但器件完全健康——清掉 BP 立刻恢复。这是参数卡填写环节最高频的错法。

检查项要求怎么确认常见错法
SR 默认字节填出厂已知值(通常 0x00 或 0x60),不是 0xFF查参数卡与烧录工程里的 SR 默认字段照抄模板填成 0xFF 全 1
写后回读WRSR 后读回 SR 与预期逐位比日志有「SR 回读 = 预期」判定写完不回读,默认成功
位域隔离改 QE 时只动 SR2,不波及 SR1抓帧确认 SR1 未被改写SR1/SR2 共用脏影子值
测试收尾测试结束显式写回出厂 SR测试用例有强制 teardown 写回测试脚本缺收尾步骤

4.2 工厂测试写 SR 后忘了恢复(场景 3)

工厂测试阶段为了验证某功能(例如临时开保护、临时切 Quad、临时锁某区),改了 SR 却在下电前没写回出厂默认。 这颗料就带着测试残留的保护状态流到下一工位,烧录与装板都异常。它和场景 2 的区别是: 值不一定是 FF,而是某个「看起来合理但非出厂默认」的数,所以更隐蔽。

恢复动作的位置

测试脚本的「teardown / 收尾」阶段必须显式写回出厂默认 SR(先 WREN 再 WRSR),并读回确认。 把这一步作为测试用例的强制收尾,缺失则用例判失败。

4.3 改 QE 时把 BP 一并改了(场景 5)

编程器在切 Quad 模式、写 SR2 的 QE 位时,如果SR1 与 SR2 分次写却共用了脏的影子值, 就可能把 SR1 也顺手改了,BP 被带上新值。现象是「换个读模式就写不进」—— 根因不是 Quad 通信,而是 BP 被这次写动作意外改动。

现象可能原因怎么确认处置
切 Quad 后写不进写 SR2 的 QE 时连带改了 SR1 的 BP对比切模式前后的 SR1 读值QE 与 BP 分寄存器独立写,回读确认
仅大容量料异常SEC/CMP 位在切模式时被误带读 SR3 看 CMP/WPS 是否被改只写目标寄存器,避免整字节覆盖
偶发保护状态漂移影子寄存器未刷新,写的是旧值查工装是否缓存了上一次 SR每次写前重新读 SR 再构造字节

4.4 立即动作与根治动作

动作类型具体动作验收标准
立即动作读 SR 看是否整片最大保护(BP=111、SEC=1)或残留非默认值读回值与出厂已知值逐位比对
立即动作WREN → WRSR 把 SR 写回出厂已知值,再读回确认回读 = 预期,且擦写恢复正常
立即动作若由 QE 改动连带引起,分寄存器独立写并回读 SR1/SR2两寄存器各自符合预期
根治动作参数卡 SR 默认字段强制校验,禁止 0xFF,填出厂已知值参数卡导入时非已知值即报错
根治动作测试脚本 teardown 强制写回出厂 SR 并回读用例收尾有 SR 回读记录
根治动作烧录工程对 SR 写采用「读-改-写-回读」原子操作写后必回读,偏差即拦截