2. STM32MP硬件最小系统与电源树分析

STM32MP1 系列(如 STM32MP157)与常见 MCU 最大的不同,在于它是一颗“异构多核”处理器:内部同时存在双核 Cortex-A7 应用核与一颗 Cortex-M4 实时核,并集成了 DDR 控制器、GPU、显示接口、USB、以太网等大量外设。这意味着它的“最小系统”不再只是“电源 + 晶振 + 复位 + 调试口”,而是一个由核心板(SoM)与底板(Carrier Board)分工协作的完整供电与启动体系。理解这套体系,是后续板级适配、上电调试和故障定位的基础。

核心板与底板的接口分工

典型 STM32MP157 核心板把“必须靠近处理器、且与 DDR 时序强相关”的部分固化在板内:STM32MP157 芯片本体、DDR3/DDR3L 颗粒、eMMC、电源管理芯片 STPMIC1、启动模式相关的 BOOT 电阻、以及 32.768kHz 与 24MHz 晶振。底板则承载对外接口与可裁剪功能:以太网 PHY、USB Hub、SD 卡座、HDMI、音频 Codec、按键、LED、扩展排针等。

两者之间通过高密度板对板连接器(常见 2×40pin 或 4×30pin)互连。连接器上并非只有普通 GPIO,而是混合了多类信号:3.3V/5V 电源与地、DDR 相关不引出、但会引出 VDD 域电源、复位、启动选择、以及大量复用功能引脚。适配时最关键的一点是:核心板通常只提供 3.3V 与 1.8V 等已稳压的电源域输出,底板不应反向灌入未经协商的电压,否则可能损坏 PMIC 或 SoC 的 IO 域。

电源域划分

STM32MP157 的电源域可以按“谁给谁供电”来梳理。外部输入一般是 5V(USB 或 DC 座),经 STPMIC1 转换为多路输出:

  • VDD_CORE(约 1.2V):供给 Cortex-A7/M4 内核、GPU、DDR 控制器逻辑,是电流最大、对纹波最敏感的一路。
  • VDD_DDR(1.35V 或 1.5V):DDR3L 或 DDR3 颗粒供电,需与 DDR 类型匹配。
  • VDD(3.3V):SoC 的 IO 域主供电,同时给底板多数外设。
  • VDD_1V8(1.8V):部分高速 IO、SD 卡 UHS 模式、以及 eMMC 的 IO 电压。
  • VDDA / VREF+(3.3V 或独立基准):ADC、DAC 等模拟部分,需单独滤波。

这些电源域之间存在明确的上电顺序约束:一般要求 VDD_CORE 先建立,再建立 VDD_DDR 与 VDD,最后释放复位。顺序错误可能导致 IO 反灌、闩锁甚至 DDR 初始化失败。

STM32MP157 最小系统电源树与上电时序 外部输入 5V DC / USB STPMIC1 多路 Buck / LDO 受 I²C 配置 VDD_CORE 1.2V 内核 / GPU / DDR 逻辑 VDD_DDR 1.35V DDR3L 颗粒 VDD 3.3V SoC IO / 底板外设 VDD_1V8 1.8V SD UHS / eMMC IO VDDA / VREF+ ADC / DAC 模拟域 Cortex-A7 ×2 / M4 DDR 控制器 / GPU DDR3L 颗粒 VREF / 终端电阻 以太网 PHY / USB SD 卡座 / 按键 LED eMMC IO / SD UHS 高速信号电平参考 ADC 采样 / 基准 模拟滤波网络 上电时序(示意) VDD_CORE 建立 VDD_DDR 建立 VDD 3.3V 建立 PGOOD 汇总 NRST 释放 t0 t1 t2 t3 t4

上电时序与复位

上电时序由 STPMIC1 与 SoC 的 PWR 引脚共同管理。典型流程是:5V 输入有效后,PMIC 按内部预设顺序依次启动各路 Buck;当 VDD_CORE 达到阈值并稳定后,PMIC 输出 PGOOD 信号;SoC 收到 PGOOD 后释放内部复位,NRST 引脚由低变高。此时若 BOOT 引脚状态正确,芯片开始从所选介质(eMMC / SD / UART / USB)加载启动代码。

复位路径上有两个容易忽略的点:一是 NRST 通常需要外部 100nF 电容与 10kΩ 上拉,保证上电复位时间足够;二是部分设计会把 PMIC 的复位输出与按键复位“线与”,此时若按键长按,会同时拉低 PMIC 使能,导致整板掉电而非单纯复位。调试时若发现“按复位键后系统完全断电”,应优先检查这条线与逻辑。

时钟树

STM32MP157 的时钟来源主要有三处:24MHz 主晶振(HSE)、32.768kHz 低速晶振(LSE)、以及内部 HSI/HCSI。24MHz 经 PLL1 倍频后产生 A7 内核时钟(最高 650MHz 或 800MHz,视型号与散热),经 PLL2 产生 DDR 时钟,经 PLL3 产生外设时钟,经 PLL4 产生显示与音频时钟。LSE 则供给 RTC 与低功耗唤醒逻辑。

时钟树适配的核心是:DDR 时钟必须与 DDR 颗粒速率匹配,且 PLL2 的分频比要与 DDR 类型(DDR3-1066 / DDR3L-800 等)一致。若核心板更换了 DDR 颗粒,底板无需改动,但设备树中的 DDR 频率节点必须同步修改,否则会出现“能启动但随机死机”的现象。

关键电源轨测量与验证方法

拿到一块新板或怀疑电源问题时,建议按以下顺序测量,而不是直接上电跑系统:

  1. 断电测阻抗:用万用表测 VDD_CORE、VDD_DDR、VDD 对地阻抗。正常应在几十欧到几百欧量级;若接近 0Ω,说明存在短路,禁止上电。
  2. 限流上电:将直流电源限流设为 200mA 左右,缓慢升到 5V,观察电流是否异常跳变。
  3. 逐路测电压:用示波器(DC 耦合,带宽 ≥100MHz)测各路输出。VDD_CORE 纹波一般要求 <30mVpp,VDD_DDR 要求 <40mVpp。
  4. 测上电顺序:用四通道示波器同时抓 VDD_CORE、VDD_DDR、VDD、NRST,确认顺序与 datasheet 一致。
  5. 测时钟:用探头测 24MHz 晶振引脚,确认起振且频率偏差在 ±30ppm 内。
测量 VDD_CORE 时,示波器探头地线要尽量短,最好使用弹簧地针,否则开关噪声会淹没真实纹波,导致误判。

一个可复用的上电检查表

检查项测量点预期值(示例)异常判断
输入电压5V 输入座4.9~5.1V低于 4.75V 需查线损
VDD_COREPMIC BUCK1 输出1.20V ±3%偏差大查反馈电阻
VDD_DDRPMIC BUCK2 输出1.35V ±3%与 DDR 类型不符会初始化失败
VDDPMIC BUCK3 输出3.30V ±3%偏低查底板负载
NRSTSoC NRST 引脚上电后为高一直为低查复位电路
24MHzHSE 引脚24MHz 正弦不起振查负载电容

把这张表配合示波器截图存档,就形成了一块板子的“电源基线”。后续任何异常,都可以先与基线对比,快速判断是电源问题、时钟问题还是软件配置问题。这也是板级联调中最省时间的一种做法。