USB Type-C引脚解析 && CC、DFP、UFP、DRP用途解析【转】

2023-11-11

1、Type-C接口引脚分布

在这里插入图片描述

  • 有24根信号,其中电源和地占了9根,有4个地和4个Vbus,用于提升电流传输能力。
  • A6、A7:用于传输USB2.0的两组信号是交叉连接的,所以会使得插头以任意方向插入时数据都是连通的。
  • A2、A3,A10、A11:有两组(8根)高速数据通路,用于传输数据
  • CC1、CC2:用于传输方向确认和正反插确认,以及USB PD BCM码信号传输功能,实现负载的功能配置,当其中一根作为TypeC接口的配置信号时,另一根则变成供电电源。(SUB1\SUB2作为辅助信号,在一些特殊模式下使用)。

2、USB TypeC接口特点

①可盲插、无方向性
②PD最大支持功率100W(20V/5A)
③单组最高速率支持10Gbps。
④能够给不同电压的设备充电。

3、DFP、UFP、DRP用途解析

①DFP:下行端口,可以理解为一个Host,DFP作为source给VBUS和vcon供电的,简单理解为一个提供电源的设备,如:电源适配器。
②UFP:上行端口,可以理解为Device,UFP可以理解为受电端口,DFP为供电端口,UFP从VBUS中取电,并可提供数据。典型设备如:U盘、移动硬盘。
③DRP:双角色端口,DRP既可以做DFP又可以做UFP,也可以在DFP和UFP间动态切换,典型设备是:笔记本电脑。

4、深入解析CC通道

(1)CC channel
CC:配置通道,作用是检测USB连接,检测正反插,USB设备间数据与VBUS的连接建立与管理。

  • 探测连接,区分正反面,区分DFP和UFP的主从关系。
  • 配置Vbus,有USB TypeC和USB Power Delivery两种模式。
  • 配置Vconn,当线缆里有Emark芯片的时候,一路CC通道传输CC信号,另一路CC通道变成Vconn,给EMark芯片供电。
  • 如果CC通道连接其他配置,如连接音频配件、DP、PCIE时,CC通道配置是不同的。
    在这里插入图片描述

上图分析

  • 在DFP的CC pin有上拉电阻Rp,在UFP有下拉电阻Rd。
  • 在未连接时,DFP的VBUS是无输出的,连接后CC pin相连,DFP的CC pin会检测到UFP的下拉电阻Rd,说明连接上了,DFP就打开Vbus电源开关,输出电源给UFP。而哪个CC pin(CC1、CC2)检测到下拉电阻就确定接口插入的方向,顺便切换RX\TX。
  • 电阻Rd=5.1k,电阻Rp为不确定的值,USB TypeC有几种供电模式,靠Rp的值来甄别,Rp的值不一样,CC pin检测的电源就不一样,然后来控制DFP端执行哪种供电模式。在这里插入图片描述
    (2)CC识别模式
    ①Source到Sink
    在这里插入图片描述

source端给sink端提供5V 3A
②Source到DRP模式
在这里插入图片描述
source只有上拉,但是DRP可作为source或者sink,所以DRP可以通过模拟开关切换上下拉。如果DRP作为source端,则Vbus上的模拟开关不会被打开,两边源是独立的。如果DRP作为sink端,则下拉到Rd电阻,source为DRP供电。
③DRP到sink的模式
在这里插入图片描述
DRP作为Source或sink,可以通过模拟开关切换上下拉,sink只有下拉电阻。当DRP作为source,则切换到Rp为sink供电,当DRP作为sink,则切换到Rd两边相互独立。
④DRP到DRP模式
在这里插入图片描述
有三种情况:
1)DRP1和DRP2可随机配置成source和sink相互独立
2)DRP1设置成source,DRP2设置成sink,则DRP1为DRP2供电。
3)DRP2设置成source,DRP1设置成sink,则DRP2为DRP1供电。

5、总结

  • TypeC无PD无Emark芯片时,最大输出为5V/3A
  • TypeC有PD3.0和Emark芯片时,最大输出为20V/5A
  • TypeC支持10Gbps、支持40bps
  • TypeC支持HDMI/DP的应用
  • TypeC支持模拟音频输出

参考b站up主:盖瑞jin
https://www.bilibili.com/video/BV1bV411b73T?spm_id_from=333.999.0.0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

USB Type-C引脚解析 && CC、DFP、UFP、DRP用途解析【转】 的相关文章

  • 为什么将函数参数声明为最终的?

    我目前正在阅读 Sams 出版的 24 小时自学 Android 应用程序开发 一书 我对 Java Android 或其他方面还比较陌生 我对 ActionScript 3 有非常扎实的背景 它与 Java 有足够的相似之处 因此该语言本
  • 共同的偏好不断消失

    我正在使用共享首选项来存储我的应用程序的登录凭据 除了一个用户之外 一切正常 一段时间后 共享偏好似乎会以某种方式重置或清除 我已针对该用户调整了我的应用程序 使其不再清除他的共享偏好设置 这样我就可以确定这不是我的应用程序的错 但即使在这
  • Android:“dp”到“px”转换?

    我正在读这篇文章 http developer android com guide practices screens support html http developer android com guide practices scre
  • (Ionic 2)尝试回退到 Cordova-lib 执行时发生错误:TypeError:无法读取未定义的属性“then”

    Edit 使用 ionic 2 时会发生这种情况 我知道它还不稳定 但我认为可能有一些解决方案 因为其他人似乎没有遇到这个问题 Edit end 由于某种原因 我在尝试使用 ionic build android 和 ionic build
  • 设置从 Facebook 登录获取用户电子邮件 ID 的权限

    我在用着Facebook 3 0 SDK对于安卓 我必须实施Facebook登录 我正在访问用户的基本信息 例如姓名 用户 ID 但我也想访问用户的电子邮件 我浏览了很多博客和论坛 但不知道该怎么做 我正在使用我自己的 android 按钮
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • TextView 之间有分隔线

    我正在尝试在 android studio 中创建以下布局 因为我对 android 东西还很陌生 所以我第一次尝试使用 LinearLayout 并认为这可能无法实现 现在我正在尝试使用RelativeLayout 我已经用颜色创建了这个
  • 如何在 sqlite 中将 2 列合并为新列

    我有一个包含 3 列的表 我必须将 2 列中的值按降序排列到一列中 A B C z 1 2 f 5 7 s 9 5 使用此示例 输出会将 B 列和 C 列中的值放入其中 如下所示 A B s 9 f 7 f 5 s 5 z 2 z 1 我当
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • 从 Firebase 数据库填充微调器

    public class MainActivity extends AppCompatActivity DatabaseReference reference Spinner areaSpinner ArrayList
  • Firebase:如何在Android应用程序中设置默认通知渠道?

    如何设置default通知渠道通知消息当应用程序在后台运行时会出现什么情况 默认情况下 这些消息使用 杂项 通道 如你看到的在官方文档中 https firebase google com docs cloud messaging andr
  • 应用程序未安装在 Android 模拟器上

    我正在 android Geocoder 中开发一个应用程序 当我运行该应用程序时 它会显示 2011 01 11 11 08 13 GeoTourProject 自动目标模式 使用现有模拟器 emulator 5554 运行兼容的 AVD
  • Flutter 深度链接

    据Flutter官方介绍深层链接页面 https flutter dev docs development ui navigation deep linking 我们不需要任何插件或本机 Android iOS 代码来处理深层链接 但它并没
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • SharedFlow 和 StateFlow 的主要区别

    两者有什么区别共享流 and 状态流 以及如何使用这些MVI建筑学 使用简单更好吗Flow或者这些作为状态和事件 Flow 是冷的 意味着它仅在收集数据时才发出数据 另外Flow不能保存数据 可以把它看成是水在里面流动的管道 Flow中的数
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja

随机推荐

  • 龙书D3D11章节习题答案(第四章)

    以下答案仅供参考 有错欢迎留言 Chapter 4 Direct3D Initialzation 1 Modify the previous exercise solution by disabling the ALT ENTER func
  • DVWA XSS总结

    笔者对该靶场所需的相关知识进行了总结 拓展 供大家学习参考 XSS 漏洞学习 DVWA XSS Reflected low 未进行过滤 构造payload medium 过滤规则 把 lt script gt 用str replace 函数
  • Java类加载

    1 JAVA类装载器在装载类的时候是按需加载的 只有当一个类要使用 使用new 关键字来实例化一个类 的时候 类加载器才会加载这 个类并初始化 类Main java 代码 publicclass Main publicstaticvoid
  • STM32—CAN通信

    文章目录 一 CAN通信简介 1 1 CAN简介 1 2 CAN协议特点 1 3 CAN通信的帧类型 1 4 数据帧结构 1 5 CAN的位时序 1 6 CAN的仲裁功能 二 STM32F1的CAN 2 1 bxCAN简介 2 2 bxCA
  • 8-js高级-6(promise)

    一 Promise 的理解和使用 1 Promise 是什么 理解 抽象表达 Promise 是一门新的技术 ES6 规范 Promise 是 JS 中进行异步编程的新解决方案 备注 旧方案是单纯使用回调函数 具体表达 从语法上来说 Pro
  • c语言练习题56:变种水仙花

    变种水仙花 描述 变种水仙花数 Lily Number 把任意的数字 从中间拆分成两个数字 比如1461 可以拆分成 1和461 14和61 146和1 如果所有拆分后的乘积之和等于自身 则是一个Lily Number 例如 655 6 5
  • Echarts柱状图的点击事件

    最近在做一些图表统计的功能 用到了百度的开源图表软件Echatrs 不得不提的是 不但上手简单而且扩展功能也是十分强大 在使用的过程中也遇到了不少问题 可能由于有关Echatrs的资料并不是很齐全 所以查找资料的过程也是相当曲折的 所以还是
  • 硬盘错误计数 计算机内存不足,硬盘问题!Ultra DMA CRC错误计数 电脑死机

    最近电脑经常出现卡机状态 此状态出现前先是硬盘嗡嗡响 就像汽车油门一样 一加一松 但声音不是很大 然后硬盘紧接着还有嘎吱的响声 这样重复几次 出现这种声音的时候 电脑出现死机状态 但停上几分钟后 一切恢复正常 有时候也会卡到电脑自动重新启动
  • linux下sqlite3的使用实例(c语言)

    文章目录 1 安装数据库 2 相关函数 3 代码实例 3 1创建一个数据库 3 2插入数据 3 3查看表的内容 3 4删除数据 1 安装数据库 Linux 下安装sqlite3 需要两个个命令 即可 1 sudo apt get insta
  • Bootstrap Table行内添加/行内编辑案例

    项目场景 JQuery版本为 3 6 0 Bootstrap版本为 3 4 1 Bootstrap Table版本为 1 8 1 Bootstrap Table Edit版本为 1 0 Bootstrap Select版本为 1 0 Boo
  • c++排序算法(快速排序、冒泡排序、选择排序)

    1 快速排序 这里的容器是全局的 不全局的话 可以在参数那里加个数组的参数传进来 从大到小 从大到小排序 void ResManage quickSortLastUpdateTime const int iLeftIndex const i
  • 华为手机投屏电脑_华为手机如何实现无线投屏?

    朋友们 大家好 大家知道吗 其实我们风雪社是可以留言的 点击下面图片就可以跳转到留言界面哦 别担心 没有广告的 接下来 开始今天的内容了 大家都知道一些华为手机支持无线投屏 那用华为的朋友们 如何知道自己的手机是否可以投大屏幕呢 如果可以
  • Qt--02:设置父对象

    问题引入 在Widget中创建Button等控件时 如果不指定Button等控件的父对象 就会产生相关控件无法再此Widget窗口中显示 因此当一些控件需要在当前Widget窗口中显示的时候就需要为控件添加父对象 指定父对象方式 setPa
  • Spring Security 实现 antMatchers 配置路径的动态获取

    为什么80 的码农都做不了架构师 gt gt gt 1 为什么要实现动态的获取 antMatchers 配置的数据 这两天由于公司项目的需求 对 spring security 的应用过程中需要实现动态的获取 antMatchers per
  • mybatis防注入

    1 SQL防注入 mybatis语句中要使用 xxx 防止SQL注入 xxx 只是简单替换占位符 有注入的风险 例子 1 1 getNameByUserId resultType String gt SELECT name FROM use
  • HTML预留字符的处理

    目录 HTML 实体 不间断空格 non breaking space HTML 实例示例 HTML 中有用的字符实体 HTML 中的预留字符必须被替换为字符实体 HTML 实体 在 HTML 中 某些字符是预留的 在 HTML 中不能使用
  • JavaScript new Date() -2--------- 获取指定月份的天数 和 获取指定月份的第一天是周几

    使用 new Date 创建一个 Date 对象 var my date new Date 用当前日期和时间创建的新的日期对象 console log my date Fri Jan 10 2020 10 16 19 GMT 0800 中国
  • 电脑用电,电脑一天24小时多少度电 电脑一天用电量计算【图文】

    我们都知道 电器只要运行着 就会有一定的耗电量 比如我们平时的冰箱 空调 电视 电脑等等 今天小编便主要针对电脑来讲一讲 很多的朋友可能比较关注的都是电脑一天24小时耗用多少度电 还有因为我们想要自己来计算的话 应该要如何计算呢 还有 很多
  • DockerFile语法讲解

    Docker官网 https docs docker com Docker的github地址 https github com moby moby Dockerhub官网 https registry hub docker com 如果do
  • USB Type-C引脚解析 && CC、DFP、UFP、DRP用途解析【转】

    深入解析TypeC 1 Type C接口引脚分布 2 USB TypeC接口特点 3 DFP UFP DRP用途解析 4 深入解析CC通道 5 总结 1 Type C接口引脚分布 有24根信号 其中电源和地占了9根 有4个地和4个Vbus