全国服务热线:18929363263

上海新闻中心 PRODUCT DISPLAY

上海高通Quick Charge 2.0 快速充电识别原理

来源: 发布时间:2020-11-09 210814 次浏览

BCS v1.2的充电器探测原理如下:

当OTG驱动捕获到VBUS中断的时候,断开DP/DM与SIE接口的连接,然后等待数据线的连接(DCD)并设置超时,一般是750ms,如果超时,可启动usb gadget驱动做识别;否则在DP上加载0.6V的电压,检测DM上是否有0.6V的电压,这里有两种情况:

情况一:如果有0.6V电压,那么可能是DCP或者CDP充电器,接着在DP上撤销0.6V电压并加载0.8V电压,检测DM上的电压,如果是0.8V那么就是DCP充电器,否则由于CDP充电器对DP上的0.8V电压不做响应,所以得出是CDP充电器;

情况二:如果没有0.6V电压,那么就是SDP即是数据线连到了PC上。

探测完毕后,重新打开DP/DM和SIE的连接。

注:VDAT_REF=0.6V,数据线参考电压

VLGC=0.8V,逻辑电压

 

高通平台的USB2.0的PHY框图如下所示:

高通平台的USB2.0接口由于采用了ULPI Phy接口,所以将BCS V1.2的探测寄存器放到了ULPI寄存器空间,标准的ULPI寄存器空间地址范围0x00-0x2f(不知道如何上传图片,所以只写了地址范围),这部分是公规,从而高通将充电器探测寄存器的地址放到了这些公规寄存器地址之外就可以了。

高通平台USB3.0的PHY框图如下:

 

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

 

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的值,如果是9000000mV,就设置D+上的电压为3.3V,D-上 的电压为0.6V,否则设置D+为0.6V,D-为0V;

4) 充电器检测到D+和D-上的电压后,就调整充电器输出电压,具体D+和D-上的电压和充电器输出电压对应表格如下所示: 

324500.gif