上电时序与POR设计
存储器件上电电气行为、测量方法与设计检查单 —— 一份以「上电到首条命令」为主线的电路设计参考 | 编制日期 2026-10-14 | 版本号 Rev 1.0
硬件调试里有一类故障特别折磨人:板子上电后存储器件「不应」。示波器上 VCC 明明已经起来,主芯片明明发了命令,器件就是不回——或者第一次不回、后面又回了。把时间轴展开,这类故障几乎都能归结到同一件事:上电是一条时序链,而链上某一环的参数、顺序或余量出了问题。
这份文档只讲这条链:从 VCC 斜坡与 POR 阈值,到上电到首条命令的最小延时,再到主芯片的上电顺序与总线解复位;把它在器件侧、主芯片侧、电源完整性侧分别讲透,并给出测量方法与设计检查单。对象覆盖 SPI NOR / SPI NAND / SD NAND / eMMC 等常见存储介质。文中所有数值均为量级性示意,具体参数一律以器件 datasheet 与相应规范为准。
前言
做硬件的人迟早会遇到同一个噩梦:样片阶段明明好好的板子,到试产或现场开始「偶发不应」。事后复盘时,往往发现所有「该做的」都做了——电源纹量够了、去耦电容按推荐值放了、固件里也加了延时——唯独没有回答一个问题:主芯片发起第一条命令的时刻,存储器件内部到底准备好了没有?
这个问题问的不是电源,而是时序:VCC 斜坡的速率、POR 阈值的穿越、上电最小延时的计时、多轨上电的顺序、解复位的时机,每一环都合格,链起来才合格;任何一环只满足「典型值」不满足「最坏值」,失效就会以间歇性的形式留给量产。这份文档把这条链拆开,逐环给出机制、参数口径、测量方法与检查项。
结论: 上电不是「电来了就能用」,而是一条从 VCC 斜坡、POR 阈值、最小延时到首条命令的时序链——链上任何一环的参数缺失、顺序错误或余量不足,都会在最后一环兑现为「命令丢失」或「器件不应」。 设计的全部动作可以概括为一句话:把链上每一环的参数从 datasheet 里取出来、按最坏情况核算余量、把职责边界写进设计文档。 所有数值为量级性示意,具体参数以正式 datasheet / 规范为准。
读者路径
- 想先建立整体图景:第 1 章(问题本质与阶段划分)+ 第 2 章(器件侧电气行为)。
- 正在画原理图、定上电顺序:第 3 章(主芯片侧时序)+ 第 7 章(设计方法与检查单)+ 附录 B。
- 板子出问题要定位:第 4 章(测量方法)+ 第 9 章(失效案例与定位)。
- 关心掉电、低功耗与电源完整性:第 5 章(掉电衔接)+ 第 6 章(电源门控)+ 第 8 章(电源完整性)。
- 要做选型或兼容替换:第 11 章(选型考量)+ 第 10 章(标准条款)+ 附录 A。
- 只想要结论:第 12 章(十条要点)+ 附录 B(检查单)。
1. 问题本质:上电时序为什么是存储故障高发区
这一章不涉及任何具体数值,只把问题还原成机制:上电过程可以划分成哪几个电气阶段、失效现象怎么归因、器件侧与系统侧各管哪一段。后面所有章节的判断,都是这一章几条原理在具体器件与具体系统上的投影。
1.1 上电过程的电气阶段划分
「上电」在数据手册里是一段曲线,在器件内部是一连串事件。把 VCC 从 0 上升到器件能正确响应第一条命令的全过程拆开,可以划分成五个电气阶段:斜坡上升、阈值穿越、内部复位、就绪等待、首条命令接受。每个阶段都有明确的进入条件与退出条件,主芯片的固件动作必须踩着这些条件走,抢跑任何一个阶段,都会以「命令丢失」或「器件不应」的形式回来。
- 斜坡上升:VCC 从 0 开始上升,速率受器件允许的 dV/dt 窗口约束——过快与过慢都不被保证。
- 阈值穿越:VCC 越过 POR 阈值,内部模拟比较器翻转,上电流程正式启动。
- 内部复位:复位释放前,内部状态机归位,命令接口处于关闭状态。
- 就绪等待:POR 释放后还有一段最小延时(手册中常以 tPOR 一类参数给出),计时到点前命令不被接受。
- 首条命令接受:总线接口使能,主芯片发来的第一条命令被锁存并返回有效响应。
图 1 把五个阶段画在了一条时间轴上:上方曲线是 VCC 从 0 到额定的爬升,红色虚线是 POR 阈值,下方五张卡片是各阶段的内部动作。五个阶段是「与」的关系,不是「或」的关系——VCC 到了额定值只说明第一阶段完成,后面四段一段都免不了。这也是「电来了就能用」这一判断错在哪里:它只看到了第一段。
示波器上 VCC 平稳在额定值,只说明电源轨建立完成。此时器件可能还在内部复位里、可能 tPOR 还没计完、可能总线接口还没使能。用「VCC 稳定」代替「器件就绪」做主芯片发令的判据,是最典型的上电时序缺陷——它不每次都出问题,温度、批次、电压边缘的板子会以偶发失效的形式把问题带到量产。
正确的判据是「就绪事件」而不是「电压事件」:要么等手册规定的上电延时,要么轮询状态寄存器直到返回就绪标志。判据写在哪、怎么配置,要落进设计文档,不能靠调试时试出来。
五个阶段的划分方式不是唯一的:不同厂商数据手册的章节组织不同,参数命名也不同。但阶段的物理内容不变——斜坡、阈值、复位、延时、首命令,五件事在任何存储介质上都存在,只是参数值与内部实现不同。本文后续所有章节,都建立在这五阶段框架上。
1.2 典型失效现象与归因分类
上电时序缺陷的表现可以归纳成四种形态,按隐蔽程度递增:完全无响应(每次上电都不应,示波器一眼能看到)、命令丢失(固件发令超时,重发可能恢复)、间歇失效(时好时坏,与温度、批次相关)、余量丧失(功能正常但已无设计裕量,是最危险也最难发现的一种)。四种形态对应不同的根因分布,归因的第一步是「分侧」——把责任侧分开,再在侧内定位。
| 失效形态 | 直接表现 | 主要归因侧 | 典型根因(量级示意) |
|---|---|---|---|
| 完全无响应 | 每次上电器件都不回命令 | 主芯片侧 / 器件侧 | 上电顺序错误、解复位过早、器件损坏 |
| 命令丢失 | 首条命令超时,重发后恢复 | 器件侧 / 主芯片侧 | 命令早于上电延时终点、片选建立时间不足 |
| 间歇失效 | 时好时坏,与温度、批次相关 | 电源完整性 / 环境 | 退耦不足、阈值边缘、来料参数分散 |
| 余量丧失 | 功能正常但已无裕量 | 设计方法 | 参数没核算、用固定延时凑、无测量基线 |
图 2 把四个责任侧并列摆开:器件侧回答「这颗料的上电参数是什么」,主芯片侧回答「固件按什么顺序、在什么时刻发令」,电源完整性侧回答「VCC 在爬升与稳态之间发生了什么」,板级与环境侧回答「边界条件与批次差异把参数挤到了哪」。四个侧都要查,但顺序有先后:先查主芯片侧(改固件就行,最便宜),再查器件侧(要逐项读手册),最后查电源完整性(可能要动板子)。
「分侧」的意思是:不要把「命令丢失」直接当成器件问题或主芯片问题。同一种现象,四个侧都能产生——上电延时比手册长是器件侧,固件延时不够是主芯片侧,VCC 爬升期塌陷把器件反复复位是电源完整性侧,低温下比较器阈值漂移是环境侧。不在分侧上下功夫,定位就会在四个侧之间反复横跳,这也是上电问题排查周期长的根因。
四种形态里最需要警惕的是「余量丧失」:它在所有测试里都是绿的,直到某一天温度边缘或来料边缘把它推过界。对付它的唯一手段是把参数核算与测量基线做在上电设计阶段——这正是第 7 章设计方法与第 4 章测量方法要解决的事。
1.3 器件侧与系统侧的职责边界
一条时序链,两端各管一段。器件侧的承诺是:在数据手册规定的条件内(VCC 范围、斜坡速率、温度范围),POR 在阈值窗口内释放、上电延时不超过规定上限、首条命令在计时终点后被正确锁存。系统侧的责任是:提供合格的 VCC 斜坡、按器件要求安排上电顺序与解复位时序、把首条命令发在上电延时终点之后、为上电瞬态提供完整的电源完整性设计。边界清楚,扯皮就少。
| 事项 | 器件侧承诺 | 系统侧责任 | 判据出处 |
|---|---|---|---|
| POR 释放阈值 | 在规定阈值窗口内翻转 | 保证斜坡速率落在允许窗口 | 器件 datasheet 电气特性 |
| 上电最小延时 | 不超过手册规定上限 | 首条命令发在计时终点之后 | 器件 datasheet 时序参数 |
| 上电斜坡 | 规定 dV/dt 窗口内可靠工作 | 斜坡速率按器件允许窗口设计 | 器件 datasheet 上电条件 |
| 多轨上电顺序 | 不涉及(单器件电源轨以内) | 按主芯片与器件要求排序 | 主芯片 datasheet + 系统设计 |
| 上电瞬态 | 在规定纹波下可靠工作 | 退耦、走线与浪涌抑制设计 | 器件 datasheet 电源要求 |
| 就绪判据 | 状态寄存器返回就绪标志 | 按判据轮询或延时,写进文档 | 器件 datasheet 命令与状态定义 |
典型的扯皮现场:器件厂说「手册写了上电延时上限,是你没等」;系统厂说「我固件延时够了,是你器件阈值漂了」;电源厂说「我的轨建立时间满足规格」。三方都「符合规格」,板子还是不应——根因是没人把整条链的余量核算过一遍:每一环都卡着自己的下限,链起来就没有一处有裕量。职责边界不是用来分锅的,是用来把每一环的参数与余量写进同一份设计文档的。
把边界落到动作上只有三条。其一,器件侧参数从数据手册逐项提取,形成参数表(附录 A 给出速查口径);其二,系统侧动作按参数表逐项配置,形成时序图与配置记录(第 7 章);其三,边界条件(温度、批次、电压)的验证计划覆盖两侧(第 4 章)。三条都做到,「符合规格但不应」才会从扯皮变成可定位的工程问题。
1.4 设计输入:上电时序要回答的四个问题
把上电时序设计浓缩成四个问题。这四个问题是全篇的骨架:第 2 章回答问题一与二,第 3 章回答问题三,第 8 章回答问题四,第 4 章回答「怎么验证前三个问题的答案」。
| 问题 | 涉及的参数 | 答案出处 | 不回答的代价 |
|---|---|---|---|
| VCC 怎么上升 | dV/dt 窗口、上电条件 | 器件 datasheet + 电源设计 | 阈值穿越不确定,POR 释放抖动 |
| 器件何时就绪 | 阈值窗口、tPOR 一类上电延时 | 器件 datasheet 时序章节 | 命令早发,丢失或不应 |
| 主芯片何时发令 | 上电顺序、解复位、时钟稳定 | 主芯片 datasheet + 固件配置 | 抢跑,链末环失效 |
| 异常怎么判定 | 各环节的测量方法与判据 | 第 4 章 + 系统测试规范 | 带病量产,偶发流失到现场 |
四个问题的答案全部落在两类文件里:器件数据手册(上电电气特性与时序参数章节)与系统设计文件(主芯片手册的上电顺序要求、电源设计、固件配置)。上电时序设计之所以显得「玄学」,是因为多数团队把答案记在了某个工程师的脑子里,而不是落在参数表与时序图上。写下来的答案才能被评审、被传递、被量产检验——这也是附录 A 与附录 B 存在的原因。
四个问题之间是串联关系:问题一的答案(斜坡窗口)是问题二的前提(阈值穿越时刻),问题二的答案(就绪时刻)是问题三的输入(发令时刻),问题四则把前三问的答案变成可验证的判据。跳答任何一问,后面的答案都建立在沙子上。
1.5 本文主线与读法
本文的主线是「上电到首条命令」这条时序链,按三个责任侧展开,最后落到测量方法、设计检查单与选型考量:
- 器件侧(第 2 章):VCC 斜坡与阈值窗口、POR 内部机制、上电最小延时、命令丢弃行为、不同介质差异。
- 主芯片侧(第 3 章):主芯片 POR 与电源轨、多轨上电顺序、时钟稳定与总线解复位、固件启动与首次访问。
- 电源完整性侧(第 8 章):上电浪涌、退耦与局部塌陷、地弹与参考完整性、走线瞬态压降。
- 衔接场景(第 5、6 章):掉电与再上电的静默期、半启动状态、热复位与冷复位、电源门控与唤醒。
- 方法与闭环(第 4、7、9、10、11、12 章):测量方法、设计检查单、失效案例、标准条款、选型考量、要点汇总。
读法上,第 1、2 章建立机制图景,是后面所有章节的地基;第 3~6 章按责任侧与衔接场景展开;第 7 章是设计方法的收口;第 8~11 章分别处理电源完整性、失效定位、标准条款与选型;第 12 章十条要点汇总。附录 A 是参数速查,附录 B 是可打印的检查单,附录 C 是术语,附录 D 是参考资料。只想解决问题的读者,从第 2 章与附录 B 进;想建立体系的读者,按章号顺序读。
2. 存储器件侧的上电电气行为
这一章把时序链的第一段——器件侧——讲透:VCC 斜坡与阈值窗口怎么约束、POR 内部怎么工作、上电到首条命令要等多久、等待期间的命令会怎样、不同介质差在哪里。本章所有参数均为量级性示意,每一个数值都必须以具体型号的数据手册为准。
2.1 VCC 斜坡速率与阈值窗口
器件对 VCC 爬升有两个方向的约束,方向相反、都不可违。速率上限:斜坡过快时,POR 比较器的穿越时刻不确定,内部计数器可能在错误的电压点起振,复位释放时刻随批次与温度漂移。速率下限:斜坡过慢时,VCC 在阈值附近停留过久,可能反复触发比较器翻转,或进入欠压判定流程,上电时间被拉长甚至无法完成。数据手册通常以 dV/dt 或上电时间的形式给出这两条边界,具体窗口以器件 datasheet 的上电条件章节为准。
图 3 左栏画的是速率维度:三条斜坡曲线里,只有中间那条(合格)能让 POR 在规定时刻释放;右栏画的是阈值维度:Vth 是一个窗口而不是一条线——VCC 穿过窗口的瞬间,POR 开始释放,穿越点在窗口内的具体位置由器件内部电路决定,系统无法直接观测。两个维度共同决定 POR 的释放时刻,这也是上电时序链上第一个「不确定源」。
| 参数(口径) | 含义 | 约束方向 | 系统侧动作 |
|---|---|---|---|
| dV/dt 上限 | VCC 斜坡的最大允许速率 | 过快:穿越点不确定 | 电源缓启动设计,限制斜率 |
| dV/dt 下限 | VCC 斜坡的最小允许速率 | 过慢:欠压判定风险 | 避免过缓的上电配置 |
| Vth 窗口 | POR 比较器的翻转区间 | 窗口内穿越才算数 | 无需动作,属器件内部行为 |
| 上电条件 | 手册规定的 VCC 爬升前提 | 不满足则参数不保证 | 电源设计按条件逐条校核 |
| 纹波要求 | 上电期间 VCC 的允许纹波 | 超限:行为不保证 | 退耦与走线设计(第 8 章) |
过慢多半是「上电慢」,肉眼可辨;过快是「看起来很正常」——电源轨瞬间建立、示波器上看是一条陡直的上升沿。负载电容越小、电源内阻越低、开关导通越快,斜坡就越陡,多轨供电场景里尤其是重灾区:主芯片轨先起、存储轨随后被拉起,两级之间如果没有缓启动,存储器件看到的可能是一条远超标称的陡沿。设计动作只有两个方向:电源侧限制斜率(缓启动、限流)与核算余量(把最坏批次的 dV/dt 代入手册窗口验证)。
还有一个容易漏的细节:掉电方向的斜率同样是器件关心的。VCC 跌落过快时,器件可能进入未定义状态;第 5 章讲掉电衔接时会回到这一点。
2.2 上电复位(POR)的内部机制
POR 在器件内部分两层,两层串行工作。模拟层:一个比较器持续监测 VCC,当 VCC 越过阈值窗口时输出翻转,标记「电源已足够」。数字层:比较器输出启动内部计数器,计数期间所有数字逻辑保持复位、命令接口关闭;计数结束后复位统一释放,内部状态机进入已知初态。两层的分工决定了系统只能等、不能催——系统能观测的只有 VCC 与命令响应,比较器何时翻转、计数器计到哪,都在器件内部。
| 层级 | 机制 | 作用 | 失效模式(不满足条件时) |
|---|---|---|---|
| 模拟层 | VCC 与阈值窗口比较 | 判定电源已足够 | 阈值漂移导致释放时刻抖动 |
| 数字层 | 内部计数器计时 | 复位保持到计时终点 | 计数未结束即发令则命令丢失 |
| 复位释放 | 状态机进入已知初态 | 命令接口使能前归位 | 半启动状态,行为未定义 |
| 接口层 | 总线接口按模式使能 | 首条命令可被锁存 | 接口未使能,命令被丢弃 |
这一点经常被忽略:存储器件有自己的 POR,主芯片也有自己的 POR,两者互不知晓。主芯片的 POR 释放只说明主芯片自己「睡醒了」,不说明存储器件就绪;反之亦然。两套 POR 的释放时刻差异,正是「上电顺序」与「解复位时序」要在系统侧设计的原因——第 3 章会展开。
复位释放后的器件状态有一条重要性质:内部寄存器的内容是未定义的,直到上电初始化流程跑完。这意味着上电后不能假设任何寄存器的默认值,必须按手册的初始化序列操作(例如先读状态寄存器确认就绪)。把「上电后的寄存器状态」当已知量,是固件里一类隐蔽的坑。
2.3 上电到首条命令的最小延时
从 POR 释放到首条命令被正确接受,中间有一段最小延时——数据手册里通常以 tPOR 一类的参数给出上限。这段延时由数字层计数器决定,与 VCC 实际值、温度、批次相关,系统侧的动作只有一件:把首条命令(或第一条读状态命令)发在计时终点之后,并留出余量。
| 区间 | 起止事件 | 主要影响因素 | 主芯片动作 |
|---|---|---|---|
| 斜坡段 | VCC 起升 → 穿越阈值窗口 | 电源设计、负载电容 | 无需动作,保证斜坡合格 |
| POR 判定 | 穿越窗口 → 比较器输出稳定 | 器件内部电路 | 等待,不可催促 |
| 上电延时 | POR 释放 → 接口使能 | 温度、电压、批次 | 延时或轮询状态寄存器 |
| 命令建立 | 首条命令 → 被锁存 | 总线时序、片选建立时间 | 按器件时序参数配置 |
「上电后等若干毫秒再发命令」——这类写法在多数板子上能跑,但它把可靠性建立在最坏情况恰好没出现的假设上:低温延时长、批次分散、电压边缘,任何一个因素都能让固定延时失效,而且失效形式是间歇性的。正确的做法是按手册参数核算:取上电延时上限、温度修正、批次分散,算出最坏延时,再把它与总线时序、固件启动开销合并成设计余量。固定延时可以作为核算后的结果,不能作为核算的替代。
比固定延时更稳的做法是轮询状态寄存器:上电后反复读状态寄存器,直到返回「就绪」标志再发业务命令。轮询把「等多久」变成了「等到为止」,天然吸收批次与温度分散;代价是固件复杂度与首次访问的时间不确定。两种做法都成立,选哪种要写进设计文档,并说明判据。
2.4 上电期间的命令丢弃与错误响应
POR 释放前,器件的命令接口是关闭的——这段时间里到达的命令会怎样?数据手册通常给出明确行为:命令被丢弃、不产生任何响应;片选可能被忽略,时钟沿不触发状态机。换句话说,主芯片「发了」与器件「收到了」是两件事,中间的窗口由上电延时定义。比丢弃更麻烦的是错误响应:某些器件在部分使能状态下可能返回未定义数据,固件如果把上电后第一次读到的值当初值用,就把未定义量带进了系统。
| 情形 | 器件行为 | 主芯片应对话法 | 风险 |
|---|---|---|---|
| 上电延时内发令 | 命令被丢弃,无响应 | 等计时终点或轮询就绪 | 固件超时、误判器件损坏 |
| 上电时片选已拉低 | 行为以手册为准,多不保证 | 上电期间保持片选无效电平 | 未定义响应进入固件 |
| 读状态寄存器过早 | 返回值未定义 | 重读直到就绪标志稳定 | 假就绪,后续命令全错 |
| 首条命令选错 | 合法命令也可能不被处理 | 按手册初始化序列选择 | 初始化失败,功能异常 |
命令丢失之所以难查,是因为两侧的记录对不上:主芯片的调试日志显示「命令已发送」,示波器上片选与时钟沿都真实存在,但器件内部的命令接口还没使能。表现要么是超时无响应,要么是读到未定义数据。定位手段只有一个:把片选信号与 VCC 放在同一时间轴上量,看首条命令相对 VCC 穿越阈值的时刻——第 4 章给出具体测法。
设计动作对应三条:上电期间保持片选无效电平(避免上电沿被当成命令沿)、上电后先确认就绪再发业务命令(轮询或延时,二选一并写进文档)、不把上电后首次读到的值当初值(未定义量不进状态机)。
2.5 不同介质器件的上电行为差异
常见存储介质的上电行为差异,可以归纳成三个维度:POR 复杂度(内部要初始化多少状态)、上电后首个动作(主机第一步该发什么)、上电延时量级(从 POR 到就绪要等多久)。SPI NOR 最简单——POR 释放后接口即可用;SPI NAND 多一层复位与内部状态确认;SD NAND 与 eMMC 走的是卡类协议,上电后主机要与器件交换参数(协商电压、总线宽度、访问模式),首条命令只是长流程的起点。
图 4 把「上电到首条命令」画成了五环链,并标注了三个判定点。这条链对所有介质都成立,不同的是每一环的参数与首条命令的形态:SPI 类介质的首条命令通常是读状态寄存器一类的查询命令,卡类介质的首条命令是协议规定的初始化命令(标准命令名,具体命令号以相应规范为准)。
| 介质 | POR 复杂度 | 上电后首个动作 | 上电延时特点 | 设计注意 |
|---|---|---|---|---|
| SPI NOR | 低,接口直接可用 | 读状态寄存器确认就绪 | 短,量级以手册为准 | 斜坡速率与上电时片选电平 |
| SPI NAND | 中,需复位与状态确认 | 按手册初始化序列操作 | 中,量级以手册为准 | 复位命令与就绪判据 |
| SD NAND | 高,走卡类协议 | 协议规定的初始化命令 | 较长,含参数协商 | 上电时序与协商流程 |
| eMMC | 高,走卡类协议 | 协议规定的初始化命令 | 较长,含参数协商 | 高速模式切换时机 |
两类介质的上电后行为有本质区别:SPI 类是查询式——主机读状态寄存器,器件回答就绪与否,流程短、判据单一;卡类(SD / eMMC / UFS)是协商式——主机与器件按协议交换参数,任何一步超时都要重来,流程长、状态多。同一套「上电后延时」思路不能通用:SPI 类等一个上电延时就够,卡类要走完整条初始化流程,任何一环的时序错误都会以「枚举失败」的形式暴露。
介质差异对设计的影响落在三处:首条命令的形态(查询命令 vs 协议命令)、上电延时的量级与构成(单段延时 vs 多段流程)、失败判据(就绪标志 vs 协议状态机)。选型与兼容替换时这三处都要重新核对,不能把 SPI NOR 的经验直接搬到 SD NAND 上——第 11 章会把这一点展开成选型检查项。
本章小结:器件侧的上电行为可以压缩成五句话——斜坡有窗口、POR 分两层、就绪有延时、等待期命令被丢弃、介质之间差在复杂度与首命令形态。下一章转向主芯片侧:主芯片自己的 POR、多轨上电顺序、时钟稳定与解复位,以及固件启动后的第一次器件访问。
3. 主芯片侧的上电时序
这一章把时序链的第二段——主芯片侧——讲透:主芯片自己的 POR 与电源轨怎么建立、多轨按什么顺序上电、时钟稳定与总线解复位怎么配合、固件启动后第一次访问器件时要注意什么。核心原则:主芯片的每一个「就绪事件」都必须显式地对齐到存储器件的「就绪事件」,不能靠巧合。
3.1 主芯片 POR 与电源轨建立
主芯片侧的上电从自己的 POR 开始。主芯片 POR 监测的是主芯片自己的电源轨,释放时刻只说明主芯片的数字逻辑可以开始工作,不说明任何外设——包括存储器件——已经就绪。主芯片上电相关的关键事件依次是:各电源轨建立、主芯片 POR 释放、时钟起振并稳定、内部复位释放、固件开始执行。存储器件被访问的时刻,必须排在这一串事件全部完成之后,这就是「主芯片侧上电时序」要设计的内容。
| 事件 | 含义 | 与存储上电的关系 | 主芯片动作 |
|---|---|---|---|
| 电源轨建立 | 各轨电压到达额定范围 | 存储轨可能尚未建立 | 按轨序设计,核轨先于 IO 轨 |
| 主芯片 POR 释放 | 主芯片逻辑开始工作 | 与器件 POR 无关 | 不作为访问器件的判据 |
| 时钟起振与稳定 | 振荡器起振、锁相环锁定 | 总线时序的前提 | 等稳定标志再解复位 |
| 内部复位释放 | 主芯片外设接口使能 | 总线可发起传输 | 解复位晚于时钟稳定 |
| 固件首条器件访问 | 启动代码第一次读器件 | 器件必须已就绪 | 按就绪判据发令 |
最常见的设计疏漏是:固件在启动代码里假定「主芯片能跑代码了,器件就能回命令了」。中间隔着三件事:存储轨可能还没建立、器件 POR 可能还没释放、器件上电延时可能还没计完。主芯片 POR 释放与器件就绪是两个独立事件,把它们当成一个是上电时序缺陷的起点。
对应的设计动作:在系统时序图上,把「主芯片 POR 释放」与「存储器件就绪」画成两条独立的时间线,标注它们的先后关系与依据(哪个手册的哪个参数)。画不出来,说明设计还没想清楚。
3.2 多电源轨的上电顺序
现代系统很少只有一轨电。主芯片通常有核轨与 IO 轨,存储器件可能单独一轨,还有模拟轨、辅助轨等。多轨上电顺序的设计目标是:任何时刻都不出现「电流倒灌」与「未定义状态」——即高电位轨不要通过器件的钳位路径向未建立轨倒灌电流,也不要让器件在部分上电状态下工作。顺序规则通常来自主芯片手册(轨间最大延时)与器件手册(电源域要求),两者取严。
| 电源轨 | 典型顺序位置 | 给谁供电 | 顺序错误的后果 |
|---|---|---|---|
| 主芯片核轨 | 通常最先建立 | 主芯片核心逻辑 | 晚于 IO 轨可能违反手册轨序 |
| 主芯片 IO 轨 | 核轨之后 | 主芯片 IO 与总线 | 与核轨倒挂可能产生锁合电流 |
| 存储器件轨 | 按器件手册与系统设计 | 存储器件 VCC | 早于主芯片核轨有倒灌风险 |
| 模拟 / 辅助轨 | 按敏感度排序 | 时钟、参考电路 | 顺序错误影响起振与稳定 |
轨序错误最温和的表现是器件在上电瞬间流过一阵异常电流,功能完全正常,只是结温略高、寿命略短;中位的表现是间歇失效;严重的表现是钳位路径过流损坏。三种表现都指向同一个根因:上电顺序(或轨间延时)不满足要求。设计动作是把顺序与轨间延时写进时序图,并按第 9 章的案例方法验证。
还有一个容易漏的点:掉电时的轨序与上电时同样重要,通常是上电顺序的反序;第 5 章会展开。
3.3 时钟稳定与总线解复位
总线解复位是主芯片侧最后一个「大事件」:复位释放后,固件才能通过总线访问外设。解复位的时机有两个前提:时钟已经稳定(否则总线采样没有可靠基准)、电源轨已经建立(否则 IO 电平不在定义域)。把解复位提前到时钟稳定之前,总线上的第一次传输就可能采样到错误电平,表现为数据错乱或间歇失效——这类问题用示波器很难抓,因为它只发生在解复位后的前几个周期。
| 事件 | 触发条件 | 系统可观测性 | 设计动作 |
|---|---|---|---|
| 时钟起振 | 振荡器开始工作 | 频率未稳,不可依赖 | 等待,不动作 |
| 锁相环锁定 | 频率到达目标值 | 部分器件有锁定标志 | 等锁定标志置位 |
| 时钟稳定标志 | 硬件确认时钟可用 | 可观测(寄存器位) | 作为解复位的前提 |
| 总线解复位 | 复位释放,总线使能 | 可观测 | 在稳定标志之后执行 |
| 首次总线访问 | 固件发起传输 | 可观测 | 在解复位之后执行 |
用固定延时等时钟稳定,与用固定延时等器件就绪是同一类错误——都把「最坏情况没出现」当设计依据。有稳定标志的系统,解复位判据用标志;没有标志的,按手册给的起振时间上限核算余量,并在时序图上写明依据。判据的形式(标志 / 核算延时)要写进设计文档,量产测试按同一判据执行。
3.4 固件启动与首次器件访问
固件启动代码里的第一次器件访问,是整条链的终点,也是最容易「想当然」的一环。首次访问有三个设计点:访问时机(等器件就绪之后)、访问内容(第一条命令按手册初始化序列选择)、异常处理(超时与重试策略)。三个点里最容易被忽略的是第三个:启动代码通常假定「访问一定会成功」,没有超时保护——一旦器件不应,启动代码就死循环在轮询上,连错误日志都留不下。
| 阶段 | 固件动作 | 器件侧要求 | 风险(不满足时) |
|---|---|---|---|
| 启动代码执行 | 主芯片 POR 释放后开始 | 无需器件参与 | 与器件就绪是两个事件 |
| 时钟与总线就绪 | 解复位完成 | 总线传输成为可能 | 解复位早于时钟稳定则采样错 |
| 器件就绪确认 | 读状态寄存器或等延时 | 器件已过上电延时 | 假就绪,后续命令全错 |
| 首次业务访问 | 读器件 ID / 参数 | 命令被正确锁存 | 首命令不合初始化序列则异常 |
| 异常处理 | 超时、重试、降级 | 器件可能损坏或未焊 | 无超时则系统挂死启动段 |
轮询就绪本身是对的,但轮询必须带超时与错误出口。没有超时的轮询,在器件真正损坏时会把系统挂死在启动阶段——没有日志、没有指示灯、没有降级路径,现场只剩一台「不应」的机器。超时时间按就绪判据的核算余量定,超时后按系统设计走降级流程(例如进恢复模式、点亮错误指示)。
配套习惯:把首次访问的结果(成功 / 超时 / 错误码)记进日志或诊断寄存器。现场失效回到实验室,第一条信息就是「当初第一次访问到底成没成功」——这比任何猜测都值钱。
3.5 上电时序违规的三种表现
主芯片侧的上电时序违规可以归纳成三种,与第 1 章的失效形态一一对应。顺序错误对应「完全无响应」与器件损坏,解复位过早对应「间歇失效」与数据错乱,首条命令过早对应「命令丢失」与固件超时。三种违规的共性:在典型条件下都能跑,在最坏条件下失效——这正是它们能流过试产的原因。
| 违规类型 | 机理 | 表现 | 对策方向 |
|---|---|---|---|
| 上电顺序错误 | 轨间倒灌 / 部分上电 | 器件损坏、上电不应 | 按轨序与轨间延时设计 |
| 总线解复位过早 | 时钟未稳即放行总线 | 数据错乱、间歇失效 | 解复位等时钟稳定标志 |
| 首条命令过早 | 早于器件上电延时终点 | 命令丢失、固件超时 | 轮询就绪或核算延时 |
三种违规在室温、典型批次、典型电源条件下几乎都能工作,所以「试产过了」不构成放行依据。对付它们的唯一手段是把判据前置到设计阶段:时序图标明顺序与依据、参数表列明余量核算、检查单逐项确认(第 7 章与附录 B)。量产阶段再发现,代价是改版。
本章小结:主芯片侧的上电时序可以压缩成三句话——主芯片的每一个就绪事件都要显式对齐到器件就绪、多轨顺序与轨间延时按手册取严、解复位的判据用标志不用延时。下一章讲怎么把这些判断变成可测量的量:测量点、探头、提取口径与余量判定。
4. 上电波形与延时的测量
这一章讲怎么「看见」时序链:测哪些点、用什么探头、怎么从波形里提取斜坡速率与阈值穿越时刻、怎么判定最小延时的余量、怎么把波形变成可复用的基线。核心观点:上电时序的质量不取决于设计得多仔细,而取决于能测量到什么程度——测不出来的余量等于没有余量。
4.1 测量点与探头选择
上电时序测量的第一判据是「器件电源引脚处的 VCC」与「器件片选引脚处的 CS#」在同一时间轴上的关系。只测其中一个,结论都是片面的:只看 VCC,不知道命令何时发;只看 CS#,不知道器件看到的上电过程。四个基本测量点各有分工:① 器件电源引脚(主判据)、② 电源输出端(分离电源慢与器件慢)、③ 片选引脚(读命令时刻)、④ 时钟与命令引脚(读首条命令形态)。
| 测量点 | 探头 | 带宽要求 | 回答什么问题 |
|---|---|---|---|
| ① 器件电源引脚 | 无源或差分探头 | 覆盖信号最高频率 | 器件看到的上电过程(主判据) |
| ② 电源输出端 | 差分探头优先 | 覆盖开关频率 | 分离电源建立慢与器件就绪慢 |
| ③ 片选引脚 | 无源探头 + 接地弹簧 | 覆盖沿率 | 首条命令的相对时刻 |
| ④ 时钟 / 命令引脚 | 无源探头 + 接地弹簧 | 覆盖沿率 | 首条命令的形态与建立时间 |
上电瞬态里有快沿与大电流,探头地线每长一厘米,就多一份地弹与辐射耦合。测陡沿与瞬态必须用接地弹簧或短地环,用通用鳄鱼线地测出来的「漂亮波形」,可能把真实的振铃与塌陷全部滤掉。探头带宽也不是越高越好:过高的带宽会把噪声放大到淹没信号,按信号最高有效频率选档。
4.2 斜坡速率与阈值的提取
从波形提取两个量。斜坡速率 dV/dt:在 VCC 爬升段取两点算斜率,取点要避开起振毛刺与探头振铃,手册窗口是判定标尺。阈值穿越时刻:器件内部的 POR 阈值无法直接测,工程上用「CS# 首次被正确响应的时刻」反推就绪点,用「VCC 到达手册规定最低工作电压的时刻」近似阈值穿越——两个近似都要在测试报告里写明口径,否则批次间没法比对。
| 提取量 | 计算方法 | 判据 | 记录要求 |
|---|---|---|---|
| dV/dt | 爬升段两点斜率 | 落在手册窗口内 | 记录取值区间与取点位置 |
| 最低工作电压时刻 | VCC 越限值的时刻 | 作为阈值穿越近似 | 写明近似口径 |
| 首响应时刻 | CS# 首次得有效响应 | 作为器件就绪近似 | 与上电延时判据对照 |
| 命令建立时间 | CS# 下降沿到首时钟沿 | 满足器件时序参数 | 按手册参数判定 |
同一个波形,不同口径能提出不同的数:爬升段取点靠前算出的 dV/dt 偏大,包含毛刺算出的穿越时刻偏早。口径(取点区间、滤波设置、近似定义)必须写进测试规范,否则今天的数与明天的数不可比,批次比对失去意义。附录 A.3 给出建议的测量条件口径。
4.3 最小延时的判定与余量
最小延时的判定分三步。第一步,测实际延时:从阈值穿越近似时刻到首条命令有效沿,在示波器上量出来。第二步,对手册上限:把实测与手册给出的上电延时上限对照,实测必须小于上限且留有余量。第三步,算最坏余量:把温度、批次、电压边缘的修正量代进去,算出最坏情况下的余量。余量为负或接近零,就是第 1 章说的「余量丧失」——功能全绿,但没有裕量。
| 判定步 | 内容 | 通过条件 | 不合格处置 |
|---|---|---|---|
| 实测延时 | 阈值近似 → 首命令沿 | 小于手册上限 | 记录环境条件与样本数 |
| 手册上限对照 | 实测 vs 手册参数 | 留有余量 | 按高温 / 边缘批次加严 |
| 最坏余量核算 | 温度 + 批次 + 电压修正 | 余量为正 | 负余量按缺陷处理 |
| 总线时序余量 | 建立 / 保持时间 | 满足时序参数 | 按最坏沿率核算 |
多数团队做到第二步就停了:「实测比手册小,通过」。但实测是一个样本在一个环境下的值,不是最坏值。低温延长、批次分散、电压边缘,每一个都能把实测值推向手册上限。第三步(最坏余量核算)才是判定,前两步只是取证。核算方法写进测试规范,样本量按批次风险定。
4.4 上电波形的记录与批次比对
上电波形是一次性的——每次上电只发生一次,抓不到就没了。所以记录比单次测量更重要。最小记录集:VCC @ 器件引脚、CS# @ 器件引脚、首条命令若干周期、环境条件(温度、电压、批次号)。记录的目的是建立基线:后续批次与基线比对,任何漂移(斜坡变陡、延时变长、就绪点移动)都是早期预警。
| 记录项 | 内容 | 保存形式 | 比对频次 |
|---|---|---|---|
| VCC @ 器件引脚 | 斜坡与稳态全过程 | 截图 + 波形文件 | 每批次首件 |
| CS# @ 器件引脚 | 首条命令时刻 | 截图 + 波形文件 | 每批次首件 |
| 首条命令周期 | 命令形态与建立时间 | 截图 + 波形文件 | 每批次首件 |
| 环境与批次信息 | 温度 / 电压 / 批次号 | 记录表 | 每次测量 |
| 漂移比对结论 | 与基线差异判定 | 比对报告 | 每批次 |
现场偶发失效回到实验室,最难回答的问题是「这个批次的上电波形和当初一样吗」。有基线,这个问题五分钟能答;没有基线,只能靠猜。基线的建立成本是设计阶段多存几个波形文件,收益是量产阶段每一次漂移都能被早期发现——这是上电时序测量里投入产出比最高的一项工作。
4.5 测量误差的主要来源
上电测量的误差来源可以列成一张清单,按影响排序。探头负载(探头输入电容与电阻改变被测网络)、地线电感(地弹与振铃)、采样率与带宽(快沿失真)、触发抖动(单次事件时刻不准)、近似口径(阈值穿越的近似定义)。前两项靠选型与接法抑制,后三项靠口径统一与多次测量抑制。
| 误差源 | 影响量 | 抑制手段 | 残留风险 |
|---|---|---|---|
| 探头负载 | 输入电容电阻改变网络 | 选低负载探头、缩短连接 | 残余负载写入报告 |
| 地线电感 | 地弹与振铃 | 接地弹簧 / 短地环 | 浮地验证残余量 |
| 采样率与带宽 | 快沿与窄脉冲失真 | 按信号频率选档 | 高档位交叉验证 |
| 触发抖动 | 单次事件时刻不准 | 多次测量取统计 | 记录样本量 |
| 近似口径 | 阈值穿越的定义差 | 统一口径写入规范 | 比对只认同口径数 |
上电过程有分散性:每一次上电的斜坡、穿越时刻、延时都有微小差异。用一次漂亮的波形下结论,是把偶然当必然。判定类测量(余量、穿越时刻)要做多次并给统计值;形态类测量(命令是否被锁存)可以单次但需记录条件。多次测量的样本量按判定风险定,写进测试规范。
本章小结:上电测量的全部要点是一句话——在器件引脚处把 VCC 与 CS# 放在同一时间轴上,先定口径再取数,单次波形不下结论。本章的产出物是一份可执行的测试规范:测点、探头、提取口径、余量判定、记录与比对基线。下一章离开正常上电路径,讲掉电与再上电的衔接。