1 QC 2.0

1.1 高通Quick Charge 2.0 高速充电原理分析

高通的QC2.0高速充电须要手机端和充电器都要支持才行。

当将充电器端通过数据线连到手机上时,充电器默认的是将D+和D-短接的,这样手机端探測充电器类型是DCP(參见本人还有一篇博文《高通平台USB2.0和3.0接口充电器识别原理》)。手机以默认的5V电压充电,接着步骤例如以下:

1) 假设手机端使能了高速充电协议。Android用户空间的hvdcp(high voltage dedicated charger port)进程启动,而且在D+上载入0.325V的电压维持超过1.25s上;

2) 充电器检測到D+上电压0.325V维持超过了1.25s。就断开D+和D-的短接,因为D+和D-断开,所以D-上的电压不再尾随D+上的电压0.325V变动。此时開始下降;

3) 手机端检測到D-上的电压从0.325V開始下降维持1ms以上时,hvdcp读取/sys/class/power_supply/usb/voltage_max的值,假设是9000000uV,就设置D+上的电压为3.3V。D-上 的电压为0.6V,否则设置D+为0.6V。D-为0V;

4) 充电器检測到D+和D-上的电压后,就调整充电器输出电压。详细D+和D-上的电压和充电器输出电压相应如Table 1-1所看到的:

Table1-1

注意:当DP=0.6 V,而DM=3.3 V时。表示Quick Charge将进入continuous mode(也就是QC3.0模式)。

參考 smbchg_prepare_for_pulsing()。

1.2 Parallel Charging

Question: 单独的PMI8952的充电最大电流是多大?

Answer:

单独PMI8952最大充电电流是2.0+A。可是实际电流应该不到2A,主要是依赖于PCB板子的布局和thermal等參数强相关。

Question: 假设採用并行充电。那么PMI8952的充电电流一般多大呢?是自己主动的?还是能够指定的?

Answer:

假设是并行充电,PMI和SMB组合最大3.0A左右。自己主动调节各个通道的电流。

2 QC 3.0

由于全面使用了Type-C接口代替原来的MicroUSB接口,QC 3.0最大电流也提升到了3A。由于电压更低所以效率提升最高达38%,充电速度提升27%,发热减少45%。

QC 2.0提供5V、9V、12V和20V四档充电电压,QC 3.0则以200 mV为步幅,提供从3.6 V到20 V电压的灵活选择。

採用 QC 3.0时。便携式设备通过USB接口的D+和D-信号提交电压选择请求,在同一时间可能有不规律的USB数据通信。

关于QC3.0支持的总线电压(VBUS) 范围,A级为3.6 V至12 V。B级为3.6 V至20 V。QC 3.0在分立模式下等同于QC 2.0,以0 V、0.6 V、3.3 V三级逻辑通过静态D+/D- 值选择VBUS;在连续模式下,新的QC 3.0以200
mV小步幅添加或减少VBUS,让便携式设备选择最适合的电压达到理想充电效率。更具灵活性,其最大负载电流限制为3 A,最高功率可达60 W。

实际产品中都是最大18W(能够觉得是9V * 2A)。与QC 2.0是一样的。

Table 2-1 QC 3.0 Spec

识别顺序:先是5V时电流1.2A,然后电压升到9V。电流下降到0.2A (HVDCP_ICL_VOTER),之后电压降到5V,电流不变;最后电压和电流同一时候上升。稳定在7V2.2A左右,功率到15~17W左右,这个识别过程大概15秒。

3 QC 4.0

QC 4.0也增加了“智能最佳电压技术”(INOV)。而且增加USB PD支持。

相比QC 3.0  200mV的步进电压调节档位。QC 4.0将会进一步优化INOV算法。将调节精度做到了10mV,比上代提了近20倍精度。将充电最高功率调整到28W,方案设计为5V/4.7A~5.6A和9V/3A,舍弃了12V的设计。且步进电压调整为10mV。如此大的电流值。步进电压将调整为10mV。这相对于如今的200mV是一个很大的进步。

4 Acronym

POWER_SUPPLY_DP_DM_DPR_DMR: R means Remove

POWER_SUPPLY_DP_DM_DPF_DMF: F means Floated, High-Z

高通Quick Charge高速充电原理分析的更多相关文章

  1. 高通spi 屏幕 -lk代码分析

    lk SPI驱动 1. 初始化时钟 在lk中,我们是从kmain开始执行下来的,而执行顺序则是先初始化时钟,也就是在platform_early_init函数中开始执行的: 在这里我们需要修改这个函数 ...

  2. 高通 android平台LCD驱动分析

    目前手机芯片厂家提供的源码里包含整个LCD驱动框架,一般厂家会定义一个xxx_fb.c的源文件,注册一个平台设备和平台驱动,在驱动的probe函数中来调用register_framebuffer(), ...

  3. [转帖]高通推出八核笔电处理器骁龙8cx 能超英特尔吗?

    高通推出八核笔电处理器骁龙8cx 能超英特尔吗? https://baijiahao.baidu.com/s?id=1619154699684981202&wfr=spider&for ...

  4. 高通 QC协议 谷歌 PD协议

    高通  QC协议  谷歌  PD协议 上述协议是两款充电协议 现在已经应用于智能设备的充电中了 https://jingyan.baidu.com/article/7908e85cb04b1baf48 ...

  5. 高通cDSP简单编程例子(实现查询高通cDSP使用率、签名),RK3588 npu使用率查询

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  6. 高通Android display架构分析

    目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 K ...

  7. 高通Android display分析【转】

    本文转载自:http://blog.csdn.net/zhangchiytu/article/details/6777039 高通7系列硬件架构分析 如上图,高通7系列 Display的硬件部分主要由 ...

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

    原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...

  9. 高通、猎户机型Android典型bootloader分析

    1.bootloader是什么? 简单地说,bootloader 就是在操作系统内核运行之前运行的一段小程序.通过这段小程序,我们可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境带到一 ...

随机推荐

  1. 【AS3 Coder】任务四:噪音的魅力(下)

    在之前的两篇文章中我们介绍了PerlinNoise的两种用途:创建云雾等自然效果以及用作随机数提供源.那么在这一章中,贫道将隆重介绍一位perlinNoise的好基友:DisplacementMapF ...

  2. libevent2源码分析之五:关键的调用链

    用一个调用链来表示函数调用的流程,看起来更直观.根据上面的分析,总结了一些重要的调用链. 初始化 event_base_new event_base_new_with_config min_heap_ ...

  3. 《深入PHP:面向对象、模式与实践》(一)

    第1章  PHP:设计与管理 本章主要介绍了本书有哪些内容. 第2章  PHP与对象 本章总结了PHP面向对象特性的发展过程,逐步介绍对象的概念. PHP/FI:支持变量.关联数组和函数.没有对象. ...

  4. Java 创建用户异常类、将异常一直向上抛、 throw和throws的区别

    如果java提供的系统异常类型不能满足程序设计的需求,那么可以设计自己的异常类型. 从java异常类的结构层次可以看出,java类型的公共父类为Throwable.在程序运行中可能出现俩种问题:一种是 ...

  5. css3的Background新属性

    前言 CSS3中出现了几种关于背景图片的新属性:background-origin.background-clip.background-position等.之前大致了解了下,但是background ...

  6. 【SpringMVC学习02】走进SpringMVC的世界

    上一篇博文主要介绍了springmvc的整个架构执行流程,对springmvc有了宏观上的把握,这一篇博文主要以案例作为驱动,带你走进springmvc的世界.案例中的需求很简单:对商品列表的查询.表 ...

  7. 2d 点云匹配算法

    #include "dbtype.h" #include "dbkdtree.h" #include <pcl/point_cloud.h> #in ...

  8. 一次httpserver优化的经验和教训(silverlight游戏 - 金庸群侠传X0.5上线记)

    金X因为被推荐到ACFUN游戏排行第一名.并同一时候在17YY.7K7K.U77.17173等各大小游戏站点上线.迎来了在线用户数量的爆炸式增长.眼下各大站点使用外链方式.也就是实际链接到金X官网的s ...

  9. IDEA13中配置struts错误:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter +找不到java程序包 解决办法

    问题一:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter解决办法 1.确保所有strut ...

  10. C++ Primer(第五版)读书笔记 & 习题解答 --- Chapter 3

    Chapter 3.1 1. using声明具有如下的形式: using namespace::name; Chapter 3.2 1. C++标准一方面对库类型所提供的操作做了规定,另一方面也对库的 ...