1 BC 1.2
1.1 充电器类型探测
1)DCD:DP上有150mV(= 10uA x 15K欧姆下拉电阻)的电压,DM上电压为0
2)Primary Det(DP发起检测DM):
- DP上加载0.6V电压,DM上电压为0,充电器类型是SDP
- DP上加载0.6V电压,DM上电压为0.6V,进入Secondary Det
3)Secondary Det(DM发起检测DP):
- DM上加载0.8V电压,DP上电压为0,充电器类型是CDP
- DM上加载0.8V电压,DP上电压为0.8V,充电器类型是DCP
注:VDAT_REF=0.6V,数据线参考电压
VLGC=0.8V,逻辑电压
Figure 1-1 iPhone CDP探测波形

DP线在BC 1.2之后有一个3.3V的高压表明进入了USB device的速度识别阶段。

1.2 USB 2.0 ULPI PHY
高通平台的USB 2.0的PHY框图如Figure 1-2所示。
Figure 1-2 USB 2.0 PHY

高通平台的USB 2.0接口由于采用了ULPI PHY接口,所以将BC 1.2的探测寄存器放到了ULPI寄存器空间,标准的ULPI寄存器空间地址范围0x00-0x2f,这部分是公规(地址偏移不允许芯片制造商更改),从而高通将充电器探测寄存器的地址放到了这些公规寄存器地址之外了。

1.3 USB 3.0 UTMI and PIPE PHY
高通平台USB 3.0的PHY框图如Figure 1-3所示。
Figure 1-3 USB 3.0双总线架构

由于USB 3.0是双总线架构,既包含了USB 2.0的数据线也包含了USB 3.0的数据线,所以USB 3.0的物理层是有两个部分的。高通MSM8974的USB 3.0的LS/FS/HS物理层用的是UTMI接口,SS用的PIPE3接口(参看phy-interface-pci-express-sata3-usb30-archectures.pdf),并且这两种PHY接口是没有内置寄存器的,故而高通将BC 1.2的充电探测寄存器放到了AHB地址空间(见图)。识别原理主要通过UTMI PHY控制寄存器,PIPE3 PHY接口是不用来做充电器识别的。

2 Q & A
Q:USB_VBUS管脚的47K电阻的作用?
A:使得USB_VBUS上的电压快速充放电,从而识别出外部电源已拔走,快速关断三极管,避免异常时电流倒流的情况。

3 Abbreviations
ARC:Argonant RISC Core
AT91SAM9260:SAM means Smart ARM-based Microcontroller
ATMEL SAMBA:ATMEL Smart ARM-based Microcontroller Boot Assistant
CC2530:TI ChipCon2530
DCD:Data Contact Detect
DWC2:Design Ware Controller 2,Apple的嵌入式设备,包括iPad和iPhone都是使用的DWC2
ISP1161:Philips' Integrated host Solution Pairs 1161,“Firms introduce USB host controllers”,https://www.eetimes.com/document.asp?doc_id=1290054
Quirks:the attributes of a device that are considered to be noncompliant with expected operation
SL811HS:Cypress/ScanLogic 811 Host/Slave,性能上与ISP1161(Integrated host Solution Pairs 1161)相当
TDI:TransDimension Inc.,该公司首先发明了将TT集成到EHCI RootHub中的方法,这样对于嵌入式系统来说,就省去了OHCI/UHCI的硬件,同时降低了成本,作为对该公司的纪念,Linux内核定义了宏ehci_is_TDI(ehci);产品UHC124表示USB Host Controller;收购了ARC USB技术;现已被chipidea收购,chipidea又被mips收购
TLV:TI Low Value,高性价比
TPS:TI Performance Solution
TT:Transaction Translator(事务转换器,将USB2.0的包转换成USB1.1的包)
usb3_mifgen:Altera Memory Initialization File
USB BH reset:Bigger Hammer or Brad Hosler,表示warm reset;you may be confused why the USB 3.0 spec calls the same type of reset "warm reset" in some places and "BH reset" in other places. "BH" reset is supposed to stand for "Big Hammer" reset, but it also stands for "Brad Hosler". Brad died shortly after the USB 3.0 bus specification was started, and they decided to name the reset after him. The suggestion was made shortly before the spec was finalized, so the wording is a bit inconsistent
USB SIE:Serial Interface Engine,新的版本命名为Link layer
xECP:xHCI Extended Capabilities Pointer

高通平台USB 2.0和USB 3.0接口充电器识别原理相关推荐

  1. 华为鸿蒙或适配高通平台,鸿蒙2.0适配高通平台,网友:华为这是要取代安卓吗?...

    鸿蒙.鸿蒙.鸿蒙-- 近一段时间关于华为鸿蒙2.0手机端操作系统的消息越来越多,而且很多提前拿到内测版的童鞋也开始放出关于鸿蒙2.0手机端操作系统的体验与感受,这无疑把华为鸿蒙2.0手机操作系统的热度 ...

  2. 高通开发系列 - msm-4.9中USB Bring Up

    By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! ...

  3. 高通android开源代码下载,高通平台Android源码bootloader分析之sbl1(三)

    前两篇博文分析了启动流程.代码流程.cdt,接下来就分析另外几个需要格外关注的部分. ##log系统 sbl1中的log系统也是sbl1部分调试会经常接触得部分高通平台在sbl中做的log系统并不是很 ...

  4. 高通平台android开发总结 MSM平台上的AMSS

    http://blog.csdn.net/mirkerson/article/details/7691029 MSM平台上的AMSS REX启动分析--基于Qualcomm平台 1.高通平台andro ...

  5. 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)

    本系列导航: 高通平台8953  Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...

  6. 高通平台android开发总结

    http://www.cnblogs.com/yuzaipiaofei/archive/2012/07/24/4124179.html 1.高通平台android开发总结 1.1 搭建高通平台环境开发 ...

  7. 高通平台Bootloader启动流程【转】

    本文转载自:http://blog.csdn.net/fang_first/article/details/49615631 ====================基本知识============= ...

  8. 高通平台android 环境配置编译及开发经验总结

    完全转自:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...

  9. 高通平台android开发总结 .

    http://blog.csdn.net/mirkerson/article/details/7691029 http://blog.csdn.net/mirkerson/article/detail ...

最新文章

  1. jFreeChary初探
  2. 回归素材(part5)--白话机器学习算法
  3. day8网络编程,面向对象1
  4. 422器件与lvds接收器的区别_SPI、I2C、UART三种串行总线的原理、区别
  5. css 写打印样式问题
  6. 虚拟化精华问答 | 什么是虚拟化?
  7. 为什么要使用NoSQL
  8. AMD如何争夺Intel市场份额?血拼高配PC装机量
  9. C++冒泡排序(正宗版)
  10. HTTP1.0/1.1/2.0特性对比_转
  11. 图解设计模式:行为型模式之责任链模式
  12. Android的深度定制版阿里云os(Android的山寨)
  13. html/css椭圆运动
  14. Mysql中的straight_join
  15. 【MC 网易-我的世界-mod开发基础笔记】 --- 常用的在线工具
  16. 时钟程序设计java_Java数字时钟实现代码详解
  17. G001-181-08
  18. 取消UL和OL符号以及padding和margin后恢复默认值的CSS
  19. Diskpart工具为硬盘进行GPT分区
  20. sftp文件上传下载改名压缩解压

热门文章

  1. MATLAB产生伪随机数
  2. 通过uvm_printer的print_generic进行扩展打印
  3. Web端测试——F12的代码调试与抓包
  4. LAMP - 学习/实践
  5. esri-leaflet部分瓦片缺失问题及解决办法
  6. 基于ZYNQ 7000的1553B总线控制器测试系统的设计与实现
  7. Java 的上溯造型和下溯造型以及举例,以及判断参数等指向的类
  8. 国产最强负载均衡器LVS(理论+实战)
  9. 我的《电子文件归档与管理规范》
  10. 最全的软件测试面试题