
1. 不是接个Type-C母座就完事受电端为什么非要一颗专用芯片很多时候硬件工程师第一次做Type-C接口的取电端设备会有一个很自然的想法USB-C母座买回来CC1、CC2这对信号线无非是检测正反插嘛那我直接在上边挂两个电阻让它枚举成一套固定电压再把VBUS引进来供电不就完事了结果一上电就尴尬了插上充电头要么输出还是5V要么电压抖动上不去要么干脆整个适配器进入保护状态。问题倒不在适配器而是你对USB PD的理解还停留在“Type-C就是一根能多跑几安培的线”上。PD快充和普通充电的本质区别在于——它是一套完整的方向协商协议。适配器那边是供电方Source你的设备这边是受电方Sink两边要通过CC引脚实时收发控制消息把“你到底想用哪个电压档位、多大电流档位”聊清楚然后才把总线电压抬上去。这个“聊清楚”的过程不是靠硬件电平拉一下就能完成的它需要一颗能跑协议栈的芯片来处理。受电芯片就是干这个的。这篇文章主要写给正在做PD受电端开发的同事看无论是做便携显示器、小家电、移动电源、电动工具还是想把设备改成直接用PD适配器供电都需要先搞清楚三件事——PD协议里哪些机制跟硬件设计强相关、芯片选型应该看哪些指标、以及原理图和PCB上有哪些坑是数据手册不会明说的。下面按我实际做项目时的思路把这些内容展开讲。1.1 PD快充的“受电”比你想象中更主动很多人以为受电方是被动的——适配器给什么电压我就用什么电压。但在USB PD里受电端反而承担了相当一部分“主动”工作。设备接入后适配器会在CC线上做一次基检测它通过一个上拉电阻送出检测电平你的设备则在下拉电阻上把它拉低。这段电压关系确认了连接建立适配器才会打开VBUS输出标准的5V。注意这时候还没开始“快充”只是一个基础握手电压也还没上去。接下来适配器会通过CC线把一组Source Capabilities消息广播出来这就是我说的高效“菜单”。它能支持的每一档电压和电流都列在里面常见的固定档位有5V/3A、9V/3A、12V/3A、15V/3A、20V/3A一些高功率头还有20V/5A或者带PPS的连续可调档。受电芯片收到菜单之后要从里面挑一档然后同样通过CC线发回一个Request消息“我要用12V/3A这一档。”适配器收到请求后如果觉得合理会回复Accept然后调整VBUS到12V再发一个PS_RDY表示可以用了。到这一步你的电路才能真正开始从12V上拉大电流。整个过程下来受电芯片要做的事非常具体检测连接、跟协议栈通信、解析菜单、发起请求、等待状态切换然后在电压稳定后给出“就绪”信号。这些动作如果全部用MCU的普通GPIO去模拟成本和时间都不划算而且很难保证兼容性。这也是PD受电芯片存在的直接原因——把和协议、状态机相关的部分做成专用硬件你只管告诉它“我要哪一档”剩下的事情交给它。1.2 受电芯片在整个系统里充当的角色从系统架构上看PD受电芯片更像是“协议翻译器”加“电源管家”的结合体。一端接着Type-C母座上的CC线另一端给系统MCU提供一个I2C接口或者几个配置引脚/状态引脚。MCU不需要懂PD协议的复杂细节只需要在拿到“电源就绪”信号之后打开后级的电源开关让负载开始用电。在很多参考设计里你会看到芯片旁边还挂着一颗负载开关或eFuse。原因很简单PD协商这段时间VBUS上虽然已经有稳定的5V但这不代表你的后级电路可以立刻全速运行。尤其当你的板子上有大量电容、电机或加热丝这种冲击性负载时如果一检测到VBUS就直接导通总开关瞬间电流可能会把适配器打回保护状态。合理的做法是芯片完成协商并输出“电源OK”信号之后再由这颗信号去控制后级开关分步上电。这一点后面讲硬件设计时还会细说。2. PD协议里和开发最相关的几个硬指标PDO、RDO、CC引脚做开发选型之前先花点时间把几个高频协议名词对齐。很多朋友在选芯片时被“支持PD3.0”“支持PPS”“支持BC1.2”这些宣传词绕晕其实落到开发上真正要跟芯片配置打交道的就那么几个概念。2.1 Source的“菜单”固定PDO和增强PDOPDO全称是Power Data Object也就是适配器愿意输出的每一条能力项。固定PDO就是那种典型的5V/9V/12V/15V/20V整档位输出每一档都带一个最大电流限制。受电芯片如果选择固定PDO它请求的目标电压就是明确的、离散的不存在连续的中间档位。增强PDOAPDO则是后来PD3.0里加入的PPS可编程电源能力典型表现是“3.3V到21V连续可调”。选择PPS PDO时受电芯片可以在允许的电压范围内以一个很小的步进去请求任意电压比如请求11.2V、12.6V这种能力在做电池充电设备时特别有用因为充电曲线往往希望精确控制电压和电流。选型时第一件事就是看你的应用到底需要离散档位还是连续电压。只做5V、9V、12V这类标准电源接口那么选择支持固定PDO的芯片就够用比如很多低成本Sink芯片都能做到。需要做恒压恒流充电、动态调压这类功能那就必须选支持PD3.0 PPS的芯片并且要确认芯片的固件/配置接口能发起PPS请求。2.2 RDO你发出的“点单”RDO全称是Request Data Object它是受电芯片发给适配器的请求消息。一个RDO里除了标明“我要的是第几个PDO”还会带上请求电流和最大电流。这里有个容易忽略的点——请求电流并不是越高越好。如果你的应用实际只需要1A但你向一台最高12V/3A的适配器请求12V/3A绝大多数适配器都能正常输出因为它在源能力里承诺过3A。但如果你的线缆或连接器本身只能抗2A就得出事——线缆压降、发热甚至起不了保护。所以请求电流应当紧密结合你后级的实际负载来配置而不是盲目填满。我在实际项目中见过不少次为了“以后扩展”把请求电流往高配结果线材发热严重适配器也时而进入热保护。后来统一规则Sink芯片请求的最大电流可以比额定需求留大概20%-30%的余量但绝不要超过适配器该PDO项承诺的上限同时也要确认线缆电流能力。2.3 CC1/CC2引脚上的Rd和Rp决定“连接是否成立”Type-C的接入检测靠的是CC引脚上的两个电阻网络。适配器作为Source会在CC1/CC2上各放一个上拉电阻Rp你的设备作为Sink则要在这两条CC线上各放一个下拉电阻Rd到地。只要这两组电阻形成了稳定的分压关系适配器就认为“有设备插上了”然后才会切通VBUS。标准中Rd的阻值通常是5.1kΩ方向是接地的下拉。这个阻值看起来不起眼但对整个协议很关键阻值偏差太大适配器可能识别不出来你的设备或者错误判断你的受电能力甚至直接把供电当成其他角色而进入异常状态。所以很多PD受电芯片会在内部集成好Rd你不需要外挂电阻如果芯片方案要求外置一定用1%精度的电阻别拿普通5%碳膜电阻糊弄。另一个容易忽略的细节是Type-C是双向可插的CC1和CC2要同时处理不能只拉其中一个。有些“精简版”设计只在一条CC上放Rd以为省一个电阻没关系结果正反插时有一面完全无法识别。这在量产中是灾难因为用户不会理解“只有正面插才行”。2.4 软复位、硬复位和总线电压切换PD协议里还有两条隐含安全机制开发时最好心里有数。软复位发生时适配器会重新进入Source Capabilities广播流程受电芯片需要重新发起请求硬复位更粗暴适配器会直接把VBUS拉低然后重新做接入检测。这些动作在异常热插拔、线缆损坏、适配器内部过载时都会出现。对受电芯片来说它必须能正确处理这些异常并且在复位结束后重新协商。如果芯片固件在这方面做得不够完善可能出现“适配器已经重启了但芯片还傻站在原地等旧状态”的情况导致输出电压一直上不来。所以选型时除了看正常协商能力还要看它在软复位/硬复位下的行为——这个在数据手册里往往只有一句话但是踩坑时能立刻体会到差距。3. 芯片选型时真正要抠的七个细节选PD受电芯片不能只扫一眼封面上的“PD3.020V”就下单。实际开发中下面这几个指标几乎都会遇到需要来回权衡的地方。3.1 电压电流范围要按“极限场景”选不是按“常用场景”选芯片标称支持20V不代表你在设计电源输入时就可以把极限卡在20V。适配器在切换高电压档位的时候VBUS上往往会出现一定过冲热插拔瞬间母座触点上的尖峰也可能超过额定值。如果受电芯片的绝对最大输入电压紧巴巴地卡在20V一两次热插拔就可能挂掉。我自己的经验是选型时留足1.2到1.5倍的电压余量。比如设计目标最高用20V那芯片最好选能承受25V甚至28V输入的方案设计目标最高用15V那20V输入的芯片肯定比18V输入的更稳。同理电流方向也不能只看芯片标称最大电流还要看封装的热阻和板厂的散热条件很多小封装芯片标称能跑3A但你要在60℃环境温度下长期满载跑不降额基本会出事。3.2 配置方式电阻定档、I2C改档、OTP烧录到底怎么选这是选型时最实用也最容易被忽略的一项。市面上的受电芯片配置方式大概分三类电阻配置芯片通过检测外部电阻分压值来判断你想请求哪一档电压。优点是没有软件参与BOM简单硬件工程师一个人就能改配置缺点是灵活性低想换电压档位就得换电阻并且电阻精度直接影响请求档位的准确性。I2C配置芯片通过I2C总线和主控MCU通信MCU可以随时动态更改请求的PDO甚至实时切换PPS电压。这对做智能充电、多档位自适应设备是好方案但代价是MCU侧要写驱动、要管理状态项目初期的工作量会增加。OTP/一次性烧录配置工厂生产时把目标PDO写死在芯片里。适合大批量单一型号产品能省掉电阻占位面积但如果协议需要更新就只能重新烧录灵活性最差。开发初期建议优先选电阻或I2C可配的方案这样调试时改档位方便。等到产品定型、锁规格再考虑是否换成OTP版本以简化生产。3.3 “兼容PD3.1”是不是越大越好PD3.1把电压档位扩展到了28V、36V乃至48V听起来很强大但如果你的产品只需要5V到20V区间选一颗PD3.1芯片并不会带来额外收益反而可能因为协议栈更复杂而影响初始化速度和稳定性。真正要关注的是另一件事——你的应用场合除了标准PD适配器是不是还需要兼容老旧充电头。很多设备通常是“家里一个充电头公司一个充电头”而这些头可能只支持QC2.0/3.0或者甚至只有BC1.2协议。这时候受电芯片如果同时支持QC和BC1.2就能大幅提升“随便插都能用”的体验。选型表里看到类似“支持PD3.0QC2.0QC3.0BC1.2”的组合实际意义往往比只看PD版本号更重要。3.4 静态功耗低功耗产品最容易栽的坑做电池设备或者常供电设备时受电芯片本身的静态功耗也可能成为决定性指标。不同的芯片方案之间差距不小有些常接适配器的设备因为芯片静态电流过大白白把电池耗光的情况并不罕见。建议在选型阶段就向原厂确认芯片在“无连接”“连接但未请求”“请求完成但空载”三种状态下的电流。如果芯片支持睡眠模式或者可切断的内部模块也要看清楚进入和唤醒的条件。不要默认所有PD芯片都是微安级别数一下数据手册里的电源电流指标比事后省电容易得多。3.5 启动时序芯片愿意等多久你就要管多久PD协商不是瞬间完成的从插入到高电压建立快则一两百毫秒慢则可到几百毫秒。这段时间内后级如果提前把大电流放出来轻则让适配器误判过流重则把电压拉垮导致协议状态错乱。因此在选型时要特别留意芯片是否提供一个可用的“电源就绪”信号以及它的时序关系。有些芯片在PD协商完成后直接输出一个高电平有些则需要你读寄存器才能知道状态。对于需要手动控制后级开关的设计这个信号就是你的总开关信号选型时必须确认它的拉电流/灌电流能力以及是否需要外部上拉。更复杂的设计还会加一个MCU延时逻辑故意让负载在上电后延迟几百毫秒再启动避免和PD协商的电压建立瞬间重叠。3.6 封装、成本、采购渠道看似小事量产时都是大事最后这几项虽然不性感但很容易让项目延期。PD受电芯片往往是板子上体积不大、成本也不算最高的元件却直接影响整机能不能开机。采购时一定要看货期和替代情况。有些芯片虽然规格很好但长期缺货或只有单一渠道一旦供应链出问题整个项目就得停摆。常用封装主要是SOT23-6、QFN之类的极小封装。如果你还在打样阶段操作起来方便但如果产线贴片能力一般极小的引脚间距会增加虚焊风险。综合考虑PCB空间、生产良率和采购渠道再决定最终选哪颗而不是只看哪颗便宜。4. 主流受电芯片参考与横向对比这一节我根据自己的接触经验给几个常见方案做个分类参考。注意具体型号的参数可能会随批次和版本更新下单前务必看最新数据手册确认。4.1 走低成本配置路线的方案先说出镜率很高的CH224K。这颗芯片在很多DIY圈子里已经快变成“人手一片”的存在了常见于那些想把PD适配器改造成可调电源的小板卡。它支持常见的PD快充协议配置方式以外部电阻为主调压非常直观对刚接触PD受电开发的工程师来说属于容易上手、方案资料也好找的一类。单从这个角度讲对外形体积敏感、不需要频繁调压的产品这类芯片很适合。类似思路的还有LDR6328S这类型号主打“把复杂协议内部处理掉你只需要设定目标档位”的方向。它们在低功耗、多协议兼容的应用里出镜比较多常见于便携小家电、智能灯具这类只需要固定电压的受电端设备。这类芯片的优点是电压选择简单缺点是如果你想在运行时动态切换电压它就不是最佳选择了。4.2 走灵活可编程路线的方案如果项目需要动态调压那就要看向I2C可配置的方案。比如HUSB238这类芯片它支持多个PDO能力配置MCU可以通过I2C去导入或者修改目标配置适合做需要“一板多用”的通用电源板。另一类更“重型”的选择是STUSB4500。这颗芯片原生支持三组PDO配置可以通过I2C或者配套工具把配置写进去不需要每次都跑一遍任务。它的特点是协议处理能力比较扎实在需要长时间稳定运行、产品功能复杂的场景里很有存在感。但代价是它的外围电路和配置流程比直接电阻定档的芯片稍复杂设计周期更长。4.3 选型对照表按场景选更直接核心维度低成本固定档应用需要动态调压的应用长跑工业级应用典型配置方式电阻/GPIOI2CI2C工具电压切换提前定死运行中可切运行中可切静态功耗要求中低低低协议兼容重点PDQCBC1.2PD3.0PPSPD3.0/PPS开发复杂度低中中高量产成本低中中对高着一张表的核心意思是没有绝对最好只有匹配度。做小批量极简方案没必要上复杂I2C方案而做高端量产设备也不能只图省事选一个配置能力和保护机制都偏弱的固定档芯片。把“我的产品到底需要什么”列清楚再回头选型。4.4 别忽略“协议细节”上的兼容差异选型对比时很多人容易忽略同属“PD3.0”的芯片在细节行为上会有差异。比如适配器菜单里某个固定档位最大电流是5A你请求之后芯片是否允许按5A满载输出还是内部还有一层限制。再比如PPS请求时电压步进是20mV还是更粗直接关系到你能否做精细调压。还有一种情况有些芯片在请求PDO失败时会回落到5V有些则卡在异常状态。这个差异在标准适配器上不容易被察觉但在那些兼容性一般、边缘档位不标准的适配器上会彻底暴露。所以选型阶段最好能实际拿手里现有的几个适配器把所有候选芯片各搭一版测试板专门去测这种“非主流适配器下的表现”这比看一百页数据手册都管用。5. 原理图和PCB设计里的几条实操经验选完芯片之后就是硬件工程师最熟悉的环节——画原理图、铺板、调板。这里说的几条内容很多是数据手册里只写一半、实际调试要踩几轮坑才能总结出来的。5.1 CC线上的5.1kΩ下拉和防护别当成“普通电阻”前面提过受电芯片要求CC1和CC2都对地接一个5.1kΩ的下拉电阻。这阻值和精度都相当关键精度差了Type-C的接入检测电压会偏移适配器可能判断不了“这是一台正经的Sink”。所以除非芯片内部已经集成好否则外置一定选1%精度、温漂合理的电阻。CC线还承担协议通信凡是线缆接口引出来的引脚都有被静电极放电突波伺候的概率。产品外壳如果是塑料的、没有良好的接地路径CC脚上的ESD防护就非常重要。建议在每个CC引脚上放一颗低电容的TVS接地点尽量靠近母座引脚走线也要短粗避免在ESD事件时把冲击电压送进协议芯片内部。我见过不止一块板子因为省了两颗TVS在工厂测试时CC芯片连续挂了好几片。5.2 VBUS路径上的电容和后级开关决定了上电瞬间会不会爆VBUS引脚不能只用引脚自带的几微法电容完事。PD适配器在把电压从5V抬到20V时VBUS端会有一个上升过程如果你的后级电容非常大瞬间充电电流可能会异常大。所以很多靠谱的PD受电设计会在VBUS输入端放一个适量的储能电容比如22uF到47uF用来稳定电压同时在接入大负载之前拉高负载开关的EN。关于后级负载开关重点讲一下。一颗优秀的eFuse或负载开关除了导通电流能力还应当带有慢启动Soft-Start功能。慢启动的意义是让VBUS对后级大电容的充电过程被拉长避免瞬间大电流把适配器打回保护。实际测试中我把同一个负载分别接在“没有慢启动的直连开关”和“带慢启动的负载开关”上前者的启动瞬间电流能轻松超过后者的三到四倍。这个差异足以决定整个PD取电方案是否稳定。5.3 D/D-信号别随便“悬空”如果你的受电芯片兼容QC和BC1.2D/D-线就必须接到芯片对应的引脚上。很多人会犯一个错误只把CC线连好D/D-当作“反正PD不用数据线”就随便悬空或者接个电容了事。实际上对某些老式的QC充电头来说它一开始并没有进入PD模式D/D-上的电压识别是它判断“设备是否支持快充”的依据。如果D/D-处理不正确这些充电头可能只会输出5V甚至不识别设备。所以在原理图上D/D-引脚的走线要整齐、短线连接到母座和芯片确保信号完整性不要在中间绕一个圈或者近距离并行长距离避免互相耦合干扰。5.4 热插拔、EOS和硬复位之后的行为热插拔实验别只在电脑USB口上做还要拿各种PD适配器、充电宝、多功能扩展坞分别测。会发现一个有意思的现象有些设备在热插拔时适配器会先短暂关闭VBUS然后重新协商高电压。如果受电芯片对这次关闭处理不当后会电路上残留的电荷可能反向灌入芯片甚至触发闩锁效应。解决方案有几个层面一是芯片选型时关注它是否内置了“VBUS断开检测”和“输出放电”功能二是外部VBUS到系统之间加合适的隔离二极管或理想二极管控制器防止断电瞬间反向倒灌三是给芯片电源脚加足够大的退耦电容维持内部逻辑稳定。这些措施看着琐碎但在你测试热插拔一千次而芯片依然完好时就知道值不值了。6. 手把手做一个“PD受电电源口”样板前边理论和选型讲了很多最后用一个实际项目把流程串起来。这个项目本身不难但每个环节都能覆盖前面提到的大部分要点。6.1 项目目标与元件选型目标做一块小电源板输入是Type-C母座内部通过一颗PD受电芯片从适配器取电输出给后级DC-DC变换器系统最终需要一组12V和一组5V供电。经过需求分析我选了电阻配置方案的低成本受电芯片目标档位设为12V。理由是系统不需要动态调压固定12V足够电路调试简单方便快速验证后续如果改成I2C方案电路结构也能平滑迁移。适配器取的是65W PD充电头虽然它有能力给20V/5A但我们的应用最大只拉2A所以和芯片协商12V/2A档位留了余量又不超过线缆能力。选完芯片后又在它的输出侧规划了一颗带软启动的负载开关。这颗开关由芯片的“电源就绪”信号控制同时MCU还能通过一个GPIO做二次确认保证只有在电压稳定到12V之后后级DC-DC才开始工作。6.2 硬件搭建与关键节点原理图部分Type-C母座按标准接法走CC1/CC2各自到芯片保证芯片内部Rd网络生效VBUS经过输入TVS和22uF电容进入受电芯片的监测端同时接负载开关输入端。负载开关输出端再接DC-DC的输入端。后级DC-DC则按12V输入、5V输出的典型电路搭。PCB布局时特别注意三点CC走线尽量短避免天线条VBUS输入电容紧靠受电芯片和负载开关的引脚减小环路面积TVS与母座引脚之间走线要短粗这样防护效果才出得来。焊接完成之后先不接任何负载把板子插到一个标准的65W适配器上。用示波器探头同时抓VBUS和“电源就绪”信号能看到清晰的时序刚插上时VBUS先到5V然后经过大约几十毫秒到一百毫秒的协商VBUS跳到12V同时“电源就Ready”信号拉高。整个过程没有明显的欠冲或过冲说明协议协商和电容参数是匹配的。6.3 有意制造的失败场景验证完成后我做了一次“故意作死”的测试把后级负载开关的EN强行拉高让它和PD协商“同时”开启。示波器上立刻能看到VBUS在切换到12V时出现了一个明显的往下塌陷伴随适配器内部保护动作。这个测试虽然让SMPS保护了几次但非常直观地证明了前面讲“电源就绪后延迟开启负载”的必要性。接着又做了几十次热插拔循环把线缆在不同适配器之间换来换去观察芯片能否每次都重新协商到12V。实测下来大多数情况下都很顺利但在某个廉价扩展坞上出现过一次“协商完却停在5V”的现象。问题出在那台扩展坞的Source Capabilities菜单中根本没有12V档芯片没有可请求的12V PDO于是跌回了5V。这再次提醒我设计一定要考虑“适配器不提供目标档位”时的策略要么回退5V要么允许MCU改换目标。最终这块板子的核心经验浓缩成一句话PD受电方案做得好不好一半看芯片选型一半看时序控制。芯片负责把协议跑通而你要负责让系统在上电的每一毫秒都处在合理状态里。项目中后期真正让人头疼的往往不是“协商不上高电压”而是“电压上了负载怎么逐渐接管”以及“适配器换了落差怎么优雅处理”。把这些环节理顺了PD受电这个功能就从一个“能出电压的接口”变成一个可以放心量产的电源入口了。