机器人48V电源的12A峰值不等于12A输出

2026-10-092

给机器人配电时,很容易把注意力放在关节电机上。可真正让主控、通信和风扇正常工作的,还有那一路从48V降下来的5V。

翻到电源图,一颗控制器配着两个MOS管、一个6.8µH电感,电感后面串了5mΩ采样电阻。再查到控制器的60mV典型限流阈值,一行算式就能得到12A。

于是问题来了,这路电源能不能直接按“5V、12A”安排负载?

先别急。12A是典型阈值折算出的电感峰值,和负载平均电流之间,还隔着电流纹波。 原项目也没有因此承诺这路电源具有12A连续输出能力。我们把这条容易算错的边界拆开,再做一个能反复使用的复算工具。

电源汇流板的真实EDA三维渲染

图1 实际工程的EDA三维渲染,展示电源汇流板的结构。它是模型画面,不是组装照片,也不代表本文完成了整机测试。

先认清采样电阻在测什么

这一路使用的是LM5148RGYR。它是同步降压控制器,外接Q6、Q5构成开关功率级;L2为6.8µH,R32为5mΩ。输出网络名为5V_1,后面还有开关控制的5V_OUT。做电流估算时,不能把整个机器人48V配电端口的电流都算到这路5V上。

48V转5V功率级整体电路

图2 从同一版真实EDA工程重新导出的降压电路。R32位于L2与5V_1之间;本文只核算这一级的采样与限流,不给整板下额定功率结论。

R32左侧经过R33接到U12的ISNS+,右侧由VOUT引脚取样,C73跨接在采样节点与输出侧之间。控制器看到的是R32两端的压差。

原理图连线之外,本次还只读解析了锁定工程的PCB焊盘网络,交叉核对三处连接:L2.2、R32.1与R33.2同网;R33.1、C73.2与U12.20同网;R32.2、C73.1与U12.21同接5V_1。这能确认计算所用的采样位置,不能代替PCB走线的开尔文质量检查或DRC。

电感、采样电阻及ISNS和VOUT局部

图3 R32两端取样的电路局部。R33显示为49.9Ω,C73为33pF;这些小器件的物料信息也要核对,不能只看电路符号。

TI手册的分流采样说明写得很明确:ISNS+相对于VOUT的峰值压差超过限流阈值,比较器终止高侧HO输出,进行逐周期限流。这里不是谷值限流,更不是稳稳向负载供应12A的恒流电源。

半个纹波就能改变答案

R30是53.6kΩ。按LM5148手册的频率设置公式,名义开关频率为:

def frequency_khz(rt_kohm):
    if rt_kohm <= 0:
        raise ValueError("RT must be positive")
    return 1_000_000 / (45 * rt_kohm + 53)

print(frequency_khz(53.6))  # 405.679513 kHz

R31从FB接向VDDA,阻值为24.9kΩ,对应固定5V输出选择。它不是常见的“两个电阻外部分压”;如果套用另一种反馈结构的公式,第一步就会算偏。

R25为41.2kΩ,配置了双随机扩频DRSS。所以405.68kHz是计算用的名义频率,实际运行不是一条绝对不动的频率线。本文的固定频率计算是稳态快照,并未模拟DRSS随时间变化。

LM5148输出选择和频率配置局部

图4 固定5V选择、RT频率设置与CNFG配置来自同一张图页。位号和阻值对应本文配置文件,避免混入同工程的其他电源板。

在理想连续导通模式CCM下,负载平均电流对应电感电流的平均值,而峰值比平均值多半个峰峰纹波。忽略开关与采样电阻压降,可先用下面的关系估算:

ΔIL = VOUT × (1 − VOUT / VIN) ÷ (L × f)

I平均限流模型 = V阈值 ÷ R采样 − ΔIL / 2

代入48V、5V、6.8µH、405.68kHz,峰峰纹波约为1.624A。因此60mV ÷ 5mΩ的12A,对应的平均限流模型值约为11.188A。

峰值和平均值之间的三角电流模型

图5 由同一组参数生成的理想稳态CCM电流示意,非示波器波形。红线是60mV折算的典型峰值,绿线比它低半个纹波;该图未加入比较器响应延迟。

这还只解决了“峰值和平均值是不是一回事”。它没有解决“板子能不能长期带这个电流”。温升、输入电压瞬态、电感直流偏置、MOS管损耗和连接器能力,都还需要各自的证据。

手册里的典型值不能独自做决定

LM5148电气特性表给出的电流检测阈值是49mV、60mV、73mV,分别为最小值、典型值、最大值。在电感、频率和采样电阻都取名义值时,计算结果如下。

阈值条件 折算电感峰值 平均限流模型值
49mV 9.800A 8.988A
60mV典型值 12.000A 11.188A
73mV 14.600A 13.788A

这张表遵循手册该项的测试条件,不是实测48V整板的电流范围。把典型值直接当保证值,会同时忽略器件差异和板级误差。

工程物料属性登记的R32型号是PMR100HZPFU5L00,5mΩ、±1%、2W;L2型号是CYA1265-6.8UH,登记精度±20%。这些是锁定工程的物料记录,不等于焊上板之后的实测结果。尤其电感在直流偏置和温度下的变化,还要继续对照器件资料或测量。

为了看清趋势,工具把电感取为名义值的80%、100%、120%,同时人为给频率设置±10%的敏感性区间。注意,这个±10%是分析假设,不是405.68kHz振荡器或DRSS的保证容差。不能把手册在2.2MHz、特定RT及输入条件下的频率表项挪来替它背书。

电感与频率变化下的平均限流敏感性计算

图6 保持60mV与5mΩ不变,九种参数组合的模型结果。电感或频率降低,纹波加大,平均值会先碰到峰值阈值。该图用于读趋势,不给整板承诺上下界。

另一个容易遗漏的数字是检测延迟。手册给出65ns典型值。以48V到5V、6.8µH的上升斜率作示意,这段时间对应的电流增量约为0.411A。但该表项没有给出最大延迟,采样滤波、寄生参数和电感变化也没包含进来,因此不能把0.411A当作最坏过冲上界。

把复算写进代码,再给错误输入设门槛

用一次计算器只能回答一次问题。更实用的改进,是把单位、输入来源和模型范围放进程序,让换参数的人仍然知道自己算了什么。

完整工具以Python标准库实现,配置文件将电路登记值、手册阈值和人为敏感性假设分开。下面是可以单独复制运行的核心计算;完整版还会拒绝NaN、无穷大、非数值,以及离开CCM范围的输入。

from math import isfinite

def average_trip(vin_v, vout_v, l_uh,
                 fsw_khz, rs_mohm, threshold_mv):
    values = (vin_v, vout_v, l_uh,
              fsw_khz, rs_mohm, threshold_mv)
    if any(not isfinite(x) or x <= 0 for x in values):
        raise ValueError("finite positive inputs required")
    if vout_v >= vin_v:
        raise ValueError("buck requires VOUT < VIN")
    l_h = l_uh * 1e-6
    f_hz = fsw_khz * 1e3
    rs_ohm = rs_mohm * 1e-3
    ripple = vout_v * (1-vout_v/vin_v) / (l_h*f_hz)
    peak = threshold_mv * 1e-3 / rs_ohm
    average = peak - ripple / 2
    if average <= ripple / 2:
        raise ValueError("trip point leaves CCM")
    return ripple, peak, average

在10A负载、名义参数下,三角纹波对应的采样电阻损耗约为0.501W,计算式为(I平均² + ΔIL² / 12) × R。它只是损耗估算,2W物料标称不能直接兑换成当前PCB环境下的温升余量。

5mΩ的采样值还意味着,额外1mV差分误差就相当于0.2A。这个量级足以说明为什么要认真看采样走线和滤波,而不是只按电阻精度评价保护精度。

运行完整工具:

python buck_audit.py roboto.json --output report.json
python -m unittest -v test_buck_audit

验证包中保留了高精度Decimal交叉计算、按电感电压斜率积分三角电流后核对RMS损耗、参数变化方向,以及零值、负值、NaN、无穷大和CCM范围外输入的拒绝测试。四组测试均通过。验证对象是复算程序和所用连接关系,不是机器人电源板的实体性能。

下单前别漏掉一个49.9Ω

解析工程时还发现一处与复现直接相关的材料冲突:R33在原理图和PCB元件属性中显示49.9Ω,但制造商订货型号仍是0805W8F1003T5E,对应的描述字段写着100kΩ。

这两份信息不能同时作为采购依据。自动导出BOM并照单购买,可能会把显示值与订货型号的矛盾带到实物上。

本次把冲突写入验证包,计算按电路显示的采样结构分析,不据此替原板认定一个已经验证可用的替代型号。准备复现时,应先确认R33设计值,选定对应封装、阻值及精度的真实物料,再同步更新符号属性和BOM。不能只把丝印旁的文字改对。

PCB顶面及电源区

图7 同版PCB顶面导出,保留板框、多层与文档等辅助图层,底面及内层组关闭。整图用于找电源区与其他功能区的位置,不据它证明内层回流或散热能力。

PCB电源局部高清图

图8 顶面电源区局部。复查时沿L2、R32与U12采样路径查看取样是否贴近电阻焊盘、是否混入功率回路压降;本文没有完成对开尔文走线质量的判定。

PCB背面导出图

图9 编辑器激活底层并翻转板子后导出的背面,顶面关闭,保留辅助图层。背面方向与顶面不同,比较位置时要考虑翻转,不能把左右变化误认为换版。

逐周期限流之后还有打嗝保护。LM5148在512个限流周期计数到达后关闭驱动,等待16384个周期,再重新软启动;连续四个未超限周期会清零该计数,软启动早期又有单独条件。负载如果触发了这套过程,表现不会是稳定的“12A恒流”。扩频开启时,周期计数也不宜直接包装成一个精确毫秒值。

面对这类电源,合理的顺序是先核对物料和采样结构,再计算纹波与保护触发位置,最后安排受控的负载、瞬态、稳定性和温升验证。公式给出需要检查的地方,实体测试才能决定可以对外承诺什么。

工程来源与验证资料

取材项目为RoboParty团队的《Roboto全开源人形机器人》,项目地址:https://oshwhub.com/roboparty-roboto/roboto-fully-open-source-humanoid-robot 。项目页及选定EDA工程标注GPL 3.0。本文独立说明文字与计算图按CC BY-SA 4.0开放;复用工程图、渲染及复算代码保留GPL-3.0许可。本次锁定2026年4月10日的工程,选取RBE_PWR_HUB_V2.1中的“48转5”图页,图页日期2026年4月9日;图框版本栏仍写V1.0,原样保留,不混用其他板的位号。

原理图和PCB顶、底面均在实际嘉立创EDA编辑器重新导出;原理图母版4704×3324,PCB母版4096×2993。正文作局部裁剪、保真缩小与轻度锐化,没有重建连线或丝印,关键参数另作清晰标注。3D导出失败后使用实际1280×720视口截图裁去界面,保留原始模型细节。计算图为本文程序生成的模型示意。

本文独立新增单位明确的复算程序、参数来源分层、无效输入拦截及测试,记录R33物料冲突,未改动上游硬件工程。没有完成焊接、板级上电、ERC/DRC、效率、温升、负载瞬态或整机测试。涉及49/60/73mV、65ns、RT公式与打嗝计数的依据为TI官方LM5148数据手册7.5、8.3.5、8.3.12.1及8.3.13:https://www.ti.com/product/LM5148 。

下载完整复算工具与验证包,包含源码、配置、测试、计算结果、选定工程的物料及焊盘网络摘录、README和GPL-3.0许可文本。使用Python 3.11或更新版本,不需安装第三方运行依赖;该包不包含机器人控制固件,原始EDA工程从上述项目入口取得。

技术交流,欢迎关注微信公众号:美男子玩编程。

创作许可协议

本项目采用 CC BY-SA(署名-相同方式共享) 进行许可。

评论(0)
- 没有更多了 -