HW 随笔 002 — Type-C 接口 CC pin 初接触

声明:个人笔记,概不负责

这是篇对 现今流行古老技术 的学习笔记,而不是对 新技术的 介绍

0. 引言

新技术的产品,大都在流行之初,顶着新技术的头衔,莫名其妙的昂贵,有些说穿了其实狗屁不是。

本文以“另类”的视角切入,讲一讲对 Type-C 物理接口 的理解,为何 CC pin/wire 是 Type-C(相对于 Legacy USB 而言)的本质性不同。

软件眼中的硬件世界

1. 原来就是个 电阻

image

本图“魔改、拼接”自 [spec r2.3] 。原图(们)本意是讲,Type-C 如何降格称为 Legacy 使用。此魔改图是讲,Legacy 如何升格成 Type-C 使用,并通过 Type-C 接口互连,这种组合现实存在,本图“完全”正确。

最小可用的 Type-C 其实是 3 pin 脚模型,与传统的 Type-A 或 Micro-B 唯一本质的不同,是多了个 CC pin 脚。任何传统 USB 设备 只要在 CC 那里补上一个电阻,就可以摇身一变,成为 Type-C 设备,就这么简单。

固定电阻 Rd 是一个神奇的电阻,它取值是 5.1kΩ ±20% ,位于 CC 与 GND 之间。任何 Type-C 出现之前称为 USB Device 的设备,在 CC 与 GND 之间接上它,就是一个合规的 Type-C 设备。海量的 Type-C 优盘、Type-A-receptacle-to-Type-C-plug 转接头,本质上就是加了这个 电阻,却又匪夷所思的贵!

概念电阻 Rp 则较为抽象,它可以变变变,但 Type-C spec 目前只认其中三变。这三变是,当 Rp 和 Rd 组合的电路,电流是 80 μA | 180 μA | 330 μA 三种。根据九年制义务教育,物理课“欧姆定律”可知,此处漏了个条件 "电压",无法解出 Rp 对应的答案,这太难了…… 根据九年制义务教育,物理课“焦耳定律”可知,P = I2R 为功率,即当维持电流不变,总电阻 R = Rd + Rp 变小 时,在 CC 回路上损耗的功率就小。看上去,Type-C spec 只认电流 的最大好处是,CC 回路上的损耗可以控下来,并未锁死。在给定小世界(电压)的情况下,Rp 的三变 已然被电流锁死,(略微迂回的)一目了然。在 Legacy USB 里,Vbus 是 5V;在电路设计里,常用电压是 3.3V。“朴素”的用法下,Rp 变化并不多。

魔改图里面,把 Rp 放在 CC 与 Vbus 之间,只是个例子。理论上 Rp 可以位于 CC 与 任意合规正电压 之间。

当今世界里,几乎遍地可见的 Type-A-plug-to-Type-C-plug 充电线,其本质上就是在 CC 与 Vbus 之间接了个 Rp 电阻。而那些动则以大电流充电为卖点,标高自己身价的产品,其根本就只是用了个不同的 Rp 电阻而已。

平凡的人更喜欢查表,所以 spec
(1) 严谨的给出,三档电流条件,以及允许的电压波动范围 —— 这里的概念电阻 Rp 要脑补,自行计算。
(2) 直观给出, 当电压为 5V 或 3.3 V 时,Rp 对应值的表 —— 这里不用大脑,有眼睛就行。

截图来自 spec r2.3 版,4.11 Parameter Values
【注:此表 since r1.0 to r2.3 都没改,估计将来也不会变,要先进的去找 PD】

计算展开
image

魔改之图,重点突出了 Type-C 连接中 CC Rp-Rd 这一回路存在。这是 Type-C(相对于 Legacy USB 而言)的本质性不同,唯有 Source 检测到 CC Rp-Rd 回路存在,才会给 Vbus 供电,开启万物。

魔改之图,并无错误,其“妖魔”之处是,两个 Legacy 的 USB,用 Type-C 连在了一起,白瞎了这个 CC Rp-Rd 回路。此“妖魔”之处,正是 Type-C 的“神启”之处。理解 CC Rp-Rd 回路存在 是第一步,如何巧妙的布置这个回路 是第二步。

要完成 从 Legacy USB to Type-C 这一“阶层跃迁”、“认知升级”,成为正统的 Type-C 设备,得认识到 “2 个 CC pin,1 根 CC wire”这一设计,并符合其纲领。

2. 不止 是一个电阻

本图“精简”自 [spec r2.3] Figure 4-5, 剔除了非本质的 Ra 部分,剔除了不严谨的 Sink 描述。

Type-C 中有 Receptacles, Plugs and Cables (插座、插头、和线缆)三个概念。

规范在 receptacle 与 plug 处,定义了 2 个 CC pin;
(1) 在“两头是 Type-C plug”的 cable 里,要求有(必须有 且 只能有)一根 CC wire
(2) 在一头是 Legacy USB 的 cable 里,可以在 CC pin 脚处 直接动手脚,不存在这一根 CC wire
(3) 只有在非常罕见的(规范允许的)开发者自定义的情况下,才可能同时存在两根 CC wire

“2 个 CC pin,1 根 CC wire”这一设计,会造成“若一个 CC pin 上 Rp-Rd 回路 成立,另一个 CC pin 上 回路必然缺失”这种现象。

Type-C 正是利用这种 物理学 上的必然,来判定正反插。

2.1 谁 负责翻转

观察 spec 可以发现,如果判定了正反插,Type-C receptacle 端 有 负责翻转 的义务 。

观察 spec,只有 plug 上存在 正反插 的差异,receptacle 在物理上 是中心对称的。
显然,在 对称端 处理 差异端,更有 逻辑。(以 D+/D- 来看)
—— 由于 中心对称性,排列组合上,不能排除其他“混血”可能,
——(A)D+/D- 在 receptacle 端对称 short(处理掉一部分翻转),而 plug 端探测 CC pin 并处理掉另一部分翻转
——(B)亦或放弃 D+/D- 的翻转,只在 plug 端处理 orientation
—— 这些显然是在跟自己过不去,“耍流氓”了,但 spec r2.3 又好像没有明令禁止。

image

image

Type-C 规范定义的 cable 上,只会有 Type-C plug,不会有 Type-C receptacle。如果再在 cable 上定义 Type-C receptacle 的话,只会给 说清事情 带来 非必要的 复杂性。

为什么会做这样的决策?(在 receptacle 端 负责翻转)
猜测:因为 cable 的本意是一堆 wire 的集合,plug 上的 pin 只不过是 wire 的固定端。
这样决定的话,能够得到 相当简单的 cable 。

为什么会做这样的决策?(不定义有 receptacle 端 的 cable)
理解:因为 “在 receptacle 端 负责翻转” 这件事,不是个 wire 集合能 完全搞定的。若定义,又绕回来了。

严谨的啰嗦
a) 从几何直观来看,receptacle 端 有 负责翻转 的义务
b) Spec 并没有明令禁止 plug 端 进行翻转
c) Spec 里只是 反复的啰嗦 Source, Sink 都要监视 orientation(等同废话)

至此 CC Rp-Rd 回路的意义、地位 已然明了,产品设计做到这个程度,就已经合规,踏入正统。

2.2 现实世界

但实际上,市面上“邪修”的产品不少。

有些设计,直击本源,只付出“一个电阻”的代价,就提供 Type-C receptacle(插座)接口,对外售卖。事实上,根据规范来看 receptacle(不管是 Source 还是 Sink)还有负责“自动处理”正反插 的义务。遇到这类产品,用户可能不得不“手动处理”正反插。

有些设计太抠门,两个 CC pin 脚,没舍得“各给”一个电阻,导致连翻面的机会都没给用户留。比如说,比较有名的 Raspberry Pi 4 中 CC pin 脚设计缺陷。

小结

总结(重复)一下,
尽管 CC pin 脚定义了 2 根,但市面上正常可以买到的 Type-C cable,最多都只有 一根 CC wire 存在。Cable 里的 CC wire 建立 Rp-Rb 的连接,Cable 里的 GND wire 令回路成立,CC Rp-Rb 回路上的电 由 Source 端提供。

Type-C 接口上的 Vbus 电不会一接上去就有,只有在 CC Rp-Rd 回路建立以后,才会有。

3. CC pin/wire 掌中宝

废话不多说,也没能力多说,上掌中宝:

神奇电阻 CC pin
image

神奇电压 Type-C
image

CC 的本质,是对 Type-C 接口、线路 本身的配置,它 小心翼翼地 维持着一个弱者形象。

  • 在最小情况下,CC 只要一个 pin 和 一个电阻。作为守界人,是 Legacy USB 进入 Type-C 的最小代价。
  • 在标准情况下,CC 要 “2 个 CC pin,1 根 CC wire”。作为信号的传导者,是正统(纯血)Type-C 的基石。

这个 “2 个 CC pin” 的立足之地,一旦建立,它可以

  • 判断 连接的存在
  • 判断 正反插
  • 通过 CC Rp-Rd 回路的电流,通告 Source 的供电能力

(1) 由于 Legacy USB 就是以 Vbus 判断连接的存在(??),所以开篇 “魔改之图”,只是投入 61.1kΩ | 27.1kΩ | 15.1kΩ 的线路损耗,冗余重复了一遍而已。

(2) 若要区分正反插,(最小代价)必然是一对“中心对称的、且有巨大差异的”两个信号点。CC Rp-Rd 回路的 存在 与 不存在,构建了 Type-C 正反插的基石。

(3) 在“邪修”(第一性原理)来看,CC 上的 Ra 与 Vconn 只是 Type-C 非本质的、花里胡哨的部分,可完全不管。都“买票”进景区了,何必要管这 “游乐项目” 。

(4) 只有 CC pin/wire 才是 Type-C 的本质,其他 pin 都无非只是堆叠而已,甚至连 Vbus 也不列外。

上述 Rd 只是进入 Type-C 世界的“踏脚石”,概念电阻 Rp 算是 Type-C 的“起手式”,理解 Vbus 的初始建立算是开始“登堂入室”。一旦看懂 Vbus 上电,应该就可以“召唤神龙”,参考/复用 现有 USB 的知识,(如果 你有“神龙”的话)。理解 Rd 最多算个“杂役弟子”,理解 Rp 及 CC pin/wire 可入“外门弟子”,理解 Ra 当入“内门弟子”。“真传弟子”应该是那帮看眼图谈天论地的家伙吧,非吾辈 软件修行者 所修真谛。

4. 手法

这种 Pull-Up / Pull-Down 手法,并不惊天地泣鬼神,貌似业界的常用手法。感觉是电子行业硬件,小学生一年级的知识点。

例子一:USB 2.0 的 OTG (USB On-The-Go) 应用

经典的 USB 2.0 的 Type-A 接头(plug/receptacle)只有 4 个 pin 脚,并且 USB cable 里也只有 4 根线。
而 Micro-B 接头(plug/Receptacle)却有 5 个 pin 脚。

这莫名其妙多出来的 pin 脚,ID-pin,可以 floating(悬空) 或 ground(接地),代表自己的角色切换。
当把 ID-pin 接地 ground,则自己扮演 Host,称为 A-device
当把 ID-pin 悬空 floting,则自己扮演 Device,称为 B-device

接地 觉得有点不靠谱的话,用 Pull-Down 去测算,为 < 10 Ω (spec 称为 Ra_PLUG_ID)
悬空 觉得有点不靠谱的话,用 Pull-Down 去测算,为 > 1 M Ω (spec 称为 Rb_PLUG_ID)

image

5. 案例

以早期的安卓手机为例,【时间注:目前 == 2025-06-30】
► 用普通的 Type-A-plug-to-Micro-B-plug 线,连接 “电脑—手机” 时,手机上 ID-pin 悬空,手机作为 Device 接入电脑(Host)。
► 用特殊的 Micro-B-plug-to-Type-A-receptacle 转接线,连接手机,手机上的 ID-pin 接地,手机作为 Host 可读取转接线那头的 Type-A 的 U 盘。
这根特殊的线,市面上称为 OTG 线,可以购买到。

无论哪种情况,Cable 里都不会多出根线,即使 OTG 线上也不会,因为只要直接在 pin 脚上做手脚即可。
这种在 Micro-B 的 ID pin 上动手脚,和 Type-C 在 CC wire 上动手脚,它们的手法何其之像?

现今 Type-C 在手机上已普遍流行,在几百块的手机上也常规可见。
► 带 Type-C 的 U 盘可以直捅手机,随时“开搂”
► 用 Type-A-plug-to-Type-C-plug (A-to-C) 或 Type-C-plug-to-Type-C-plug (C-to-C) 直连电脑,充电、读里面的图片。
都是市面上可以买到的,普通产品。

有没有 Type-C-plug-to-Type-A-receptacle 这种特殊线,令 Type-A 优盘可以在手机上读取呢?
► 有的。事实上,这种 转接头/线,在 Type-C 标准定义之内。
► 由于可以在 手机、电脑上 同时使用,这线非常普通,远没有 USB 2.0 时代 OTG 那么特殊。

越是“特殊”的线,越是昂贵,无论是购买成本,还是均摊使用成本,(扯远一点)还是其环保成本。

A B C
image

参考资料

[sepc r2.3] Universal Serial Bus Type-C Cable and Connector Specification, Release 2.3, October 2023
Micro-USB_1_01.pdf
MicroUSB ECN.pdf
[Atmel_11201] Atmel_11201_USB-OTG-Like-Connector-Implementation_SAM9G-SAM9X-SAMA5D3_Application-Note.pdf

九年级物理《电功率》思维导图+速记清单,知识全面梳理!

USB OTG插入检测识别
https://www.cnblogs.com/LoongEmbedded/p/5298173.html

USB OTG原理简述
https://blog.csdn.net/qq_25814297/article/details/124428564

https://en.wikipedia.org/wiki/USB_On-The-Go

Pi4 not working with some chargers (or why you need two cc resistors)
https://www.scorpia.co.uk/2019/06/28/pi4-not-working-with-some-chargers-or-why-you-need-two-cc-resistors/

https://en.wikipedia.org/wiki/USB

---(完)

posted @ 2025-07-03 01:36  悠洋洋  阅读(158)  评论(0)    收藏  举报