Typc-C充电线中的电阻

最近发现手头的充电线都磨秃噜皮了,打算更新一波。正好去年PD 3.1这个新规范的发布,早就被amazon推荐了很多充电头,就研究了一番。可能是因为5年没有更新手机了,一直没有关注这个领域。没想到USB Type-C接口这几年进化出许多花头,不了解的话很容易花冤枉钱买到不能用的线材,甚至有可能损坏设备。

废话不多说,记录一下我了解到的关于线材的一些知识。不说数据传输速率,只说充电时候线材和接口上的电阻相关的事情。

TL;DR

  1. A2C线没有芯片,大致分带电阻和不带2类。带电阻有3种,10k和22k可能有烧电源风险,不合规。只有带56k欧上拉电阻的线材是正品,防止C口设备烧坏老电源。
  2. C2C线种类非常复杂:没有芯片的线材支持3A电流,兼容性好。带e-marker芯片的线材,支持5A电流,但它自带下拉电阻,和不规范的C口设备不兼容(初代树莓派4)。
  3. 在标准里C口线材(包括A2C)至少支持3A电流。所以标称60w或者3A线的C口线材是最普通的,应该很便宜即可买到,快速充电并不需要昂贵的线材。
  4. 只有用合规的C2C线连接的设备和电源,才可以根据PD充电协议协商,最多输出240w的功率。如果中间经过A口B口甚至pin不全的C口转接头,都会导致无法协商。目前60w以上的充电需求比较罕见,140w是家用电子产品最高的功率要求(苹果笔记本)。

首先是接口类型

最常见的USB Type-A口就是那个方口。其中2.0是4个pin,3.x是9个pin。但是充电也用不到那么多,所以在充电的场景中,可以认为2.0和3.x的A口是等价的,都只有2个pin生效,也就是电源正负极。

接下来是USB Type-C接口,这个就复杂了,它有24个pin。由于c口正反两面都可以接,在充电的场景中只有一半的pin在起作用。特例是两面各有一根的CC引脚,充电时候这两根会同时使用用来查询方向和电压等。

其他USB类型的口就不说了,市面上带C口的线基本就这两种:两头都Type-C的C2C线,或者一头A一头C简称A2C的线

先说说A2C的线

正如名字所写,它是有方向的线。必须从A到C,用来把C口出现之前的USB A口电源(包括充电器,电池,或者电脑等),接到带有C口的设备(例如手机,树莓派)上。在前些年C口刚出现的过渡时代,很多充电器都会送这种线。也有许多使用C口充电的小家电会送这种线,最著名的应该就是任天堂Switch游戏机了。

A2C的线内部结构很简单,就是A口到C口的映射。由于C口有24pin,充电只需要正负极,映射2根电源线绰绰有余。所以最直白的线材就是两根铜丝直接连过来

但是根据USB IF定义的C口规范,这样做是不够的。因为带有C口的设备可能需要各种各样的电压和电流,它需要了解电源能否提供这些不同的电压电流。设备怎样才能询问电源呢?一般来说,协商是通过C口新增加的CC信号线和各种芯片来实现。这就引出了两个问题:

1、CC信号线要怎么接?
2、这些芯片在哪里?

针对问题1,A2C的线材,在A口那一端是没有CC信号线的。问题2的芯片,是为了应付更复杂的情况,只有C2C的线材才可能有,A2C的线材中肯定没有芯片。啥都没有的话,设备如何通过A2C的线材询问电源规格呢?答案是使用上拉电阻

直白的说,就是在A2C线材的C口部分,把它的CC引脚和VBus引脚通过一个电阻连起来。加了这个电阻之后,A2C线材才符合USB IF的规范。因为电阻是从CC信号线接到VBus电源线的,因此被叫做上拉电阻。由于我的电子电路知识都还给老师了,简单认为接到电源的电阻叫上拉即可。

为什么一根A2C的供电线里面会有电阻呢?

之前没想明白的我发出了这样的疑问

答案也很简单,本来在C2C口的情况下,上拉电阻并不在线材里,而是做在C口电源的母座里。旧的A口电源当然不会有这个上拉电阻,更何况A口没有CC引脚,也无处可接。A2C线是为了让C口设备使用A口电源,所以它为了模拟“电源通过上拉电阻报告自己供电能力”的行为,把这个电阻做到了线材里。

当C口线材接到设备的C口之后,设备会给CC和VBus加电压,然后通过上面电流的大小来判断电用的供电能力。理论上A2C线材的上拉电阻应该是56k欧(规范强制)。因为56k的电阻在C口供电规范里表示默认功率,USB2.0的时候是5v*0.5A也就是2.5w功率,或者USB3.x的默认5v*0.9A也就是4.5w功率。最差的A口电源也可以输出这个功率,这就保证了双方和谐共处。

C口供电规范里,阻值还可以是22k欧,对应5v*1.5A也就是7.5w的功率。或者10k欧姆,对应5v*3A也就是15w的功率。无论哪种阻值,采用这种协商方式的电源电压都是5v,只是输出电流有变化。

怎样才是安全的

那A2C把阻值设成10k欧来模拟15w的电源可以吗?要知道这是线材在模拟电源的行为,A口那边的电源对此一无所知。而设备查询到电源的不同能力之后,可能会向电源请求更大的功率输出。确实一些A2C的线材会接10k欧的电阻(违反规范),一步到位模拟5v*3A的15w电源。但是15w电源在A口时代非常罕见,如果设备真的请求了这么大的电流,可能会烧坏电源(我猜不会烧坏设备,毕竟是它自己请求的,但谁知道呢……)

正因为如此,任天堂在官方的指南中写着请使用带有56k电阻的线材。可是它没有明确说这是A2C的线材的需求,让许多玩家非常困惑。贩售线材的商家也不一定知道这么细节的规定,毕竟焊接的电阻存在于A2C的C口内部,肉也无法分辨。所以我们甚至能看到有些C2C的线号称自己带56k上拉电阻,这就完全是扯淡了。

56k电阻的A2C线材虽然安全,但是充电速度就慢了。强调下不是因为电阻大哦,要是供电线路里加了这么大56k的电阻,电线还能通电吗?这个电阻是在线材C口那端,把自己的CC引脚和VBus引脚连接了电阻,并没有放在供电引脚上,所以不会参加供电的过程,只是用来模拟握手协议。

我手头的大部分A口电源都能输出2A,10k电阻肯定是过头了有风险,理论上22k或许也能用?然而想要随便一根A2C线,搭配任何A口充电器,还是得56k电阻的线材。USB规范上写了,需要更高的电流可以通过其他协议再商量:

“The value of Rp shall indicate an advertisement of Default USB Power (See Table 4-24), even though the cable itself can carry 3 A. This is because the cable has no knowledge of the capabilities of the power source, and any higher current is negotiated via USB BC 1.2.”

(正常的A口电源应该只有5V的规格,所以A2C线也不需要模拟其他规格的电源电压输出,上拉电阻就够了。那种什么电阻都没加的直连线材,是不符合规范的。我猜设备遇到这样的线材,应该只会请求最低的功率。那它是否等价于56k电阻的线材我就不清楚了,也许有的设备检测到cc没有上拉电阻,压根就不工作。这就是为什么某些A2C线有时候无法给C口设备充电?此部分纯瞎猜的)

但无论如何,A2C的供电部分双方都是直连的。具体会请求多少电力完全看设备了。比如有些带C口供电的台灯,我猜里面没有什么协议啊握手之类的芯片,放什么电阻都一样。单纯就是要5V电压,功率全看灯泡的瓦数了。

Google工程师烧了笔记本?

我在收集信息的时候看到有人提到了错误电阻规格的线会烧设备,证据就是这个谷歌工程师烧掉笔记本的故事,说得有眉有眼。实际上这也是个myth,Google工程师烧笔记本确有其事,但和上拉电阻规格无关。

这位工程师因为此事出名,后来一直在review各种C口的线材。可惜他发的东西都在Google+上面,已经随着Google+关站一起灰飞烟灭了。具体到烧笔记本的事件,可以看看这两个连接:PCMag的新闻报道,以及他当时发的贴子的快照。

很多报道都没提到细节,这是一根USB A2C的线,只有PCMag的编辑详细引用了这段话,表明这线根本就是搭错了引脚,A口的地线接到了C口的电源,而A口的电源接到了C口的地线,完全反了过来。估计是电源反接导致设备某些器件被击穿,和上拉电阻没有任何关系。

“I directly analyzed the Surjtech cable using a Type-C breakout board and a multimeter, and it appears that they completely miswired the cable. The GND pin on the Type-A plug is tied to the Vbus pins on the Type-C plug. The Vbus pin on the Type-A plug is tied to GND on the Type-C plug,” Leung described.

反接5v会导致的后果ChatGPT有不错的描述

USB电源线的5V电源如果反接,即正负极颠倒连接到设备上,理论上确实有可能导致设备损坏。USB接口设计有标准的针脚布局,其中包括为设备提供电源的Vbus(正电压)和GND(地线)针脚。如果这些电源线被错误地接反,就可能在设备内部产生不正确的电流流向,导致以下几种情况:

即刻损坏:电源反接可能会立即损坏设备内部的电子组件,因为这些组件设计时预期电流将以特定方向流动。反向电流可能会导致电子元件过热、短路或永久损坏。

保护电路触发:一些设计良好的设备和系统可能包含保护电路,如反向极性保护、过流保护和短路保护等,用于防止因错误连接而引起的损坏。如果存在这样的保护机制,设备可能会在电源反接时关闭或断开电源,从而避免损坏。

无反应:在某些情况下,如果设备具有非常强大的保护电路,可能会在没有任何损坏的情况下简单地不响应反接的电源。

绝大多数现代电子设备都设计有一定程度的保护措施来防止因电源反接而导致的损坏,但这并不意味着所有设备都能在电源反接的情况下安然无恙。依赖设备内部的保护措施并非一个好的做法,因为不是所有设备都能够在这种情况下保护自己。

最佳做法是始终确保正确连接USB电源和设备,遵循设备制造商的指南和推荐,以避免因错误连接而导致的损坏。如果不确定,最好是检查设备文档或咨询制造商,以确认设备是否具有防止反接导致损坏的保护功能。

然而不合规格的上拉电阻确实很不安全,根据充电头网的这篇文章

“由于转接线和充电头可能不是配套的。如果充电头端的USB Type-A Receptacle只能提供5V@900mA,那么即使转接线Type-C Plug端Rp声明为 5V@3A,也没法给手机最大提供5V@3A的充电功率,还有可能损坏充电头。”

根据这个日本评测网站的说法,也确实有部分A2C线材会真的连接10k或22k的电阻,只能希望电源和设备都给点力,保护好自己了。

总结一下

https://www.chromium.org/chromium-os/cable-and-adapter-tips-and-tricks/

从C口诞生开始就有非常多的错误信息和myth流传在互联网上。甚至Chromium都有一个专门的页面来澄清,但是格式错乱了。我把它翻成中文留在这里。名词定义:

Resistor Rp:(上拉电阻Rp,接在VBus和CC引脚之间,就是接着电源的电阻)

Resistor Rd:(下拉电阻Rd,接在GND和CC引脚之间,就是接着地的电阻)

ID 引脚 :(只有micro-B口里面有,用于OTG连接)

Plug:公头,就是凸出来的那种,很多地方也称为male,插头。

Receptacle:母座,就是凹进去的插槽,很多地方也叫female,母头。

Open:就是开路,表示这个引脚悬空什么也没连接。

以下表格描述的都是一边C口一头其他口的Legacy Cable and Connector,其C口内部的电阻情况。

线材类型C口电阻ID引脚USB-C规范
C公头 <-> USB 3.x A公头(9pin)56 kΩ RpN/ASection 3.5.1
C公头 <-> USB 2.0 A公头(4pin)56 kΩ Rp N/ASection 3.5.2
C公头 <-> USB 3.x A 母座(9pin)5.1k Ω RdN/ASection 3.6.1
C母座 <-> 各种A/B公头规格不允许Section 2.2
C公头 <-> micro-B 公头 5.1k Ω RdOpenSection 3.5.7
C公头 <-> micro-B 母座56 kΩ RpOpenSection 3.6.2

虽然不合规,实际上C母座转A或者B公头也可以买到。使用上要注意风险,因为接入A/B母座转出来的C母座并不是真的C母座(想也不可能啊,pin数量都差好多)。我买来只用于转接5v充电的A2C,或者USB 3.x的5Gbps数据传输的C2C。相当于把A2C线变成了的A2B线,或者把C2C线变成了A2C线,算是线材降级?

Type-C之前的时代,USB线只要接上总是可以用的,线材上没有花活儿只有电缆,复杂的东西都在设备上。这个时代已经过去了,使用带Type-C口的线,或者接入C口的母座都得注意。

得空再写C2C线的各种情况。

TBC……