该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零)

USB接口类型

Android终端上常用的USB接口:TypeC(现在的主流),MicroB(以前的设备)

一、TypeC

Hardware Interface

USB-C引脚和功能指南
一文读懂USB TypeC与USB-…TypeC引脚定义
USB-C(USB Type-C)规范的简单介绍和分析

USB-C接口具有三个主要功能:

(1)允许设备协商并选择通过接口的适当功率水平。
(2)具有可翻转的连接器。接口的设计使得插头可以相对于插座翻转。
(3)支持USB 2.0,USB 3.0和USB 3.1 Gen 2标准。
(4)TypeC基于CC1/CC2通讯支持USB PD协议,高通基于D+/D-通信支持高通快充HVDCP高通快充握手协议,前提是基于BC1.2协议
(5)Typec接口要支持视频输出,必须支持DP,这就要看高通芯片的usb feature,而TypeA单是纯粹的数据接口,无法传输视频信号,但也有displaylink的技术能通过TypeA进行传输,通过将显卡计算的结果转为usb,传输后再将usb转为视频输出。

24Pin全功能的TypeC接口的成本较高,很多MCU没有USB3.0,于是就有仅支持USB2.0的16Pin的TypeC,去除SS的R/TX。

TypeC Pin Hardware schematic Function
VBUS USB_VBUS_CONN 总线电源
D ± USB_HS_TYP_C_DP USB_HS_TYP_C_DM USB2.0 高速(High Speed)差分信号
CC1/2 USB_CC1/2_CONN Configuration channel用于连接检测
R/T X1/2 ± USBC_SS_R/T X 0/1_CONN_P
USBC_SS_R/T X 0/1_CONN_M
USB3.0 SuperSpeed差分信号
SBUS1/2 USB0_SBU1/2 Sideband use 适用于传输非USB信号

Channel Configure

  在USB2.0应用中,无需考虑CC方向检测问题,但USB3.0或者USB3.1应用中,必须考虑CC方向检测问题。CC1/CC2内部相连,最好分别使用5.1k下拉电阻,而不是共用一颗5.1k的电阻下拉到地。USBC硬件接口设计失误

 USB Type-C的连接检测包括3部分的内容:
 (1)连接检测;
 (2)连接方向检测;
 (3)Power Role检测。

Power Role

Source,通过VBUS或者VCONN供电。
Sink,通过VBUS或者VCONN接受供电。
DRP(Dual-Role-Power),既可作为Source,也可作为Sink。角色由设备连接后的CC决定,以及后续的power role switch过程决定。

Data Role

  在USB 2.0及以前的时代,根据功能的不同,USB端口分为Host、Device、OTG等。快充协议芯片按照应用场景的不同,Type C又可称为以下三类角色:

DFP(Downstream Facing Port),一般作为Host或者Hub,在初始配置下通过VBUS或者VCONN向device供电,典型的就是电源适配器。
UFP(Upstream Facing Port),一般作为Device或者Hub,初始配置下通过VBUS或者VCONN由Host供电,例如接口转接线等。
DRD(Dual-Role-Data),类似于以前的OTG,既可以作为DFP,也可以作为UFP。设备刚连接时作为哪一种角色,由端口的Power Role
决定;后续也可以通过data role switch过程更改(如果支持USB PD协议的话),例如支持PD快充的移动电源、手机、电脑。


  上拉电阻Pull-up resistor (Rp) +下拉电阻Pull-down resistor (Rd) ,通过Rp-Rd路径确定电缆连接及其方向,以及传达有关源电流能力的信息。对插头来说,正常情况下只有一个CC,通过检测CC引脚上的电压,连接线上的电压会低于未连接线上的电压,以此就可以判断连接的方向。如果是可供电的USB cable(Powered cable,E-Marker芯片),一个用做CC,另一个用作Vconn,给电缆芯片内部供电,则需要注意下拉电阻Ra,由于Ra不同于Rd,因此DFP仍能够通过检查DFP CC1和CC2引脚上的电压来确定电缆的方向。对于插座来说则有CC1/CC2两个通道。
  设备连接与分开检测:DFP需要检测到CC管脚上有某个电压时,判断UFP设备已插入或拔出,来提供和管理VBUS。当没有UFP设备插入时,必须关闭VBUS。因此所有的DFP设备需要CC逻辑检测与控制芯片以及VBUS开关电路。
  标准下拉电阻为Rd=5.1k,上拉电阻Rp不确定。USB Type-C靠Rp的不同,从而在 CC pin检测到的电压就不一样,来控制DFP供电模式。

DFP Perspective

CC1 CC2 State Postion
Open Open Nothing Attched,没有连接的端口 N/A
Rd Open UFP attached,连接的方向由CC为Rd决定,通过VBUS供电而非VCONN
Open Rd
Open Ra Powered Cable/No UFP attached,检测Open状态等待UFP attached
Ra Open
Rd Ra Powered Cable/UFP attached,通过VCONN(插座)和VBUS进行供电
Ra Rd
Rd Rd Debug Accessory Mode attached 调试附件模式 N/A
Ra Ra Audio Adapter Accessory Mode attached 音频适配器模式 N/A

USB 主机和配件概览,是否支持 USB 主机和配件模式最终取决于设备的硬件。

USB OTG

NMOS or PMOS的功能介绍
  N-MOS,当VGS大于某个值会导通 ,若为导通的状态下,如果通路上有大电阻则电流接近0,实际电位则为低,P-MOS高端驱动,当VGS小于某个值以上,则会导通。高通4290上USB OTG的功能主要是基于PMI632 CC1_ID(OTG mode enable or CC1 pin for the USB Type-C connector (user programmable),若USB功能需要转为Host,与此同时Data Role以及Power Role的角色也就需要转变。

if (chg->typec_port) {typec_partner_register(chg);typec_set_data_role(chg->typec_port,TYPEC_HOST);   //Data  Role ↑↑↑typec_set_pwr_role(chg->typec_port, TYPEC_SOURCE); //Power Role ↑↑↑vote(chg->usb_icl_votable, USB_PSY_VOTER, true, chg->dcp_icl_ua);vote(chg->usb_icl_votable, SW_ICL_MAX_VOTER, false,0);power_supply_changed(chg->usb_psy);
}

二、MicroB

Android终端一般接口都是TypeC,MicroB 一般为标准的USB接口:VBUS、USB_D+、USB_D-、USB_ID、GND

Android Qcom USB Driver学习(一)相关推荐

  1. Android Qcom USB Driver学习(二)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) BC v1.2充电规范 Battery Charging Specification USB port 如 ...

  2. Android Qcom USB Driver学习(八)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 因为要看usb charging的问题,所以需要补充一下battery的相关知识,算是入门吧 BAT SC ...

  3. Android Qcom USB Driver学习(六)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 眼图基础知识与详解 10分钟教会你看眼图 USB2.0 HUB眼图调试经验总结 一篇文章教你如何全面了解眼 ...

  4. Android Qcom USB Driver学习(四)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) VID/PID识别USB设备 CDC-ACM驱动介绍   CDC-ACM(Communication De ...

  5. Android Qcom USB Driver学习(九)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 高通的某些平台将电源管理移植到了ADSP Subsystem, 分析一下其中比较关心的部分 Archite ...

  6. Android Qcom Audio架构学习

    总结: Android Audio不简单呀,一个人摸索入门不容易的,研究了一段时间,感觉还不是很懂,但以下的知识对入门还是有帮助的. Audio架构中的名词 FE(Front End) 提供pcm的设 ...

  7. Android Qcom lcd display 学习(1)

    LCD的结构 TFT-LCD屏幕构造组成原理 Android LCD(一):LCD基本原理篇 LCD: 奇景光电 (hx8399) .敦泰 (ft8719) .京东方 .联咏等IC厂商 由于TFT-L ...

  8. Android Qcom lcd display 学习(4)

    DRM Linux DRM(二)基本概念和特性 DRM(Direct Rendering Manager)学习简介 DRM 的诞生就是用来处理多个程序对 Video Card 资源的协同使用问题,通过 ...

  9. Android Qcom lcd display 学习(3)

    Android Display整体架构 Android 图形组件 Android Graphic analyze display:高通display overview MDP(mobile displ ...

最新文章

  1. RDKit | 基于RDKit可视化脂溶性在溶解度贡献中的应用
  2. CNN网络架构演进:从LeNet到DenseNet
  3. Android App用MulticastSocket监听组播,为什么连接到不同路由、在不同手机上跑,有的能收到有的收不到...
  4. 我们需要一个时期,把我们之前的愿景用实际行动实现
  5. linux内核杂记(2)-内核的同步与并发
  6. Android 中的 Context
  7. JDK 8中的流驱动的集合功能
  8. 浪潮网上测评没通过_快钱通过等保2.0认证 稳守用户资金信息安全
  9. [转载]QMessageBox 用法_vortex_新浪博客
  10. 7-28 求矩阵的局部极大值 (15 分)
  11. Atitit 图像处理 调用opencv 通过java  api   attilax总结
  12. 高级软考之——系统分析师思维导图(二)
  13. YOLO算法原理详解
  14. win7旗舰版升级成win7SP1
  15. 感知哈希算法实现以图搜图软件
  16. layui 勾选不联动父项 树形控件_layui树形组件重现勾选过程的办法
  17. Outlook账号被封?别慌,一步步教你怎么申诉
  18. EVE模拟器如何设置预配
  19. 扫码枪回车键条码_扫描枪怎么设置自动换行 条码扫描枪不自动回车怎么设置...
  20. 叮咚,您有一份专线链路带宽管理方案,请查收

热门文章

  1. 概率论——随机变量及其分布
  2. MHA和PXC的区别
  3. MOS管驱动电路隔离技术
  4. CUDA——Python基础与实现
  5. Linux命令 --- cp与scp
  6. 《东周列国志》第五十七回 娶夏姬巫臣逃晋 围下宫程婴匿孤
  7. 管理服务器没有响应怎么办,win10启动windows服务显示服务没有响应控制功能怎么解决...
  8. 【特征检测】HOG特征算法
  9. Assert 的用法
  10. Win键无法使用,被锁定