做硬件开发这几年被问到最多的问题之一就是怎么让设备直接从一个USB-C快充充电器里“拿电”。不管是做便携仪表、桌面小工具、锂电池充电模块还是给嵌入式开发板供电与其专门配一个笨重的电源适配器不如直接用一个现成的PD快充充电器——功率足、体积小、线材还统一。但中间有一个关键环节很多人会卡住怎么让充电器把你的设备当成一个“合法的受电设备”并按你需要的电压把电“谈”出来。这就是PD快充受电芯片的用武之地。本文我从开发选型的角度把这类芯片的核心原理、关键决策点和几款主流方案一次讲清楚适合正在做USB-C供电产品、或者想用PD充电器给DIY项目供电的工程师参考。1. PD受电芯片到底解决什么问题什么时候需要它1.1 从USB-C充电说起充电器为什么不会主动吐高压很多人第一次接触USB-C供电时有个误区觉得Type-C口只要接上就能有20V。实际上完全不是这样。USB-C只是一个物理接口形态里面跑的协议五花八门。VBUS上默认只有5V而且电流能力很有限——Type-C标准里当两边只是完成了基本的CC连接检测时source端供电方只能根据自己上拉电阻的档位提供1.5A或3A的电流能力换算下来也就7.5W到15W的水平。这个功率带个风扇、跑个开发板还凑合但想给一台笔记本电脑充电、带一个60W的LED灯或者给两串锂电池组做大功率充电就差太远了。要把电压从5V拉高到9V、12V、15V、20V甚至28V以上靠的就是USB PD协议。PD协议走的是CC线上的通信source端和sink端受电方通过BMC编码方式交换一系列能力报文source把自己的PDOPower Delivery Object供电能力描述列表发出来sink端从中挑一个自己需要的档位发起请求。只有完成这套“握手”充电器才会把VBUS升到对应的高电压。所以问题就来了你的设备作为sink端必须具备一套完整的PD协议栈才能跟充电器完成这轮谈判。如果没有这个能力充电器就只能把你当普通5V设备对待你拿不到那几十上百瓦的功率。1.2 受电芯片在电路里扮演的角色受电芯片行业里也常叫“PD sink芯片”或者“PD诱骗芯片”本质上是替你完成了协议栈的工作。它内部集成了PD物理层收发器、协议状态机、电压请求逻辑等。接到Type-C母座之后它会自动拉低CC线上的电平完成设备连接检测然后监听source端发来的能力报文根据你预先配置好或通过I2C写入的目标电压发起Request报文请求对应档位最后通过VBUS_EN等引脚控制你的系统电源通路打开。用生活化的比喻就是充电器像一个只有在谈好条件后才愿意开闸放水的“水库”受电芯片则是你的“谈判代表兼闸门管理员”。你的主控芯片根本不用关心PD协议细节只要告诉受电芯片“我要12V”剩下的事全由它搞定。选受电芯片还有一个的好处是可以看得更长远。如果你想自己用MCU通过GPIO模拟CC波形去实现PD协议也不是不行但PD协议的状态机复杂度、时序要求、对不同充电器的兼容性处理会让你的开发周期成倍拉长。为了一个供电功能搭进去几周的调试时间大多数项目都不划算。1.3 哪些场景真正需要一枚专用受电芯片不是所有USB-C项目都需要受电芯片我就碰到过不少朋友把方案做复杂了。如果你的设备只是5V供电、电流不超过3A那直接在CC1和CC2上各接一个5.1kΩ下拉电阻到地让充电器识别到你的sink身份就够了不需要任何协议芯片。需要受电芯片的场景通常有这几个一是需要高电压供电的设备。比如12V的LED灯带、15V的传感器、20V的电机驱动这些电压用PD充电器拉最经济。二是功率需求超过普通Type-C 5V档能力的设备。比如你需要60W、100W就必须通过PD协议协商到20V/3A或20V/5A档位。三是做锂电池充电模块。比如给4串锂电池充电需要触发PPS可编程电源以20mV步进精细调整电压电流普通5V供电根本没法做。四是产品需要兼容各种主流充电器的场景。比如你做一个USB-C供电的桌面小家电用户可能用手机充电器、笔记本适配器、快充充电宝这些设备的协议支持各不相同受电芯片的兼容能力直接决定用户插上能不能跑起来。2. 开发选型决定成败的几个维度2.1 功率与电压范围先把负载需求算清楚选受电芯片的第一步是把负载的电压和电流需求算清楚连这步没做就选型后面大概率要返工。假设你的设备是一块12V/3A的加热板那功率就是36W如果是一台需要20V/5A的迷你主机就是100W。受电芯片的规格必须覆盖目标的最高电压和最大电流而且要留出至少20%的余量。比如目标功率60W尽量选标称能力在75W以上、或者支持20V/5A的芯片不要卡着极限设计。这里要额外提醒一点PD协议在标准功率范围SPR内的档位是固定的PD3.0时代就5V、9V、12V、15V、20V这几个标准档位最大100W20V/5A。PD3.1扩展功率范围EPR才引入了28V、36V、48V这些档位最大能到240W。但EPR有两个额外的门槛一是充电器本身要支持PD3.1 EPR二是线缆必须带E-Marker且支持EPR普通线缆在EPR协商阶段就会被拒绝。所以如果你做的是大于100W的设备选型思路和常规百瓦以内完全不同牵扯到线缆认证、CC通信保护和热量管理成本会明显上浮。没有特殊需要的项目我的建议是老老实实做100W以内的SPR方案稳定又便宜。还要关注PPS支持。PPS是PD3.0引入的可编程电源模式它允许sink端以20mV的步进在3.3V到21V之间动态请求电压。这对电池充电特别重要因为你可以在充电过程中实时调整目标电压模拟传统的恒流恒压充电曲线。如果你做的是锂电池充电模块或者需要精密调压的仪器仪表芯片不支持PPS会让你非常难受只能退回到固定档位凑合效率大打折扣。2.2 协议兼容性充电器那么多别让设备只能配原装头受电芯片的协议兼容性是我个人最看重的一个选型维度没有之一。原因很简单你的设备做出来之后用户手头的充电器可能是十年前的老QC充电器、可能是新款PD充电器、也可能是华为或OPPO的私有快充头。PD受电芯片要做得让人省心就不能只支持PD最好连带把QC2.0/3.0也兼容掉。QC协议走的是D/D-上的电压信号很多受电芯片内部集成了这个检测逻辑在PD握手失败后会尝试用QC方式请求高压能覆盖一大部分“不是PD但支持QC”的老充电器。比较头疼的是各大手机厂商的私有快充协议比如华为SCP、OPPO VOOC、小米的私有协议、vivo的FlashCharge等。这些协议通常是保密的普通PD受电芯片根本无法触发甚至有些芯片为了安全会直接忽略这些非标信号。所以做选型的时候先把用户画像想清楚如果你的设备主要的充电场景是手机原装头而这些原装头又基本是私有协议那可能就要考虑是否需要定制协议方案或者接受“用户只能插在原装PD适配器上才能快充”的现实。我在产品定义阶段吃过这个亏当时想当然以为所有快充头都兼容结果实测发现有一类手机充电器根本不走PD被客户投诉了好几次才改方案。多花点时间做充电器兼容性列表测试远比事后改硬件划算。2.3 配置方式电阻硬配置还是I2C软配置受电芯片怎么把“目标电压”记录下来也是选型时必须想清楚的一件事。目前主流方案有三大类。第一种是电阻配置。芯片有几个配置引脚通过外部电阻接地、悬空或者接高电平的组合决定请求哪个固定电压档位。这种方式的好处是简单粗暴上电即用代码都不需要写非常适合量产的固定电压场景。我做的很多桌面设备都是用一个电阻网络设置好12V或20V后面就不管了。缺点是灵活性差想换电压得改BOM换电阻。第二种是I2C配置。芯片作为I2C从机主控在启动时写入期望的PDO参数芯片再按写好的配置去请求电压。这种方式灵活得多可以在运行时动态切换档位也能请求PPS可编程电压。适合那些有主控MCU、需要电源策略参与系统控制的场景比如电池充电曲线切换、待机降功耗等。代价是需要占用I2C资源和一段初始化代码。第三种是介于两者之间靠GPIO电平组合选择。有几个版本在低成本MCU方案里会用但我实际项目中用得比较少。选型建议是这样如果产品功能很简单、没有MCU或者MCU资源非常紧张优先选纯电阻配置的芯片如果产品有主控、未来还可能OTA升级电源策略选支持I2C的芯片会从容很多。很多芯片两个方案都支持这点很值得加分。开发阶段最好把配置引脚做成0Ω电阻跳线或者跳线帽便于调试时切换档位。2.4 外围成本与供应链稳定性受电芯片虽然功能不算复杂但外围成本差别还挺大。有些芯片把5.1k下拉电阻、VBUS导通开关、输出LDO、ESD保护统统集成在内部一颗芯片加几个电容就能工作有些芯片只集成协议功能CC下拉电阻、VBUS开关都得自己搭。从BOM成本角度看集成度高的芯片虽然单价略贵但省下来的外围器件、PCB面积和贴片费用往往更划算尤其是板子空间紧张的时候。供应链方面也要留个心眼。国产受电芯片这几年发展得很快LDR、沁恒、英集芯这几家的产品型号多、出货量大采购基本不愁。但有些小众型号或者新出的PPS芯片可能只是其他家的pin to pin供货周期和长期可用性不好说。如果是做长期量产的产品选型前先去问代理商要一份供货周期和替代方案清单不要等量产了才发现问题。3. 我把市面上常见的方案分成了四类3.1 快而省的单芯片固定电压方案LDR6328、CH224K如果你的需求就是“从充电器拉到某个固定电压”目前最成熟的路线就是这类国产单芯片诱骗方案典型代表是乐得瑞的LDR6328和沁恒的CH224K。LDR6328是我在DIY项目里用得最多的芯片没有之一。它最大特点是外围极简基本就是芯片加几个去耦电容再通过几个配置引脚让芯片知道你想要的电压档位。它支持PD3.0和QC2.0/3.0能请求到9V、12V、15V、20V这些常见档位输出电流能力取决于充电器和VBUS走线设计。我拿它做了一款12V供电的桌面温湿度显示器板子面积只有一张名片的三分之一插上任意一个支持PD的充电器就能跑体验非常好。CH224K则是沁恒家这几年口碑不错的受电芯片封装更小价格也压得很低。它的配置方式更灵活除了电阻配置部分型号还支持I2C这意味着你可以用主控在运行时改请求电压。CH224K的资料和参考设计比较齐全芯片本身很皮实我见过不少小批量产品直接拿它做主供电方案实测稳定性没什么问题。这两颗芯片的价格都在几块钱量级开发成本几乎可以忽略。这类方案的局限也很明显它们的主战场是标准SPR档位PPS支持要么没有、要么实现得比较简单。如果你的负载需要中途改变电压比如锂电池在恒流阶段需要慢慢升压这俩就不太够用了。3.2 面向精密调压的PPS方案IP2721等要动态调压就要找支持PPS的受电芯片英集芯的IP2721是这类型号里比较有代表性的。IP2721支持PD3.0并且能够协商PPS模式这意味着你可以请求一个范围内任意目标电压。之前做一款便携电池组充电模块用户要求在给3串锂电池充电时实时调整电压。普通固定档位芯片只能在20V和15V之间切来切去充电曲线很粗糙切换到IP2721这类支持PPS的芯片之后用主控通过I2C把目标电压按20mV步进逐步提高整个充电过程平滑高效发热也小了一大截。当然PPS方案也有前提充电器必须支持PPS。现在很多新出的USB-C充电器都带PPS尤其是面向手机的快充头比如不少65W氮化镓充电器支持3.3V到21V的可编程电压段。但老款PD充电器尤其是笔记本原装适配器往往只支持固定PVD档位遇到这类充电器时PPS芯片会自动回退到固定档位至少还能用只是享受不到平滑调压。做兼容性测试时多准备几款支持和不支持PPS的充电器。3.3 高自由度方案FUSB302配MCU自己跑协议如果你对PD协议有深度定制需求比如要支持EPR高电压、要在文档记录之外实现私有协议扩展、或者要在同一接口上做复杂的角色切换那固定功能的受电芯片就不够玩了。这个时候可以考虑FUSB302这类PD物理层芯片配一个MCU跑协议栈的做法。FUSB302本身只做物理层信号收发把CC线上的模拟信号转成I2C寄存器PD协议的状态机完全由你的MCU代码实现。好处是自由度非常高你掌握每一个报文的收发时机整个握手过程透明可控。坏处也很明显你需要自己实现或移植PD协议栈而且要对CC事件的时间参数非常敏感否则很容易在兼容性测试中败下阵来。我见过的成熟做法是用开源的PD协议栈比如一些芯片厂商提供的参考工程在树莓派RP2040这类MCU上跑Debug起来还算方便。但如果只是做一个固定电压的受电设备我完全不推荐这条路投入产出比太低了请谨慎对待。3.4 高可靠硬协议方案STUSB4500等独立sink控制器在工业级、车规级或者医疗设备这类要求极端稳定的场景我会优先考虑STUSB4500这类全硬件实现的独立PD sink控制器。STUSB4500内置完整的PD协议状态机不依赖外部MCU跑代码上电后自动按照预设的PDO进行协商请求。它支持最高20V/5A左右通过I2C接口一次性写入期望配置后就完全独立工作了就算主控死机也不影响供电握手。这种“电力供应与控制系统解耦”的特性在安全关键设备里有不可替代的价值。代价是价格相对高而且配置流程略麻烦。你需要一个I2C控制器在量产前写入配置或者用它配套的GUI工具通过USB转I2C小板写一次。不过幸好它的配置是保存在内部非易失存储里的一次写入后就可以完全不接I2C运行。我帮朋友做过的工业触摸屏电源板用的就是这颗芯片两年下来没出过供电问题非常省心。为了方便对照我把这四类方案的典型参数和适用场景整理成一张表方案典型型号协议支持配置方式相对成本适合场景单芯片固定电压LDR6328、CH224KPD3.0、QC2.0/3.0等电阻、部分I2C低DIY、小家电、固定电压供电PPS可编程IP2721等PD3.0、PPSI2C中电池充电、精密仪表、动态调压物理层MCUFUSB302任意需自行实现协议栈全自研高开发成本特殊协议、EPR扩展、私有功能独立硬协议STUSB4500PD3.0I2C一次写入高工控、医疗、高可靠设备3.5 按场景快速给的选型建议落到具体项目我一般按下述思路快速收敛固定电压、体积敏感、没有主控的直接选LDR6328或CH224K有主控、需要动态调压或者以后可能要迭代电源策略的优先看IP2721这类支持I2C和PPS的型号做高可靠产品且不信任软件方案的直接STUSB4500只有当你确实需要协议层以上的自定义行为时才考虑FUSB302配MCU的方案。如果你做的是PD3.1 EPR级别的设备比如220W的桌面工作站、240W的电竞一体机那就不能用普通受电芯片了得找专门的PD3.1 EPR sink控制器同时把CC线缆、E-Marker、热设计全部按高功率重新评估一遍。这个方向建议单独开案不要拿SPR方案硬凑。4. 从选型到落地硬件设计与调试实操记录4.1 原理图上的关键节点CC、VBUS、使能脚一个都不能少受电芯片的原理图看起来简单但几个关键的节点处理不好板子就出不来电压。首先是CC1和CC2的处理。Type-C母座引出两根CC引脚受电芯片的CC1、CC2分别接到这两根信号上。很多集成度高的受电芯片内部已经内置了5.1kΩ下拉电阻你不用再额外加但如果选的是只做协议的裸芯片就需要自己在CC1和CC2上分别接一个5.1kΩ电阻到地否则充电器根本检测不到你的设备存在。然后是VBUS输入。Type-C母座的VBUS引脚要粗因为它是整个系统的能量入口。根据目标电流选择合适的线宽我习惯按每安培至少0.5mm线宽起步走线尽量短、直、宽避免形成高阻节点。VBUS进芯片之前放一个10µF的大电容和100nF高频去耦电容抑制热插拔和充电器输出时的瞬态浪涌。还有一个很容易被忽视的点是使能脚和状态脚。多数受电芯片有VBUS_EN输出引脚用来控制外部负载的电源开关。我建议不要直接让VBUS_EN去驱动大功率负载而是接到一个PMOS或者负载开关的控制极由它来切开VBUS主回路这样既保护了芯片的驱动能力也方便后续做软启动和过流保护。状态输出脚也值得充分利用。部分芯片会把“握手成功”“当前电压等级”等状态通过GPIO输出接到主控的IO口后系统就能判断自己当前工作在哪一档电压下方便做功耗策略管理。4.2 配置电路怎么搭从纯硬到可调都行以电阻配置的芯片为例我习惯在配置引脚上使用0Ω电阻加跳线帽的方式做开发版。比如想请求12V就放一组0Ω电阻想切换到20V就换另一组。量产阶段再根据最终确定的目标电压把跳线位置固定成贴片电阻。这样开发期间试验自由度大又不会影响量产BOM的简洁性。如果选的是支持I2C配置的芯片主控启动时要先于PD请求完成配置写入。因为芯片一上电就会自动开始CC连接检测如果没有收到配置往往会以默认的5V档作为兜底。所以代码里要把配置写入流程放在初始化最前面并且要处理写入失败的重试逻辑。不少芯片写寄存器时有地址和校验位调试时用逻辑分析仪抓I2C波形能很快定位是地址错误还是时序问题。做了这么多年受电方案我有个小习惯无论用哪种芯片都建议留一个USB Type-C的Breakout接口经常叫做CC调试板把CC1、CC2、VBUS、GND都单独引出来。调试时用示波器探头夹在上面观察CC信号和VBUS跳变比反复焊线方便太多了。4.3 PCB布局和电源完整性大电流的活别省受电芯片本身电流不大但承载的能量很大。PCB布局上要遵循几个硬性规则。Type-C母座尽量放在板边让外力作用线远离PCB中心插拔时不容易把铜箔撕裂。CC线是高速信号走线要短远离大电流的VBUS走线避免串扰。VBUS主回路要走成“输入口-开关管-负载”的单向通道避免大电流环路围住敏感信号。大电流路径上线宽和过孔都不能省。20V/5A就是100W按常规PCB铜厚1盎司计算走线宽度建议不少于4mm过孔至少开4到6个0.5mm以上的否则局部温升会让你怀疑人生。如果有条件VBUS路径上开一排过孔阵列做过孔填充或者加焊锡散热效果会好很多。ESD保护也要重点考虑。Type-C口是设备对外的开口人体静电放电经常从这里打进系统。在CC1、CC2和VBUS对地各加一颗TVS管结电容要小否则会影响CC通信的信号质量。我因为偷懒省掉TVS被静电打坏过两片样机从那之后这个位置从不省料。4.4 联调流程从5V到协议握手一步步来拿到新板子不要一上来就插大功率充电器按流程走能减少很多不必要的炸板风险。第一步上电前用万用表量一遍VBUS和CC的对地阻抗确认没有短路。第二步先用普通5V电源给板子供电确认受电芯片基本工作电压正常看看状态脚有没有起来。第三步接一个标准的PD充电器用USB功率测试仪串在中间观察请求电压和电流。如果此时输出还是5V多半是CC连接没建立或者协议没触发重点检查CC线接线和5.1k下拉。第四步确认请求电压正确后接上真实负载带载测试压降和纹波。满载压降能反映VBUS布线质量纹波电流大可能是滤波电容不足此时补电容比修改芯片配置更有效。第五步做一轮热插拔测试连续拔插几十次看有没有协商失败或死锁的偶发场景。这一步很考验充电器兼容性建议手头准备至少三个品牌不同年代的充电器。5. 我踩过的坑和排查清单建议直接收藏5.1 常见故障速查表几个典型故障我做了一张速查表便于真正接手项目时快速对照排查现象最可能原因排查方向插充电器完全没有输出母座或CC线虚焊、5.1k下拉丢失万用表量CC对地电压确认是否在0.8V左右输出一直停留在5VPD握手没触发充电器不支持PD或QC换一个确定支持PD的充电器测试请求电压正确但输出掉压明显VBUS线宽不够、接触电阻大、负载超限量满载时VBUS电压检查母座压降插上后反复重启或电压跳动充电器协议兼容性差、VBUS电容不足增加VBUS电容换充电器交叉测试大部分充电器都正常某一款不行该充电器私有协议优先或不走标准PD记录型号评估是否需要扩展兼容类型低温环境下偶发无法握手CC信号受温度影响、电阻精度漂移检查5.1k功率和温漂必要时加大电容5.2 私有协议和兼容性的深坑这里再重点说一次受电芯片并不是万能的很多厂商的充电器都有私有协议优先逻辑。比如某些手机原装头只有在自己品牌的设备连接时才触发大功率对其他第三方设备可能只提供5V。这不是受电芯片的问题是充电器端策略决定的。所以做产品选型和测试时我强烈建议建立一个“充电器兼容性测试矩阵”至少覆盖三类老款QC充电器、新款PD氮化镓充电器、手机原装快充头。每款都测一遍这个功能记录协议触发成功率和实际输出功率。我在项目Review时看到很多团队只用了自家同款充电器测试出了样机才被用户吐槽兼容性差追悔莫及。如果你做的是充电宝这类移动设备还要考虑双向角色。很多充电宝支持PD输出但对外接设备的CC握手行为跟电源适配器略有差异实测时最好单独拿出几款充电宝测试。已经在两个项目上碰到过“插适配器好好的插充电宝就5V”的情况基本都在充电器策略和CC时序的细节上。5.3 调试工具和几个顺手的小技巧调试PD受电方案我的常备工具清单是一个带功率显示的USB测试仪能看到请求电压、电流、协议类型一个逻辑分析仪抓CC线上报文一台支持PD输出的可调电源模拟不同source行为。这三样配合能解决百分之九十的受电问题。有一个小技巧是逻辑分析仪抓CC信号时采样率不用太高但触发电平要设置在1V左右因为CC线上的信号幅度本身比较小而且握手完成后会有短暂的静默期。抓到的报文如果用十六进制看很头疼的话可以先只关注“Source Capabilities”和“Request”两类报文确认能力列表和请求参数是否符合预期。另一个实用经验是热插拔时VBUS上会有明显的电压过冲。如果你发现芯片在某些充电器上偶发死锁可以在VBUS输入端并联一个几十µF的电解电容和一个小的TVS很多时候就能把过冲压住避免芯片进入异常状态。6. 最后分享几个体会比较深的地方说实话PD受电芯片在硬件设计里是个入门门槛不高的环节但真正做好做稳牵扯到的细节远超想象。我自己最深的体会是不要贪便宜省掉CC线上的保护元件也不要迷信某一款芯片在所有充电器上都能正常工作。多花一点时间建立自己的充电器兼容性测试列表比任何纸面参数都可靠。如果只是做快速验证或者个人DIY直接买一块现成的PD诱骗板上面就带着受电芯片和配置跳线几十块钱就能把方案跑起来对最终选型也很有参考价值。等验证完需求再根据实际场景选具体芯片画正式板子也不迟。我自己很多项目都是先拿现成模块做原型确认电压电流之后才回过来做定制PCB这样可以少走不少弯路。
阅读完成 · 觉得有帮助?