常有人问我,一颗小小的取电芯片能有多大的技术含量,不就是把充电头里的协议骗出来,让Type-C口输出高电压吗?这话只说对了一半。真正做过产品或者改过供电方案的人,都会明白"多协议取电芯片,自带电压向下兼容特性"这句话背后的分量:它决定了你的设备插上充电头之后,是正常启动、还是直接烧毁、还是沉默不语毫无反应。
我最早接触取电芯片是因为一个很实际的需求:想把手里一堆氮化镓充电头利用起来,给桌面的3D打印机主板、路由器、锂电池充电器供电。市面上的诱骗线、诱骗板五花八门,但用起来总是不尽如人意——有的只能被动输出固定电压,有的换个充电头就罢工。直到我开始系统研究多协议取电芯片,才搞清楚这里面的门道。这篇文章就结合我自己的实测经验,把这个看起来很小、实际上坑不少的器件讲透,重点说说"多协议"和"电压向下兼容"这两个特性具体是什么、怎么实现、怎么用好。
1. 取电芯片到底是什么,它和"诱骗器"有什么本质区别
1.1 从Type-C口的角色划分说起
要理解取电芯片,得先从Type-C接口的"Source"和"Sink"说起。供电的充电头,协议上称为Source;用电的设备,比如手机、开发板、电动工具,称为Sink。充电头可以输出多少电压、多大电流,不是随便决定的,而是通过CC引脚上的物理电阻和后续的协议报文来协商。
Type-C口默认的空载电压是5V。当Sink端通过CC引脚拉一个5.1kΩ的下拉电阻到地,充电头就可以识别"这是一个标准设备",然后开启5V供电。这是整个取电过程最底层、最安全的握手,也是"向下兼容"的基石。
而取电芯片做的事情,本质上是替代这个固定电阻,把"我只有5V供电能力"的单一身份升级为"我支持PD协议、QC协议、有本事你就按我的请求输出更高电压"的多面手。它既是Sink端设备与Source端充电头之间的协议翻译员,也是电压请求的决策者。
1.2 诱骗板和取电芯片的真正差距
"诱骗"这个词在圈子里用得很多,但老实说它容易误导人。最初的诱骗板就是几颗电阻加一颗触发芯片,想办法让充电头输出它支持的某个固定电压档位。它的问题在于:第一,没有完整的协议状态机,遇到不支持该档位的充电头就直接失败;第二,没有动态响应能力,一旦电压突变或者热插拔,无法优雅地处理异常。
真正的多协议取电芯片,内部有完整的协议状态机。以最常见的PD协议为例,它会监听USB Power Delivery的BMC信号,解析Source发来的Source Capability报文,再根据芯片自身配置的请求策略,回复Request报文。这个过程不是简单的模拟信号,而是一套完整的数字通信协议。
用个生活化的类比:诱骗板像是对暗号——你报出某句暗号(触发电压),对方回答了就用,不回答就没辙;而取电芯片像是一个专业的外交官——它能听懂对方的完整语言体系,根据场合选择怎么发言,还能处理中断、重试、异常情况。这正是多协议芯片和单点诱骗方案之间最大的分水岭。
2. 多协议兼容:PD、QC与私有大功率协议为何必须共存
2.1 PD协议是"最大公约数",但远远不是全部
谈起取电芯片支持的多协议,大部分人的第一反应是USB PD(Power Delivery)。确实,PD协议是目前覆盖面最广的快充协议,从手机、笔记本到游戏机,几乎都支持。PD协议的最高档位已经扩展到了240W(PD 3.1 EPR),而且引入了PPS可编程电源,让电压可以按20mV步进连续调节。
但实际场景中,我们手里的充电头远不止支持PD。QC(Quick Charge)协议,特别是QC2.0/3.0,在很多老充电头、车载充电器上仍然大量存在。QC2.0的握手方式和PD完全不同,它是通过D+/D-两根数据线上的电压组合来触发升压的,比如让D+短接到D-,或者让D+/D-分别输出0.6V/3.3V的组合。这些细节,多协议取电芯片都必须处理。
还有更边缘的情况。不少国内品牌的私有快充协议,比如华为的SCP/FCP、OPPO的VOOC、vivo的FlashCharge,在Sink端基本不会去兼容——原因是私有协议的授权和握手认证,通常只在自家生态里开放。但是兼容QC、PD、以及三星AFC、联发科PE等公开协议,就足以覆盖市场上90%以上的充电头。
2.2 协议共存的物理层与状态机挑战
多协议芯片的难点,不在于"分别实现每种协议",而在于"在同一个物理接口上同时监听和识别多种协议的握手信号"。
PD的协商走的是CC引脚上的数字信号,QC走的是D+/D-引脚上的模拟电压信号。一个多协议取电芯片,必须同时监控这两路引脚的状态,并且判断当前应该启用哪套协议状态机。这就像一个人同时会讲普通话、粤语和英语,当对面开口时,大脑要快速判断对方说的是哪门语言,再切换对应的语言模式去回应。
具体实现上,芯片一般会有一个"协议优先权扫描轮询"的逻辑。以典型的CH224K或LDR6328这类芯片为例,它们上电后会先检测CC引脚上的电位和BMC信号,如果能解析到PD的Source Capability报文,就按PD协议流程走;如果多次尝试后没有PD响应,芯片会回落到QC检测流程,通过操作D+/D-电平来试探充电头是否支持QC;再不济,就直接进入默认的5V档位,保证设备至少能正常上电。
这个"先PD后QC再默认5V"的优先级顺序,就是向下兼容的第一层次。它的设计逻辑很朴素:能协商到高电压最好,协商不到就退到最安全的档位。宁可电压低一点,也不能让设备断电或损坏。
2.3 为什么"Sink端的多协议"比"Source端的多协议"更现实
很多人不理解,为什么做充电头的Source端芯片,往往只支持PD或者只支持QC,而很少做全兼容;反而是取电芯片这边,大家都在卷"多协议全支持"。
原因很简单。Source端在充电场景下是被动方,它输出什么电压,取决于连接的设备请求什么电压。如果一个充电头同时支持PD和QC,它就得在CC引脚和D+/D-引脚上同时做检测,并处理两种协议同时出现时的优先级和互斥问题。这个复杂度在Source端是成倍增加的,而且导致芯片成本上升,但用户感知到的快充速度并没有提升,所以Source端厂商普遍选择单一协议或主PD辅其他。
而取电芯片所在的应用五花八门,有做锂电池充电器的、有做无人机充电器的、有做DIY可调电源的,面对的充电头品牌、型号、协议千差万别。芯片厂商要做的是"我这个芯片你插什么头都能用",所以必须尽可能多地兼容公开协议。这就决定了Sink端多协议是刚需,而Source端多协议是奢侈品。
3. 电压向下兼容:从PDO协商到电压回退的完整链路
3.1 一个完整的PD电压协商过程
"电压向下兼容"六个字,看着简单,实际包含了好几个层次的工作。我想从PD协议的一次完整协商过程说起,这是理解整个机制的基础。
好,场景是这样的:你用一个支持PD3.0的充电头,通过一条CC线连到了一个带有取电芯片的设备上。
第一步,充电头在CC引脚上检测到5.1kΩ下拉电阻,确认Sink设备存在,于是开始发送物理层的数据包——每32.3kHz一个周期的BMC编码信号。
第二步,充电头发送Source Capability报文,把自己支持的电压档位广告出来。比如一个65W充电头,通常会广播5V/3A、9V/3A、12V/3A、15V/3A、20V/3.25A这样几组PDO(Power Data Object),如果支持PPS,还会附带一组可调的APDO,比如3.3V-11V/5A。
第三步,取电芯片收到这组PDO之后,会根据内部的配置——比如由外围电阻设定的请求电压是12V——在列表里找一个不超过12V的最高档位来请求。为什么不直接请求那个刚刚好等于12V的档位?因为协议要求请求的电压必须是对面广播出来有的档位,不能自主发明一个电压值。
第四步,芯片发出Request报文。充电头收到后,会回一个Accept,然后开始调整输出电压,调整完成后发一个PS_RDY报文。取电芯片收到PS_RDY,才会真正开通后端负载的输出通路。
第五步,系统进入稳定供电状态,之后由充电头持续监控电流,如果出现过流或者温度异常,随时可以通过协议切断输出或者降低电压。
这个过程的关键点在于:请求电压必须等于充电头广告的PDO中的一个档位,不存在"请求一个比广告PDO稍微低一点点的中间值"这种操作。所谓向下兼容,在PD固定档位模式里,只能向下匹配到最近的已广播档位。
3.2 PPS可编程电源改变了向下兼容的含义
PD 3.0引入的PPS(Programmable Power Supply)彻底改变了电压档位的玩法。PPS的APDO档位不是固定电压,而是一个电压区间,比如3.3V到21V。在这个区间内,Sink端可以按20mV的步进申请任意电压值,而且申请后可以随时微调,不需要重新握手。
这才是真正意义上的"平滑电压向下兼容"。举个例子,一个标称支持20V的PD3.0氮化镓充电头,其PPS档位可能是3.3V-21V。你想给一个标称12.6V的锂电池充电器供电,用老式PD固定档位方案,只能用12V那一档,凑合能用;用PPS方案,你可以精确请求12.6V,充电效率更高,发热更小。
在我实测的过程中,用一颗支持PPS的取电芯片,从充电头协商出11.98V给一个原来用线性稳压器的设备供电,设备温度直接下降了七八度。这就是PPS带来的切实好处。
需要强调的是,PPS向下兼容的处理逻辑更复杂:芯片必须不仅会做"找档位",还要会做"电压跟随"。因为PPS支持动态调压,芯片还会根据后端负载变化,按预设的调压策略微调输出电压,以维持在负载变化条件下的效率最优。这部分逻辑如果做不好,就会出现电压波动超限的问题,严重的会触发充电头的过压保护。
3.3 5V档是所有兼容的"安全垫"
不管协议有多高级,
5V
这个档位始终是取电芯片的最后兜底。为什么?因为Type-C接口的物理规范规定,Source端在未协商的情况下,只能输出5V电压;只有在协议握手成功、明确协商到更高电压之后,Source才会允许自己调高输出电压。
对取电芯片来说,"电压向下兼容"最底层的含义就是:无论对面充电头懂不懂PD、懂不懂QC,只要它符合Type-C规范,就必须默认输出5V。这时取电芯片只需做好一件事——让系统以5V正常启动。
这一点在实际产品设计中被很多人忽略。有些DIY朋友在改供电方案时,直接选了一个12V往上走的取电配置,结果键入了要求12V的配置,插入一个只支持5V输出的充电头后,芯片协商失败,后端负载完全断电。但有一颗设计良好的"向下兼容"取电芯片,它会自动检测到协商失败,然后主动落到5V档,让设备先工作起来——哪怕你的配置目标明明是12V。
这就是我一直强调"自带电压向下兼容特性"是产品级能力而非锦上添花的原因。它意味着芯片在目标电压不可得时,会按照预设策略回退,而不是直接死机或者断电。回退策略的设计,决定了你的设备在面对劣质充电头、老化线缆、瞬态接触不良时还能不能存活下来。
4. 选型与外围电路:决定系统稳定性的几个关键参数
4.1 选型时我最在意的四个参数
市面上的多协议取电芯片型号很多,从几毛钱的到几块钱的都有,但这不代表随便挑一颗就能用。选型时我重点看四个参数:工作电压范围、最大请求电流、协议兼容列表、以及配置方式。
工作电压范围要覆盖你实际需要的最高电压,并且留有余量。我曾经踩过一个坑:选了一颗标称输入耐压20V的芯片,用来做12V供电,结果插到20V的充电头上,充电头广播了一组20V的PDO,芯片内部逻辑在异常情况下短暂上探到了20V以上,直接烧了后端电路。后来换了耐压30V的芯片才解决问题。
最大请求电流决定了你能用多大的功率。这里要做个简单计算:如果你需要后端设备满负载运行在15W,那么用20V供电时电流不到1A,而用5V时电流要到3A。取电芯片的电流能力只要在协议层面允许就可以,因为它本身不承担功率通路,但你的后端DC-DC的输入电流能力才是真正的瓶颈。
配置方式这方面,常见的有电阻配置、GPIO配置和I²C动态配置三种方案。电阻配置最灵活且最容易理解,芯片有一个20倍左右的电阻窗口,你用不同阻值的电阻选档,芯片上电时读取引脚电压即可确定请求目标;GPIO配置逻辑和电阻配置类似;I²C配置适合需要动态调压的场景,但驱动难度最高。
4.2 外围电路里的隐藏细节
取电芯片的外围电路看起来简单,几个电阻、一个电容,搭起来就完事了。但真正到量产或者长期稳定运行阶段,有些细节特别容易出问题。
先说CC引脚。CC1和CC2在物理上是完全对称的,Type-C口的正反插就是靠这两根线来区分方向的。所以芯片的CC1和CC2引脚都要接上5.1kΩ下拉电阻到地,不能只接一个。不然在某个插入方向上,充电头检测不到Sink设备的存在,根本不输出电力。
再说前端电容和浪涌电流的控制。PD握手成功后,充电头会在几十毫秒内完成升压,这个瞬态过程会通过CC线缆向后端灌注一个不小的浪涌电流。如果你的后端电路里有大容量电解电容,上电瞬间接近短路,充电头会误判为过流并切断输出。所以取电芯片的输出端一般要接一个缓启动电路,或者至少串联一个NTC热敏电阻,把浪涌电流限制在充电头能接受的范围内。
关于"下拉电阻选择"还有一个细节:5.1kΩ是Type-C规范的标准Sink检测电阻值,但在一些过长的线缆上,线阻会导致充电头侧的检测电压偏低,容易误判为"不支持Sink"。所以我对长线场景会选用接近4.7kΩ的下拉电阻,让检测更可靠。当然这样会偏离规范一点点,需要根据实际测试来确定。
4.3 配置电阻与目标电压的映射关系
具体到用电阻配置目标电压,一般芯片规格书会给出一个表格,比如下表这样的映射关系(具体数值因芯片而异,这里以常见方案为例):
| 目标电压 | 配置电阻(1%精度) | 备注 |
|---|---|---|
| 5V(默认) | NC(悬空) | 不接电阻 |
| 9V | 10kΩ | PD/QC通用 |
| 12V | 22kΩ | 最常见的3D打印机供电 |
| 15V | 33kΩ | 需要支持15V档位的充电头 |
| 20V | 47kΩ | 高功率场景 |
| PPS(3.3V-21V) | 芯片专属配置 | 需I²C或动态协商 |
电阻的精度选1%是必须的。我用过5%精度的碳膜电阻做过实验,低温环境下阻值漂移,芯片读取的电压档位就飘到了另一档——输出从9V变成了12V,后端设备直接过压。这种偶发性的"灵异事件",排查起来很消耗时间,换用1%贴片电阻之后就再也没出现。
5. 实测复盘:把氮化镓充电头改造成可调压直流电源
5.1 从需求到方案落地
之前说过,我做这个改造的初衷是给桌面的多个设备做一个灵活供电方案。手头有一颗支持PD3.0/PPS、QC4+的取电芯片,一个65W氮化镓充电头,再加上一个降压模块,就能实现从3.3V到20V的连续可调输出。
实际方案是这样的:取电芯片负责和充电头协商PPS电压,输出端接一个DC-DC降压模块,降压模块的输出再供给后端设备。取电芯片的PPS请求,用一个STM32的开发板通过I²C接口进行实时配置。这样在工作台上就得到了一个用充电头驱动的、电压连续可调的实验电源。
搭建的过程比较顺利,外壳我用了一块旧的铝合金散热器机箱打磨出来,前面板装了一个电压表和两个输出接线柱。整个系统如果只涉及用固定电阻配置档位,那么半个多小时就能搭完;但加上I²C动态调压调试,我花了整整一个下午。
5.2 测试数据与关键现象记录
搭建完成后,我用电子负载做了详细的拉载测试。以下是实测中记录到的关键数据:
| 请求电压(V) | 空载实测(V) | 1A拉载实测(V) | 3A拉载实测(V) | 备注 |
|---|---|---|---|---|
| 5.00 | 4.98 | 4.93 | 4.82 | 线损明显,压降主要在线缆 |
| 9.00 | 8.96 | 8.90 | 8.78 | 正常 |
| 12.00 | 12.01 | 11.93 | 11.80 | 正常 |
| 15.00 | 14.98 | 14.91 | 14.76 | 正常 |
| 20.00 | 19.97 | 19.88 | 19.72 | 正常 |
| PPS 12.60 | 12.58 | 12.51 | 12.39 | 比固定12V效率明显提升 |
可以发现,空载到满载的压降主要来自线缆电阻和充电头的动态响应,这是所有PD供电系统的通病。解决的办法是尽量缩短线缆长度,或者使用支持5A电流的高品质CC线缆。
测试中我也记录了一个重要的现象:当我把PPS请求从12V逐步调到20V时,充电头的响应速度并不是完全一致的。有些充电头从12V调整到13V需要大约200毫秒,然后才会发PS_RDY;而有的充电头可以做到80毫秒内完成切换。如果你对电压切换速度有要求,选型时需要在实测中确认充电头的动态响应特性,而不是只看协议支持。
5.3 实测中的意外:电压回切与浪涌风险
这个过程中我遇到最典型的一个问题是电压回切导致的浪涌。当时我把PPS请求从20V直接下调到5V,取电芯片和充电头重新握手之后,后端降压模块输入端有一个470μF的电解电容,瞬间被充电到5V——这个充电电流在充电头看来就像负载过流,直接触发了保护,输出被掐断。
后来我加了缓启动电路,在取电芯片输出端串联了一个3Ω的功率电阻,再给VCC路径并联了一个47μF的电容,把浪涌限制在充电头能接受的范围内。实测下来,这个方案在任何电压切换场景下都没有再触发过保护。
另外还有一个值得注意的细节。在热插拔场景下,如果后端DC-DC模块带载启动,比如3D打印机的主板在工作时突然重新插拔电源,取电芯片如果来不及完成协议重协商,后端会直接进入欠压状态。此时如果后端负载本身有电容储能,可能会出现一个很短暂的"假供电"现象,也就是设备看似没断电,但电压已经跌破工作阈值。这种情况对单板机的文件系统伤害很大,SD卡数据损坏往往就是这么来的。所以做产品时,取电芯片的"上电时序输出控制"引脚最好接一个MCU的GPIO,由MCU确认系统稳定之后再开启输出。
6. 可靠性设计与故障排查:热插拔、电压回切与误保护
6.1 热插拔场景为何最容易触发异常
取电芯片在实际使用中,被吐槽最多的场景就是热插拔。插上去没反应、拔下来重插才行、换个方向插就行、插了十次有两次能协商成功——这些现象背后,多半是热插拔瞬间的电弧、接触电阻变化,以及协议状态机没有正确复位导致的。
我遇到过一种很典型的情况:一个DIY设备用的是某品牌取电芯片,第一次插入任何充电头都正常,但热插拔后第二次插入就再也协商不成功了。排查了很久,最后发现是芯片的复位时序有问题——在热插拔的瞬间,电压跌落触发芯片内部电源监测电路复位,但复位时间不够长,导致芯片没有完全清空上一次的协议状态,第二次时就卡在了某个中间态。
解决方法是:在芯片的电源引脚上并一个足够大的保持电容,并且把芯片的使能引脚接到MCU,由MCU在检测到VCC稳定后再拉高使能。这样每次插入,芯片都会从头开始一个干净的上电流程,协议状态机不会残留脏状态。
6.2 常见故障排查表
根据我的经验,把取电芯片最常见的故障现象、可能原因、排查方法整理成一张表,方便大家在现场快速定位问题:
| 故障现象 | 可能原因 | 排查方法 |
|---|---|---|
| 插入后无任何电压输出 | CC引脚没有下拉电阻,或下拉电阻虚焊 | 万用表测CC引脚对地电阻,确认5.1kΩ存在 |
| 输出电压低于预期 | 配置电阻阻值选错,或电阻精度不够 | 核对规格书映射表,更换1%精度电阻 |
| 电压在目标值和5V之间跳动 | 充电头不支持目标档位,芯片回退5V | 用另一颗PD诱骗器查看充电头广播的PDO列表 |
| 热插拔后无法协商 | 芯片复位时序异常 | 检查VCC电容容值,必要时加外部复位电路 |
| 大电流负载时电压跌落严重 | 线缆过细或Type-C线缆只有USB 2.0引脚定义 | 更换支持5A电流的合格线缆 |
| 后端设备烧毁 | 配置目标电压高于后端耐压,或耐压余量不足 | 检查芯片耐压范围和配置映射,给芯片输入增加TVS管保护 |
6.3 我自己在长期使用中沉淀的经验
结合我自己的长期使用体验,这里说几个常规文档里不会写的点。
第一点,取电芯片的输出端与后端负载之间,一定要留一个"软启动"接口。很多取电芯片会有EN或者PG引脚,不要偷懒直接拉死,一定要接上MCU或者RC延时电路。这个引脚在量产产品里能救命,因为你不知道用户会插一个什么样的垃圾充电头,有了软启动,至少能把浪涌电流伤害降到最低。
第二点,D+/D-引脚不是摆设。如果芯片支持QC协议,那么D+/D-这两根线的PCB走线一定要在靠近芯片的地方加上串联电阻或者TVS二极管。原因很简单,QC协议的握手信号本身是模拟电压,但它在握手过程中产生的瞬态脉冲,容易通过线缆串扰到其他引脚。我见过一个方案,因为D+/D-走线过长且没有保护,导致芯片在QC握手时偶尔会误触发过压保护,换一颗电容就解决了,但查起来费了很大劲儿。
第三点,关于"电压向下兼容"的配置陷阱。有些芯片的配置电阻映射,把"悬空"或者"短路"等特殊状态设置为出厂默认行为,比如某些芯片在配置引脚悬空时,默认请求一个20V的高压档位。如果你只按规格书里的"推荐电路"来画板,忽略了配置引脚的默认状态,就可能出现上电就请求20V的尴尬——而你的后端设备可能只支持12V。所以拿到一颗新芯片,第一件事就是用可调电阻把所有档位都测一遍,把默认状态下的行为摸清楚,再做产品定义。
6.4 下一步可以怎么扩展
如果只是把固定配置的取电芯片用在DIY项目里,其实已经够用了。但如果你愿意往前走一步,把I²C动态配置和MCU结合起来,可以实现很多有意思的功能。比如通过MCU实时读取后端设备的电流、电压、温度,然后动态调整请求电压,来实现效率最优巡航;或者根据不同负载状态自动切换5V/9V/20V,从而适配多类设备。
我目前正在做的一个项目,就是用一个支持PD3.1 EPR的取电芯片,配合一颗带CAN总线的MCU,做一个可以远程控制输出电压的工业设备供电模块。整套系统通过CAN总线下发电压指令,取电芯片动态协商PPS档位,后端再配合两级DC-DC做纹波抑制。这个方案如果跑通了,基本可以替代传统可变直流电源在工业控制柜里的不少应用场景。
对了,最后再提醒一句:用取电芯片改造供电方案,虽然看着简单,但设计时一定要把耐压余量、浪涌电流保护和热插拔复位时序这三件事放在优先位置。这三样没做好,其他功能再多也白搭。我自己在这些小东西上踩过的坑,够写好几篇了,希望这篇能帮你少走点弯路。
1万+




被折叠的 条评论
为什么被折叠?



