2. CC 引脚功能与检测原理

咱们做 Type-C 开发,第一关就是搞懂 CC 引脚。

说白了,CC 就是 Configuration Channel,配置通道。它只有一根线,但承担了三件大事:检测设备插入、判断正反插、协商供电角色。我最早接触 Type-C 时,以为 CC 就是一根普通 GPIO,结果一上示波器才发现……嗯,这里头门道不少。

2.1 CC 引脚到底在干什么?

一根 CC 线,负责三层工作:

  • 连接检测:告诉源端“有个设备插进来了”。
  • 正反插识别:通过 CC1 和 CC2 哪个拉低来判断。
  • 角色宣告:Source 端上拉 Rp,Sink 端下拉 Rd,电阻值还对应不同供电能力。

我当年调一个快充板子,插上手机没反应。量了 CC 电压,0V。

为什么?因为我忘记在 Sink 端接下拉电阻。你想想看,CC 浮空,Source 端永远检测不到设备,自然不会拉高 VBUS。

关键结论: CC 必须形成完整的上下拉回路,PD 通信才能建立。没有 CC 检测,就没有 VBUS 输出。

2.2 上下拉电阻 – 角色与能力的「名片」

Source 端内部会通过一个上拉电阻把 CC 线拉到某个电压。这个电阻值不是随便选的。

供电能力上拉电阻 Rp (Ω)典型 CC 电压 (V)
默认 USB (500mA/900mA)36k0.41
1.5A22k0.66
3.0A10k1.23

Sink 端的下拉电阻 Rd 固定为 5.1kΩ。Source 读取 CC 电压,对照表就能知道对方能要多大电流。

还有一点要注意:Ra 电阻(1kΩ 下拉)用于电子标签芯片(E-Marker)检测,Vconn 供电就靠它。

调试小技巧: 用万用表量 CC 对地电压。如果在 0.4V 左右,说明是 36k 上拉,只能给默认电流。想要快充?得换成 10k 上拉。

2.3 连接检测与正反插判断

Type-C 公头有 CC1 和 CC2 两个引脚,但线缆里只有一根 CC 线真正连到对面。

插进去时,如果线缆正插,CC1 连通;反插,则 CC2 连通。Source 端通过检测 哪个 CC 引脚电压被拉低,就能知道插入方向。

我遇到过一块定制板,CC1 和 CC2 在 PCB Layout 上画反了,结果正插变反插,DP/DN 交换导致 USB 2.0 不通。修起来其实很简单——交换一下 CC 检测逻辑就行,但排查花了一整天。

避坑指南: 我曾经因为 CC 走线过长,寄生电容太大,导致 Source 端检测时误判。协议要求 CC 总电容不超过 600pF,走线超过 10cm 就要小心了。另外,ESD 保护管的结电容也要算进去。

2.4 角色检测状态机

Source 和 Sink 的角色不是固定的。插上后,双方通过 CC 电压做一次“握手”。

基本流程如下:

  1. Source 上拉 Rp,等待 CC 电压变化。
  2. Sink 下拉 Rd,CC 电压被拉到某个分压值。
  3. Source 检测到电压,知道自己该供电了。
  4. Sink 检测到电压,知道自己可以取电了。
  5. 如果双方都想当 Source?CC 电压会异常,这时候需要 DRP 切换。

DRP(双角色端口)会交替上拉和下拉,直到检测到对方的存在。我手头有个测试仪,能看到 DRP 切换频率——一般是 50ms 到 100ms 一个周期。

下面这张图帮你把整个检测流程串起来:

CC 连接检测与角色判定流程 Source 上拉 Rp 等待 CC 电压变化 检测 CC 电压 Vcc 正常 判定为 Source 开启 VBUS Vcc 浮空 未检测到设备 继续等待 Sink 下拉 Rd 检测 CC 电压 判定为 Sink 准备取电 CC 物理连接 DRP 交替模式 Source/Sink 切换 周期约 50-100ms

2.5 调试 CC 的常用方法和工具

调 CC 其实不复杂,但需要耐心。

  • 万用表测电压:先确保 Source 端有正上拉,Sink 端有下拉。标准值参考上面的表格。
  • 示波器看波形:DRP 切换时能看到方波。如果波形乱跳,可能有接触不良。
  • PD 分析仪:我常用的是一个 USB 转 I2C 的调试棒,能抓到 CC 上的 BMC 编码数据。上电瞬间的握手包尤其重要。
实测经验: 有一次客户反映充电断断续续。我抓了 CC 波形,发现电压在 0.8V 和 1.2V 之间抖动——原因是 Sink 端的 Rd 用了 5% 精度的电阻,温飘后变成 5.4kΩ,导致分压比偏高。换成 1% 精密电阻后问题解决。所以啊,电阻精度不能用错。

2.6 避坑清单

最后列几个我踩过的坑,你写代码或画板子时留意:

  1. CC 线不要过长,超过 15cm 就可能超 600pF 电容限制。
  2. 上下拉电阻不要共用,Source 和 Sink 必须独立,否则会互相拉低。
  3. Vconn 供电:如果你用 E-Marker 线缆,需要给 CC 提供 Vconn(3.3V/5V)。这个很容易忘。
  4. 不要在 CC 上加太大的滤波电容,会拖慢检测速度。
  5. 双角色(DRP)切换时间:我见过固件里切太快导致死锁的。建议至少留 50ms 的稳定时间。
一句话总结: CC 就是 Type-C 的“门卫”。门卫没上岗(上下拉不对),后面所有 PD 通信都是空谈。把你第一个调试步骤永远放在检查 CC 电压上。