人生苦短,我用Type C。
USB Type-C是在2013年底公布,2014年开始有量产产品推出,经过多年的发展,如今已经成为了主流的USB接口。
其双向正反插与较小的8.3×2.5mm接口,大电流高速度的特点。现在许多设备都在使用。
USB TYPE-C 24Pin 母头定义
USB TYPE-C 24Pin 公头定义
当然,如果设备只需要充电或者只采用USB2.0传输速率,也有多种接口可选。目前可以买到的Type C其区别如下:
名称 | 2Pin | 6Pin | 8Pin | 10Pin | 12Pin | 14Pin | 16Pin | 24Pin |
---|---|---|---|---|---|---|---|---|
GND | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
VBUS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
TX1+ | ✅ | |||||||
TX1- | ✅ | |||||||
CC1 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
D1+ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
D1- | ✅ | ✅ | ✅ | ✅ | ✅ | |||
SBU1 | ✅ | ✅ | ✅ | ✅ | ✅ | |||
RX2- | ✅ | |||||||
RX2+ | ✅ | |||||||
TX2+ | ✅ | |||||||
TX2- | ✅ | |||||||
CC2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
D2+ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
D2- | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
SBU2 | ✅ | ✅ | ✅ | ✅ | ||||
RX1- | ✅ | |||||||
RX1+ | ✅ | |||||||
USB | 仅供电 | 仅CC供电 | 单面USB2.0 | USB2.0 | USB2.0 | USB2.0 | USB2.0 | USB 4 |
Type C CC:配置通道
Type C 这么好,画了板子新鲜出炉,发现USB A 转 C的线正常工作,USB C 转 C的线完全不工作。这是CC配置的问题。Type C 接口可以看到有一堆比较奇怪的引脚,其中CC的意思是 Configuration Channel 配置通道。其主要作用为传输PD数据,判断UFP设备类型。
为了供电
总所周知,USB是主从模式,有一个主机就有一个从机。例如电脑是主机,U盘是从机。我们定义下行端口(Downstream Facing Port,DFP)为DFP端,为从机供电;上行端口(Upstream Facing Port,UFP)为UFP端。在DFP的CC Pin会有上拉电阻Rp,在UFP有下拉电阻Rd。在DFP与UFP未连接之前,DFP的VBUS是没有输出的。当DFP与UFP连接后,CC Pin相接,DFP的CC Pin侦测到UFP的下拉电阻 Rd,表示接到UFP,DFP便打开VBUS的FET开关,输出VBUS电源给UFP。
那为什么需要两根CC线而不是一根,主要是因为Type C支持正反插,不会自动翻转线序,CC1用来检测正插,CC2用来检测反插。
还能配置设备类型
由于CC有两根,而且CC可以设置为不同的电平,所以CC也被用作识别UFP设备的功能。如下表。
CC1 | CC2 | 状态 |
---|---|---|
开路 | 开路 | 未连接设备 |
下拉 | 开路 | 连接设备,进行供电 |
开路 | 下拉 | 连接设备,进行供电 |
开路 | 上拉 | 只充电,不访问UFP数据 |
上拉 | 开路 | 只充电,不访问UFP数据 |
上拉 | 下拉 | 充电,并访问UFP数据 |
下拉 | 上拉 | 充电,并访问UFP数据 |
下拉 | 下拉 | 测试模式(DAM) |
上拉 | 上拉 | 音频设备连接 |
还有检测正反插
由于Type C是支持正反插,CC Pin被用来侦测正反插,从DFP的角度来看,当CC1接到下拉电阻就是正插,如果是CC2接到下拉电阻就是反插。在侦测完正反插后,就会输出相对应的USB信号,例如CC1对应的是TX1与RX1。下图的右边整合了MUX,由于USB 3.1的传输速率高达10 Gbps,为了避免PCB的走线出现分支,所以正反插进来的信号会由MUX来切换,正插时,切换到RX1&TX1,反插时,切换到RX2&TX2。
OTG去哪里了?
USB 2.0 On-The-Go(OTG)主要应用在可携式装置,例如手机或平板上,可做为USBDFP或USB周边装置使用。所有USB 2.0 OTG产品都必须使用Micro-A/B插座,不能使用Type C插座。Micro-A/B插座提供了一个OTG专用的引脚:ID脚,用于分辨OTG设备模式。
那我们先来说说USB 2.0 OTG,如果ID脚位接地,OTG产品可做为USBDFP使用,并为所连接的USB周边设备提供电力。反之,OTG装置则将做为USB周边设备使用。表显示插座与插头的脚位输出。插头的ID脚位有接地或未连接两种模式,以供选择DFP或周边设备功能。
但是在USB Type C插座中,明显消失的是之前Type-A和Type-B接头的ID引脚。在Type-C中,使用CC引脚这种不同的处理方式来决定设备是作为DFP,还是作为外设。CC引脚所执行的功能与ID引脚之前执行的功能一样;这就是USB Type C的DRP(Dual Role Port)。
DRP使USB可以做为DFP也可以做为UFP,可以供电,也可以受电。当DPR接到UFP装置,DRP会转换为DFP模式。当DRP接到DFP装置,DRP会转换为UFP模式。当两个DRP装置接在一起,两个装置会随机握手,一方为DFP,一方为UFP。这时候就需要软件定义或者专用芯片进行通讯协商了。
精准供电
USB IF 定义了一个表格,描述了不同接口的供电能力,如下表。
模式 | 最大电压 | 最大电流 | 备注 |
---|---|---|---|
USB 2.0 | 5V | 500ma | |
USB 3.1 | 5V | 900ma | |
USB BC 1.2 | 5V | 1.5A | 老款手机充电用 |
USB Type C @ 1.5A | 5V | 1.5A | |
USB Type C @ 3A | 5V | 3A | |
USB PD | 48V | 5A | 需要芯片握手 |
其中USB 2.0,USB3.1,USB BC1.2是先前USB协会定义的标准,可以跟Type C兼容。USB Type C 1.5A与3A是Type C专用的,需要有CC Pin来做侦测。USB PD的功能还需要有USB PD专用芯片来完成协议握手。而握手信号是载在两端连接的CC Pin上。
Type C如何去决定要执行那个模式呢?这也需要靠CC Pin。先前提到DFP会有上拉电阻Rp,UFP会有下拉电阻Rd,当DFP与UFP相接,CC Pin上就会有分压,Rd是固定5.1k,而Rp就会依照DFP的类别,而有不一样的阻值。有一些UFP会检测 CC Pin上的分压来知道DFP的VBUS种类。另外DFP也用不同大小的定电流源来供给CC Pin,当电流流到Rd,同样可以产生电压,让UFP知道DFP的VBUS模式
Type C 规范定义了DFP在不同模式下,在CC Pin要供多大的电流或是要用多大的上拉电阻Rp的阻值。
除了供电呢
来点PCIe
USB PD提供了的VDM(Vendor defined message)功能,可以让主机与从机认到对方的ID,而进到 Alternate mode。VDM也是透过CC Pin来传输的。下面为一个扩展坞例子,主机(System)认到扩展坞(Dock)装置,知道扩展坞有PCIe装置,于是主机利用Type C的SBU1/SBU2、Tx2/Rx2来传输PCIe信号。
插个耳机
及其先进的3.5mm插孔很少见,于是有线耳机使用Type C传输音频。只要CC1和CC2都上拉,系统就会认到这是一个耳机,然后让DP/DN输出耳机的左右声道。SBU1/SBU2用来作MIC/AGND。
CC还有很多作用,不过因为成本因素,用的芯片方案不同什么的,可能你的Type C设备并没有输出PCIe,输出音频的功能(主要是给的不够多)
绘制Type C相关电路
我只是替代USB 2.0 Micro B接口
14Pin
那很简单,无脑两个CC接一个5.1k电阻下拉就行了。SBU空着不用。
白线画的是CC下拉电阻。
16Pin
16Pin 也是一样的
沉板只要这样画就可以了,白圈圈住的是CC下拉电阻
24Pin 也是一样的(真的这么富有吗
替代那个丑爆了的USB 3.0 Micro B
那就麻烦了,Type C需要专用芯片来支持正反插,例如这里用的VL160
USB3.0高速布线就需要多研究研究了,这里给一个参考