Project:USB PD Battery Charger

From CoMakingSpace Wiki

As part of the ever-present electric longboard MkII project I need an elegant and flexible charging solution. However, the usual 10-12S (37-44V) lithium chargers are neither [1] , therefore a custom solution is needed. With the recent addition of the power delivery standard to the USB spec, up to 100W [2] can be delivered via a USB C cable. This gives a lot of flexibility to the choice of charger for on-the-go topping-off as well as a complete charging cycle of the batteries. This project will revolve around interfacing with the USB C charger to supply higher voltages and currents and to put this power into a regulated charging of the longboard batteries.


The design specification of the final circuit:

  • 12s LiFePO4 (39.6V nominal, 43.2V max) battery
    • adaptable to 12s LiIon
  • 100W max power
    • adaptive power adjust depending on charger
  • USB C interface
  • safety voltage cutoff and faulty battery detection
  • high efficient step-up conversion

USB C interfacing

Charging circuit

The maximum voltage deliverable via USB PD is 20V, which is too low to charge a 12s battery directly. Therefore the voltage needs to be stepped up before going into the batteries. Additionally the standard way of charging lithium batteries is via a constant-current constant-voltage (CC CV) algorithm. This means an empty battery is first charged at a (low) constant current (<2C) until the final battery voltage is reached. From then the current is reduced while maintaining the voltage until the battery is full.

Step-up and current control can be implemented independently from each other via a step up circuit and a lithium charge controller. However there are ICs which can handle both of these steps at the same time. For this project I'll be using the LTC4020 by Linear Technology. It has a buck-boost converter controller up to 55V and charge algorithms for various battery chemistries implemented in a small package.

MOSFETs choice

The synchronous buck-boost converter needs 4 MOSFETs to control the output voltage by either stepping up (boost) or stepping down (buck) the voltage. Ideally these switches should be as efficient as possible to avoid high heat losses due to the switching currents flowing through the DC-DC converter. Important characteristics are the maximum capable voltage of the MOSFET, which should be higher than the battery or input voltage. The resistance (RDSon) of the switched-on MOSFET; especially at VGSth (the lower the better the efficiency). The threshold voltage of the gate (VGSth) at which the MOSFET lets current flow. For the LTC4020 this needs to be at logic-level (5V) or lower.
I've made a spreadsheet to compare possible MOSFETs that meet these characteristics:

MOSFET RDSon(4.5V) [mOhm] Crss [pF] Transission Losses (AB) [W] Transission Losses (CD) [W] Conductive Losses (AB) [W] Conductive Losses (C) [W] Conductive Losses (D) [W] Total [W]
NTTFS5820NL 15,0 96,0 0,19 0,90 1,13 0,60 0,52 3,34
IRLR024N 80,0 61,0 0,12 0,57 6,00 3,22 2,78 12,69
SQA442EJ 48,0 18,3 0,04 0,17 3,60 1,93 1,67 7,41
DMT6016LSS 24,0 27,0 0,05 0,25 1,80 0,97 0,83 3,91
DMT6007LFG 8,5 38,5 0,08 0,36 0,64 0,34 0,30 1,71
DMT6010LFG 11,5 38,5 0,08 0,36 0,86 0,46 0,40 2,16

The table compares the produced heat output of the MOSFETs at following characteristics

Vin    = 20V
Vout   = 43.2V
f0     = 500kHz
k      = 1
pT     = 1.5

based on the formulas from the datasheet (p24):

Transition losses
PTR(A, B) ≈ (k)(VIN)2 (ILMAX)(CRSS)(fO)
PTR(C, D) ≈ (k)(VOUT)2 (ILMAX)(CRSS)(fO)

Resistive losses
PON(A+B) = ILMAX2 • ρT • RDS(ON(A, B))
PON(C) = ILMAX2 • ρT • RDS(ON(C)) • (1 – VIN/VOUT)
PON(D) = ILMAX2 • ρT • RDS(ON(D)) • (VIN/VOUT)