ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

USB-C PD 3.1 240W给台式机供电可行吗?DC-ATX方案解析

USB-C PD 3.1 240W给台式机供电可行吗?DC-ATX方案解析 最近低功耗装机圈里有一个话题的关注度正在明显上涨把 ATX 电源整体拿掉只用一个 USB-C PD 3.1 充电头给台式主机供电甚至让显示器也走 PD 链路取电。这个方案看起来非常“反常识”因为很多人对 USB-C 的认知还停留在“手机快充”和“笔记本 65W 适配器”上。实际上USB PD 3.1 规范已经把供电档位推到了 48V、5A、240W。240W 是什么概念一台不带独立显卡的 Mini-ITX 主机加上一台常见的 USB-C 便携显示器整机功耗可能还不到 150W。从功率数字看USB-C 给台式机供电确实可行。但这里真正的问题不是“充电头够不够大”而是一整套供电链路怎么搭充电头如何通过 CC 协议让设备请求到 48V PDO48V 直流进来之后DC-ATX 又怎么把这一路高压转成主板需要的 12V、5V、3.3V 和 5VSB开机时序、待机功耗、端口共享策略又会不会让这块“外置电源”变得不可用。这篇文章会把这条链路从协议层拆到接线层再给出一套可以直接照着执行的最小验证流程。读完你至少能回答三件事这套方案能不能省下传统 ATX 电源选材时哪些参数绝对不能妥协主机和显示器两路负载到底该怎么分配。先给一个明确的判断这个方案适合低功耗主机、HTPC、软路由、迷你办公机以及系统总功耗在 150W 以内的场景不适合带高端独立显卡的台式机也不适合拿便宜诱骗线和普通 DC-ATX 模块硬拼。下面进入正题。1. 为什么现在才值得讨论USB-C 给台式机供电改变了哪一层1.1 从 100W 到 240W供电能力发生的是量变USB PD 3.0 时代USB-C 能协商到的最大功率是 20V、5A、100W。100W 并不是不能用它已经能带动不少办公迷你主机但距离台式机主板加 CPU 加外设的功耗还是差了临门一脚。USB PD 3.1 引入了 EPRExtended Power Range扩展功率范围在原有 SPRStandard Power Range基础上增加了 28V、36V、48V 等多个固定 PDO 档位。其中 48V 与 5A 的组合正好落在 240W这已经超过了传统 200W-300W ATX 小电源覆盖的一部分场景。这才是“USB-C 插台式机”能被认真讨论的起点。从技术分层看USB-C 给台式机供电改变的并不是主板端接口形态主板根本不认识 USB-C它只认识 24Pin ATX、8Pin EPS 和标准电压轨。USB-C 改变的是“交流转直流的这一级放到了哪里”传统方案里市电 220V 进 ATX 电源内部经过 PFC、高频开关变压器、次级整流后变成各路直流而这里把“220V 转 48V”的工作交给了外置 PD 充电器机箱里只保留一块 DC-ATX 模块负责把 48V 直流再做一级 DC-DC 变换生成主板需要的 ATX 电压。换句话说这块 DC-ATX 模块和 picoPSU 时代的外置电源砖思路是同源的唯一的新变量是供电接口从圆头 DC 口变成了 USB-C并且能协商到 48V/240W。1.2 适合与不适合的人群一开始就要分清必须说清楚不推荐任何人用这个方案去替代 300W 以上的游戏主机。这套方案的工程边界非常明确。USB-C 供电本质上是一个 “有一个外部电源、一根线、一个协议协商芯片、一块小 DC-DC 板” 的系统。它的优势是体积小、灵活、可以复用 PD 充电器劣势是持续带载能力、峰值电流承受能力、以及各路低压大电流输出能力通常都不如正经 ATX 电源。如果你手头是这类机器才值得往下看65W 级 TDP 的 CPU核显或者低功耗显卡Mini-ITX / 1U 小机箱需要压缩内部电源体积HTPC、All-in-One、软路由、办公机、便携机箱系统实际持续功耗在 120W 左右峰值能控制到 180W 以内显示器是带 USB-C PD 供电输入、整机功耗 30W 以内的小屏。如果你的机器要带 200W 以上的显卡或者峰值功耗经常超过 300W那么再大的 PD 3.1 充电器也不该成为首选。那不是充电头的问题是这套两级 DC-DC 链路在整机层面的综合可靠性还无法和成熟的 ATX/DC-ATX 大功率方案相比。2. 这条链路里的核心概念PD 协议和 DC-ATX2.1 USB PD 不是“一根线直通”而是先握手再决定给多少电压很多人会误以为 48V 充电头只要插上去设备就能拿到 48V。这是个非常危险的理解偏差。USB PD 协议的工作机制是充电器作为 Source 会广播自己的供电能力这个消息里包含一组 PDOPower Data Object例如“5V/3A、9V/3A、15V/3A、20V/5A、28V/5A、48V/5A”。用电设备作为 Sink 必须从中选择一个 PDO并向 Source 发出 Request 请求。Source 收到请求后返回 Accept再输出 PS_RDY这时候总线上的电压才会切换到被请求的档位。也就是说48V 不是“插上去就有”的电压而是充电器有能力广播、设备有能力请求、线缆有能力承载三者同时成立后才能建立的一个供电契约。把 20V 显示器、普通 USB-C 线或只支持 20V 的诱骗板放到这条链路上48V 根本不会被协商出来甚至可能因为设备不支持 EPR 而一直停在 5V/20V 档位。这也解释了为什么满功率跑通比想象中复杂充电器输出端要支持 48V PDOPD 诱取模块要支持 48V EPR 请求线缆要有 EPR 标志且电流承载能力达到 5A。任何一环缺失链路就只能回退到低功率档。2.2 DC-ATX 的核心任务把一路直流变成主板认识的 ATX 电压轨ATX 主板需要的不只是 12V。标准 24Pin ATX 接口里除了 12V还有 5V、3.3V、-12V以及关键的 5VSB 待机电压。主板开机时还需要 PS_ON# 信号被拉低电源反馈 PWR_OK 信号告诉主板“各路电压已经稳定”。CPU 的供电则走另外的 4Pin/44Pin EPS 接口它同样要求来自 12V 的大电流通道。DC-ATX 模块的作用就是把外部送进来的直流电压比如常见的 12V、19V、24V以及本方案的 48V通过内部 DC-DC 降压电路转换成上面这些 ATX 标准电压轨。48V 输入不能直接进主板也绝不能接到主板的 12V 引脚否则主板上游的 VRM、输入电容和电源管理芯片会直接过压损坏。这里其实隐藏了一个和手机供电完全不同的问题手机插入充电器后内部电源管理芯片可以直接切换供电路径让充电器为整机供电同时给电池充电但 PC 主板没有一套“外接单路直流即可全机直供”的机制。PC 必须经过 DC-ATX 把直流电压拆成各路 ATX 电压然后主板再按自己的上电时序启动。所以 DC-ATX 不是可有可无的转接板它是整个方案里真正承担“翻译”和“功率分配”的核心部件。2.3 一条典型链路长什么样把上面的概念穿起来链路结构可以用下面这张文本图表示[240W USB-C PD3.1 充电器] │ ├── 输出口1请求 48V PDO / 5A │ ├── USB-C EPR 线5A 以上含 E-Marker │ ├── PD 诱取板支持 EPR 48V │ └── 输出 48V DC │ └── DC-ATX 模块 │ ├── 24Pin ATX → 主板主供电 │ ├── 44Pin CPU EPS → 主板 CPU 供电 │ ├── SATA 电源 → 硬盘 │ └── 12V 输出 → 风扇或外设 │ └── 输出口2请求 20V PDO典型 65W 级 └── 带 USB-C PD 供电输入的便携显示器 / DC 屏注意图中的显示器走的是独立的另一路 PD 输出口而不是从 48V 主路分叉。USB PD 不支持直接把一路供电用 Y 型线并给两个设备而且 48V 也几乎肯定会超过便携显示器的输入耐压。双路负载必须由充电器分别协商、分别供电。3. 48V 不是越高越好先算功率预算3.1 为什么典型低功耗主机选 48V/240W 有合理性从数值上看USB PD 3.1 的几档 EPR 功率分别是 28V×5A140W、36V×5A180W、48V×5A240W。如果你的目标是“一个充电头带主机还带显示器”那么 140W 往往扣掉显示器后给主机剩下的余量太少180W 又刚好卡在临界48V/240W 才是目前 PD 3.1 里最稳妥的档位。另外一个不可忽视的原因是线缆压降。USB-C 的 5A 电流上限是固定的要提升功率只能升压。同样传输 240W20V 需要 12A这早已超出 USB-C 标准接头和线缆承载能力28V 还需要 8.6A只有 48V 能控制在 5A 以内。所以 48V 档位不仅是“更高功率”它还是 USB-C 物理连接器能够可靠承载 240W 的必要设计。不过电压高不代表效率一定高。DC-ATX 模块要把 48V 降到 12V再从 12V 分出 5V/3.3V中间任何一级 DC-DC 都会有损耗。选型时应该看模块的整体额定功率和输入电压范围而不是只看输入端电压数字。3.2 写一个简单的功率预算脚本动手买物料前最好先把功率预算写下来。下面这个 Python 脚本可以帮你做一个粗粒度判断脚本里所有数值都是占位数据真实项目请按自己的 CPU、主板、硬盘、外设和显示器规格填写。#!/usr/bin/env python3 # power_budget.py # 估算“PD充电器 DC-ATX”方案是否能覆盖主机与显示器负载 from dataclasses import dataclass dataclass class Pdo: volt: float amp: float dataclass class SourcePort: name: str pdos: list # 充电器实际 PDO 以产品说明为准这里只是示例 charger_ports [ SourcePort(主供电口, [ Pdo(5, 3), Pdo(9, 3), Pdo(15, 3), Pdo(20, 5), Pdo(28, 5), Pdo(48, 5), ]), SourcePort(副显示口, [ Pdo(5, 3), Pdo(9, 3), Pdo(20, 3.25), ]), ] # 负载估算请根据实测/功耗评测填写不要盲信示例数值 loads [ (主机持续功耗, 110), (主机瞬态峰值, 175), (显示器持续功耗, 25), ] # 预留 25% 裕量 margin 0.25 def run(): main_port charger_ports[0] max_main max(p.volt * p.amp for p in main_port.pdos) total_avg loads[0][1] loads[2][1] print(f{main_port.name} 最大可选功率: {max_main:.0f}W) print(f持续负载合计: {total_avg:.0f}W, 建议不超过 {max_main*(1-margin):
返回列表