Unknown ID · 主控不认芯片 量产排查手册
编制日期 2026-09-21 | 版本号 Rev 1.0
XTX 芯天下 · FAE 现场技术文档 | SoC / MCU 侧外挂存储识别失败 (SPI NOR / SPI NAND / SD NAND / eMMC)| 2026-09 版
主控控制器寄存器、boot pins 状态、驱动 ID 表添加位置以具体平台手册为准;本文仅展示排查机制。
- 本文讨论的是主控(SoC / MCU)侧读不到器件,与「烧录器找不到型号」是两件事。判别要点:烧录器能正常建工程、能烧、能校验通过,但板子起不来,就是本文范围;烧录器根本选不到型号,请查《SPI_NOR_烧录找不到型号_解决方案.html》。
- 命令码(9Fh / 90h / ABh / B9h、SD 与 eMMC 的 CMD0 / CMD1 / CMD2 / CMD8 等)是各介质的常见写法,并非所有器件与所有平台都一致,动手前逐条核对 datasheet。
- 寄存器名与位域、上电时序数值、复位延时量级、上拉阻值、dummy cycle 数、驱动 ID 表的文件路径与宏名全部以具体平台手册与 SDK 源码为准,本文只回答「要查哪一类、去哪里查」。
- 涉及解除读保护 / 量产保护的操作在多数平台上会触发全片擦除,属不可逆动作,见第 8 章的危险操作提示。
一句话结论:「主控不认芯片」永远是这三件事之一—— 命令没送到(接线 / 电源 / 时序)、器件没应答(启动模式错 / 器件锁死)、 应答没被认(驱动参数不匹配 / ID 表里没有这一项)。 烧录器能烧、能校验通过,只证明器件是好的、数据是对的, 不证明主控的控制器和驱动认识它——这两件事之间隔着整整六类根因。
这份文档解决什么
解决的是SoC / MCU 上电启动后读不到外挂存储器件的识别信息、整个系统起不来 这一类问题的定位与根治方法,覆盖 SPI NOR / SPI NAND / SD NAND / eMMC 四种介质在 主控侧的识别失败场景。全文按「现象 → 机制 → 类目 → 立即动作 → 根治动作」组织, 第 9 章是可直接翻查的速查表,第 11 章是可带进车间的核查清单。
怎么用这份文档
- 先按串口输出定画像:把「不认」归到第 1 章六种画像之一,确定断在哪一段,不要一上来就换芯片。
- 抓一份「已知好板」基线:把能正常启动那块板的启动日志、回读 ID、控制器寄存器值、 设备树 / pinctrl 配置、boot pins 电阻各存一份,后面所有对比都拿它当基准。
- 用第 2 章的三关断点法收敛:先确认物理连通(有没有波形),再看 ID 回读(值对不对), 最后看参数解析(驱动表命中没命中)——不要跳关。
- 一次只改一个变量:pinctrl、时序、dummy cycle、ID 表、boot 电阻每次只动一处, 改完重新上电抓日志。
- 用装板实跑闭环:任何改动的最终判定,以「装板跑通完整启动 + 关键功能 + 一次断电重启」为准。
1. 问题本质:主控侧的 ID 识别机制
主控「不认芯片」这句话在现场被用得太泛。它可能是控制器根本没发出命令, 可能是发出来了但器件没回,也可能是回了但主控不认识。 本章先把现象还原成机制:讲清主控是怎么认一颗器件的、认出来要满足哪几个条件, 然后把本文的排查对象与「烧录器找不到型号」严格切开——这两件事在产线上被混淆的概率极高, 一混淆就会把几天时间花在错误方向上。
1.1 六种数据画像
现场接到「板子起不来、主控不认芯片」,第一件事是接串口、上电、把输出完整贴出来, 然后按下面六类归档。六类对应的是同一条识别链在不同环节断掉的六种暴露方式, 不是六种独立故障;归档的价值在于它直接决定从第 3 章到第 8 章该先翻哪一章。
提醒一:先确认串口本身是通的。「完全静默」这个画像有个前提—— 你确定串口波特率、引脚、电平都是对的。见过太多次把波特率配错、或者 TX/RX 接反, 于是把「有输出但乱码」当成了「一行不出」,白白排查半天电源。
提醒二:同一块板可能同时命中多个画像。比如 boot pins 配错(类目 5) 会导致 BootROM 用错协议去读,表现出来的就是「unknown ID」(类目 1 的画像)。 画像定的是先查哪一章,不是只查哪一章。
1.2 与「烧录器找不到型号」的分工
这是本文档最重要的一张表。产线上这两件事经常被当成同一件事处理: 「型号不对,让原厂支持一下」。但它们的发生位置、判定主体、根因集合、解决路径完全不同。 判别方法只有一句话:烧录器能不能正常把活干完。
| 维度 | 主控侧不认芯片(本文) | 烧录器找不到型号(另册) |
|---|---|---|
| 谁在读 | SoC / MCU 的控制器与驱动(含 BootROM) | 编程器的算法库与器件支持列表 |
| 发生时机 | 板子上电、BootROM / SPL / 驱动初始化时 | 烧录工装建工程、选型号时 |
| 典型现象 | 串口无输出、unknown ID、卡死、重启循环、起不来 | 烧录软件报「未找到型号」「不支持该 ID」 |
| 判别要点 | 烧录器能正常烧录并校验通过 | 烧录器建不了工程 |
| 根因集合 | 接线、电源时序、驱动参数、ID 表、boot 模式、芯片状态 | 算法库版本、器件支持列表、料号选型 |
| 解决方向 | 改板 / 改设备树 / 改驱动 / 改 ID 表 / 改 boot 电阻 | 升级算法库、申请新型号支持、核对选型 |
| 负责方 | 主控平台方 + 器件原厂 FAE 一起定位 | 编程器厂商 + 器件原厂 FAE |
烧录器能烧、能校验通过,板子起不来 → 主控侧问题,看本文。
烧录器建不了工程、选不到型号 → 烧录器侧问题,看《SPI_NOR_烧录找不到型号_解决方案.html》。
两者唯一的交叉点:当主控驱动与烧录器共用同一份「ID → 参数」映射时 (例如同一个 SDK 里的器件表被两边引用),改一侧要连带确认另一侧。
1.3 主控到底是怎么「认」一颗器件的
主控识别一颗外挂存储器件,本质上是一次「发命令 → 收结构化应答 → 查表 → 套参数」的过程。 以 SPI NOR 为例:控制器先把 CS# 拉低,在 SCLK 上送出读 ID 命令, 器件在同一个帧里回出若干字节,主控拿这串字节去自己的器件表里查, 查到了就把表里登记的容量、页大小、扇区大小、支持哪些读命令等参数套给后续所有操作。
| 识别步骤 | 主控做了什么 | 失败时的可观测现象 | 对应类目 |
|---|---|---|---|
| ① 供电与时钟 | 给器件上电、等电源稳定、开控制器时钟与分频 | 完全静默、电流异常 | 类目 2 |
| ② 引脚复用 | 把引脚从 GPIO 切成 SPI / SD / eMMC 功能 | SCLK 上没有波形,或波形幅度不对 | 类目 1 |
| ③ 发识别命令 | CS# 拉低,送读 ID 命令,器件同帧回出 ID 字节 | 回读全 FF(没应答)或全 00(总线短路 / 高阻) | 类目 1 / 2 |
| ④ 查驱动表 | 用回读的 ID 字节去器件表里逐条匹配 | 日志报 unknown ID、unrecognized JEDEC id | 类目 4 |
| ⑤ 套参数 | 把表里的容量 / 页大小 / flags 填进驱动结构体 | 型号打印正确,但读写出错或容量不对 | 类目 3 |
| ⑥ 走 SFDP(可选) | 表内没命中时读 SFDP 参数表自动解析 | SFDP 读不到则退回默认或直接放弃 | 类目 3 |
关键认知在于:ID 对,不代表参数对。ID 只是查表的键, 真正决定能不能读的是查表之后套上来的那一组参数。这也是为什么现场会出现 「日志打印了正确的型号名,但系统照样起不来」——表项里的 flags 或页大小写错了。
1.4 四种介质的识别依据不同
SPI NOR 靠 JEDEC ID,SD NAND 与 eMMC 靠 SD/MMC 协议里的寄存器与寄存器块应答 (OCR / CID / CSD / EXT_CSD),SPI NAND 则往往是两者都要: 先读 JEDEC ID 确认厂商与型号,再读参数页或查内部表拿几何参数。 四者的识别主体、识别依据、失败表现都不一样,不能互相套用排查套路。
| 介质 | 识别主体 | 识别依据 | 常见失败表现 | 本文章节 |
|---|---|---|---|---|
| SPI NOR | SPI 控制器 / spi-nor 驱动 | JEDEC ID(厂商 + 类型 + 容量),辅以 SFDP | unknown JEDEC id、回读 ff ff ff | 第 5、6 章为主 |
| SPI NAND | SPI 控制器 / spi-nand 驱动 | JEDEC ID + 参数页或内建几何参数表 | ID 对但容量 / 页大小解析错 | 第 5、6 章为主 |
| SD NAND | SD / MMC 主机控制器 | CMD0 / CMD8 / CMD1 OCR、CMD2 CID、CMD3 RCA、CMD7 | CMD 超时、OCR 电压不匹配、CRC error | 第 4、7 章为主 |
| eMMC | MMC 主机控制器 | CMD1 OCR、CMD2 CID、CMD8 EXT_CSD | 识别到但分区 / 总线宽度 / 速率模式不对 | 第 4、7 章为主 |
把「主控不认芯片」拆成三个可证伪的命题,逐个排除: ① 命令有没有送到(第 3、4 章:接线与电源时序)、 ② 器件有没有应答(第 7、8 章:启动模式与芯片状态)、 ③ 应答有没有被认(第 5、6 章:驱动参数与 ID 表)。 任何一例现场问题,都必须先回答这三个问题再动手。
2. 识别链路总览:从上电到可用
主控从按下复位到能读写外挂存储,中间要经过一条固定长度的链路。 链路的每一段都有可能断,而不同段断掉的表现又高度相似——这就是「不认芯片」难以定位的根本原因。 本章把这条链路完整摊开,给出五段流程与三关断点, 并给出四类介质各自的识别路径对照。后面六章的所有排查动作,都是在某一关内做细分。
2.1 从上电到可用的五段链路
把主控的启动过程按「谁在用 Flash」切成五段,会发现绝大多数「不认芯片」都集中在第③④⑤段, 而现场最容易被忽略的恰恰是第②段——boot pins 在复位释放的瞬间就被锁存了, 这一段的错误会一路伪装到最后。
第②段(复位与 boot pin 采样)。它的错误不会表现为「boot pin 有问题」, 而是表现为后面所有段的现象:BootROM 拿着错误的启动介质去发命令, 于是第④段读回来的 ID 当然不对,日志上看到的就是「unknown ID」。 如果直接跳去查接线和驱动表,会绕一大圈。详见第 7 章。
2.2 三关断点定位法
拿到一块不起来的板,不要从第一章顺着读下去,而是先用三关断点法把范围砍到三分之一。 每一关都只回答一个是非题,用的工具也不同:第一关靠仪器、第二关靠抓帧或日志、 第三关靠日志。
- 关卡 1 · 物理连通:示波器或逻辑分析仪挂到 CS# 与 SCLK。 上电复位后如果连一个下降沿都没有,问题在接线层或电源时序层(第 3、4 章); 如果有波形但幅度 / 电平不对,问题在电平匹配(第 3 章)。
- 关卡 2 · ID 读回:把 MISO 上的字节解出来,或者看驱动日志里打印的 ID 值。 全 FF 说明器件没应答(查第 7、8 章,以及第 1、2 类); 全 00 多半是总线被拉死或器件没上电; 值不对或时好时坏 多半是时序或电平临界(第 4 章)。
- 关卡 3 · 参数解析:ID 读回来了、值也对,就看日志里有没有打印出正确型号与容量。
报
unknown id→ 第 6 章;打印了型号但容量 / 页大小错 → 第 5 章。 - 三关都过:识别成功但系统仍起不来,问题已经在识别层之外, 转向《烧录成功但不开机》系列文档(SPI NOR / SPI NAND / PPI NAND 分册)。
| 关卡 | 要回答的问题 | 判据(通过) | 不通过时去哪一章 |
|---|---|---|---|
| 关卡 1 物理连通 | 命令有没有送到器件? | CS# 有干净的下降沿,SCLK 有方波,边沿陡峭、幅度符合 IO 电平 | 第 3 章(接线层)、第 4 章(电源与时序) |
| 关卡 2 ID 读回 | 器件有没有应答? | 回读字节非全 FF / 全 00,且与 datasheet 上的 ID 值一致 | 第 7 章(启动模式)、第 8 章(芯片状态) |
| 关卡 3 参数解析 | 应答有没有被认? | 日志打印出正确型号与容量,读写一小段数据一致 | 第 5 章(驱动参数)、第 6 章(ID 表) |
2.3 四类介质的识别路径对照
「ID」这个词在四种介质里指的不是同一个东西。SPI NOR / SPI NAND 的 ID 是一串字节, SD NAND 与 eMMC 的识别则是一整套 CMD 交互,最终拿到的是 OCR / CID / CSD / EXT_CSD 里的字段。 因此「读 ID」这个动作在四类介质上的实现完全不同,不能把 SPI 的经验直接搬到 SD/eMMC 上。
2.4 先抓一份「已知好板」基线
三关断点法要能用,前提是有一个正确的参照。现场最常见的问题是: 没有基线,于是每一个异常值都无法判断「是不是异常」。因此拿到第一块能正常启动的板, 请先把下面这些项各存一份,命名里带上日期与软件版本。
| 基线项 | 怎么取 | 用来对比什么 | 对应章节 |
|---|---|---|---|
| 完整启动日志 | 串口 0 从第一个字节开始全量保存,含 BootROM 与 SPL | ID 值、型号名、容量、报错行 | 第 5、6、7 章 |
| 回读的 ID 字节 | 逻辑分析仪解 SPI 帧,或日志里的 id 打印 | 与 datasheet 标称值逐字节比对 | 第 1、3、4 章 |
| CS# / SCLK 波形 | 上电复位瞬间单次触发抓取,存图 | 有无波形、频率、边沿、幅度 | 第 3、4 章 |
| boot pins 电平 | 万用表 / 示波器量复位期间各 boot pin 电压 | 与平台手册的启动模式表逐条对 | 第 7 章 |
| 设备树 / pinctrl | 导出当前生效的 dts 与编译后的 dtb 反编译结果 | 引脚复用、频率、CS 编号 | 第 3、5 章 |
| 控制器寄存器值 | 启动后读一组关键寄存器并保存 | 与坏板同一组寄存器做差 | 第 4、5 章 |
| 电源与复位时序 | 多通道示波器抓 VCC / VCCQ / RST# 的相对关系 | 上电顺序与复位延时 | 第 4 章 |
| 软件版本清单 | SDK / U-Boot / kernel / 驱动 ID 表版本号 | 确认两侧是否同一版本 | 第 6、10 章 |
如果时间只够抓三样,抓这三个:完整启动日志(含 ID 与容量打印)、 上电复位时 CS#/SCLK/SCK 的波形图、设备树 / pinctrl 与 boot pins 电阻照片。 这三样能覆盖第 3~8 章里绝大部分的对比需求。
3. 第 1 类:接线层(pinmux / 电平 / CS# 上下拉)
接线层的问题在统计上不一定是占比最高的,但它是必须第一个排除的—— 因为只要这一层不成立,后面所有层的排查都没有意义:命令根本没送到器件, 你在驱动日志里看到的一切异常都只是「没人应答」的不同写法。
3.1 pinmux:引脚是不是真的切成了 SPI / SD 功能
现代 SoC 的引脚几乎都是多功能的。复位释放后,多数引脚的默认状态是 GPIO 输入或某个与启动无关的复用功能。 设备树里写了 spi0,不等于引脚已经切到 SPI 功能——pinctrl 组是否真的生效、 有没有被另一个节点抢占、复用寄存器的值有没有被后续代码改写,都要实际确认。
/* 设备树里 SPI 引脚的复用(示例,字段名与取值以平台 BSP 为准) */
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins>; /* 必须指向真正的 SPI 功能组 */
cs-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>; /* 以器件 datasheet 为准 */
};
};
- 读寄存器:启动后 dump 该组引脚的复用寄存器,与平台手册的功能编码表逐位比对。 这是最直接、也最不容易被表象误导的方法。
- 看波形:逻辑分析仪挂 SCLK,上电复位后如果一个边沿都没有, 先怀疑复用而不是怀疑器件。
- 查抢占:同一个引脚组被两个 pinctrl 节点引用时,后加载的那个会覆盖前面的。 把设备树编译成 dtb 再反编译回来核对最终生效值。
3.2 电平匹配:1.8 V 器件与 3.3 V 器件不能混挂
这一点听起来基础,但在换料号与改板时高发:原方案用 3.3 V 器件,换成 1.8 V 的低功耗料号, 板子没改,主控 IO 还在 3.3 V 域。轻则器件长期过压损伤,重则上电即不响应。 反过来 3.3 V 器件挂在 1.8 V 域,则表现为「低压下偶尔能读、常温下不行」。
| 检查项 | 要求 | 怎么确认 | 不合规的后果 |
|---|---|---|---|
| 器件 VCC 标称 | 与原理图设计值一致(1.8 V 或 3.3 V,以 datasheet 为准) | 查料号 datasheet 的推荐工作电压 | 过压损伤或欠压不响应 |
| 主控 IO 电平域 | 与器件 VCC 同一档,IO 电平由对应电源域决定 | 查平台手册的 IO 电源域分配表 | 幅度超标或高电平判不到 |
| 电平转换 | 跨电压域时必须加,且方向、速率要够 | 查原理图是否有 level shifter、速率是否支持 | 高速读写时误码或完全不识别 |
| VCCQ(eMMC / SD) | 控制器侧 IO 电源与器件 VCCQ 匹配 | 量 VCCQ 实际电压并与手册比对 | 初始化阶段 CMD 超时 |
| 信号幅度 | 高低电平落在器件 VIH / VIL 范围内 | 示波器量实际高电平与低电平 | 间歇性识别、温度漂移 |
| 同板多器件 | 同一总线上所有器件的 IO 电平一致 | 逐个查器件 datasheet 的 IO 电平 | 从器件拖垮整条总线 |
3.3 CS# 的上下拉与上拉强度
CS# 是 SPI 通信的帧定界信号,器件靠它的下降沿判断「一帧开始了」。 上电期间主控引脚多为高阻,如果 CS# 没有外部上拉,总线在这段时间是浮空的, 器件可能采样到随机电平并误判成命令——表现就是冷机起不来、热机正常这类概率性故障。
反过来,上拉也不是越强越好:上拉过小(阻值大)边沿过缓,高速读时建立时间不够; 上拉过大(阻值小)则增加功耗并可能超过主控引脚的灌电流能力。 串联电阻同理,为改善信号完整性加的串阻太大会直接把边沿拖垮。
| 检查项 | 正确做法 | 怎么确认 | 常见错法 |
|---|---|---|---|
| CS# 上拉 | 按原理图在 CS# 上加上拉电阻,阻值以原理图与器件手册为准 | 断电量 CS# 对 VCC 的阻值;上电全程量 CS# 电平 | 完全没上拉,靠主控内部弱上拉凑合 |
| 上拉挂哪路电 | 与器件 VCC 同路,避免器件未上电时被反向供电 | 查原理图 net 连接 | 挂在常开电源上,导致器件掉电不彻底 |
| 上拉强度 | 兼顾边沿速度与功耗,按走线负载调整 | 抓波形看上升 / 下降时间与过冲 | 照抄参考设计不加调整 |
| 串联电阻 | 为抑制反射加的串阻要控制在不破坏边沿的范围内 | 抓波形看建立 / 保持时间 | 阻值过大把边沿拖成斜坡 |
| 复位期间电平 | 复位释放前后 CS# 必须稳定为高 | 复位期间单次触发抓 CS# 全程 | 复位期间 CS# 被拉低,器件进入错误状态 |
| WP# / HOLD# | 不用时按 datasheet 要求上拉或下拉,不能浮空 | 量引脚电平 | 浮空导致器件被意外写保护 |
3.4 立即动作与根治动作
| 动作类型 | 具体动作 | 验收标准 |
|---|---|---|
| 立即动作 | 用逻辑分析仪确认 CS# / SCLK 上有没有波形,没有波形就先别看日志 | 上电复位后能看到完整的命令帧 |
| 立即动作 | dump 引脚复用寄存器,与平台手册逐位比对 | 所有涉及引脚的功能编码都对得上 |
| 立即动作 | 量器件 VCC 与主控 IO 域的实际电压,确认同一档 | 电压值落在器件 datasheet 的推荐范围内 |
| 立即动作 | 断电量 CS# 上拉电阻是否存在、阻值是否与原理图一致 | 阻值与原理图 BOM 一致 |
| 根治动作 | 把 pinctrl / 复用配置纳入版本管理,随 SDK 一起评审 | 每次改板都有一份可追溯的复用表 |
| 根治动作 | 在试产首件中固定「抓一次上电波形」这个动作并存档 | 首件报告里附有波形图与判读结论 |
| 根治动作 | 建立料号 → IO 电平的对照表,换料号时强制核对 | 换料单上有电平核对签字栏 |
不要在带电状态下飞线、短接或改动上下拉电阻。尤其是 CS# 与电源引脚, 短接可能直接损伤器件或主控 IO;改上下拉前必须断电,改完先量电压再上电。
不要用「直接把 1.8 V 器件接到 3.3 V 上试试」的方式验证。 过压损伤是累积性的,试出来「能用」的板子在寿命期内随时可能失效。
4. 第 2 类:电源与时序层
电源与时序层是最会伪装的一类。它不像接线层那样「要么通要么不通」, 而是表现出强烈的温度依赖、电压依赖、批次依赖——冷机起不来、热机正常; 这批板好、下批板不行;加个探头就好了。现场常被误判成「芯片不良」而批量退货, 实际根因只是一路电源的上电顺序反了,或者复位释放早了几毫秒。
4.1 VCC / VCCQ 的上电顺序
多路电源器件(典型是 eMMC 的 VCC 与 VCCQ、部分 SPI NOR 的 VCC 与 IO 电源) 对上电顺序有明确要求。规范通常要求核心电源先于或同步于 IO 电源, 且两路之间的间隔有上限。顺序反了或间隔超了,器件内部状态机可能起不来, 表现就是主机侧 CMD 或 SPI 命令完全无应答。
| 检查项 | 要求(以 datasheet 为准) | 怎么量 | 不合规的典型表现 |
|---|---|---|---|
| 上电顺序 | 核心电源先于或同步于 IO 电源 | 双通道示波器同时抓两路电源的上升沿 | 器件完全不应答,CMD 或 SPI 超时 |
| 两路间隔 | 不超过 datasheet 规定的上限 | 量两路电源到达阈值的时间差 | 偶发不识别,随温度变化 |
| 电源斜率 | 上升斜率在允许范围内,不能过缓 | 量 10%~90% 上升时间 | 内部上电复位电路不释放 |
| 电压精度 | 稳态电压落在容差范围内 | 带负载量稳态电压,不能只量空载 | 低压下读写错,量产后才暴露 |
| 掉电完整性 | 掉电要掉到底,不能有残压 | 断电后量各路电源的放电曲线 | 快速上下电后器件状态异常 |
| 复位释放 | 在电源稳定之后,且满足最短复位脉宽 | 多通道抓电源与复位线的相对关系 | 概率性不识别,复现无规律 |
4.2 复位释放与延时
器件上电后需要一段时间完成内部初始化,这段时间内它不响应任何命令。 主控侧必须等到这段时间过去再发第一条命令。常见的两个错法:
- 复位释放太早:主控的复位释放与电源稳定之间没有留够延时, BootROM 在器件还没醒的时候就开始发识别命令,读到全 FF。
- 只查了主控侧延时,没查器件侧要求:以为「主控起来了器件就该就绪」, 实际器件的上电就绪时间往往比主控的复位释放时间长,两者的差必须由软件延时或硬件 RC 保证。
本文不给出具体数值——不同器件、不同容量的上电就绪时间差异很大。 正确做法是:查器件 datasheet 里「上电与复位时序」章节给出的时间参数, 再加上主控侧的电源稳定时间,取二者之和并留余量。量产阶段建议用示波器实测 「电源稳定 → 复位释放 → 第一条命令」的实际间隔,而不是只看代码里的延时值。
4.3 控制器驱动能力与信号完整性
这一类常被归到「硬件问题」而推给 Layout,但从主控侧看它是可编程的: 多数 SoC 的引脚驱动强度(drive strength)、压摆率(slew rate)都是可以配置的。 默认配置未必适合当前走线——走线长、负载重、多器件并联时,默认驱动强度常常不够。
| 现象 | 可能原因 | 怎么确认 | 处置 |
|---|---|---|---|
| 边沿过缓、上升时间过长 | 驱动强度配置偏弱,或走线负载过重 | 抓波形量上升 / 下降时间 | 提高引脚驱动强度(以平台手册为准) |
| 过冲 / 振铃明显 | 阻抗不匹配、缺少端接 | 抓波形看有无振铃 | 调整串阻或改为更低驱动强度 |
| 高频读失败、低频正常 | 建立保持时间不足 | 对比不同频率下的波形与误码 | 降频验证,再决定是否改善走线 |
| 加了探头就好了 | 探头电容改变了负载特性 | 换低电容探头对比 | 说明原本就在临界,必须改板或改参数 |
| 多器件并联时速率下降 | 总线负载超过驱动能力 | 逐个摘除器件对比 | 减少并联数量或加缓冲 |
| 长线传输误码 | 走线过长、参考平面不完整 | 查 PCB 走线与回流路径 | 改板,缩短走线或加屏蔽 |
4.4 立即动作与根治动作
| 动作类型 | 具体动作 | 验收标准 |
|---|---|---|
| 立即动作 | 多通道示波器抓 VCC / VCCQ / RST# 的相对关系,与 datasheet 逐项比 | 顺序、间隔、斜率、脉宽全部合规 |
| 立即动作 | 实测「电源稳定 → 复位释放 → 第一条命令」的间隔 | 间隔大于器件上电就绪时间并有余量 |
| 立即动作 | 带负载量各路电源稳态电压,而不只是空载 | 全部落在 datasheet 容差内 |
| 立即动作 | 在最高温与最低温各跑一次上下电循环 | 全温范围内识别成功率 100% |
| 根治动作 | 把电源时序要求写进原理图评审清单与 BOM 备注 | 评审记录里有时序核对项 |
| 根治动作 | 量产测试增加快速上下电循环项目 | 连续循环不出现识别失败 |
| 根治动作 | 驱动强度与压摆率配置纳入版本管理,随板级变更评审 | 配置与板版本一一对应可追溯 |