上次发了两个用MPM54524搓可调电源的帖子,绿泡泡公众号上也发了,评论区我看有不少对这个料感兴趣的,那就专门再扒一扒MPM54524这颗料,写个物料小传玩玩。上两篇传送门先放在下面
随着 5G、AI、物联网、云计算等高性能计算需求的兴起,FPGA 供电复杂度急剧上升 。如图示例某 5G 宏基站 FPGA,竟然需要 多达 13 路不同电源轨 ,对供电模块提出了:
比如多路输出通道能力;多轨间启动/关闭顺序控制;高功率密度、低噪声、小体积等综合要求。
主从结构
13个电源轨道,这一看就是ZYNQ啊!
MPM54524 是一款高度集成四通道 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 输出电流,均流由内部控制器完成。
现在可以任意组合输出欸!
利用内部自动调节相位和导通时间,实现
主动电流均衡(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 |
接下来聊一下它的电源结构,就是内部是如何设计的,可以获得如此强大的性能~
每个输出通道(BuckA 、BuckB 、BuckC 、BuckD )使用的是典型的同步降压型开关电源拓扑(Synchronous Buck Converter )
同步降压拓扑(Synchronous Buck Converter)
这种架构非常的成熟了同步 Buck 工作在两相交替导通:
相位 1:High-Side 开通,Low-Side 关断
电流由 VIN → 高边 MOS → 电感 → 负载
电感储能
SW 节点为高电平(≈ VIN)
相位 2:High-Side 关断,Low-Side 开通
电感电流反向释放,流过 Low-Side MOS
保持输出电流连续
SW 节点为低电平(≈ GND)
因为MOSFET 替代肖特基,损耗显著降低
每通道的核心结构如下:
元件 |
功能说明 |
High-side MOSFET |
连接到 VIN,控制导通时间以调节输出功率 |
Low-side MOSFET |
替代传统肖特基二极管,提升效率 |
电感 L |
滤波与能量传输,决定电流纹波 |
输出电容 C |
滤除开关噪声,提供稳压输出 |
该拓扑可实现高效率、稳定控制,支持恒定频率下的 PWM 控制或轻载自动切换到 PFM 模式(省电)。
(没写完,慢慢写)
多相交错并联机制(Interleaved Phases)
对于大电流输出(如将 BuckA 与 BuckB 并联),MPM54524 支持双相交错模式。
假设需要提供很大的输出电流,比如 20A。
可以用一颗大功率单相 Buck 拓扑输出 20A,但会遇到:高频开关损耗大;热分布不均,输出电流纹波大。
用多相(如 4 相)并联的方式输出,每相提供 5A,并在时间上错开开关时序,这就是多相交错。
假设 4 相
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 Sense + AVP)
本质上是一种为了解决“远端负载电压精度”和“多通道电流一致性”问题而引入的控制方式。遥感(Remote Sensing)是一种利用一对差分信号线,在负载端直接采样电压的方法。正常 Buck 架构中,反馈电压是从本地 PCB 输出端采样的,无法感知线损(IR Drop);使用遥感后,反馈信号从远端负载(如 FPGA Vcore 引脚)回传,从而自动补偿压降。
MPM54524 集成了 3 组遥感差分输入 VS±
MPM54524 的内部拓扑结构
模块 |
拓扑类型 |
BuckA ~ D |
同步降压型开关电源 |
并联(A+B) |
双相交错 Buck 并联 |
控制方式 |
峰值电流模式 PWM/PFM 切换控制 |
电压设定 |
数字 I²C 设置或 MTP 编程存储 |
电流均流机制 |
主动式均流(调制占空比)或 AVP 分压 |
遥感控制 |
差分远端电压反馈(负载点调节精度) |
所有性能测试条件为:
VIN = 12V,除非特别标注为 5V
Ambient 温度 = 25°C
单通道测试或多相并联测试均有涉及
测试板为官方评估板(Evaluation Board)
稳压性能(电源调节能力)
参数名称 |
描述 |
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 时间基准
但是我看着是空载和带载的时候是一样的,没有什么变化。
多相并联行为
参数名称 |
描述 |
4-Phase Paralleled Load Regulation |
4通道并联后 20A 输出时的负载调整率 |
Start-Up with 20A Load (Parallel) |
四相并联、满载 20A 时的启动电压、电流和 PG 状态波形 |
输出电压与电流均衡情况评估;并联情况下负载调节能力仍优异,看手册是跑满了。
总线结构与地址配置
I²C 是 7-bit 地址制
通过芯片引脚 ADDR1 和 ADDR2 可配置 I²C 地址,共支持 9 个独立地址

IIC我们是熟悉的,它是一种同步协议:
我们时刻要记住,在什么地址,做什么动作,传输的数据是什么,这样就可以完成一个完整的帧结构。
I²C 设备寄存器访问基本格式
写寄存器:
[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 的寄存器地址
- 设电压配置公式如下(文档中提供):
V_OUT=0.4V+CODE×Step (1)
Step ≈ 10mV
- 计算 CODE:
- 写入 I²C:
[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 存储器
写入寄存器后,还可以将当前设置写入 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个通道来监控这个上电过程
Step 1: EN 拉高 → 启动启动时序逻辑
EN 引脚上升沿触发 MPM54524 启动逻辑;芯片内部软启动状态机开始生效
Step 2: 4 个 Buck 通道依次上电(带延迟)
每个通道都有一个独立的启动延迟,定义在寄存器 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 顺序启动。
Step 3: 各通道软启动
每个通道输出电压呈现斜坡上升;软启动时间由寄存器 0x13 控制,通常为 1~5ms。最小的颗粒度是0.5ms
作用:限制冲击电流;防止负载突变。
Step 4: 所有通道达到稳定电压 → PG 拉高
每通道都有 Power-Good 判断窗口(±7% 默认)
当全部通道输出电压进入规定范围:PG 引脚(Open-Drain)拉高 → 表示“系统电源稳定”;若某一通道出现 UV、OV、OTP、OCP → PG 会拉低。
每路 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 等)
输出电压计算公式(手册公式 3)
VOUTx :实际输出电压
VREF (即 VFB ) :反馈输入设定点,通常为 0.6V
R1/R2:反馈分压比
R1 不宜过大(影响响应速度);R2 不宜过小(增加功耗,降低精度),推荐选择 E96 系列精密电阻,确保 VOUT 精度。
当启用外部分压反馈后: 芯片内部 ADC 读取的是 VFB 电压,而不是 VOUT。所以此时读回的电压值不再是 VOUTx,而是 0.6V 参考点。
总结一下:MPM54524 在 高集成、多通道、并联能力、电磁兼容、封装优化 等方面的全方位优势,适合:5G 通信、AI 终端、边缘计算、无人机、AR/VR、摄像系统等小型高算力场景;尤其适合面向复杂供电系统,尤其是电压多样、时序严格、电流差异大的高端应用。
那说了半天,板子在哪里?
展示!帅!
话说回来,模块活动我锐评了,我想要那个椅子,官方大大,你听到了吗~~~
<收!>