Android Qcom USB Driver学习(一)
该系列文章总目录链接与各部分简介: 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学习(一)相关推荐
- Android Qcom USB Driver学习(二)
该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) BC v1.2充电规范 Battery Charging Specification USB port 如 ...
- Android Qcom USB Driver学习(八)
该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 因为要看usb charging的问题,所以需要补充一下battery的相关知识,算是入门吧 BAT SC ...
- Android Qcom USB Driver学习(六)
该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 眼图基础知识与详解 10分钟教会你看眼图 USB2.0 HUB眼图调试经验总结 一篇文章教你如何全面了解眼 ...
- Android Qcom USB Driver学习(四)
该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) VID/PID识别USB设备 CDC-ACM驱动介绍 CDC-ACM(Communication De ...
- Android Qcom USB Driver学习(九)
该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 高通的某些平台将电源管理移植到了ADSP Subsystem, 分析一下其中比较关心的部分 Archite ...
- Android Qcom Audio架构学习
总结: Android Audio不简单呀,一个人摸索入门不容易的,研究了一段时间,感觉还不是很懂,但以下的知识对入门还是有帮助的. Audio架构中的名词 FE(Front End) 提供pcm的设 ...
- Android Qcom lcd display 学习(1)
LCD的结构 TFT-LCD屏幕构造组成原理 Android LCD(一):LCD基本原理篇 LCD: 奇景光电 (hx8399) .敦泰 (ft8719) .京东方 .联咏等IC厂商 由于TFT-L ...
- Android Qcom lcd display 学习(4)
DRM Linux DRM(二)基本概念和特性 DRM(Direct Rendering Manager)学习简介 DRM 的诞生就是用来处理多个程序对 Video Card 资源的协同使用问题,通过 ...
- Android Qcom lcd display 学习(3)
Android Display整体架构 Android 图形组件 Android Graphic analyze display:高通display overview MDP(mobile displ ...
最新文章
- RDKit | 基于RDKit可视化脂溶性在溶解度贡献中的应用
- CNN网络架构演进:从LeNet到DenseNet
- Android App用MulticastSocket监听组播,为什么连接到不同路由、在不同手机上跑,有的能收到有的收不到...
- 我们需要一个时期,把我们之前的愿景用实际行动实现
- linux内核杂记(2)-内核的同步与并发
- Android 中的 Context
- JDK 8中的流驱动的集合功能
- 浪潮网上测评没通过_快钱通过等保2.0认证 稳守用户资金信息安全
- [转载]QMessageBox 用法_vortex_新浪博客
- 7-28 求矩阵的局部极大值 (15 分)
- Atitit 图像处理 调用opencv 通过java api attilax总结
- 高级软考之——系统分析师思维导图(二)
- YOLO算法原理详解
- win7旗舰版升级成win7SP1
- 感知哈希算法实现以图搜图软件
- layui 勾选不联动父项 树形控件_layui树形组件重现勾选过程的办法
- Outlook账号被封?别慌,一步步教你怎么申诉
- EVE模拟器如何设置预配
- 扫码枪回车键条码_扫描枪怎么设置自动换行 条码扫描枪不自动回车怎么设置...
- 叮咚,您有一份专线链路带宽管理方案,请查收