
大概从去年开始我这边接的不少项目都开始往USB-C PD供电方向走尤其是电池供电类的设备——像户外电源、电动工具、便携显示器、甚至是带电池的医疗手持终端大家都在问同一件事能不能直接用PD充电器给设备供电和充电以前的答案很勉强因为PD标准最高也就20V 5A共100W很多设备要么电压不够要么功率不够只能继续用又大又笨的专用适配器。但PD 3.1引入EPRExtended Power Range之后28V、36V、48V这些档位直接把天花板拉到了240W适用范围一下子宽了太多。而要把这些高电压安全“接住”Sink控制器是关键中的关键。我最近重点研究了Diodes Incorporated推出的USB Sink控制器方案它们在PD EPR应用上做得确实有想法——专门瞄准电池供电设备把协商、保护、通路控制这些东西全部整合进去外围电路变得非常干净。这篇文章就把我这几周的调研和实测心得整理出来从协议原理、选型参数、电路搭建到排障经验一次讲清楚给正在做PD供电方案的工程师作个参考。1. PD快充里的Sink控制器到底在干什么1.1 从USB PD协议说起Sink和Source的角色很多人一提到USB PD就只想到“快充”但PD协议的本质其实是一场双向协商——Source端充电器/电源适配器和Sink端用电设备通过CC线进行通信约定好用多大的电压和电流供电。这句话说起来简单实际两边各有一个“大脑”在跑协议栈。Source端的大脑通常是充电器主控芯片Sink端的大脑就是我们说的Sink控制器。为什么设备端不能“傻乎乎”地硬接充电器的20V因为USB-C接口是一个通用接口你插上去的充电器可能是5V/9V/15V/20V的任意档位如果你的设备只支持12V输入直接接到20V上板子大概率当场冒烟。Sink控制器的任务就是先检测到充电器插入然后主动发起PD协商告诉Source“请输出我需要的那个电压”确认稳定之后再把VBUS通到后级电路。这个过程在毫秒级完成用户完全感知不到。传统做法是在设备里放一颗MCU自己跑PD协议栈再加上一堆分立元器件搭建通路控制复杂而且容易出兼容性问题。Diodes这一代Sink控制器走的是高度集成路线把协议物理层、协议引擎、VBUS通路控制、过压过流保护这些全部封装在一个小芯片里对做产品的人来说省了太多事——尤其是电池供电设备PCB空间本来就寸土寸金能少一颗芯片就少一颗。1.2 电池供电设备为什么特别依赖Sink控制器电池供电设备和纯插电设备对供电的要求差别非常大。纯插电设备比如显示器、扩展坞只要电压电流够就行但电池设备要考虑充电曲线、电池电压平台、系统负载动态变化。我这里举两个典型场景第一个是电动工具。以前无绳电钻的电池包是18V或者20V充电器是专用的用户丢了一个充电器就非常麻烦。如果改用USB PD输入电池包内部放一个Sink控制器协商一个28V或36V的EPR档位再由后级降压电路给电池充电这样用户手里的任意一个支持PD EPR的充电器都能用通用性瞬间拉满。第二个是户外电源/便携储能。这类产品输入电压范围很宽常见的有12V DC输入、太阳能板输入、车充输入。过去DC输入和USB-C输入是两条独立通路要两套保护电路。现在用一颗支持EPR的Sink控制器把USB-C协商到48V再配合宽压Buck-Boost给电池组充电一套方案同时搞定两路输入PCB面积和BOM成本都下来了。这里有个很容易被忽视的点电池设备在充电过程中系统负载是不断变化的比如一边充电一边在放电Sink控制器和Source协商好的功率档位是个最大值实际电流由后级电路决定。如果后级瞬间拉高电流超过PD协商值Source会直接断开输出或者降档严重的话会触发过流保护。好的Sink控制器内置动态请求能力可以根据后级负载反馈调整请求档位而不是傻傻地固定在一个档位。2. EPR到底解决了什么问题2.1 从SPR到EPR28V/36V/48V的意义USB PD 3.1规范把功率范围分成了两段标准功率范围SPRStandard Power Range最高20V 5A共100W扩展功率范围EPRExtended Power Range新增28V/36V/48V三档电流还是5A封顶但最大功率来到了240W。EPR带来的直接好处有两个。第一个是效率提升在同样功率下电压越高电流越小线缆上的I²R损耗就越低。以前做100W的方案20V 5A的电流一条稍微差一点的线就会发热现在同样100W可以用28V 3.6A实现余量更大线损更小。第二个是突破了电压天花板很多设备内部母线就是24V、36V、48V比如电机驱动、工业传感器、LED大屏以前必须用专用电源适配器现在直接拿PD EPR充电器就能供电——这才是EPR真正的杀手锏。但EPR也带来了设计上的新挑战。48V在USB-C接口上并不是“提起电压”那么简单它涉及安全要求的变化EPR设备必须支持新的电缆检测机制只有确认线缆也支持EPR才会协商到28V以上如果插了一根普通3A线只能走SPR档位。这就是EPR安全机制的底层逻辑——用协商代替硬切防止用户在不兼容的线缆上遭遇高压风险。2.2 高功率设备实际受益场景我梳理了一轮市面上的EOL终端设备以下三类是EPR Sink控制器比较典型的受益场景高性能笔记本电脑/迷你主机很多轻薄本已经用PD供电但游戏本和工作站功耗远超100W过去只能用专用电源口。有了EPR Sink控制器的方案整机可以直接用48V PD输入甚至可以做“充电器扩展坞视频输出”的一线通方案。电动两轮车/平衡车电池充电这类设备的电池组电压通常是36V/48V原来配的充电器体积大、必须专用。用EPR Sink控制器引导充电器输出48V再交给后级恒压恒流充电管理用户出门只带一个小巧的氮化镓充电器就行。大功率LED灯具/影视灯光专业影视灯功率经常到200W以上现场供电混乱是常态用PD EPR充电器统一供电之后现场设备管理和安全性都好很多。从市场反馈来看2024年以后这类需求爆发得非常快最核心的驱动因素就是“标准化充电器替代专用适配器”带来的用户体验提升。对于产品经理来说砍掉专用适配器意味着降低配件成本和售后复杂度对用户来说出差只需要带一个充电器。这个逻辑在消费电子领域已经被验证过无数次了。3. 选型Sink控制器时我会重点看的几个参数3.1 支持的PD版本与EPR电压档位这是最基础也最关键的一项。Diodes的Sink控制器目前主打PD 3.1支持28V/36V/48V的EPR协商。有些芯片标称支持PD 3.1但只实现了28V档48V还是缺失的。做产品选型时建议直接看芯片手册里的“EPR Voltage”和“PDO Config”部分确认你需要的档位都能覆盖。另外注意PDO配置方式。有些芯片是出厂预配置固定PDO比如只支持20V/5A有些芯片支持I2C动态修改PDO。如果你的设备有多种工作模式比如充电模式要20V放电模式要48V那必须选支持动态配置的型号不然协议协商会被锁死后级电路没法灵活调度。3.2 通路控制集成度决定BOM复杂度的关键Sink控制器对VBUS通路的控制方式有两大类集成FET和外部FET。集成FET方案外围简单芯片把Source输入到设备输出的通路直接用内部MOS管打通适合电流20A以内的中小功率设备外部FET方案更灵活可以搭配低导通电阻的大电流MOS管做高功率通路适合30A以上的大电流应用。这里要特别看一个指标通路FET的导通电阻Rds(on)。这个参数决定了通路的发热和压降。比如20V 5A的场景Rds(on)如果是50mΩ压降是0.25V功耗是1.25W勉强可以接受如果Rds(on)是20mΩ功耗就只有0.5W优势非常明显。Diodes的Sink控制器方案在通路设计上做了优化内外部FET搭配灵活可以根据电流需求选择集成或者外扩这个设计粒度我很喜欢。还值得关注的是软启动能力。电池设备插上充电器的瞬间VBUS上存在巨大的容性负载尤其是大容量MLCC和电池侧电容如果Sink控制器不控制浪涌电流很容易把充电器触发过流保护或者打火花损坏Type-C接口。集成FET方案一般都会做软启动斜率控制选型时问一句“Inrush Current Limit”多大有没有可调选项。3.3 保护功能与睡眠功耗电池设备对保护功能的要求比普通消费电子严格很多。至少要有以下四类保护过压保护OVPSource协商出错或者线缆故障导致VBUS电压异常时立刻切断通路。过流保护OCP后级短路或者负载异常拉高电流时限制或者关断输出。反向电流保护当VBUS电压低于电池电压时防止电流从设备回流到VBUS——这个在电池设备上尤其重要不然电池会把整个Type-C通路“灌”到冒烟。热关断保护OTP芯片内部温度过高时自动进入保护状态。睡眠功耗是另一个容易踩坑的点。电池供电设备待机功耗要求越来越严格很多产品标称待机功耗要低于几百微安。Sink控制器如果一直在跑PD协议轮询功耗会很高。好的方案会支持低功耗模式——在没有充电器插入的时候Sink控制器进入深度睡眠只有CC检测电路保持活跃插入充电器后通过CC电平变化唤醒芯片。3.4 封装与散热电池设备对PCB面积的影响因素很多散热设计也要提前评估。我见过不少工程师选了一颗强大的Sink控制器结果封装是QFN-40板子上根本没有位置放。Diodes的Sink控制器常见封装有QFN-24、QFN-32以及更小的WLCSP封装发热功耗需要控制在几百毫瓦以内才能用WLCSP方案。另一个容易忽略的散热问题是芯片靠近Type-C接口时插拔瞬间会有静电放电和热插拔浪涌PCB layout上要留足够的铺铜面积给热焊盘并且在芯片附近放置TVS管。这部分我在第5节会展开讲。4. 实操基于Diodes Sink控制器的典型应用电路4.1 最小系统框架我拿一个基于Diodes Sink控制器的典型应用电路来讲它就是一个非常经典的EPR Sink设计框架。整体结构可以分成五大块Type-C连接器、Sink控制器、VBUS通路MOS管如果外部MOS、后级DC-DC、以及主控MCU用于配置和状态读取。Type-C连接器的CC1和CC2引脚分别连接到Sink控制器的CC1/CC2引脚。Sink控制器内部集成了CC检测的上下拉电阻Rd和ESD保护电路所以外部不需要额外加5.1k下拉电阻。VBUS接到Sink控制器的VBUS检测引脚和VBUS通路输入端。Sink控制器内部的通路FET或者外部的通路MOS管负责把VBUS的电压通到后级电路。后级DC-DC将协商好的电压转换成电池充电或者系统供电需要的电压。主控MCU通过I2C总线和Sink控制器通信读取当前协商电压、电流、状态下同时可以动态配置请求的PDO档位。硬件上有一个细节值得注意Sink控制器的CC引脚和VBUS引脚必须做好滤波处理——CC线上要加RC滤波比如R1kΩC100pFVBUS检测引脚加高压电容。这个滤波处理直接影响协议协商的稳定性我踩过坑CC线上没加滤波电容插拔某些充电器时偶发协商失败加了电容之后立刻正常。4.2 与电池充电管理协同设计Sink控制器和后级充电管理的配合是这个方案里最容易出问题的地方。我见过很多人直接把Sink控制器输出的VBUS接给充电芯片结果充电芯片的输入电压范围不够一插EPR充电器就过压保护。正确的做法是Sink控制器先协商出一个电压空档然后在Sink控制器和后级充电管理之间加一级Buck-Boost电路。比如电池组是3串锂电12.6V满电Sink控制器协商48V输入Buck-Boost把48V降到合适的充电电压比如13V左右再进充电管理芯片。这样做的原因是PD协商出来的电压档位是离散的20V/28V/36V/48V不可能每一档都正好匹配电池平台的充电电压而且电池在充电过程中电压不断变化需要Buck-Boost动态调节。实际项目中我建议把“Sink控制器的请求策略”和“后级充电策略”放到一起考虑。比如电池电压低于某个阈值时让Sink控制器请求最大功率档位48V/5A等电池电压升高后再降低请求功率。Diodes Sink控制器支持通过I2C动态调整请求的PDO配合MCU里的充电策略算法可以实现从“涓流充电 → 恒流充电 → 恒压充电”全流程的功率动态调度。4.3 固件配置要点Sink控制器的PDO配置文件通常在出厂时需要固化但Diodes方案支持通过I2C接口在启动时加载配置。我整理几个配置时要特别注意的参数请求PDO表明确你的设备需要哪些电压档位建议按照“优先高功率档其次高电压档”的顺序排列。比如设备能接受48V理论上优先请求48V如果Source充电器只支持20V则返回请求20V这个过程是PD协议里的“Find Highest Capability”逻辑。EPR模式使能如果设备支持EPR必须把EPR enable位打开否则芯片会拒绝协商超过20V的档位。供电能力声明在PDO表中填写你的设备作为Sink时能够接受的最大电流这个值需要和后级DC-DC的实际处理能力匹配不要填得过大否则Source输出功率超限后会进入保护。FRS快速角色交换配置如果你的设备需要支持双向供电比如手机连电脑时作为Source给电脑供电需要额外配置FRS相关参数。这是很多Sink控制器的隐藏功能Diodes芯片也支持这个能力建议在实际项目中认真对待。另外有一部分Sink控制器支持“不插MCU也能工作”的模式——芯片有自己的EEPROM保存配置上电后自动加载并跑协议。这个模式很适合量产阶段不想烧录MCU固件的场景Diodes这类Sink控制器的配置工具还挺好用的图形化界面直接勾选PDO、配置OVP阈值然后生成配置文件。5. 常见问题与排查技巧实录5.1 插上充电器没反应先查CC线序和电压这是我最常被问到的故障。Sink控制器插上充电器没反应首先拿示波器看CC1/CC2的波形——注意要看的是USB-C接口的CC引脚是否被正确连接。如果发现CC1有波形但CC2没有说明线缆或者连接器的CC线序有问题。还有一种情况CC线序没问题但示波器看不到任何波形这时候要看Sink控制器有没有被正常唤醒。很多Sink控制器在没有充电器插入时是深度睡眠模式CC引脚不上拉Charger插入后CC上拉到一定电压才被唤醒。如果CC上拉电阻没配置好比如Rd电阻断掉芯片就无法感知充电器接入自然不工作。用万用表量一下CC引脚对地的电阻正常应该是5.1kΩ左右Rd。5.2 协商出来电压不对检查PDO优先级遇到充电器插入后协商到20V而不是48V的情况先别怀疑芯片坏了大概率是PDO优先级配置问题。PD协议里有一个“Choose Highest Capability”规则如果Source支持多组PDOSink会优先选择“输出功率最高”的那组而不是“电压最高”的那组。比如你的设备请求了48V/5A240W和20V/5A100W而充电器支持20V/5A100W但不支持48V结果就是它会选20V。如果想让设备优先选择48V就得在Sink控制器的请求策略上做文章强行按PDO的Index来请求BSP。这种“按索引请求”功能并不是所有Sink控制器都支持Diodes方案里我记得是可以通过I2C接口动态配置的非常灵活。5.3 EPR协商失败检查线缆和协议版本EPR协商和SPR协商的机制完全不同涉及到线缆能力检测EMCA/E-marker。如果插入的线缆不支持EPRSource端不会输出电压超过20V的档位。所以出现EPR协商失败第一个要排除的就是线缆问题——拿一条明确标注支持240W/48V的线缆试试如果成功说明你的Sink控制器没毛病。还有一种情况是Sink控制器和Source的协议版本不匹配。一些老充电器只支持PD 3.0不支持PD 3.1 EPR这时Sink控制器必须在“EPR请求失败后降级到SPR请求”否则协议栈会卡死。Diodes的Sink控制器在协议状态机里内置了这个“fallback to SPR”机制但具体是否启用要靠配置开关控制。5.4 热插拔时打火检查软启动和TVS电池设备热插拔打火花是一个需要认真对待的安全问题不光是体验差还容易在接口上烧出痕迹。打火的原因通常是VBUS电容在插入瞬间被充电电流尖峰过大。解决办法是确认Sink控制器有没有开启软启动模式同时确认VBUS通路FET的G极驱动电阻有没有加上。大多数方案里VBUS FET的G极都应该串联一个4.7Ω到10Ω的电阻来控制开通速度如果芯片集成了FET那就只能靠配置芯片内部的软启动曲线参数。另外从硬件保护角度芯片的VBUS引脚和Type-C连接器之间建议串一个0Ω电阻或者磁珠加上TVS二极管。TVS的钳位电压要选取比协商的最高电压高一些比如EPR 48V方案TVS可以用58V钳位电压的规格这样既能保护芯片不被ESD打坏又不会在正常工作时钳掉太多电压。5.5 睡眠功耗偏高查芯片进入低功耗的时机电池设备的睡眠功耗是客户必查的指标。Sink控制器如果一直保持主动协商状态功耗会比深度睡眠时高出几十倍。排查方法用万用表电流档测试整机睡眠电流排除其他外设后重点看Sink控制器的供电电源有没有被后级DC-DC完全切断。Diodes的方案里Sink控制器可以配置成“无充电器时主动进入低功耗模式”的自动策略。需要注意如果Sink控制器的供电电源接在电池电压上那即使充电器拔了芯片内部还是会继续消耗电池电流——这点在低功耗设计评审中经常被遗漏。我建议把Sink控制器的供电分成两路系统上电时由主电源供电睡眠时由主控MCU控制切断。当然前提是MCU自己也要能在睡眠模式唤醒。6. 关于Diodes方案的一些整体评价6.1 Diodes Sink控制器相对其他方案的核心优势这段时间用下来Diodes的Sink控制器方案给我最深的印象是协议兼容性做得很扎实。PD协议栈的难点不在“能协商成功”而在于“各种奇奇怪怪的充电器插入后都能协商成功”——市面上有太多充电器的PD协议实现得不规范有的充电器对Request消息响应慢有的干脆主动发包不按协议来。Diodes的Sink控制器在这个场景下表现得相当稳定这可能得益于其协议栈做了很多兼容性兜底逻辑。其次EPR支持完整且可配置性强。从28V到48V都可以通过寄存器配置而且支持动态切换。我之前调研过其他几家方案有些芯片虽然标榜支持EPR但PDO是出厂固化的没法在量产阶段调整遇到需要适配不同客户设备的情况会非常头疼。Diodes的方案给了灵活的I2C配置接口研发阶段调起参数来非常方便。再一个就是配套资料和工具做得比较完善。Diodes提供了官方的图形化配置工具可以可视化配置PDO、切换EPR档位、设置保护阈值。做硬件工程师最怕的就是芯片强大但没工具这家的工具体验在同行业里绝对是第一梯队。6.2 哪些场景更适合选这套方案根据我自己的观察Diodes Sink控制器方案最适合以下这几类产品电池供电的电动工具/户外电源/储能设备需要支持EPR高电压输入同时对BOM面积和整体可靠性有要求。便携显示器和扩展坞这类设备通常需要从充电器获取电能同时给其他设备供电对Sink控制器的通路开关能力要求比较高Diodes方案可以灵活配置多路通路。工业设备/医疗器械这类产品对协议稳定性和抗干扰能力要求极高用Diodes这种经过大量量产验证的方案能显著降低协议兼容性风险。如果你的产品功耗在100W以内、只支持SPR档位那选Diodes的Sink控制器当然也完全没问题但如果你对EPR档位有明确需求那它会更值得优先考虑。整体看下来Sink控制器已经不是一个“能用就行”的简单外围器件了它在PD供电链路里扮演着越来越核心的角色。选型、电路设计、固件配置每一环都得较真。这篇把一个多月来的调研和实操经验沉淀下来了希望对正在做PD EPR方案的兄弟有帮助。