上次写了一篇搓可调电源的,我看有不少对这个料感兴趣的,那就专门再扒一扒MPM54524这颗料。
随着 5G、AI、物联网、云计算等高性能计算需求的兴起,FPGA 供电复杂度急剧上升。如图示例某 5G 宏基站 FPGA,竟然需要 多达 13 路不同电源轨,对供电模块提出了:
比如多路输出通道能力;多轨间启动/关闭顺序控制;高功率密度、低噪声、小体积等综合要求。
主从结构
13个电源轨道,这一看就是ZYNQ啊!
MPM54524 是一款由 MPS(Monolithic Power Systems)推出的高度集成四通道 5A 输出电源模块。它结合了多相降压电源、I²C 数字控制、状态监控和多种保护功能,专为 FPGA/ASIC、通信系统、光模块 等多轨精密供电应用而设计。
项目 | 参数说明 |
---|---|
通道数 | 4 路(A/B/C/D),每路 5A,最大总输出可达 20A(并联模式) |
输入电压范围 | 4V ~ 16V(VIN1/VIN2 分别供给不同 Buck) |
输出电压范围 | 0.4V ~ 5.5V(每路均可独立配置) |
封装尺寸 | ECLGA-51,8mm × 8mm × 2.9mm |
调节频率范围 | 500kHz ~ 1000kHz |
遥感接口 | 支持三路差分遥感:VSA±、VSB±、VSC± |
输出调节方式 | 支持通过 I²C 设置 或内建 MTP(多次可编程)存储器配置 |
启动顺序控制 | 支持四通道独立 上电/关断顺序延迟配置 |
工作模式 | PWM / PFM 自动切换;支持并联工作(2相交错模式) |
保护机制 | UVLO、UVP、OVP、OCP、OTP、软启动/关断、输出放电 |
遥测功能 | 通过 I²C 读取:VOUT、电流、电源功耗、温度等 |
并联模式支持 | BuckA 与 BuckB 可做 2相交错工作,自动电流均衡;A~D 支持 AVP 被动均流 |
这个MTP就是针对不想IIC控制的用户,可以一次就写入固定的电源模式。出厂前或初次上电后永久存储配置;所有输出电压、限流值、软启动时间、故障保护等参数 均可通过 I²C 实时配置;出厂前或初次上电后永久存储配置,这个就先不说了。
传统一个100A的电源要设计成这样,可以看到至少要两个控制器以及复杂的外围
现在一颗就完成了
A+B 通道并联(共享一个电感);C+D 通道并联(同步交错),实现 10A~20A 输出电流,均流由内部控制器完成。
可以任意组合输出
BuckA BuckB
│ │
└─┬───────┘
▼
共用电感 + 输出
利用内部自动调节相位和导通时间,实现 主动电流均衡(Active Current Balancing)
所有通道也可开启 AVP 模式,实现 被动电流均衡(Voltage Droop Compensation)
项目 | 数值 |
---|---|
输入电压范围 | 4V ~ 16V |
每路最大输出电流 | 5A |
最小开启时间 | 30 ns |
最小关闭时间 | 120 ns |
输出电压精度 | ±1.5%(典型为 3.36V ±50mV) |
VCC 输出(内部LDO) | 3.3V ±1% |
效率 | >90%(1.8~3.3V 负载中高) |
工作温度范围 | -40°C ~ +125°C |
接下来聊一下它的电源结构,就是内部是如何设计的,可以获得如此强大的性能~
比较奇怪一点是我做不到这个Buck A在哪里
每个输出通道(BuckA、BuckB、BuckC、BuckD)使用的是典型的同步降压型开关电源拓扑(Synchronous Buck Converter)
这种架构非常的成熟了同步 Buck 工作在两相交替导通:
电流由 VIN → 高边 MOS → 电感 → 负载
电感储能
SW 节点为高电平(≈ VIN)
电感电流反向释放,流过 Low-Side MOS
保持输出电流连续
SW 节点为低电平(≈ GND)
因为MOSFET 替代肖特基,损耗显著降低
每通道的核心结构如下:
VIN ──► High-side MOSFET ─┬─► L ─► C ─► VOUT
│
Low-side MOSFET
│
GND
元件 | 功能说明 |
---|---|
High-side MOSFET | 连接到 VIN,控制导通时间以调节输出功率 |
Low-side MOSFET | 替代传统肖特基二极管,提升效率 |
电感 L | 滤波与能量传输,决定电流纹波 |
输出电容 C | 滤除开关噪声,提供稳压输出 |
该拓扑可实现高效率、稳定控制,支持恒定频率下的 PWM 控制或轻载自动切换到 PFM 模式(省电)。
对于大电流输出(如将 BuckA 与 BuckB 并联),MPM54524 支持双相交错模式。
假设需要提供很大的输出电流,比如 20A。
可以用一颗大功率单相 Buck 拓扑输出 20A,但会遇到:高频开关损耗大;热分布不均,输出电流纹波大。
用多相(如 4 相)并联的方式输出,每相提供 5A,并在时间上错开开关时序,这就是多相交错。
Phase | 开关时间序列(一个周期) |
---|---|
Phase 0 | 开始导通于 0° |
Phase 1 | 开始导通于 90° |
Phase 2 | 开始导通于 180° |
Phase 3 | 开始导通于 270° |
每相之间错开 90°(360°/4),在一个开关周期内轮流导通,称为相位交错(phase interleaving)。各相的电流在时间上交错,相互抵消,输出纹波显著减小;电流由多个相分担,MOSFET 和电感温升更低,热分布更均匀。
以上图像展示了 1、2、3、4 相交错降压输出的合成波形,每张图都清晰地显示了:
各相的 PWM 导通时间交错分布;底部黑色曲线为多个相电流的总输出电流波形;相数越多,合成波形越平滑,纹波越小。
本质上是一种为了解决“远端负载电压精度”和“多通道电流一致性”问题而引入的控制方式。遥感(Remote Sensing)是一种利用一对差分信号线,在负载端直接采样电压的方法。正常 Buck 架构中,反馈电压是从本地 PCB 输出端采样的,无法感知线损(IR Drop);使用遥感后,反馈信号从远端负载(如 FPGA Vcore 引脚)回传,从而自动补偿压降。
MPM54524 集成了 3 组遥感差分输入 VS±
模块 | 拓扑类型 |
---|---|
BuckA ~ D | 同步降压型开关电源 |
并联(A+B) | 双相交错 Buck 并联 |
控制方式 | 峰值电流模式 PWM/PFM 切换控制 |
电压设定 | 数字 I²C 设置或 MTP 编程存储 |
电流均流机制 | 主动式均流(调制占空比)或 AVP 分压 |
遥感控制 | 差分远端电压反馈(负载点调节精度) |
所有性能测试条件为:
VIN = 12V,除非特别标注为 5V
Ambient 温度 = 25°C
单通道测试或多相并联测试均有涉及
测试板为官方评估板(Evaluation Board)
Efficiency vs. Load Current
Power Loss vs. Load Current
Thermal Derating
参数名称 | 描述 |
---|---|
Efficiency vs. Load Current | 不同输出电压条件下,随负载电流变化的效率曲线 |
Power Loss vs. Load Current | 不同输出条件下,每通道的功耗随电流变化 |
Thermal Derating | 随环境温度上升,每通道最大输出电流的降低曲线 |
image-20250605131651720
参数名称 | 描述 |
---|---|
Load Regulation | 负载调整率(IOUT 从 0A → 5A)对输出电压的影响 |
Line Regulation | 输入电压变化(VIN = 4V ~ 16V)下 VOUT 稳定性 |
多组 VOUT(0.85V、1.2V、1.8V、2.5V、3.3V)分别在不同频率下测试(750kHz 或 1000kHz)
分别对比不同负载:0A、2.5A、5A 这些都没有什么好说的,看图的话,尽量还在保证子啊负载模式下比较好。
这里只看一个
参数名称 | 描述 |
---|---|
Start-Up through EN | 从 EN 使能上电时的输出电压波形 |
Start-Up through VIN | 上电通 VIN 时的多相并联启动响应(最大至 20A) |
Steady-State Ripple | 稳态下输出电压纹波(0A 与 5A 时测量) |
Load Transient | 负载瞬变响应(0A → 2.5A 或 0A → 20A,斜率 2.5A/μs) |
包含 AC 耦合纹波波形(VOUT AC)
波形单位细节:20mV/div、50mV/div,2μs 或 100μs 时间基准
但是我看着是空载和带载的时候是一样的,没有什么变化。
image-20250605132038545
参数名称 | 描述 |
---|---|
4-Phase Paralleled Load Regulation | 4通道并联后 20A 输出时的负载调整率 |
Start-Up with 20A Load (Parallel) | 四相并联、满载 20A 时的启动电压、电流和 PG 状态波形 |
输出电压与电流均衡情况评估;并联情况下负载调节能力仍优异,看手册是跑满了。
I²C 是 7-bit 地址制
通过芯片引脚 ADDR1
和 ADDR2
可配置 I²C 地址,共支持 9 个独立地址
允许在同一 I²C 总线上挂多个 MPM54524,用地址区分控制
IIC我们是熟悉的,它是一种同步协议:
写一个寄存器的例子
我们时刻要记住,在什么地址,做什么动作,传输的数据是什么,这样就可以完成一个完整的帧结构。
[START] + [Device Addr + W] + [Reg Addr] + [Data Byte(s)] + [STOP]
Step 1: [START] + [Device Addr + W] + [Reg Addr] + [STOP]
Step 2: [START] + [Device Addr + R] + [Data Byte(s)] + [STOP]
每个寄存器地址固定,长度多为 1 byte 数据(少数多字节)
所有寄存器地址、功能、默认值,在 datasheet 的 Register Map
一章列出
寄存器地址 | 功能名称 | 描述 |
---|---|---|
0x0C | Buck Enable Register | 每个通道使能 |
0x15~18 | VOUTA/B/C/D 设置 | 输出电压设置(8-bit 数据) |
0x1C~1F | 上电顺序延迟 | 各通道的启动延迟时间 |
0x02~05 | 输出电流监测 | 实时读取每个通道的输出电流 |
0x24 | 芯片温度读取 | 温度传感器输出(单位 TBD) |
0x30~33 | 输出功率估算 | P = VOUT × IOUT(估算值) |
0x3B | 故障标志寄存器 | 各种保护故障:OVP、UVP、OCP 等状态位 |
0x14 | 并联控制寄存器(A+B) | 设置 A、B 通道并联 / 主从 / 相位控制 |
假如你想把 VOUTA 设置为 1.2V:
是连着的
0x15
是 VOUTA 的寄存器地址[START] + 0x20 (W) + 0x15 + 0x50 + [STOP]
电流
内部温度
地址 | 名称 | 描述 | 位说明 |
---|---|---|---|
02h~05h | BUCKx_CURRENT/PWR_METER | Buck A~D 输出电流或功率监测 | 8bit ADC 编码,每步 125mA/125mW,满量程约 7.875A |
06h | BUCKx_VOLTAGE | 输出电压监测 VOUT | 每步 15mV,满量程 3.825V(255阶) |
使用 0x02~0x05
读取通道电流
使用 0x24
读取温度(需查转换公式)
使用 0x3B
读取所有故障状态位
这些可以配合 MCU 定时轮询,用于电源健康状态管理。
写入寄存器后,还可以将当前设置写入 MTP(非易失性存储器)
电源掉电后,仍然保留配置
应该是这个
使用 0x10
控制写入命令,支持最大 7 次编程
地址 | 名称 | 功能说明 |
---|---|---|
30h | MTP_AUTO_REG | 自动写入 MTP 存储控制位(Bit7 触发) |
71h | ACTIVE_POS_EN_AB | 启用 Buck A/B 的 AVP(主动负载均流) |
73h | I2C_ADDRESS | 设置器件的 I²C 地址(写入 MTP 后生效) |
79h | ACTIVE_POS_EN_CD | 启用 Buck C/D 的 AVP |
我们这个片子,引脚很多,可以搭配一颗MCU来做集成:
SCL/SDA
I²C 接口 接到 MCU 的 I²C(使用 10-pin 接口)这里是评估板上面给的接口,可以自己设计的时候按照自己的喜好来
EN
电源使能控制 MCU 可控制电源启动/关闭 就像负载开关一样,减少系统不必要的漏电
PG
电源输出状态反馈 接 MCU 的 GPIO 输入,判断电源是否稳定,可以在不编程的情况下获得片子的状态
ADDR1/2
地址选择 可配置不同地址,支持多个板子级联 可以使用电子开关来完成多个通道的设置
VOUTx
各通道电压输出 可测电压或接传感器/负载 如果我们想做闭环,也是可以直接测量的。
我们的MCU对片子来说,就是读写操作:
控制目标 | I²C 操作类型 | 寄存器地址 | 说明 |
---|---|---|---|
设置输出电压 | 写 | 0x15~0x18 | 0x15 = BUCKA_VOUT;值范围取决于步进(~10mV) |
启用输出通道 | 写 | 0x0C | 各位控制 A~~D ,1=启用,0=禁用 |
读取电压值 | 读 | 0x06 | 电压值,单位约 15mV(取决于寄存器映射) |
读取电流值 | 读 | 0x02~0x05 | 每路输出电流,单位约 125mA |
读取温度 | 读 | 0x24 | 芯片温度寄存器 |
读取故障状态 | 读 | 0x00~0x01 | STATUS_0/1 包含 UVP/OVP/PG/OTP 等位 |
这个控制上面,可以选择的芯片比较多,可以使用WCH家的串口转IIC电脑控制,也可以直接MCU的IIC控制,反正就是常规的读写,没有难度。
我们多轨电源使用的时候一些通道是有时序要求的,就是什么通道先上这样,比如FPGA/SoC 上电顺序 ;某些核心(如 VDD_CORE)必须早于 IO,靠此顺序控制。也可以避免多路瞬间启动造成供电系统电流冲击
启动时序行为
Buck A、B、C、D 通道在系统上电(或 EN 拉高)后按预设延迟依次启动的过程,并通过 PG(电源良好)信号反映各通道是否成功输出
信号名称 | 含义 |
---|---|
EN | 芯片使能信号,拉高后启动 |
VOUTA~D | 各路 Buck 输出电压 |
PG | Power Good,所有通道稳定后拉高 |
我们可以使用6个通道来监控这个上电过程
EN 引脚上升沿触发 MPM54524 启动逻辑;芯片内部软启动状态机开始生效
每个通道都有一个独立的启动延迟,定义在寄存器 0x19~0x1C
:
通道 | 启动延迟设置寄存器 | 默认状态 |
---|---|---|
Buck A | 0x19 | 0 ms |
Buck B | 0x1A | 1 ms |
Buck C | 0x1B | 2 ms |
Buck D | 0x1C | 3 ms |
非常的精细
所以在图中看到 VOUTA、B、C、D 分别在 EN 拉高后延迟约 0~3ms 顺序启动。
每个通道输出电压呈现斜坡上升;软启动时间由寄存器 0x13
控制,通常为 1~5ms。最小的颗粒度是0.5ms
作用:限制冲击电流;防止负载突变。
每通道都有 Power-Good 判断窗口(±7% 默认)
当全部通道输出电压进入规定范围:PG
引脚(Open-Drain)拉高 → 表示“系统电源稳定”;若某一通道出现 UV、OV、OTP、OCP → PG 会拉低。
模拟Power-On Sequence(上电顺序)
每路 Buck 转换器依次延迟启动,输出电压按预设斜率平滑上升,最终稳定在 1.2V。
可以写一个类:
from mpm54524_controller import MPM54524Controller
ctrl = MPM54524Controller()
# 设置 Buck A~D 启动延迟(单位:0.5ms 每步)
ctrl.i2c_write_byte(0x19, 0x00) # BuckA 延迟 0
ctrl.i2c_write_byte(0x1A, 0x01) # BuckB 延迟 0.5ms
ctrl.i2c_write_byte(0x1B, 0x02) # BuckC 延迟 1.0ms
ctrl.i2c_write_byte(0x1C, 0x03) # BuckD 延迟 1.5ms
ctrl.close()
更加的方便控制
上面一直说反馈引脚,反馈引脚的,什么东西?
在这里
默认情况下,MPM54524 的每路输出电压是通过 内部数字寄存器(如 0x15~0x18) 设置的;该方式适用于不需要外部调整的系统。
但是如果使用:外部 MCU 以电压模拟方式调节 VOUT,以及多芯片共用反馈路径或使用传统模拟反馈方式。 可以切换为 外部电阻分压设置方式(External Divider)。
VOx:某路 BUCK 输出(例如 VOUTA)
**VSx+ / VSx-**:反馈检测正负端(每个 BUCK 对应一组)
VFB:内部参考电压,由寄存器配置(可为 0.6V、0.7V 等)
VOUTx:实际输出电压
VREF(即 VFB):反馈输入设定点,通常为 0.6V
R1/R2:反馈分压比
常见的反馈比
R1 不宜过大(影响响应速度);R2 不宜过小(增加功耗,降低精度),推荐选择 E96 系列精密电阻,确保 VOUT 精度。
当启用外部分压反馈后:芯片内部 ADC 读取的是 VFB 电压,而不是 VOUT。所以此时读回的电压值不再是 VOUTx,而是 0.6V 参考点。
总结一下:MPM54524 在 高集成、多通道、并联能力、电磁兼容、封装优化 等方面的全方位优势,适合:5G 通信、AI 终端、边缘计算、无人机、AR/VR、摄像系统等小型高算力场景;尤其适合面向复杂供电系统,尤其是电压多样、时序严格、电流差异大的高端应用。
那说了半天,板子在哪里?
展示!帅!
就是这样
阅读原文点进去是他们现在模块diy活动,里面有些项目还是挺好的。注册个账号,发帖锐评一下你感兴趣的项目,围观一下都是有奖的,或者直接进去参加一波!快去吧,反手就是一个小礼物。
这椅子非我莫属😎