第2章:CC逻辑与角色定义

好,咱们接着聊。上一章我们把TypeC的物理层讲清楚了,这一章要进入一个更核心的话题——CC逻辑。

说白了,CC引脚就是TypeC的「大脑」。没有它,两根线就是两根普通的电源线。我刚开始接触TypeC时,觉得CC就是个检测脚,后来才发现,它承担的角色远比想象中复杂。

2.1 CC1/CC2引脚功能

CC引脚全称是Configuration Channel,配置通道。它干三件事:

  • 检测连接:判断有没有设备插进来
  • 识别角色:谁是供电方,谁是受电方
  • 协商功率:决定能跑多大电流

CC1和CC2是对称的。正插时,CC1连上;反插时,CC2连上。你想想看,这设计多巧妙——用户永远不用关心正反。

关键点:CC1和CC2不会同时工作。芯片内部会检测哪根线有下拉电阻,就启用哪根。

我在项目中遇到过一个问题:某次打样回来,发现设备插上没反应。查了半天,原来是CC1和CC2的走线长度差太多,导致信号时序出问题。嗯,这里要注意——PCB布局时,CC1和CC2的走线要尽量等长。

2.2 DFP/UFP/DRP角色定义

TypeC世界里,设备分三种角色:

角色 全称 通俗理解 典型设备
DFP Downstream Facing Port 供电方(Host) 充电器、电脑USB口
UFP Upstream Facing Port 受电方(Device) 手机、移动硬盘
DRP Dual Role Port 双角色(可切换) 笔记本、充电宝

怎么区分呢?看CC引脚上的电阻配置:

  • DFP:CC引脚上拉一个电阻Rp到Vbus(通常是4.7kΩ或10kΩ)
  • UFP:CC引脚下拉一个电阻Rd到GND(通常是5.1kΩ)
  • DRP:CC引脚在Rp和Rd之间周期性切换

说白了,谁拉Rp谁就是供电方,谁拉Rd谁就是受电方。我刚开始做设计时,总觉得这规则太简单,后来才发现,正是这种简单保证了兼容性。

个人经验:DRP设备的切换周期一般是50ms到100ms。我习惯用80ms,既不会让用户感觉到延迟,又能快速响应角色变化。

2.3 Source/Sink角色协商过程

角色协商,说白了就是「讨价还价」的过程。Source想给多少,Sink想要多少,得谈。

整个过程分三步:

  1. 连接检测:Source检测到Rd,知道有设备插入了
  2. 角色确定:Source通过CC线识别Sink的身份
  3. 功率协商:双方通过PD协议(如果支持)确定电压电流

这里有个细节:如果不支持PD协议,那就走默认的5V/3A。我见过不少工程师以为TypeC必须支持PD,其实不是——只做5V/3A的充电器也是合规的。

避坑指南:我曾经遇到一个案例,Sink设备只拉了Rd,但Source端误判了电阻值,导致协商失败。后来发现是Rd的精度问题——5.1kΩ必须用1%精度的电阻,别省这个钱。

为什么协商过程这么重要?你想想看,如果Source和Sink的角色搞反了,会发生什么?轻则充不进电,重则烧设备。TypeC的CC逻辑,本质上就是一套「握手协议」,确保双方在通电前先确认身份。

嗯,这里要补充一点:DRP设备在切换角色时,会有一个「死区时间」。我习惯在固件里加一个50ms的延时,防止频繁切换导致的不稳定。

2.4 实际设计中的注意事项

讲完理论,咱们聊聊实战。我总结了几条经验:

  • 电阻选型:Rp和Rd的精度直接影响协商成功率,建议用1%的贴片电阻
  • ESD保护:CC引脚是暴露在外的,一定要加TVS管,我吃过这个亏
  • 去耦电容:CC线附近放一个100nF的电容,能有效抑制噪声
  • 固件处理:角色切换时,先断开Vbus再切换,避免热插拔打火

最后说一句:TypeC的CC逻辑,看起来复杂,其实核心就一句话——「谁拉Rp谁说话,谁拉Rd谁听话」。搞懂这个,后面的PD协议就好理解了。

下一章,咱们聊聊PD协议的具体实现。到时候我会拿一个实际项目来拆解,保证你听完就能上手。