点击打开链接
USB Battery Charging V1.2 Specification 定义了USB充电器的类型或者叫做充电源。

1. 支持的充电器类型
1.1 Standard Downstream Port(SDP)

这种USB端口存在于主机PC中,这个是与USB的规格书一致的。
当一个USB外设接到SDP端口上的时候,有下列几种情况:
* 当总线挂起的时候电流应该小于2.5mA.
* 如果总线没有挂起并且没有配置,或者连接到一个总线供电的hub上,电流应该小于100ma
* 如果总线没有挂起且配置好了,电流应该小于等于200ma。

1.2 DCP 或者叫做wall charger 
这些充电端口可以供应高达1500ma的电流给移动设备充电。
然而这些DCP端口不支持通过USB接口进行数据传输。
电池充电规格书定义了数据线应该被短接在这种DCP情况下。
充电类型的检查依赖于这些数据线。

1.3 charging Dedicated Port (CDP)
CDP端口是一个在主机端的特殊端口,能够提供高达1500ma的电流,与此同时,可以枚举设备以供正常的USB使用。

1.4 Proprietary charger (专有的充电器)
这些适配器不像正常的标准充电器那样,短接数据线。他们有自己的组合,上拉或者下拉数据线。

1.5 Floated charger 
这种类型的充电器被看做是不兼容的充电器类型。USB数据线没有短接并且是悬空的。
因此,与标准类型的充电器相比,当充电检测上拉或者下拉的时候,电压的范围将决定了,他不会
被识别成是DCP.

小结:这里总共有5中充电口,其中有两种是由USB主机提供的,SDP和CDP.另外三种都可以看成是wall charger,
不同点在于,数据线的状态,DCP数据线短接,Floated charger数据线悬空,Proprietary charger 
数据线有他自己的电平。

2 USB充电的架构
下面有几种配置给USB充电和充电器类型的检测。
* 基于外部充电芯片的充电器检测(SMB充电器检测)
* 内部的USB PHY充电器检测逻辑

2.1 基于USB PHY的充电子系统


基于USB PHY的充电子系统有以下一些基本模块:
* USB core负责让OTG driver知道充电器的连接。
* 高通平台的电池充电是被PMIC或者外部的充电芯片所控制。它必须知到充电器类型和最大充电电流。
* 原生的电池驱动直接与PMIC进行交互。这个驱动通知PMIC开始使用USB VBUS进行充电并且指明可以获取的最大的电流。
PS:这里的电池驱动估计说的不对,或者我自己理解有误,从代码上看应该是USB的驱动检测到充电器类型之后,
把这一信息通知给PMIC.

3 充电检测算法


在通用的充电器检测模型中,提到了几个阶段:
* Data Contact Detect(DCD)—— 这个是硬件块使用的,用来帮助检测当USB数据线与pin脚连接起来。
* Primary detection - 这个阶段用来区分是连接在了主机上面还是或者是一个大电流的设备上面。(SDP VS DCP/CDP)
* Secondary detection - 这个最终阶段,决定了是连接到了DCP 还是CDP。

高通平台:USB充电相关推荐

  1. 高通平台usb充电检测

    基于Qualcom 8960/8921平台 一,软件分析 1.  USB charger types & Power supply types USB_INVALID_CHARGER      ...

  2. 高通平台USB 2.0和USB 3.0接口充电器识别原理

    1 BC 1.2 1.1 充电器类型探测 1)DCD:DP上有150mV(= 10uA x 15K欧姆下拉电阻)的电压,DM上电压为0 2)Primary Det(DP发起检测DM): - DP上加载 ...

  3. 高通平台 USB OTG功能

    1.什么是OTG? USB OTG是USBOn-The-Go的缩写,即OTG技术就是实现在没有Host的情况下,实现设备间的数据传送. 2.硬件接口 5根线 USB_HS_ID USB_HS_D_P ...

  4. 高通平台USB如何枚举 mass_storage,以及将nandflash/sd/emmc存储分区通过usb mass_storage function映射到PC 上面

    USB lun简单说明: lun是logical unit number,也就是逻辑单元号.我们知道scsi总线上可挂接的设备数量是有限的,一般为6个或者15个, 而实际上需要用来描述的对象,是远远超 ...

  5. 高通平台android开发总结

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

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

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

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

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

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

    1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通开发板上烧录文件系统 建立高通平台开发环境 高通平台,android和 modem 编译流程分析 高通平台 7620 启动流 ...

  9. 高通about.html 文件,高通平台UEFI有关介绍

    高通平台UEFI有关介绍 背景 我需要在高通平台上学习点亮LCD,目前通过同事在别的平台的配置代码,我已经将kernel部分的屏幕点亮了:剩余的工作量就在BP侧,也就是系统刚开机的那一段时间.在开发过 ...

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

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

最新文章

  1. 《ActionScript 3.0基础教程》——第2章 往舞台动态地添加对象2.1 创建库资源,并为它命名...
  2. python快速写入hbase_Python生成HBase 10w+ 条数据说明
  3. 《移动应用开发》作业——JavaScript
  4. SAP CRM页面assignment block动态显示与否的控制逻辑
  5. julia与python对比_有人说Julia比Python好,还给出了5个理由
  6. Angular ngTemplateOutlet
  7. php 命令行扩展,PHP的命令行扩展Readline相关函数学习
  8. MyBatis3 注解SQL 的使用方法
  9. Java经典算法题(一,kafka权威指南百度网盘
  10. 图片上一张与下一张切换
  11. Web程序设计(第三版)课后习题答案
  12. 不同证书格式Der 、Cer 、Pfx 、Pem区别
  13. Linux内存管理(一):综述
  14. vivado报错 syntax error、dout is an unknown type
  15. 爬取微信公众号详情页
  16. ROS基础四之roscpp/rospy节点编写
  17. mybatis异常Mapper method attempted to return null from a method with a primitive re
  18. 来去电悬浮窗提示号码,联系人,联系人头像
  19. 阿里日记(连载中。。。。。。)
  20. deepin系统15.6版本安装执行那个exe文件_deepin深度操作系统中常用命令、系统命令、Vi命令...

热门文章

  1. toad mysql导入excel_Oracle 使用TOAD实现导入导出Excel数据
  2. 里bl2和bl3为什么分开_施工现场乙炔瓶为什么必须直立?乙炔为什么不能用尽?........
  3. docker删除镜像命令_第三章 Docker常用命令之镜像命令
  4. 006_FastDFS文件上传
  5. 001_Spring概述
  6. linux运行欧陆风云,MY-SAMA5 Linux-3.18 RTL8188EU 开发指导
  7. Android序列化:Serializable Parcelable
  8. 图像处理:图像复原与重建之逆滤波、维纳滤波、约束最小二乘滤波——Matlab实现
  9. 面试中Spring常见问题
  10. mysql 分组占比_含泪整理MySQL索引