
给桌面仪表加一个 USB-C 取电口,板子还没画完,先遇到一道小题。CH224K 的 VDD 前面那颗电阻,到底该用多大功率?
一种很顺手的做法是把一颗电阻拆成四颗并联。每颗分担一点,看起来就能凉快一些。不过,“每颗少发热”和“整块板少发热”是两件事;标称条件算得过,也不等于电源偏差、阻值偏差一起到来时仍有余量。
下面用一组真实 EDA 电路做功耗审查。重点是把电阻选型变成一项可复算、能拦住越界输入的检查,不承诺这块板已经通过 PD 握手、启动或温升测试。

图1 从实际 EDA 矢量图裁出的供电局部。R5~R8 均为 4K7,四颗并联在外部 VBUS 与 U1 的 1 脚 VDD 之间;C1 为 VDD 对地的 1 μF 电容。右侧伸出裁剪区的线仍属于完整工程,不能按断线理解。
这四颗电阻给芯片供电,不串在外部负载的主输出回路里。它们承受的是 VBUS 与 VDD 之间的压差,电流量级是毫安。不要把“USB-C 电源能提供几安培”代入这组电阻的电流公式。
CH224K 的供电也不能照搬某些高压直供器件。CH224DS1 v2.1 中,K 型号的 VDD 采用并联稳压供电方式,需要外围限流电阻及去耦;它与 CH224A/Q 的引脚和供电条件存在差别。这里核对的型号始终是 CH224K。
在 VDD 已进入稳压状态的前提下,电阻组电流分成芯片消耗与稳压吸收两部分。把 VDD 当作 3.3 V 来计算,是稳态近似,不能顺带证明上电过程也成立。
四颗 4.7 kΩ 并联,等效电阻为 1175 Ω。假设 VBUS 为 20 V、VDD 为 3.30 V,电阻组承受 16.70 V 压差。
计算关系很直接。
ΔV = VBUS − VDD
单支路电流 = ΔV / R
单颗功率 = ΔV² / R
总功率 = 各支路功率之和由此得到总电流约 14.213 mA、总耗散约 237.353 mW,每颗约 59.338 mW。
把这组数与另一种拆分对照,就能看出并联到底改变了什么。
方案,均按20 V与3.30 V计算 | 等效阻值 | 总耗散 | 单颗耗散 |
|---|---|---|---|
单颗1 kΩ | 1000 Ω | 278.9 mW | 278.9 mW |
四颗4 kΩ并联 | 1000 Ω | 278.9 mW | 69.7 mW |
四颗4.7 kΩ并联 | 1175 Ω | 237.4 mW | 59.3 mW |
前两行等效阻值相同,总耗散就相同。热量被分到四个位置,并没有消失。第三行总耗散下降约 14.9%,来自等效阻值从 1 kΩ 增到 1.175 kΩ;同时,留给芯片的供电电流也减少了。
所以,单纯再增加阻值并不是免费的降温办法。需要同时查高电压时的功耗,以及低电压时是否仍有足够的供电电流。
先设一条明确的选型预算,避免用“摸起来不烫”代替判断。
假设准备使用额定功率 0.125 W 的电阻,并暂按额定值的 50% 分配持续功耗,那么每颗预算是 62.5 mW。标称计算的 59.338 mW 低于这条线,但只剩约 3.16 mW。
接着把三个输入换到不利方向。
此时单颗耗散为 67.788 mW,超过刚才设定的 62.5 mW 预算。超预算表示这套选型规则没有满足,并不等于已经证明电阻会损坏。

图2 由随文程序生成的稳态电气计算图。曲线不是测温结果;橙色线采用较低的 VDD 和支路阻值。21 V 示例角点越过了 0.125 W×50% 的预算线。
保持这组角点和 50% 分配系数,反推所需额定功率至少约为 0.1356 W。若换成真正额定 0.25 W 的器件,125 mW 的分配预算能够通过这一步电气初筛。
但不要直接把 BOM 里的“0805”改写成“0.25 W”。0805 是尺寸,额定功率还取决于具体系列、端头、基板与测试条件。正确的比较对象应是:实际料号在使用温度下的允许功率,再乘设计分配系数。环境温度超过降额起点后,不能继续拿室温额定值硬比。
这也是本次改进的落点。保留已核对的四支路拓扑,把额定功率、精度、电源上限、VDD 下限和分配系数显式输入检查程序。先让选型表暴露不够余量的方案,再根据实际器件与散热条件定料,不把封装名当额定参数。
前面的角点电阻组总电流约 15.267 mA。数据手册在 25 ℃ 条件下给出 K 型号并联稳压吸收能力最高 30 mA;电阻组总电流还包含芯片本身的消耗,可作为稳压吸收电流的保守上界,不能据此宣布所有温度下都已验证。
再看 5 V 一端。取 VDD 为 3.36 V、电阻偏大 1%,四支路可提供的稳态电流约为 1.382 mA。若有一颗开路,只剩约 1.036 mA。
这些数字可以帮助发现供电预算变窄,却还不能回答“芯片一定能启动吗”。还缺启动所需电流、去耦充电过程及实际电源动态等依据。本次没有用稳态公式冒充启动验证。
故障也不能只看总电阻变化。单颗开路后,只有在 VDD 仍保持稳压时,其余三颗的单颗功率才基本不变,总电流下降四分之一。如果一颗短路,则相当于把整个并联组短接,限流路径被绕过,应直接判为不允许继续使用的状态。

图3 同一次 EDA 导出的顶层与底层,底层未镜像,便于按同方向比对。图中是铜层和丝印,不是焊接实物,也没有温度信息。
顶层上方横排的四个电阻位置,把原本集中在一颗器件上的功耗分散开。能否获得足够的温升余量,还与焊盘、铜连接、器件间距、板材、外壳及周围热源有关。仅凭“大面积铺铜”或红蓝颜色,既不能计算热阻,也不能认定铜皮就是地。
核对快照时还发现一个需要停下来的细节:原理图有 D2、H1,当前 PCB 中却没有这两个器件;原理图 H1 的输出取自 VBUS,不能把旁边 D2 那条支路当成 H1 已具有防倒灌功能的依据。PCB 中显示为 CFG1 的电阻对应原理图 R3。

图4 实际工程的整体电路区,用于核对供电支路与右侧 D2/H1 的位置。全图细节以工程快照为准,图1单独放大了本次计算涉及的部分。
因此,本次只使用已交叉核对的 VBUS 至 VDD 电阻组、C1 及相关器件信息做电气功耗审查。完整板的输出保护、PD 配置、铜皮连通和载流能力不在通过范围内,也不提供“照图焊接即可使用”的整板保证。把共同确认的部分与尚未对齐的部分分清,才能避免一份功耗计算替整块板背书。
下面这段可以直接在 Python 3.9 及以上版本运行,不需要额外依赖。它给出的结果与随文完整程序使用同一公式和同一组输入。
from power_budget import assess, bank
nominal = bank(20.0, 3.30, [4700.0] * 4)
print(round(nominal["branch_w"][0] * 1000, 3))
# 59.338 mW per resistor
result = assess(
vbus_max=21.0,
vdd_min=3.24,
resistance=4700.0,
count=4,
tolerance=0.01,
rated_w=0.125,
allocation=0.50,
)
print(result["power_screen_pass"])
# False
print(round(result["minimum_nameplate_w"], 4))
# 0.1356 W, before real temperature derating完整包内的 bank() 对每条支路分别计算,支持不等值电阻;assess() 按最大压差和最小阻值计算功耗。非有限数、零或负电阻、无效容差等输入会被拒绝,不会被误报成“通过”。
解压源码包后,在工程目录运行以下命令即可复核。
python power_budget.py
python power_budget.py --json
python verify_snapshot.py
python -m unittest -v
图5 由实际程序输出整理的离线核验结果。8项测试包括功率守恒、等效阻值、容差角点、开路支路及无效参数检查;另把 PCB 快照的一条 R5 网络改成断开,确认快照检查会拒绝这种不一致。
verify_snapshot.py 是针对随包快照的有限检查器,核对器件值、原理图正交连线与网络标号、PCB 焊盘网络名。它不替代 ERC/DRC,更不把网络名相同当成铜皮已完整连通。
这套流程留下的是可复算的判断:四颗 4K7 在标称条件下每颗约 59.34 mW,而示例角点会上升到 67.79 mW。真正要焊板时,把实际料号、温度降额和电源条件填进去,先过电气功耗筛选,再做启动、握手及温升检查。四颗电阻是否够用,最终要靠这几项依据合在一起回答。
源码包 #ch224k-power-audit-v1.0.0.zip# 包含完整 Python 程序、8项测试、EDA JSON 快照、运行记录和来源清单。独立程序采用 MIT 许可;工程快照源自 LiiGuang 的基于CH224K的PD诱骗器,项目页标注 Public Domain。参数依据WCH CH224DS1 v2.1第4、6.2、7、8.1.3和8.2.3节。
图1、3、4来自2026-10-22同次 EDA 导出,仅裁剪、缩放并为顶底层添加说明;图2是计算图,图5是离线日志整理。原理图与 PCB 的 D2/H1 差异已保留,本次未修改硬件,未进行实体测试。文章独立完成了功耗推导、参数化检查及故障注入验证。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。