Close

Research

A project log for Quick Charge 3.0

An device-side implementation of the new modes from the Quick Charge 3.0 protocol to provide voltages from 3.6-20V in 0.2V increments

dracodedracode 08/07/2017 at 18:430 Comments

While I waited for it to arrive, I tried to hunt down the technical details about how the QC3.0 protocol worked.  Hugatry's blog was a great starting point for QC2.0, but I needed to learn how to set the other voltages as well.  Given his success in mining the protocol info from datasheets, I went looking for the same.  I found the datasheets for NCP4271-D and CHY103, which gave me the additional info that I needed.

The NCP4371-D datasheet shows the appropriate states to put onto D+ and D- to enable both the new discrete 20V mode, and "Continuous Mode" where the voltage is adjustable in 0.2V increments.  These appeared to be relatively straightforward -- just previously unused voltage states for the same table that Hugatry used for QC2.0.  While in Continuous Mode, the voltage is adjusted up or down in 0.2V increments by briefly pulsing the D+ line high (to increment up) or pulsing the D- line low (to increment down).  The pulse times are given as T_ACTIVE, T_V_CONT_CHANGE_SINGLE, and so on, but the actual values are not given anywhere.  The CHY103 datasheet mentions a value for "Continuous Mode Glitch Filter Time" of between 100 and 200 us, so that's what I decided to try.

Here's the table of states for Quick Charge 3.0 from the NCP4371 datasheet, page 9:

D+ LineD- LineOutput Voltage
0.6 V0.6 V12 V
3.3 V0.6 V9 V
0.6 V3.3 VContinuous Mode
3.3 V3.3 V20 V
0.6 VGND5 V

As you can see for Continuous Mode, D+ is held at a low voltage and D- is held at a high voltage. Continuous Mode is the state wherein we can adjust the voltage in 0.2V increments. Again per the NCP4371 datasheet, page 9, The method to do this is to briefly pulse D+ high to increment, or to pulse D- low to decrement.

Discussions