MPM54524号在不在?我拿你搓了一个桌面开源可调电源(前菜)

一觉醒来不知道谁送了我一颗 MPS的 MPM54524(属实是掩耳盗铃了),这颗也是 FPGA 供电以及多路大电流应用的王者,那今天的小朋友就它了!
我就在想可以做点什么,直到在闲鱼看到了这个:(我也要做我也要做!)


一个降压的PD输出电源,这小体积,可以控制,不就是梦中情机吗?
老哥也给出了一个上位机,当然我也给出了一个简版的上位机
MPM54524还支持4路输出,玩法更多

2 个赞

因为MPM54524 是一款带I2C接口的全集成、5A、4 路输出电源模块。它内置启动与关断排序控制,同时具备可调软启动 (SS)、补偿功能和多个保护阈值,提供了一个完整的电源解决方案。

在3.3V下效率还更高

保护功能齐全,只要前面搞个二极管就可以给电池供电了:

MPS官方有个GUI可以完成这个功能的,但我没有调试器,我这里给出了其他的方案:


以及为了后面的兄弟可以复用,减少对环境的依赖性,我这里使用了Python的接口(调死我了):

image

最终的样机是这样:


正点原子做主供电,因为是MPM54524是降压输出,电流最大到5A:

控制的架构是这样的:

这颗芯片还是很有特点的,稍微讲一下我看到有趣的功能:

Buck A 和 B 可并联支持 10A 输出 ,并支持交错相位以优化纹波(Interleaving)。

交错相位 是一种控制策略,它使得多个降压通道(Buck A/B/C/D)的开关时序错开固定角度(通常为****90 °或180 °) ,实现以下目标:

块引用使各通道的导通( On-Time )均匀分布在一个周期内,从而分散输入 / 输出电流脉冲,降低系统纹波。

假设系统总频率为 1MHz(周期 = 1µs):

四个 Buck 通道同时工作但 分布在不同相位

Buck A: 0°

Buck B: 90°

Buck C: 180°

Buck D: 270°

这意味着它们的开关事件间隔为:1μs ÷ 4 = 250ns→ 所有通道平均分布在每个周期,电流纹波合成后会部分抵消,而不是集中在同一时刻叠加。

在数据手册第 18–19 页中有如下关键描述:

“Figure 4 shows that Buck A/B/C/D are frequency-locked with fixed 90° phase shift.”

默认状态下,A-B-C-D 四通道交错工作 ,相位间隔为 90°;

如果启用并联模式(A+B),则 A 和 B 之间使用 180° 相移 (见 Figure 5),以便互补导通达到交错均流效果。

1 个赞

寄存器配置

寄存器地址:14h, bit[5] = 1 → 启用 Buck A 和 Buck B 的**并联交错模式(**Interleaved Dual-Phase Mode

并联模式下,需**强制绑定反馈点(**VSA+ = VSB+ VSA+ 必须连接 VSB+ ,表示这两个输出电压完全一致,共用反馈。

Buck C 和 D 不支持并联工作,仅交错控制;交错模式适用于大负载或动态电流需求场景,不建议在极轻负载下启用并联。

所以我这次就没有设置这个选项,因为样板上面好像没有感测线的接口。

AVP (Active Voltage Positioning )功能 :输出电压随负载电流下调(VDROOP = IOUT × RDROOP),有助于电流自动均流。

核心思想 是:

随着负载电流增加,输出电压按比例下调,从而实现更佳的瞬态响应和并联均流性能。

换句话说:负载电流越大,输出电压 VOUT 自动下降;有点类似“动态压降”或“虚拟阻抗控制”。这个功能可以上负载来看

数学模型(手册第 19 页)

AVP 功能遵循以下两个公式:
① 压降电压:
VDROOP =IOUT ×RDROOP (1)
其中:
VDROOP :压降值;
IOUT :实际输出电流;
RDROOP:设定的等效电阻,典型值为 40mΩ。

② 实际输出电压为:
VOUT =VREF -VDROOP =VREF -IOUT ×RDROOP (2)

当负载突增时,VOUT 本来就预留压降空间,减少过冲;可以做瞬态抑制。也可以多个通道(如 A/B/C/D)并联时,AVP 会自动调节电压大小,根据负载电流自动趋向均衡;降低大负载下的功耗与散热压力;最后因为系统不再强依赖容性响应,减小 VOUT 振幅,可用更小电容。

启用 AVP?

MPM54524 支持对 Buck A/B 和 C/D 分别独立启用 AVP。

寄存器地址 71h:bit[7] = 1:开启 Buck A/B 的 AVP

寄存器地址 79h:bit[7] = 1:开启 Buck C/D 的 AVP

配合并联工作

当多个 Buck 输出并联(如 Buck A 和 B、或者全部四路 A+B+C+D)时:

各通道根据自身电流大小会形成不同压降;

压降大 → 电压低 → 分担电流少;

压降小 → 电压高 → 分担电流多;

最终达到被动均流(通过电压调节驱动电流)

所以 AVP 实现的是负载自适应电压调节 + 被动电流均流 ,而不是主动控制电流。

我们来发挥传统艺能,看看可视化的操作:

展示了 MPM54524 在启用 AVP(Active Voltage Positioning)时,不同参考电压 V_“REF” 下,输出电压 V_“OUT” 随负载电流 I_“OUT” 的线性下降关系。
每条曲线代表一个不同的设定参考电压(1.0V、1.2V、1.5V、3.3V);
横轴是输出电流(从 0A 到 5A);
纵轴是实际输出电压;
斜率是固定的,由内部设定的 R_“DROOP” =40"m" Ω 决定;
说明随着负载电流增加,输出电压按比例线性下调。
轻载时电压较高,重载时自动压降;改善并联电源之间的均流分配;帮助缓冲负载突变下的电压跳变;降低对大电容的依赖(减小COUT)。

上面说了四通道的事情


这张图展示了 MPM54524 AVP 模式下四通道并联时的电流分担和总输出电压的变化趋势

Channel A/B/C/D Current (彩色实线):代表每个通道均匀分担总电流 ,从 0A 到 20A,每个通道上限为 5A;

Shared VOUT (虚线) :是所有通道输出一致的电压,其值随总电流线性下降,反映了 AVP 机制的作用。

这里的数据可能有点错误,但是趋势没有问题,就是电流大,电压小因为功率一定。

IIC控制

很多的电源芯片有IIC接口,但是详细说明的不多:




如果在使用过程中有问题可以去论坛问:
此处中场休息,插入一个小品,感谢这位工程师老哥!


**

**

let’s 继续

“Two ADDR pins are available to configure bit[0] to bit[3]…”

MPM54524 支持最多 8 种地址配置 ,通过两个引脚 ADDR1 和 ADDR2 设定 I²C 地址的低四位(bit[0]~bit[3]):

表中 “0XXX” 的高位部分可以通过写入寄存器 0x73h 设置 bit[4]~bit[6],实现地址扩展(详见手册注释 XXX refers to portion configurable by customer )。

如果不使用IIC控制的话,默认的0xxx其实就是0x000,EVL也就是0x07,使用的时候记得算对。

还是算一下吧!

bit[6:4] = 0b000 (默认上电值)

ADDR[3:0] = 0111 (由 High, High 决定)

完整地址为:0b00000111 = 0x07**

实际 I²C 地址(7 位):0x07h

使用时:

写地址(8 位) = 0x07 << 1 | 0 = 0x0E

读地址(8 位) = 0x07 << 1 | 1 = 0x0F

但是这个IIC不是纯IIC,而是专门电源管理的PMBUS:


以前老不知道这个PMBus是什么,这次就解惑了。

类型 含义
R 只读(Read Only)
W 只写(Write Only)
R/W 可读可写
Send 写入命令后立即执行,无需数据

主要是这个Send命令是不一样的,其实就直接清楚寄存器位而已。

我们知道这些知识就可以了!

前菜结束,太长了,我再开一个帖子写。

欢迎一起讨论一起玩!