ST L9952GXP 车身电源管理 IC:双稳压器 + 两级 standby + contact sense

低压辅助电源L3别名 L9952GXP · ST 车身 PMIC · door module SBC · 双稳压器 SBC · cyclic contact sense · 两级 standby · 更新

本质与导读

本质 L9952GXP 是 ST 给车门 / 车身模块的 multi-output SBC,和单输出 SBC 的根本区别是双稳压器(V1 250mA 主轨 + V2 100mA)叠两级 standby(V1_standby 保 RAM 45µA / Vbat_standby 7µA)再加 cyclic contact sense——为的是在触点 / 外设越堆越多时把整车静态电流压到极低。

主线坐标:旁支 · 低压控制域 · ↑ 全景主线

1. 器件定位 — 为什么是"双稳压器 + 两级 standby"

L9952GXP 把车身 / 门模块 ECU 的一整套基础设施集成在 PowerSSO-36 里:2 路 low-drop 稳压器(V1 = 5V/250mA 给 µC 与内部逻辑、V2 = 5V/100mA 可配)、LIN 2.1 transceiver5 个 high-side driver(1× 1Ω 作 contact supply + 4× 7Ω 驱 LED/Bulb/Hall)、2 个 low-side driver(2Ω 驱 relay)、2 个 OpAmp(典型作 current sense)、2 个带片上振荡器的 timerwindow watchdog + FSO(Fail-Safe Output)+ SPI 全诊断

L9952GXP 系统框图:Vs 输入 → 双稳压器 V1/V2,5 个 HS / 2 个 LS 驱动 + 2 OpAmp + LIN,window watchdog + FSO + SPI 诊断,WU 触点经 timer 周期供电

它和"只给 µC 供电"的单输出 SBC 的区别,全在三件事上:双稳压器(V1 主轨 + V2 可配外设轨)、两级 standby(一级保 RAM、一级极省电)、周期性触点监测(把常通触点的静态电流变成脉冲供电)。这三件正是车门模块的刚需——既要门把手即时唤醒、又要整车几十微安的静态电流。典型应用是 power window / mirror / lock / turn indicator 的门模块,也用于车身控制器。

2. 双稳压器 V1/V2 与 ICMP 总电流监测

V1 是器件核心:5V、Active 模式 250mA continuous,给 µC 以及 L9952GXP 内部逻辑 + 全部数字输出(Dig_out3/4、FSO、NReset、SPI DO、LIN RxD 都由 V1 派生)。V2 是 5V/100mA 的可配轨,有 4 种模式(Always Off / Always On / 仅 run / Active+V1_standby),打开后应读 SHT5V2 flag 核查负载。两路稳压器都无需 electrolytic 输出电容(原理图典型 220nF)。

最反直觉的一点:ICMP 监测的是 V1 的总电流,不只是 µC 电流。 = µC 外部电流 + 内部逻辑 + 所有数字输出电流之和。后果是:V1_standby 下,一个挂在 Dig_out3 上的 ~1mA LED(比如把 active-high 触点状态 loop 到数字输出)就能把 顶过 Icmp_rise、误启 watchdogST 明确禁止用关掉 ICMP 来"解决"它(那会废掉 fail-safe),只能靠系统设计压低 standby 电流。

输出跌落保护按场景分:Active 下 V1/V2 跌破 2V 持续 ≥2µs → latch V1fail/V2fail(典型由 EMI 引起,此后 µC RAM 一致性不再保证);turn-on 时 4ms 内未升过 2V → 判 short-to-ground 关该路(V1 短路 → 自动进 Vbat_standby;V2 短路 → 仅关 V2 + 置 SHT5V2)。V1 跌破 NReset 阈值持续 ≥8µs → 立即拉低 NReset。温度上:junction >155°C 置 TSD2,V1 关 1s 后自动重开;1 分钟内连续 8 次 TSD2 → 强制 Vbat_standby

3. Watchdog 与 LOWi 初始化

L9952GXP 的看门狗分两段:上电 / 唤醒后的 LOWi(Long Open Window)= 65ms typ 给 µC 跑 boot + 全部 power-on diagnosis,然后 µC 通过翻转 TRIG(CR0 D19)结束 LOWi、进入 window 模式。所有 power-on 诊断必须在 65ms 内做完,否则重启原因 / cold-start 信息丢失。

L9952GXP window watchdog 时序:LOWi 65ms → closed window 4.8-7.2ms(此间触发=fail)→ open window 8-12ms(safe trigger area,建议 ~10ms 触发);WD fail 阶梯:NReset 2ms → 8 次失败 V1 关 200ms → WDC 达 15 强制 Vbat_standby

进入正常运行后是 windowed watchdog:correct trigger 后 closed window 4.8–7.2ms(此间翻转 TRIG = Early-write 失败 → NReset 2ms),接 open window 8–12ms。ST 建议在 safe trigger area 正中、约 10ms 触发(corner condition 下避免误判)。每次 LOWi 未触发 → NReset 拉低 2ms + WDC 加 1;连续 8 次失败 → V1 关 200ms 再开;WDC 达 15 → 强制进 Vbat_standby、WDC 清零WDC(SR1 bits 12-15)必须在任何 reset 后、触发 WD 前读取才能监到连续失败数。

两个高频软件 bug 源:① 写 TRIG 必须连输出配置一起写——TRIG 和输出位同在 CR0,每次翻转 TRIG 都会重定义全部输出;NReset 后 TRIG 被复位为 0 必须写 1,而 V1_standby 无-NReset 唤醒时 TRIG 未复位、必须先读现值再翻转(否则首触发即 Early-write 失败、LOWi 直接关掉)。② 读状态优先用 CR2 write 而非 CR0 write——CR0 写会覆盖 TRIG/V2/输出配置,唤醒后第一步用 CR0 读 SR0 会意外改输出和触发位。

4. 两级 standby 状态机

L9952GXP 的两级低功耗是它和单输出 SBC 拉开差距的地方:一级保 RAM、一级极省电。

L9952GXP 三态:Active(V1 250mA,WD 必触发)→ V1_standby(V1 low-current 45µA,RAM 保留,Iv1<Icmp_fall 时 WD 停)→ Vbat_standby(V1 关 7µA,RAM 丢,等同冷启动);WD fail / 8×TSD2 强制进 Vbat_standby

模式V1watchdogIq typRAM唤醒后
ActiveOn 250mA必须周期触发有效
V1_standbyOn,low-current<Icmp_fall 后停;仅 >Icmp_rise 才以 LOWi 重启45µA(无 cyclic)保留µC 退 HALT 即恢复,快;NReset/FSO 保持 high
Vbat_standbyOff(输出拉地放电)7µA(cyclic 时 ≈75µA)丢失等同 power-on,需全 re-init;NReset/FSO 拉低

两个易错点:V1_standby 下 watchdog 不是常活的——进 V1_standby 后只要 降到 Icmp_fall(≈850µA)以下,window WD 即停、V1 转 low-current;WD 只有当 µC 电流回升过 Icmp_rise 才以 LOWi 重新起来。② 进 V1_standby 是个有硬截止时间的赛跑——发 Go_V1(CR0 D21)后,µC 必须在 ~16ms(下一个 open window 到期前)把 降到 Icmp_fall 以下,否则 WD 期待 trigger → 触发 NReset → 进不了 standby。铁律:最后一次 WD trigger 与 Go_V1 放进同一 CR0 frame,给 µC 留最大降流时间。另外 ICMP bit 进 standby 前必须为 0,否则 WD 不受 控制地被禁(fail-safe 失效)。

并注意:器件无法分辨自己从哪个 standby 醒来,要区分必须 µC 进 standby 前自存。门模块要"即时唤醒 + 保 RAM"选 V1_standby(45µA);追求极限静态电流、可接受冷启动选 Vbat_standby(7µA)。

5. 唤醒:cyclic vs static contact sense

车门有大量触点(门把手 / 锁 / 各种开关)需要在休眠下被监测。常通触点静态供电约 10mA/触点——几个触点就把静态电流预算吃光。L9952GXP 给两种 contact sense:

Cyclic contact sense(两种 standby 都支持):触点由 HS driver 仅在 timer ON-time 才供电,其余时间不耗电。一个常通触点从静态 10mA 改 cyclic 后,器件总电流只增加约 65µA——这是它能在多触点下守住几十微安静态电流的核心。Timer2 典型 period 50ms、On-time 100µs 或 1ms,最快 50ms+0.1ms;On-time 内 80µs blanking + 16µs filtering,检测到与上次合格值不同的电平 → wakeup。

Static contact sense(最适合 Vbat_standby 的 7µA):触点由外部电源持续供电,静态滤波 64µs,状态变化 >64µs 即 wakeup(存 SR0 bits 13-16)。唤醒阈值 rising 0.55·Vs / falling 0.45·Vs。漏电配置规则(两类通用):active-low 触点配 current source、active-high 触点配 current sink。每个 WU 输入的 filter 必须与所用 timer 的 period/On-time 匹配,否则要么唤不醒、要么一进 standby 就立刻误唤醒。

CAN 经 INH 唤醒(Iinh>200µA)与 LIN 唤醒在两种 standby 都常开、不可禁、且不产生 NReset 脉冲;SPI 唤醒仅 V1_standby 可用。

6. 诊断:global error flag 与输出监控

L9952GXP 的诊断最值得用的是 global error flag 快速诊断:任意读 SR0/SR1 的头 2 bit = 7 个电源类 error(V1fail/V2fail/TW/TSD1/TSD2/UV/OV)与 8 个输出 OC 类的逻辑或。可不发完整 24-bit frame——CSN 高→低、CLK 保持低,DO 即输出 bit0;DO=0 无错,DO=1 再读完整 SR 定位。建议每次 NReset 后先做这一步。

输出诊断:high-side open-load 仅在输出 ON 时检测(阈值可配 2mA 或 8mA,专为接 Hall sensor 的高实时性场景);over-current / LS 短路检到即关该路并 latch,直到写 CLR(Out_HS 可配 auto-recovery 用于冷灯泡 inrush)。OL/OC 用 64µs filter,即使 driver 关或器件在 standby,failure bit 仍 latch。结温三级:TW 130°C(告警)/ TSD1 140°C(除 V1 外全关)/ TSD2 155°C(V1 关 1s)。Interrupt mode(INT_en=CR1 bit 20):任意 V1_standby 唤醒源 → Dig_out4 出 2ms 脉冲,且 looping 与 NReset 生成被禁(µC 保 RAM 快速恢复)。

文档内部数值冲突 AN2751 正文…

文档内部数值冲突 AN2751 正文给 POR 阈值 3.8V typ,而 Appendix B 的 Information summary 表写 3.45V typ;OL 阈值寄存器位也有正文 CR0 D0-D4 vs CR2 D0-D3 两种写法。AN2751 是 cookbook 不是 datasheet,参数级权威值(尤其 Vpor、Icmp_rise 具体电流)必须以 L9952GXP datasheet 为准。本页保留正文值并标注差异。

7. Worked Design — 车门控制模块(DCM)L9952GXP 端到端参数规划

前门控制模块集成车窗升降 + 车门锁 + 后视镜调节 + 3 路触点唤醒。L9952GXP 的双稳压器 + 两级 standby + cyclic contact sense 恰好覆盖这些需求,下面给出关键设计决策和数值验证。

参数设计值推导
V1 主轨有效电流预算MCU 20 mA + IC 内部逻辑 5 mA + 数字输出 2 mA = 27 mA≪ V1 250 mA 限额,余量充足
V2 外设轨负载后视镜 Hall sensor 供电 + MOSFET 偏置 ≤ 40 mA≪ V2 100 mA 限额
LOWi 65 ms 分配MCU boot 20 ms + Flash 校验 10 ms + CAN/LIN init 10 ms + POD 15 ms = 55 ms< 65 ms,留 10 ms 余量;POD 顺序:先电源诊断,后通讯
WD trigger 周期闭窗 4.8–7.2 ms + 开窗 8–12 ms → 周期 ≈ 16–19 ms,trigger 点在开窗中央约 10 ms开窗 10 ms 触发既不靠近 8 ms 前沿也不靠近 12 ms 后沿,最大化抖动余量
进 V1_standby 时序Go_V1 与最后一次 WD trigger 同一 CR0 SPI 帧,MCU 立即执行 HALTHALT 后 Iv1 = MCU ~5 µA + IC ~45 µA = 50 µA ≪ Icmp_fall ≈ 850 µA;在剩余开窗 ~16 ms 内完成降流
DO 负载清零进 standby 前 1 ms 写 Dig_out3/4 = 关防 DO 漏电撑住 ICMP 不释放
Cyclic WU 配置3 路 WU:timer On-time = 250 µs(留 2× RC 稳定裕量)period = 50 ms+65 µA/路 × 3 = +195 µA;总 Iq(Vbat_standby + cyclic)≈ 7 + 195 = 202 µA < 整车 500 µA 静态预算
继电器关闭顺序Go_V1 前先关 LS1(继电器线圈 100 mA),等 10 ms → 再发 Go_V1继电器线圈电流属 V1 负载;带载进 standby 会阻止 Iv1 降到 Icmp_fall

产线 SOP 关键:① SPI 通讯验证用 global error flag 快路(不发完整 24-bit frame,只读头 1 bit)确认无 V1fail/V2fail;② Vbat_standby 配置 NvM backup 含 V2 模式字段,避免唤醒后 V2 缺配;③ -40°C 冷启验证 LOWi 实际耗时 ≤ 55 ms。


8. G1-G7 工程陷阱

L9952GXP 的陷阱大多源自"ICMP 管的是 V1 总电流,不是 MCU 电流"和"进 standby 有硬截止时间赛跑"这两条非直觉规则,下面七条都可以追到这两根主线。

G1:Dig_out3/4 漏电流进 Icmp → V1_standby 下 WD 永不停止

MCU 把门把手触点状态同步到 Dig_out3(4.7 kΩ 接 Vs),V1_standby 下 Iv1 = MCU HALT ~5 µA + IC ~45 µA + DO 漏 ≈ 1250 µA(4.7 kΩ 对 Vs 拉低时电流可达数 mA 量级)= 1300 µA > Icmp_rise(~1.2 mA 典型)。WD 不停,不断以 LOWi 重启 MCU——系统看起来是"睡眠中反复 reset"。根因:ICMP 监测 V1 全部电流,不区分 MCU 和外部负载。解法:进 standby 前写 Dig_out3/4 = 关(CR0 输出位清零);或把该路信号改走 Vs 直供(绕过 V1 电流监测路径)。

G2:Go_V1 与最后一次 WD trigger 不同帧 → WD 超期 → 进不了 standby

MCU 先单独发 CR0 写 Go_V1(D21=1,TRIG 保持旧值)→ 下一帧才翻转 TRIG。两帧中间约 2–3 ms,MCU 降流需 5 ms,极端下剩余开窗窗期 < 8 ms 时 WD 超期 → NReset 2 ms → MCU 重启 → Go_V1 无效。系统反复 reset、静态电流高企。解法:铁律:Go_V1(D21=1)与 TRIG 翻转必须在同一 CR0 SPI 帧,让 MCU 有完整的开窗剩余时间执行 HALT。

G3:LOWi 65 ms 内 CAN/LIN 初始化超时 → WD 过期死循环

-40°C 冷启:CAN init 等待总线空闲 ≥ 128 位时间(500 kbps → 256 µs + 协议栈初始化 ~10 ms)+ MCU Flash 校验在低温稍慢 → 总 POD 耗时 68 ms > 65 ms LOWi,WD 过期 NReset。再次上电重复。工程师看到"车在极寒下点不着",换更换 ECU 无效。解法:实测 -40°C 下 POD 各步骤耗时;把 LIN/CAN 总线等待移出 LOWi(改为 LOWi 后异步初始化);LOWi 内只做必须的电源诊断。

G4:唤醒后首帧用 CR0 write 读 SR → 意外翻转 TRIG + 重设全部输出

V1_standby 唤醒后 MCU 发 "CR0 read" 读 SR0 诊断。L9952GXP 解释 CR0 的 "read" 命令为 CR0 write(地址 0x00),按 data byte 立刻执行:data = 0x00 → TRIG bit = 0,若当前 TRIG = 1 则立刻翻转 → Early-write 触发 → NReset 2 ms;全部输出位重置为 0 → HS/LS 全关。门窗中途控制时出现 reset 无法复现——只有唤醒后第一帧才出现。解法:唤醒后首帧用 CR2 write(不影响 TRIG/输出)读 SR0;或先记住上次 TRIG 值,读 CR0 时保持 TRIG 不翻转。

G5:cyclic WU On-time 过短 → 触点 RC 未稳定即采样 → 频繁虚假唤醒

门把手开关 + 保护电容 100 nF + 保护电阻 470 Ω → RC ≈ 47 µs。配 On-time = 100 µs(最短),采样窗口 = 80 µs blanking + 16 µs filter = 96 µs;采样在 RC 稳定前(47 µs < On-time = 100 µs 但 blanking 吃掉 80 µs 仅剩 20 µs 有效采样)——中间电平被判为"状态变化" → 唤醒 MCU → 无真实输入 → 再进 standby → 再 cyclic。Iq 从 202 µA 跳到 ~2 mA(频繁唤醒唤醒消耗)。解法:On-time ≥ 3× RC ≈ 150 µs;WU 引脚附加 10–47 nF 到 GND;实测 On-time 内 WU 实际响应波形。

G6:HS OC latch 后未写 CLR → 输出永久失效

HS4 驱动 LED 冷灯泡浪涌 400 mA 超 OC 门限 → driver 关 + OC bit latch。MCU 检测到 OC 写 log,但忘写 CR0 CLR bit。HS4 在本次行程内永远关。下次行程 LED 不亮——用户投诉 "灯坏了",换灯不解决问题。解法:OC 处理分支必须写 CLR,冷灯泡配 auto-recovery mode;产测注入 OC 故障并验证 CLR 后恢复。

G7:WDC 未在首次 WD trigger 前读 → 连续 reset 历史丢失

WDC(SR1 bits 12-15)记录本次"多少次连续 WD 失败"。NReset 后 MCU boot → 读 SR1(在 LOWi 内第 50 ms 处,即已触发一次 WD)→ WDC 已被清到 0 或递增到 1,无法区分"第一次失败"和"第 7 次失败"。系统在极端 reset 循环时 WDC 始终看起来 = 0 或 1,无法触发降级保护。解法:NReset 后 LOWi 第一步(Flash 校验前)读 SR1 保存 WDC;WDC ≥ 5 时主动限制功能(关部分 HS 降低 Iv1 缓解 TSD2 风险);把 WDC 值持久化进 NvM 用于售后诊断。


9. 边界情形 C1–C3

C1:低温冷启 V1 升压延迟 + LOWi 窗口被 LIN 耗尽 → WD 过期

-40°C:V1 LDO 内部偏置电路启动慢,V1 从 0 升到 4.75 V 约需 8 ms(比 25°C 的 3 ms 长)。LIN 总线等首个空闲帧 ≥ 11 bit @ 10.4 kbps = 1.1 ms/bit × 11 ≈ 12 ms。MCU boot + Flash 校验 ≈ 25 ms。总 LOWi 消耗 = 8+12+25 = 45 ms,在余量内——但若 Flash 块较大(≥ 64 kB)或总线有干扰重新等待,边界已到 65 ms。工程对策:把 LIN 初始化从 LOWi 移出(改为 LOWi 后异步等待);LOWi 内只做电源轨和 WD 本身诊断。

C2:车窗运行中收到 standby 指令 → 继电器线圈电流阻止 Iv1 降落 → 进 standby 失败

BCM 广播 standby 时车窗正在升降:LS1 继电器线圈由 V1 驱动,电流约 100 mA ≫ Icmp_fall ≈ 850 µA。MCU 发 Go_V1 后无法降流,WD 在剩余开窗内超期 → NReset。若多次失败 WDC 累积 → V1 关 200 ms,车窗中途停在半开位置,用户体验差。解法:standby 请求处理流程:① 先令 MCU 停止窗控任务;② 写 CR0 关所有 LS/HS;③ 等 ~10 ms 继电器断电 + 续流消散;④ 再发 Go_V1 + 最后 WD trigger 同帧。

C3:Vbat_standby 唤醒后 V2 配置丢失 → 后视镜功能沉默

进 Vbat_standby 前 MCU 未把 V2 模式(Always On)写入 NvM。Vbat_standby 掉电清除所有 IC 寄存器。唤醒后 MCU 从 NvM 恢复配置,V2 模式字段遗漏 → V2 = 默认 Always Off,Hall sensor 无电,镜子不动。Global error flag 不报(V2 off 是有效配置),diagnostic 工具也无 DTC——只有功能测试才能发现。解法:NvM layout 中 V2 模式字段标注为"必须在 reset 后第一步恢复";冷启 POD 检查 Vv2 ≥ 4.75 V 且 SHT5V2 = 0;若检查失败写 DTC "V2 configuration lost" 并主动重配。


Engineering Objects

  • l9952gxp_sbc(ST 车身/门模块 multi-output SBC;双稳压器 V1 250mA/V2 100mA;PowerSSO-36;AEC-Q100)
  • dual_ldo_v1_v2(V1 = 5V 主轨 MCU + 内部逻辑;V2 = 5V/100mA 可配外设轨;双轨均无需电解电容)
  • icmp_total_current_monitor(监测 V1 总电流 = MCU + 内部逻辑 + 全数字输出之和;非仅 MCU 电流)
  • window_watchdog_lowi(LOWi 65 ms 上电/唤醒安全窗;closed 4.8-7.2 ms / open 8-12 ms;WDC 失败计数)
  • two_level_standby(V1_standby 45 µA RAM 保留 / Vbat_standby 7 µA 冷启;WD 在 Iv1<Icmp_fall 后停)
  • cyclic_contact_sense(HS timer 脉冲供电触点;常通触点 10 mA → +65 µA;period 50 ms / On-time ≥ 150 µs)
  • go_v1_wd_cotrigger(铁律:Go_V1 D21 与 WD TRIG 翻转同一 CR0 SPI 帧)
  • global_error_flag_quick_read(首位读取全局错误标志;7 电源类 + 8 输出 OC 逻辑或;省完整 24-bit frame)

核心要点

  • L9952GXP = 车身/门模块 SBC,相对单输出 SBC 多了双稳压器(V1 250mA/V2 100mA)+ 两级 standby + contact sense + 5HS/2LS/2OpAmp
  • ICMP 监 V1 总电流(µC+内部逻辑+全部数字输出),V1_standby 下一个 ~1mA 的 DO 负载就能误启 watchdog;ST 禁止用关 ICMP 解决
  • V1_standby 下 watchdog 不常活:<Icmp_fall(≈850µA)即停,>Icmp_rise 才以 LOWi 重启
  • V1_standby 是有硬截止时间的赛跑(~16ms 内降流),铁律=最后一次 WD trigger 与 Go_V1 同帧
  • 写 TRIG 必须连输出配置同写(同在 CR0);读状态用 CR2 write 不用 CR0 write
  • cyclic contact sense 把常通触点 10mA 压到 +65µA;Vbat_standby 7µA(static sense)/ V1_standby 45µA(保 RAM)
  • global error flag:不发完整 frame、只读头 1 bit 即知有无错,每次 NReset 后先做
  • AN2751 是 cookbook,Vpor 等参数级值有内部冲突,以 datasheet 为准

缩写表

只列本页用到的工业标准缩写;通用英语…

只列本页用到的工业标准缩写;通用英语 / 单位 / 月份 / 我们的 层/Lx tag 不列。覆盖不到的术语见正文 inline 注释。

缩写全称中文 / 备注
STSTMicroelectronics意法半导体
SBCSystem Basis Chip系统基础芯片(电源 + 收发器 + 监控集成)
ECUElectronic Control Unit电子控制单元
LINLocal Interconnect Network本地互连网络
SPISerial Peripheral Interface串行外设接口
EMIElectromagnetic Interference电磁干扰
CANController Area Network控制器局域网
SRSynchronous Rectification同步整流
ONonsemi安森美

Cross-references