ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从5V到20V:16Pin Type-C接口供电协议与DIY诱骗方案全解析

从5V到20V:16Pin Type-C接口供电协议与DIY诱骗方案全解析 从手机充电到DIY供电一文读懂16Pin Type-C接口的隐藏玩法不只是5V作为一个常年折腾电子小玩意儿的人我家里Type-C线少说也有二十根。但真正让我对Type-C接口刮目相看的不是它正反随便插的方便也不是快充有多猛而是这个接口背后那套几乎被大多数人忽略的供电协议。如果你只知道Type-C能输出5V那确实有点浪费——当我把一个16Pin的Type-C母座焊上板子用一颗几块钱的诱骗芯片从充电器里“骗”出20V电压再降压给手头的无刷电机驱动板供电时那种“原来这么简单”的感觉真的很值得分享出来。这篇文章就从16Pin Type-C接口的引脚定义开始一步步讲清楚它是怎么从“手机充电口”变成“万能供电口”的。不管你是想给DIY项目做一个干净的供电入口还是想把闲置的氮化镓充电器改造成可调电源又或者只是对PD协议、5V转3.3V稳压、24V转5V这种电路感兴趣这篇内容应该都能给你一些实打实的参考。我不会堆术语只说我自己踩过的坑和验证过的方案。1. 16Pin Type-C接口到底藏着什么引脚定义与核心原理1.1 16Pin母座上的每一根针都在干嘛很多人第一次接触Type-C母座看到密密麻麻16个引脚就直接劝退了。其实只要拆开看这个接口的逻辑非常清晰。标准的16Pin Type-C母座也就是我们常说的“16P”引脚排列一般是这样的A1、A12、B1、B12这4个是GND也就是地线负责电源回流A4、A9、B4、B9这4个是VBUS也就是电源正极负责输出5V到20V不等的电压A6、A7、B6、B7这4个是数据引脚D和D-对应USB 2.0的数据传输A5、B5这两个是CC1和CC2也就是配置通道引脚是整个Type-C供电协议的“大脑”A8、B8这两个是SBU1和SBU2一般用于音频附件或DisplayPort的辅助通道普通供电场景用不上。注意这里有一个很多人会搞混的点手机上常见的Type-C接口其实是24Pin全针的而市面上大量销售的Type-C母座是16Pin焊盘版的它去掉了部分高频差分引脚只保留电源、接地、CC和USB 2.0数据所需的引脚。对大多数DIY供电、数据通信项目来说16Pin版本完全够用而且焊接难度比24Pin低太多了。1.2 CC引脚才是“不只是5V”的关键说到Type-C供电核心就绕不开CC引脚。CC是Configuration Channel的缩写直译就是“配置通道”。在Type-C规范里CC引脚承担了两大任务一是检测正反插的方向二是进行供电能力的协商。这里用一个生活化的类比来理解在老的USB-A时代供电方案是“固定输出5V设备你爱用不用”就像老式插座只有220V一个档位。到了Type-C加PD协议的时代变成了“供电方和用电方先坐下来聊两句根据双方能力约定一个电压电流”就像现在很多智能插座能根据不同的电器输出不同电压一样。CC引脚就是这两方对话的“电话线”。当两个Type-C设备插在一起时通过CC1和CC2上的电阻值Rd/Rp双方能迅速判断出谁是供电方Source、谁是用电方Sink。手头的充电器作为Source会在CC引脚上通过一个上拉电阻输出一个特定电压而设备作为Sink内部会有一个下拉电阻。双方通过检测这个电压值就能确定连接已经建立。默认情况下如果没有任何协商Source只会输出5V这也是为什么你用普通Type-C线充电时不管充电器多大功率设备默认只吃5V的原因。1.3 为什么默认只有5VPD协议又怎么改变这一点既然默认是5V那怎么才能拿到9V、12V、20V呢靠的就是USB PD协议Power Delivery。PD协议在CC线上以频率约300kHz的二进制信号进行通信用BMC编码调制利用CC引脚作为半双工通信通道。用简单的话说就是充电器Source和设备Sink在CC线上“发消息”通过一串串报文来协商电压档位。PD协议的协商过程大致是这样的Source上电后会在CC线上周期性发送“Source Capabilities”报文意思是“我支持哪些电压”比如5V/3A、9V/3A、12V/3A、20V/5A等Sink收到这些报文后从中选择一个自己需要的电压档位回复一个“Request”报文说“我要20V那一档”Source确认后回复“Accept”再把VBUS电压切换到20V最后发送“PS Ready”告诉设备“电已经准备好”之后在用电过程中如果电压电流异常任一方都可以发送“Hard Reset”或者“Error”信息让系统回到安全状态。整个协商过程对于使用者来说几乎是瞬间完成的但从5V跳到20V背后其实是这套完整的状态机在运作。真正让DIY玩家兴奋的点在于当把协议层吃透之后我们不需要手机主板那种复杂的PD控制器只需要一颗非常便宜、专门用于“诱骗”的芯片就能让充电器输出各种电压。这就是下面要展开的实操核心。2. 从5V到20V的桥梁PD诱骗芯片选型与原理2.1 什么是诱骗芯片它是怎么“骗”到高电压的这里说的“骗”其实是一个行业内的通俗叫法准确说应该叫“PD Sink请求芯片”。它的工作本质就是代替手机/设备去回复Source的协商报文主动要求“给我20V”。因为充电器端Source并不关心对面是什么设备它只要看到对方发来合法的Request报文就会照做。诱骗芯片的核心逻辑很简单它在内部集成了一套精简的PD Sink协议栈通过CC线与充电器通信。当芯片上电后它会等待并解析Source发送的Source Capabilities报文然后根据我们外部配置好的电压目标比如通过引脚上的电阻、I2C寄存器或者拨码开关设定从中选择对应的电压档位自动回复Request报文。举个例子我用过一款非常经典的诱骗芯片CH224K它支持通过外部电阻配置输出电压目标。不接任何配置电阻时默认请求5V接上特定阻值的电阻后它就会去请求9V、12V、15V甚至20V。整个过程不需要编程硬件配置就能搞定非常适合零基础玩家。2.2 主流诱骗芯片横向对比CH224K、XSPP05、FUSB302市面上的诱骗芯片品类不少我实际用过三款简单做个对比芯片型号协议支持配置方式最高电压特点与适用场景CH224KPD3.0/PD2.0外部电阻配置20V/5A最简单焊上电阻就能用适合DIY供电入口XSPP05PD3.0/PD2.0、QC2.0/3.0外部电阻/IO口配置20V/3A支持QC协议可兼顾老式QC充电器FUSB302PD3.0I2C配置可编程20V/5A需要单片机配合适合做深度定制如果你是第一次尝试我推荐直接从CH224K入手。一是便宜零售价2到5元二是外围电路极简芯片自己带LDO只需要几个去耦电容就能工作三是网上资料多数据手册明确给出了每种电压对应的电阻阻值表照着焊就行。XSPP05的优势在于兼容QC如果你手头没有PD充电器只有QC充电器它也能发挥用处。FUSB302则更适合有一定嵌入式基础、想自己用STM32或者ESP32去控制整个PD交互流程的朋友——这颗芯片本质上是一个PD物理层收发器协议层需要自己写或移植可玩性高但门槛也高。2.3 诱骗芯片的典型应用电路一个最小系统这里分享一下我验证过多次的CH224K最小电路。芯片总共8个引脚除了电源和地之外关键的配置脚是CFG1和CFG2。以请求20V为例参考CH224K数据手册CFG1接电阻到GND一般用5.1kΩ而CFG2直接短接到GND就能让芯片去请求20V/5A档。整个电路是这样的芯片的VIN引脚连接到Type-C母座的CC1和CC2注意CC1和CC2这里要分别接5.1k的下拉电阻芯片内部会处理但外部加上更稳定VOUT引脚接到你需要的VBUS输出端CFG1、CFG2脚按表格接好电阻芯片旁边并一个1uF和一个0.1uF的电容做去耦。连线完之后接上一个支持PD协议的充电器用万用表量输出端就能看到电压稳稳地停在20V。需要注意的是诱骗出来的20V是空载电压真正使用时一定要在输出端并联一个至少100uF的电解电容不然在接上负载的瞬间因为充电器输出电压切换的瞬态响应问题可能会出现电压跌落甚至触发保护。这里再说一个很多人容易犯的细节错误Type-C母座的CC1和CC2并不是随你接哪个都行的。很多诱骗芯片只有一个CC输入脚直接把CC1和CC2并到一起接过去。这在绝大多数情况下没有问题但如果遇到支持双口独立供电的充电器或者某些特殊的线缆就可能导致协商失败。稳妥的做法是CC1和CC2各串一个1kΩ电阻后再并到一起进芯片这样就算线材内部的CC走线有点问题也能正常识别。3. 核心实操三套典型DIY供电方案搭建记录3.1 方案一把氮化镓充电器变成桌面可调电源这是我最常用的方案也是最适合新手入门的一个。准备材料清单如下16Pin Type-C母座一个CH224K诱骗芯片一颗支持PD协议的充电器最好是65W以上氮化镓推荐原因后面说一块5.08mm间距的洞洞板或转接板若干电阻、电容、接线端子。这里先解释为什么推荐65W以上氮化镓充电器。原因有两点第一大功率充电器通常支持20V/3.25A甚至20V/5A的输出档位能给后续DIY的设备留出充足余量第二氮化镓充电器体积小、效率高用久了表面也只是温热放在桌面长期供电很稳定。我测试过用65W氮化镓配合CH224K给一个12V无刷电机驱动器供电连续工作两小时充电器外壳温度不到50℃完全可接受。接线方面我建议把Type-C母座的引脚引到接线端子上方便后续反复使用。具体步骤是将VBUSA4、A9、B4、B9四个脚全部并联焊到一个端子将GNDA1、A12、B1、B12四个脚全部并联焊到另一个端子CC1和CC2各串一个1kΩ电阻后并联连接到CH224K的CC脚CH224K的VOUT脚经过一个10uF陶瓷电容和一个100uF电解电容后接到VBUS端子。所有这些焊完之后上电前先用万用表二极管档测一下VBUS和GND之间的导通情况确认没有短路再插上充电器。如果一切正常充电器输出的5V会先出现然后大约不到1秒实际上PD协商很快人眼几乎看不出来电压就会跳到20V整个过程指示灯都不带闪的。3.2 方案二从24V工业电源取电做5V设备供电很多DIY场景不是在桌面而是在机柜、工作台这种地方。这种环境下最常见的是24V开关电源它是给PLC、传感器、继电器供电用的。但如果你的项目里有一个5V单片机和几个传感器总不能单独再买一个5V适配器吧。这时候就需要从24V降压到5V。说实话24V转5V的电路方案非常成熟关键点在于选对降压方式。几种常见的选择方案优点缺点适用场景线性稳压78M05、AMS1117-5.0电路简单、纹波极低效率极低、发热严重电流300mA的轻载场合DC-DC降压模块MP1584、LM2596效率高、发热小、输出电流大纹波稍大、需注意布局电流1A以上、对纹波不敏感DC-DC降压芯片自行设计TPS5430等性能最优、可调参数设计复杂、元器件多有批量需求或严格要求这里我非常建议大家用MP1584模块某宝几块钱一片输入范围4.5V到28V输出可调默认5V版本也有卖效率能到90%以上。24V输入转5V输出1A芯片只需要加一个散热片或者完全不用因为它发热很小。而如果用线性稳压AMS1117从24V降到5V19V的压差乘以0.5A就是9.5W的发热芯片瞬间就会烫到不能碰必须加很大的散热片甚至风扇这完全不合理。提示24V转5V的DC-DC方案里面有一个容易忽略的坑输入电容一定要靠近芯片的VIN引脚摆放。如果输入电容离得太远降压芯片开关瞬间会产生很大的电压尖峰轻则影响稳定性重则直接击穿芯片。实际布局时10uF以上的电解电容和0.1uF的陶瓷电容要尽量贴着芯片。3.3 方案三5V转3.3V稳压电路给单片机供电的经典思路玩ESP32、STM32这类单片机第一件事就是解决3.3V供电。从5V转3.3V这个需求大概是所有电子DIY里最频繁出现的。最省事的方法是用AMS1117-3.3这颗线性稳压芯片它的最小系统只需要两个电容输入端接一个10uF钽电容或电解电容到GND输出端接一个10uF电容到GND输入5V输出就是稳定的3.3V。AMS1117的压差大约1.1V也就是说只要输入电压在4.4V以上就能稳定输出3.3V。因此从5V转3.3V压差只有1.7V即便输出500mA电流芯片上的功耗也就是0.85W加上散热焊盘后完全能扛住。这也是为什么AMS1117在5V转3.3V场景里依然是绝对的性价比王者。如果你要更低的静态功耗或者更大的输出电流也可以用XC6206P332MR这种LDO它的静态电流只有1uA左右特别适合电池供电的穿戴设备。但要注意XC6206最大输出电流只有300mA带不动ESP32这种WiFi射频模块发射瞬间电流能到500mA以上。如果是给ESP32供电建议用AMS1117-3.3或者干脆用MP1584调成3.3V使用。3.4 5V无刷电机驱动电路的一个参考思路最近很多人对无刷电机BLDC感兴趣热搜词里也写着“5v无刷电机驱动电路图”。这里我结合前面讲的供电方案给一个可以落地的组合思路。5V级别的无刷电机功率不大一般是电脑散热风扇、小型玩具泵这类额定电流在1A到3A之间。驱动方案有两种主流选择无感方波驱动用逻辑芯片或单片机产生六路PWM加三半桥驱动芯片如EG2133再加六个MOS管组成三相全桥。这种方案成本低适合对噪音、效率要求不高的场景有感FOC驱动在电机内部加霍尔传感器或编码器配合专用的电机驱动芯片如DRV8313实现矢量控制效率高、噪音小但搭建复杂度和调试成本都会明显上升。对于5V驱动的入门级方案我建议从无感方波开始。供电端直接用前面提到的5V转3.3V电路给单片机供电再用同一个5V给三相全桥的MOS管供电。注意电机启动瞬间电流会很大所以5V的输入要至少能提供3A的电流建议用MP1584把24V降到5V同时并一个大容量的电解电容470uF以上吸收尖峰。4. 稳压与保护电路从5V转3.3V到24V转5V的避坑指南4.1 线性稳压和DC-DC到底该怎么选聊到稳压电路很多新手会纠结我到底应该用线性稳压还是DC-DC其实判断标准就两条看压差看电流。如果压差很小比如5V转3.3V压差1.7V同时电流不大500mA用线性稳压芯片就够了。线性稳压的优势是纹波极小、外围电路简单、成本低劣势是压差越大效率越低。如果压差很大比如24V转5V压差19V或者电流很大1A就必须上DC-DC降压。DC-DC通过电感储能的方式实现电压转换理想情况下效率可以做到90%以上24V转5V时发热比线性稳压小一个数量级。缺点是输出电压纹波相对大一些一般20mV到50mV之间而且布局要求更高。注意给传感器、ADC、音频DAC这类模拟器件供电时尽量用线性稳压。我实测过MP1584输出的5V接一个INA226电流检测芯片测出的电压数据跳动范围在±5mV以上而换成LDO之后跳动立刻降到±0.5mV以内。数字电路无所谓模拟电路必须讲究。4.2 反向保护与过流保护不能省的两个小细节DIY供电电路里面最容易出问题的就是电源反接和负载短路。绝大多数稳压芯片、单片机、传感器都不耐反接反接一瞬间冒烟是家常便饭。最便宜的反接保护方案是串一个肖特基二极管比如1N5819压降大概0.3V左右。但在低压大电流场景下这0.3V的压降意味着明显的功率损耗比如5V/3A场景下光这个二极管就要消耗0.9W功率非常浪费。所以现在主流方案是用P-MOS管做“理想二极管”电路导通时的压降只有几毫伏100A级别的大电流也不在话下。不过考虑到DIY的简易性我一般建议如果压差不大、电流不超过1A直接用肖特基二极管就行可靠性远超复杂度更高的新方案。电流上了2A以后才需要考虑P-MOS方案。过流保护方面最简单可靠的就是自恢复保险丝PPTC串在电源正极即可。短路时它瞬间进入高阻状态电流被限制到几毫安级等故障排除后它又会自动恢复导通非常适合DIY场景。我通常会在每个自制模块的入口都放一个PPTC成本几毛钱但能救下不少本来会烧毁的板子。4.3 降压电路布局的“黄金三原则”如果自己画板子或者搭洞洞板降压电路的布局很关键尤其是DC-DC。我总结了三条黄金原则可以说是经验之谈第一环路面积尽量小。DC-DC工作时有高频开关电流在输入电容、MOS管、电感、输出电容之间流动。如果这个环路面积太大就会产生严重的电磁干扰不仅影响自己还会干扰周围的WiFi、蓝牙模块。所以在布局时这些元件要紧密围在一起最短路径连接。第二反馈线远离电感。输出电压反馈电阻采样线不要贴着电感走因为电感周围有强烈的磁场和电场噪声会污染反馈信号导致输出电压抖动。反馈线最好从输出电容的正极单独拉一条细线回到芯片的FB脚走线和其他电源线保持距离。第三GND用星形连接。降压电路的功率地和信号地不要混在一起绕圈而是要在输入电容的GND处单点汇合。这样能有效避免功率电流在地线上产生压差干扰到控制部分的基准电压。5. 常见问题与排查技巧实录5.1 Type-C母座焊好后不出电压先别怀疑芯片这是我在帮助网友排查时遇到最多的问题照着教程焊了一块16Pin Type-C供电板插上充电器之后输出端完全没电压。通常第一步就是万用表检查母座焊接有没有连焊、虚焊尤其是VBUS和GND两个脚很多新手焊的时候锡量稍微多一点就容易和旁边的引脚粘连。如果焊接没问题第二步就是检查CC线。用万用表蜂鸣档测一下母座CC1到芯片CC脚之间的导通性。这里有一个高频现象有些Type-C母座的CC引脚本身是和外壳连通的焊接时需要使用助焊剂但助焊剂残留的绝缘膜会导致芯片和母座之间虚接触虽然外观看起来焊点很饱满实际却不导通。这钟问题比较隐蔽用放大镜仔细看或者用酒精清洗一遍焊点就能解决。如果以上都没问题再用一个排除法把诱骗芯片摘下来直接在CC1和CC2上各接一个5.1kΩ电阻到GND。这就是标准USB-C被动线缆/设备的“身份标识”充电器识别到后会在VBUS上输出默认的5V。如果此时万用表能看到5V说明母座和线材链路都是好的问题出在诱骗芯片或它的配置电阻上。5.2 诱骗电压到了但一接负载电压就掉下来这种情况通常有几种原因按概率排序如下第一是充电器功率不够。比如你用一个18W的PD充电器去诱骗20V但负载需要2A也就是40W的功率充电器会直接进入过流保护输出电压瞬间跌落甚至直接断开重协商。解决方法是换一个大功率充电器或者选择低于充电器额定功率的电压档位。第二是输出电容不够。诱骗芯片和充电器协商完成后充电器会执行电压切换这个过程存在一个短暂的“死区时间”。如果输出端没有足够大的电容来维持这个窗口期内的能量供给接上负载的瞬间电压就会出现明显跌落。解决方法是输出端并联220uF以上的电解电容并且在靠近负载端再加一个100uF的电容。第三是线材问题。很多Type-C线里面只有VBUS和GNDCC线是没有接通的这种线通常叫“充电线”而不是“数据线”或者线材里CC线存在很大的电阻。这会导致协商失败或电流能力受限。建议DIY供电环境里尽量使用带有E-Marker芯片的5A线材或者至少是标称支持100W充电的线缆。5.3 5V转3.3V电路输出偏高或偏低量出来的电压叫人发慌AMS1117输出端实测偏高或偏低最常见的两个原因一是输出端没有接电容导致芯片内部环路不稳定输出电压会有一个几十毫伏的振荡万用表量出来数值偏高二是输出端电容过大比如用了220uF以上的大电解某些型号的AMS1117会因为相位裕度不足而产生自激输出反而偏低或跳变。解决办法很简单严格按数据手册推荐的电容值来输入输出各10uF就够了。如果确实需要更大的输出电容要在AMS1117的数据手册允许范围内选型或者在输出电容后面串联一个小电阻比如1Ω来隔离。5.4 24V转5V时模块发烫效率低到怀疑人生这个问题十有八九是把线性稳压当DC-DC用了。24V输入5V输出压差19V线性稳压的效率只有21%你想要的1A电流意味着其他0.79A的电能全变成了热。这种场景下模块不发烫才不正常。前面说过了用MP1584之类的DC-DC模块效率能到90%以上同样的工况下芯片只是微温。另外还有一个容易被忽略的坑MP1584模块的输出电压调整电位器是微调型的很多模块出厂默认是5V但它上面的电位器非常灵敏稍微动一下就是零点几伏的变化。如果你发现输出不是标准的5V先别急着怀疑芯片坏了用螺丝刀轻轻微调一下试试很多时候就是电位器位置不对。只是注意调的时候慢慢来幅度小一点电压很容易一下子就跳很多。5.5 一个容易被忽略的细节VBUS上电容的“滞留电压”会令人惊心这块特别想拿出来提醒一下因为我自己真的被电过一回。Type-C母座输出端并联的大电容在拔掉充电器之后并不会立刻放电可能会有5V到20V的电压滞留很长时间。若你用手直接触碰PCB上的焊盘那种麻电感是真的不好受。解决这个隐患有两种方式一种是给输出端并一个放电电阻阻值选10kΩ到47kΩ功耗几毫瓦级几乎不影响工作效率但是在断电后能在几百毫秒内把电容上的电放干净。另一种是养成“断电之后先测电压再动手”的好习惯。DIY无小事多一道保险总是好的。6. 实操心得我踩过几次坑之后的最终建议前前后后折腾Type-C供电方案差不多一年多帮朋友改过好几块板子供电路也指导过不少网友调通自己的第一块诱骗板子。如果要给后来者总结几条最实用的建议我的经验是第一没有必要一上来就去研究复杂的PD协议栈。先用CH224K这种诱骗芯片把5V到20V的“大跨度电压获取能力”跑通建立起直观感受再去研究底层协议细节会顺畅很多。第二选Type-C母座时优先买带外壳焊脚的那种也就是金属外壳有独立的固定焊盘。这种母座焊接到洞洞板上以后机械强度高很多不会插拔几次就把引脚扯脱焊。我用过那种不带外壳固定脚的母座插了几次线就被带掉了一个焊盘非常尴尬。第三模块化思维很重要。把所有功能拆成独立的小板子Type-C取电板、诱骗板、稳压板、过流保护板然后用接线端子把它们连起来。这样任何一个环节出问题都可以单独替换排查而不需要整块重新焊。我现在的桌面供电系统就是这么搭的Type-C入口接氮化镓充电器中间过诱骗和稳压输出一组固定5V、一组可切换的12V/20V、一组3.3V基本覆盖了我手头所有模块的供电需求。第四手边常备一个大功率可调负载电阻功率电阻排每次做完新的供电板先接电阻测试再上真实负载。不要问我是怎么知道“直接接电机结果充电器保护断电”这种教训的反正先测负载永远是省时间的好办法。最后再分享一个小技巧在Type-C母座旁边留一个测点方便随时用万用表测实际电压。这个习惯看着不起眼但每次排查问题几乎都能省下五到十分钟。电源这个东西出问题的时候经常是看似正常实则隐秘有个测点判断链路到哪一步断了就一目了然了。
返回列表