AUX-C1 — POL rail 与 POR:为什么多 rail 上电时序不能交给软件、顺序由器件物理定死,以及 Brown-out 响应本质是一条 FRTI 预算下的安全反应
本质与导读
专家养成 · 模块三(低压辅助电源)· C 阶第 1 讲,C 阶开篇。B 阶四讲把"怎么从 HV 隔离取电、怎么把误差信号跨障闭环稳压"讲透了,最后 AUX-B4 交出的是一条干净、精度达标的 12V(或中间 rail)。但 MCU 不吃 12V——它要 的 core、 的 IO、 的 ADC 参考,而且这几路必须按严格先后上电、按严格先后掉电,还要在任一路跌出窗口时在微秒级把 MCU 摁进复位。本讲从一个看似平凡却根子很深的悖论推起——谁来给 MCU 上电排序?不能是 MCU 自己——再从器件物理推出"为什么是这个顺序而不是别的",最后论证 Brown-out 响应为什么不是"电源管理",而是一条挂在 FTTI/FRTI 预算下的安全反应,和 FS-A3 那根时间轴接上。
开篇:硬约束——排序者必须独立于被排序的对象,顺序必须服从器件物理
这一讲的硬约束有两层,都反直觉。
第一层:上电时序的执行者,不能是那个正在被上电的 MCU。 这是一个纯粹的自举(bootstrap)悖论:多路 rail 谁先谁后要有人拍板、要有人在每一路达标后放行下一路,但唯一"聪明到能跑排序逻辑"的器件是 MCU,而 MCU 恰恰是这条链最后才拿到电、最晚才醒的那个。让 MCU 排自己的上电序,等于让还没出生的人主持自己的接生。所以排序者必须是一个先于 MCU 醒来、独立供电、纯硬件的实体——SBC(System Basis Chip)里的硬件 sequencer。这不是设计偏好,是因果顺序逼出来的:能排序的必须先于被排序的存在。
第二层:顺序本身不是随便定的,它由 MCU 内部的器件物理定死。 一颗双电源(core + IO)MCU 的两个电压域之间,芯片工艺上天然存在 ESD 保护二极管和阱隔离结构。如果 IO 域先于 core 域上电,IO 上的电压会通过这些 ESD 二极管正向导通、反灌进还没供电的 core 域——轻则 core 通过 ESD 通路漏电、重则触发 CMOS 的寄生 PNPN 闩锁(latch-up):一旦这个寄生晶闸管被触发,芯片进入低阻大电流态,自锁到烧毁。所以"core 先于 IO"不是约定俗成,是"防止 ESD 二极管正偏 → 阱隔离击穿 → latch-up"这条物理链的强制结论(ADI/TI 的电源时序应用笔记均以此为据,并注明典型器件只允许这种失配持续约 )。
把两层合起来:POR(Power-On Reset)是 AUX 链的最后一棒,它把干净的 rail 按器件物理规定的顺序、由一个独立硬件排序者交付给数字 core,并在整个生命周期里守着每一路不跌出窗口。 下面依次推:为什么排序必须硬件、为什么是这个顺序、时序预算怎么算、Brown-out 为什么是安全反应。
中段一:第一性——为什么排序必须硬件,而且必须"独立于 MCU"
上面说了排序者不能是 MCU。这里把它推到底,因为它同时解释了本讲后半段 Brown-out 的设计。
关键词是独立性。SBC 之所以能当排序者,不只是因为它"先醒",更因为它在电气上、逻辑上都独立于 MCU:它有自己的欠压锁定(UVLO)、自己的状态机、自己的参考基准,不依赖 MCU 的任何一根 rail 或一行代码就能工作。这个独立性有两个直接后果:
其一,上电时它是唯一的主。 SBC 检测到 Vbat 就绪(过 UVLO)后,自主启动内部 sequencer:先建 pre-regulator(把 Vbat 降到中间轨,如 ),再逐路放行下游 core / IO / ADC 各 LDO 或 SMPS,每一路等到 Power-Good(PG,约达 标称)才放行下一路。整个过程 MCU 是"货物"不是"搬运工"。
其二,运行时它是唯一可信的监视者。 这一点是本讲后半 Brown-out 的地基:一旦 MCU 的 core rail 开始跌,MCU 自己的运算能力也随之退化——一个正在欠压的 MCU,你不能指望它可靠地跑"检测自己欠压"的那段代码。这正是 FS-A3 独立性原则的另一个面孔:监视对象不能同时是自己的监视者。所以 rail 的欠压检测必须放在 SBC 里、用独立比较器和独立参考做,而不是 MCU 软件轮询 ADC。这条独立性把"电源排序"和"安全监视"统一成同一个理由:你需要一个不依赖被保护对象、且比它更皮实的外部实体。SBC 硬件 sequencer 的实际设计(MC33907 / TLF35584 / TPS65381)见 POR Sequencing 深度 与 SBC 多 rail sequencing。
中段二:为什么是这个顺序——latch-up 的物理定序,以及掉电必须逆序
中段一说了"要排序",这一节说"排成什么样"。顺序不是拓扑方便决定的,是失效物理决定的,而且上电顺序与掉电顺序是一对镜像约束。
上电:低压 core 先,IO/ADC 后。 开篇已给因果:IO 域若先于 core 域带电,IO 电压经 ESD 二极管正偏灌入无电的 core 域,触发 latch-up。反过来,core 先带电、IO 后到,这些跨域 ESD 二极管始终反偏或零偏,不导通,阱隔离不被击穿。所以典型 ASIL D MCU(如 Aurix TC397 / S32K3)的 datasheet 会明文规定 必须先于 ,再到 。现代单电源 MCU 常把 core()交给片上 EVR/SMPS 从 内部生成,此时 SBC 对外只出 pre-reg + + ,但"core 域必须在 IO 之前稳"这条物理约束不变,只是排序主体从 SBC 挪到了片上 EVR。
掉电:必须严格逆序。 latch-up 的因果是对称的——上电时"IO 先于 core"危险,掉电时"core 先掉、IO 还在"同样危险(IO 域仍带电、core 域已失电,又是 ESD 二极管正偏那一幕)。所以掉电顺序必须是上电顺序的镜像:ADC → IO → core 依次落。工程上这靠 SBC 的下电 sequencer + 各 rail 放电路径的相对时间常数保证,而不能让几路 rail"同时断电各自随机衰落"——随机衰落里必然出现某段时间的危险失配。一句话:latch-up 把上电和掉电两端都定死成同一条物理序的正反两遍。
除了 latch-up,顺序还服务一条功能约束:RESET 必须在所有 rail 稳定之前保持拉低、之后才释放。因为 MCU 一旦被放出复位就会去读 Flash、锁 PLL、跑 boot ROM,若此时某路 rail 还没稳,轻则 Flash 读错 CRC 失败、PLL 锁不上,重则在亚稳态 rail 上执行了不确定的指令。所以 POR 的完整时序是:逐路上电到全部 PG → 再等一段 reset-delay → 才释放 RESET,把 MCU 的第一条指令牢牢压到所有电压都稳之后。这段 reset-delay 该设多长,是下一节的定量问题。
中段三:核心推导——上电时序预算,reset-delay 的下限从哪来
这一节把"顺序"落到"时间账"。POR 时序设计的核心不等式,是要保证 MCU 被放出复位的时刻,晚于最后一路 rail 稳定 + PLL 锁定的时刻,同时又别晚太多拖慢唤醒。写成预算:
其中 是逐路 soft-start 到全部 PG 的累计时间, 是 SBC 在 all-rails-PG 之后再等的可配延时。左边是"MCU 何时开始跑",右边是"系统何时真的准备好",预算要求左 右并留裕量。
这里有一个业界反复踩的误值陷阱要先破:很多旧资料写"POR 固定延时 "。这是错的——真实 SBC 的 reset-delay 是可配的低毫秒量级实值,例如 MC33907 的 RSTB 延时只有 或 两档(POR 唤醒后自动取最长的 )。把它当成一个拍脑袋的大常数,会掩盖真正要论证的东西:reset-delay 的下限不是某个魔数,而是 。
走一个数(配置对标 POR 深度 §8 的 Aurix TC397 + MC33907):
逐路 soft-start(常温,受各 rail 电容与限流决定):
VCORE 在 稳定,片上 PLL 需再约 锁定,故 。取 reset-delay :
裕量充足。现在看为什么不敢用 档:若 reset-delay ,则 ,常温下仍 、能过;但 冷启动时 LDO/SMPS soft-start 变慢、Flash 访问变慢、PLL lock 时间拉长, 可能涨到 ,直接吃穿 的释放点——MCU 在未锁 PLL 上 boot,冷启动 reboot loop。这就是为什么工程默认取 档:它不是浪费,是给冷启动的 soft-start/PLL 慢化留的裕量。reset-delay 的选择,本质是一道对最坏工况(低温) 的预算论证,不是抄一个常数。 若某平台 rail 电容特别大、soft-start 慢到超过 SBC 最大 reset-delay 档,就必须把 MCU 片上 core-PG 也接进 SBC 联锁,而不是硬等一个固定延时。
中段四:Brown-out 是安全反应,不是电源管理——它挂在 FRTI 预算下
上电只是开始。系统跑起来后,任一路 rail 可能因 cranking 二次跌、负载突变、pre-reg dropout 而跌出窗口(brown-out)。这一节的第一性主张是:Brown-out 响应不属于"电源管理",它是一条挂在 FS-A3 的 FTTI/FRTI 预算下的安全反应——因为一个 core 欠压的 MCU 会冻结在错误的 PWM 输出上,在主驱里就是不受控扭矩这个整车级危害。
为什么必须硬件、必须独立?两个理由叠加,且和 FS-A3 的两个理由不同,值得分清:
- FS-A3 讲的是"太快采不到":微秒级故障因采样定理无法用离散诊断兜住,必须坍缩成硬件连续比较。
- 本讲讲的是"失效者不能自监":即便时间上来得及采,那个正在 brown-out 的 MCU 本身运算已不可靠,让它跑"检测自己欠压"的代码,是让失效者鉴定自己的失效。这条独立性约束,即使 FTTI 宽到毫秒级、软件轮询在时间上够得着,也依然把检测逼到 MCU 之外。
所以 Brown-out 检测坐在 SBC 里:每路 rail 用独立参考 + 独立比较器监 UV/OV,超阈值 → 经一个约 的去毛刺时间窗确认(短于此判为瞬态滤除,躲开 ISO 7637-2 类 级干扰)→ 立即拉低 RESET → MCU 停 PWM → 栅驱进 STO → 主驱建立 ASC(主动短路)。阈值是简单算术,但要注意真实 SBC 的 UV/OV 非对称、各 rail 独立(别拿一个 套所有 rail):
关键是把响应时间放进 FRTI 预算里核。这个 不是 ISO 26262 给的常数,是要落进该 item 由 FTTI 逐项分配的 FRTI 里的一个设计值——下一节 worked 把它和 FS-A3 的账本接上。Brown-out 阈值/迟滞/时间窗的完整设计见 POR 深度 §5,联动 safe state 见 EV 上下电系统级 FSM 深度。
worked example:把 Brown-out 响应算进 FRTI 预算,并证明软件轮询为何出局
接中段四,用主驱 core rail brown-out 走一遍 FS-A3 的账本。危害:core 欠压致 MCU 冻结 PWM → 不受控扭矩。设该危害的 (与 FS-A3 的 DC-link 中速电气故障同量级,由电机机械/电气惯量定),余量 ,故总预算 ,给这条 brown-out→ASC 路径分配 。
硬件方案(SBC 比较器): 检测段 去毛刺时间窗 ;反应段 = RESET 拉低到栅驱 STO 的硬件传播 数 ,加 ASC 建立(负压钳位/主动短路) 数十 。合计:
裕量近 ,硬件方案轻松落进预算。
软件轮询方案(反证): 假设让 MCU 周期读 ADC 判 core 欠压,采样周期 、去抖 、处理 。套 FS-A3 的采样率上限:
时间上并不违规—— 完全跑得动。这恰恰是本讲要点:软件方案出局不是因为算不过来这道时间账,而是因为独立性。被判定"欠压"的那路 rail,正是给 MCU core 供电的 rail;当 跌到 ,MCU 的 ADC 参考在漂、CPU 在亚稳边缘,它读回的 ADC 值本身已不可信,更可能直接死机——让一个正在断电的处理器可靠地测量并上报"我正在断电",逻辑上不成立。所以即便 的账算得过,这条路也必须交给 SBC 的独立比较器。这就是 FS-A3 的"采样定理边界"之外,POR 独立给出的第二条边界:自监边界——失效者不得作为自己失效的检测者。 两条边界都把安全检测赶出软件域,但一个因为"太快",一个因为"不独立"。
落到工程结论:POR/POL 的自顶向下设计链 + 三条准则
把四段收成一条设计任一 ECU POR 都走一遍的链:
- 定排序主体:sequencer 必须是独立于 MCU 的硬件(SBC 或片上 EVR);确认它自带 UVLO/参考,不依赖 MCU 任何 rail 或代码。
- 按器件物理定序:查 MCU datasheet 的 core/IO/ADC 上电顺序要求( 先于 ,防 latch-up);掉电严格逆序,别让各 rail 随机衰落。
- 算 reset-delay 预算:,取**最坏工况( soft-start/PLL 慢化)**验;用 datasheet 实值( 档),不抄""魔数;裕量不够则接片上 core-PG 联锁。
- 把 Brown-out 挂进 FRTI:每路 rail 用独立参考 + 独立比较器 + 时间窗;阈值按 datasheet 非对称 UV/OV 逐路设;响应时间核进该 item 的 FRTI 预算(接 FS-A3)。
- 验证三轮:全温度冷启动 + Vbat sweep(6→18V)+ 每路 brown-out 注入,示波器抓 brown-out→RESET→PWM-stop 端到端延迟对账 FRTI。
带走三条准则:
- 排序者必须独立于被排序者。 MCU 排不了自己的上电序(自举悖论),也监不了自己的欠压(自监边界)——两者都逼出一个先醒、独立供电、更皮实的外部硬件 SBC。
- 上电/掉电顺序由 latch-up 物理定死,是一对镜像。 先于 上、逆序掉,根因是跨域 ESD 二极管正偏 → 阱隔离击穿 → 寄生 PNPN 闩锁;这不是约定,是失效物理。
- Brown-out 是安全反应,响应时间是 FRTI 预算的消耗,不是电源管理的自由参数。 reset-delay 别抄 魔数(真实 档),brown-out 的 要论证落进 FTTI 分配的 FRTI——POR 是 AUX 链与 FS 时间轴的接缝。
承上启下:今天把 AUX 链的最后一…
承上启下:今天把 AUX 链的最后一棒——干净 rail 如何按物理定序、由独立硬件交付给数字 core,并在运行中作为安全监视者守住每一路——接到了 FS-A3 的 FRTI 时间轴上。但 ECU 的绝大多数时间不在"跑",而在"睡":整车熄火后 SBC 要把自己和 MCU 拉进 静态电流的深睡,又要留几路 selective wake 源随时能唤醒——这套"睡得够省、又醒得够快"的矛盾,是 C 阶下一道硬约束。下一讲 AUX-C2 讲 Sleep / Wake-up: 预算 怎么分配、4 类 selective wake 源(CAN/LIN/本地/定时)如何在 MCU 断电时仍保持监听。预读 Sleep & Wake-up 深度。
延伸阅读
- POR Sequencing 深度 — 本讲 deep 底座:5 大 rail 顺序、MC33907/TLF35584/TPS65381 sequencer、Brown-out 阈值、Aurix TC397 worked 时序
- SBC 多 rail sequencing — 寄生 PNPN latch-up 的物理与逐 rail 时序细节
- EV 上下电系统级 FSM 深度 — POR 粘进 6 状态整车 FSM(POR + 预充 + Active Discharge + Safe State)
- MCU + SBC ASIL D 集成 — SBC 与 MCU 的安全握手、WD、FCCU
- SBC 概览 · SBC Watchdog 深度 — POR 后首次喂狗窗口与 Q&A WD
- 辅助电源全栈 hub — POR/POL 在 ECU 供电链上的位置