首页 > 其他分享 >Type-C协议(CC检测原理)-CC1和CC2接电阻-数字和模拟耳机兼容

Type-C协议(CC检测原理)-CC1和CC2接电阻-数字和模拟耳机兼容

时间:2024-08-06 18:50:07浏览次数:7  
标签:耳机 USB CC CC1 CC2 Type

1 简介

USB Type-C其实是USB的一种接口形态,USB的接口形态可以分为USB Type-A、USB Type-B、USB Type-C,USB Type-A和USB Type-B还有两种不同规格的接口形态,分别是USB Mini-A(B)和USB Micro-A(B)。

USB各型号接口图解

越来越多的手机开始采用Type-C作为充电和通信端口,Type-C连接器实物和PIN定义如下图:

Type-C连接器实物和PIN

Type-C 全称是USB Type-C 接口,是一种全新的 USB 接口形式。USB Type-C接口宽度8.3毫米,厚度2.5毫米,而Micro USB接口宽度7.4毫米,厚度2.35毫米,Type-C比Micro USB接口大稍许,比传统USB纤薄小巧。两者大小对比如下图所示。

USB Type-C与传统USB插头对比

区分插头公母的方法有:观察外观形状、检查极性、根据大小和形状区分。以下是详细介绍:

观察外观形状。一般来说,插头的一面是公头,另一面是母头,公头的头部通常带有尖端,而母头的头部则通常带有圆孔。

检查极性。部分插头会在其上标记“J”(公头)和“K”(母头),另外,公头的接触片通常位于内部,而母头的接触片则位于外部。

根据大小和形状区分。通常情况下,母头的尺寸比公头大,公头比母头小,因此,可以通过大小和形状来区分公母。
Type-C插头和插座的管脚线序

Type-C连接器中有两个管脚CC1和CC2,他们用于识别连接器的插入方向,以及不同的插入设备。本文介绍CC的基本识别原理。

Type-C插头和插座的管脚线序 Type-C管脚类型归类

DFP、UFP和DRP概念

DFP——Downstream Facing Port,也就是Host
UFP——Upstream Facing Port,也就是Device
DRP——Dual Role port,既可以做DFP,也可以做UFP。

Type-C插头管脚线序

在建立连接之前,DRP的角色在DFP和UPF之间切换。如果两个DRP连接,最先随机到那种角色后开始建立连接,之后可以通过USB协议协商进行动态切换。

2 为什需要CC检测


虽然USB Type-C插座和插头的两排管脚对称,USB数据信号都有两组重复的通道,但主控芯片通常只有一组TX/RX和D+/-通道(某些芯片有两组TX/RX和D+/-通道)。

由于USB2.0的数据率最高只有480Mbps, 可以不考虑信号走线的阻抗连续性,USB2.0的D+/-信号可以不被MUX控制而直接从主控芯片走线,然后一分二连接至USB Type-C插座的两组D+/-管脚上。

但USB3.0或者USB3.1的数据率高达5Gbps或者10Gbps,如果信号线还是被简单地一分二的话,不连续的信号线阻抗将严重破坏数据传输质量,因此必须由MUX切换来保证信号路径阻抗的一致性,以确保信号传输质量。

 

下图中右侧所示的MUX从TX1/RX1和TX2/RX2中选择一路连接至主控芯片,而这个MUX就必须被CC管脚控制。

在USB2.0应用中,无需考虑CC方向检测问题,但USB3.0或者USB3.1应用中,必须考虑CC方向检测问题。

注意UFP,比如U盘,移动硬盘内部不需要CC逻辑检测,因为它是上行,只有一对USB2.0或USB3.0信号,如下图


3 CC检测原理


CC信号有两根线,CC1和CC2,大部分USB线(不带芯片的线缆)里面只有一根CC线,DFP可根据两根CC线上的电压,判断是否已经插入设备。通过判断哪根CC线上有下拉电阻来判断方向,下图的说明已经非常清晰。

 

如果CC1引脚检测到有效的Rp/Rd连接(对应的电压),则认为电缆连接未翻转。
如果CC2引脚检测到有效的Rp/Rd连接(对应的电压),则认为电缆连接已翻转。

“有效的Rp/Rd连接”指在CC上形成了有效的电压。
从DFP的角度看,下表列出了所有可能的连接状态,

 

以上只是介绍了CC检测中判断是否翻转的原理,两个CC信号还有向UPF通告DFP提供电流能力的功能等,见下文。

3.1 DFP的上拉电阻Rp


DFP的CC1和CC2信号上都必须有上拉电阻Rp,上拉到5V或3.3V。或者CC1和CC2都用电流源上拉。最终的目的是在插入后,能检测到CC1或CC2上的电压,进而判断是否翻转以及DFP的电流能力。如下是所有可能的配置。可以选择右边三列中的任何一列作为上拉方式,比如Fairchild的FUSB300就是用330uA上拉,TI的TUSB320LAI用的是80uA的上拉,不同的上拉方式在CC引脚上形成的电压不同,不同的电压对应不同的电流能力。


3.2 UPF的Rd


UFP的CC1和CC2管脚都要有一个下拉电阻Rd到GND(或者使用电压钳位)。Rd的处理方式如下表。

 

注意,最后一列的电流源连接至的电压,是指3.1节中表格的最后一列电流源的上拉电压。
结合这个表格,和3.1节的表格,我们把每种可能的上下拉范围都计算出了最终形成的电压范围,如下表。

CC检测芯片会检测这个电压,通过判断电压范围来决定下一步操作。下表是CC管脚上不同的电压对应的DFP能提供的电流能力。第二列列出的每一种电压范围,都分别覆盖了上表计算出的电压。Rp/Ra的计算是同理的。


3.3 数据线上的Ra


带电子标签的线缆,其中一个CC管脚被更名为VCONN,用于给电子标签芯片供电。这个VCONN管脚与GND之间需要一个Ra电阻,这个电阻值范围是800Ω~1.2KΩ。

 

3.4 VCONN电源


VCONN的允许范围是4.75V~5.5V,要求供电能力是1W。默认情况下DFP提供这个电源。如果两个DRP连接,则双方可以通过USB PD协议协商来交换VCONN供电方。
支持PD的USB3.0接口均需支持VCONN,可以通过下面两种方式之一提供VCONN电源。

如果其中一个CC引脚上检测到有效的Rp/Rd连接,则VCONN电源可以接到另一个对应的CC引脚。
如果其中一个CC引脚上检测到有效的Rp/Rd连接,先检查另一个CC引脚是否也有Rp/Ra连接,然后再提供VCONN。
先检测是否有Ra存在,如果有说明需要Vconn供电,此时再提供Vconn。检测过程不需要Vconn存在。
注意,每一个CC引脚内部都有一个开关,轮训CC和VCONN功能,下图是一个典型的连接方式:

4 手机都是DRP


现实中,我们的手机都是DRP,既能做DFP,又能做UFP,那么是如何切换呢?
DRP在待机模式下每50ms在DFP和UFP间切换一次。当切换至DFP时,CC管脚上必须有一个上拉至VBUS的电阻Rp或者输出一个电流源,当切换至UFP时,CC管脚上必须有一个下拉至GND的电阻Rd。此切换动作必须由CC Logic芯片来完成。当DFP检测到UFP插入之后才可以输出VBUS,当UFP拔出以后必须关闭VBUS。此动作必须由CC Logic芯片来完成。下面是一个CC逻辑芯片框图,CC上有一个开关,在不断切换功能。


5 USB Power Delivery 2.0


这个是由USB-IF制定的单线协议,在CC线上传输,用于协商供电角色,电压,最大供电能力,数据角色,备用模式等,端口与供电电缆之间的通信业通过PD协议进行。协议不做展开,详见USB-IF官网。下面是协议的几个特点:

1.所有通信均通过CC线。
2.DFP是总线主设备,用于发起所有通信。
3.所有消息均采用32bit 4b/5b编码的双向标记编码(Bi-phase Mark Coded,BMC)
4.波特率300K
5.CRC32错误检验+消息重试


6 Type-C线缆规范


线缆至少支持10000次拔插。
不规定信号线规,但是必须保证USB2.0和USB3.0的信号完整性
CC和SUB1/SUB2线上的阻抗不大于50Ω
GND返回路径上的最大IR压降为250mV
Vbus上的最大IR压降为500mV
USB Type-C规范中并未明确规定线缆长度,但是电器要求产生了一些物理限制。USB3.1 Type-C转Type-C电缆组件在5GHz下的插入损耗指定为为-6dB,从而将电缆长度有效限制为1米。USB3.0 Type-C转Type-C电缆组件在5GHz下的插入损耗指定为为-7dB,从而将电缆长度有效限制为2米。

 

7 带电子标签的Type-C数据线


如果Type-C数据线上带了芯片(我们称之为电子标签),这个芯片可以通过USB供电规范2.0 BMC协议与USB端口通信。电子标签电缆可用VCONN供电,也可以直接由Vbus供电,最高可消耗70mW的功率。如下类型的电缆必须要电子标签:

兼容USB3.1的USB Type-C电缆
100W供电电缆。能够实现60W以上功率承载能力的任何电缆都必须有电子标签,并且能够与DFP端口通信。
带电子标签的电缆如果插入不支持USB供电规范2.0的插座中,其行为与标准的无源电缆完全相同。


8 音频配件模式


8.1 数字耳机


Type-C接口的数字耳机是一个UFP(Device),手机是DFP。耳机的CC1和CC2引脚上必须有Rd,实际上,乐视数字耳机的CC管脚上有一颗5.1K电阻。

8.2 模拟耳机

模拟耳机与Type-C接口的转接线


协议要求模拟耳机转接线上把两个CC引脚直接接到GND(必须小于Ra)。

逻辑框图

USB Type-C数据线除了充电传输数据,还可以传输音视频等,很多安卓手机不但用Type-C接口替代了传统的Micro USB而且还取消了3.5mm耳机插孔。对于这样的手机要使用耳机只能用Type-C转3.5mm耳机转换线,经过研究Type-C接口定义和相关资料,发现Type-C输出音频和接收话筒信号对应的针脚,如下图所示。6、7、8针脚对应右声道、左声道、话筒麦克风,1脚对应耳机的GND。

Type-C输出音频和接收话筒信号对应的针脚

手机上用的耳机都是三节四段式,有四根电缆,分别是GND(地)、Mic(话筒麦克风)、L(耳机左声道)、R(耳机右声道)。用万用表测量多种耳机,大部分是第一种接法,只有诺基亚是第二种接法。如下图所示。注意下图与上图中Type-C各针脚对应关系。

三节四段式耳机插头的管脚图

这样搞清楚了,Type-C各针脚与耳机话筒、耳机左右声道对应关系,就可以动手做一条USB Type-C转3.5mm耳机转接线。体验DIY的乐趣,享受成功的喜悦。注意手机随机的Type-C数据线基本都是缩水的部分针脚缺失,改造之前看一下需要的针脚是否完整。另外USB Type-C插头的针脚较多,非常密集手工焊接存在一定难度,请量力而行。

8.3 兼容数字耳机和模拟耳机

这一类的机型包括小米note3,华为p20pro,坚果锤子等(数字耳机就是一个usb从设备)。

电路板设计有一个耳机自动切换ic,当模拟耳机插入时,模拟耳机的左右声道接在usb+、usb-,因此需要切换开光,如DIO3202A,vbus电平为高,芯片切换到usb通路,vbus电平为低,切换到耳机通路,当数字耳机插入时,type-c逻辑芯片检测到从设备,cpu上的usb切换到主模式,并提供5v(vbus)给从设备供电,完成相应的数字信号传输。

兼容模拟耳机的原理,typec逻辑芯片会识别成不同的设备(数字耳机,usb设备 模拟耳机 音频配件)(也可以使用mic来识别耳机的插拔 原理: 模拟耳机接入耳机后由于vbus没电,耳机逻辑ic选择耳机通道,耳机mic检测脚初始化为高,当模拟耳机插入后,mic相当于一个1k的电阻,由于分压,mic脚的电压会拉低,mic_det脚所在的pmic上的内部电压比较器检测到了电平变化进一步触发了耳机mic的中断,进一步判断耳机的类型,从而识别达到耳机)。

9 电路图

因为TypeC接口有6P、16P、24P等各种,其中6P只能供电,16P除了供电还有USB2.0的D+和D-引脚,24P包含了全功能USB3.0各个引脚。电路图如下:

6P引脚 16P 引脚 24P 引脚

9.1 TypeC-6P

一般单片机可用下面这种电路。

如果想精简电阻,也可以这样:

CC1与CC2短路(不建议)

当供电端不带USB控制芯片时,CC1和CC2可共用一个下拉电阻,此时供电端CC2连接是断开的。但是当使用带Emark的USB控制芯片时,就不行了,此时单片机会被当做模拟音频设备(耳机)而被拒绝供电。

参考:

从树莓派4 USB-C接口设计失误看嵌入式系统的接口升级

CC1和CC2共用一个下拉电阻的问题

经过实际测试发现,树莓派4上面的这个USB-C接口,其CC1和CC2是连接在一起的,并共用了一颗5.1k的电阻下拉到地。这个设计看似非常巧妙,USB-C接口的控制做到了极致简单,只需要一颗5.1k下拉电阻。当外接的USB-C Cable是不带Emark芯片的情况下,确实可以正常工作。因为这类USB-C Cable的CC2是悬空的,只有CC1有连接到对端,所以,这种Cable跟RaspBerry 4B的USB-C接口母座一连起来,就非常好的符合了Sink端的设计规范,即CC1上,有一个5.1k的电阻下拉到地。

图2 树莓派4B在使用不带Emark 芯片的连接线时的连接情况

但是,USB TYPE-C规范里面,还规定了一种带Emark 芯片的Cable,这种Cable的CC2上,有一个1K的下拉电阻,用来告知DFP端的CC识别芯片,需要往CC2上提供VCONN Source。一旦跟这样的Cable连接起来,RaspBerry 4 Pi model B就会出现严重问题。因为CC1和CC2连接起来后,会跟Cable上的1K到地电阻并联,形成一个比1k电阻还小的阻抗,从而满足了USB-C规范中Audio Adapter Accessory Mode的连接规范,被电源端误认为是一个模拟耳机设备,从而拒绝供电。

图3 树莓派4B在使用带Emark 芯片的连接线时的连接情况

通过上图我们可以看到,Emark 连接线上的1k电阻会导致,CC1建立失败,1k电阻和5.1k电阻的并联,会导致RaspBerry 4B被认为是一个Audio Adapter Accessory Mode。解决这个问题的方法也很简单,只需要在CC1和CC2上各接一个5.1K电阻到地,互相独立就行了。这一点可以搜索一下笔者在2015年的原创文章《你真的需要TYPE-C芯片吗》。这篇文章为大家提供了判断系统是否需要使用USB-C 控制芯片的三个原则和两个实现方法。

RaspBerry 4B在USB-C接口上的设计,其实属于入门级设计,因为这个接口仅仅用来进行5V供电和一个USB2.0 通信而已,并无复杂的音视频及USB3.0功能。在实际的嵌入式开发中,一个USB-C接口的功能,可能远不止于此。下面我们就大功率供电供电、高速信号传输、双C口DRP控制三点进行阐述。

9.2 TypeC-16P

一般单片机可用下面这种电路:

同理,也可以将CC1和CC2共用一个5.1K的下拉电阻。

 

9.3 TypeC-24P

用24PIN的TypeC时,一般是需要用到USB3.0协议,则TypeC接口中的A2、A3、A10、A11、B2、B3、B10、B11接到相应芯片的USB3.0接口上,将CC1和CC2按相应角色进行上拉下拉或者接到芯片上即可。

————————————————

参考出处

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:Type-C接口简单介绍-面向单片机应用_type-c接口图片-CSDN博客

版权声明:本文为CSDN博主「AirCity123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。


原文链接:https://blog.csdn.net/AirCity12

标签:耳机,USB,CC,CC1,CC2,Type
From: https://www.cnblogs.com/seanhn/p/18345816

相关文章

  • centos7系统 通过编译安装gcc7.5.0
    背景:现有的centos7gcc的最高版本为4.8.5项目需要升级到7.1.0以上正常方式可以通过以下命令即可完成升级:$sudoyuminstallcentos-release-scl$sudoyuminstalldevtoolset-7-gcc*$sclenabledevtoolset-7bash注意:第三条指令scl enable devtoolset-7只......
  • javaCC链6
    CC6条件:commons-conlections<=3.2.1不限制jdk版本payloadpackageorg.example;importorg.apache.commons.collections.Transformer;importorg.apache.commons.collections.functors.ChainedTransformer;importorg.apache.commons.collections.functors.ConstantTrans......
  • javaCC链3
    cc3cc3区别cc6不再是使用Rutime类执行命令,而是通过类加载器动态加载恶意类然后执行类加载:ClassLoader.loadClass->ClassLoader.findClass->ClassLLoader.defineClassClassLoader.loadClass:寻找加载的类(双亲委派机制)ClassLoader.findClass:如果loadClass没找到类,就根据类名称/......
  • 实验6-9 使用函数输出指定范围内的Fibonacci数
    本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:intfib(intn);voidPrintFN(intm,intn);......
  • 获取第三方GET接口的data数据,服务器需要设置正确的 Access-Control-Allow-Origin
    在现代Web开发中,由于同源策略的限制,浏览器通常不允许从一个域名(origin)直接访问另一个域名的资源,除非服务器端设置了适当的CORS(跨源资源共享)策略。项目中如何直接获取get接口https://api.cp.139.com/cgate/cme/v1/appUpgrade/version?channel=baidu02下的接口相应对象:{"code":......
  • Access to image at
    Accesstoimageat...fromorigin...hasbeenblocked图片跨域Accesstoimageat'http://127.0.0.1:3000/api/getImg?url=/uploads/file/20240421/file-1713715007811-logo.png'fromorigin'http://ggbol.gnway.cc'hasbeenblockedbyCORSpoli......
  • ccwkrlib.dll文件怎么下载和安装,ccwkrlib.dll文件缺失的一键修复
    ccwkrlib.dll是一个在Windows系统中使用的动态链接库文件。它可能是某个软件或程序正常运行所必需的组件。动态链接库(DLL)文件是包含可由多个程序同时使用的代码和数据的库。许多应用程序并不是一个完整的可执行文件,它们被分割成相对独立的动态链接库,放置于系统中。当执行某......
  • lammps模拟——FCC晶体中的ISF,ESF,twin转变
    在FCC(面心立方)晶体中,ISF(本征堆垛层错,IntrinsicStackingFault)、ESF(外禀堆垛层错,ExtrinsicStackingFault)以及twin(孪晶)转变是材料科学中重要的概念,它们的形成通常与晶体生长过程中的原子扩散、堆垛错误或变形过程中的滑移和孪生有关。下面将分别介绍这三个概念及其在FCC晶体中......
  • ubuntu24.04编译GCC
    GCC基础设施获取GCC的依赖组件ftp://gcc.gnu.org/pub/gcc/infrastructure/下载文件到你想要的目录~/Downloads,或者/tmp/gcc。用静态库来配置make脚本。$./configure--disable-shared--enable-static--prefix=/tmp/gcc--disable-shared这个选项值得走进看看。如果需......
  • 河南省赛ccpc
    ##F.优秀字符串题意:有n个字符串找出优秀字符串的个数。优秀字符串的定义:长度为5,第三个字符和第五个字符相同,前四个字符互不相同。分析:直接模拟即可代码:```#include<bits/stdc++.h>usingnamespacestd;intmain(){   intn;cin>>n;intans=0;   while(n--){......