Other Parts Discussed in Thread: TPS61089
Hi,
I am using TPS61098 to boost voltage from LiFePo4 battery (3.2V to 2.9V) to 6 volts to drive this motor: Thomas G6/02-8
The motor draws 0.5A - 1A of current
My schematics are below, the inductor I have used is COILCRAFT XAL4030-472MEB
I have used webbench tool to design the circuit, values for compensation network were R5=9.53k, C14=4.7n and C13=220p. The circuit did not start at Vin=3.2V with these values. I have experimented and found out that changing C14 to 1u made the circuit start and power the load at 3.2V down to 3.0V, but failed to power the load at Vin voltages down to 2.8V. Then changing R5 to 1k made it work down to 2.8V. While this is fine, I feel that I am poking in the dark here.
I have made calculations based on formulas presented in the datasheet:
#Input voltage Vin = 2.8 #Output voltage Vout = 6 #Output capacitance Co = 47e-6 L = 4.7e-6 #Output load resistance Ro = 6/1 #Internal sense resistor Rsense = 0.08 #Amplifiers transconductance Gea = 190e-6 efficiency = 0.95 D = 1 - (Vin*efficiency)/Vout print("Duty cycle " + str(D)) #right-half-plane-zero's frequency Frhpz = (Ro * (1 - D)**2) / (2 * pi * L) Fsw = 1e6 #Loop cross over frequency #Choose to be smaller of 1/10 of fsw of 1/5 of Frhpz fc=min(Fsw/10, Frhpz/5) print("Frhpz = " + str(Frhpz)) print("Fc = " + str(fc)) R5 = (2*pi*Vout*Rsense*fc*Co)/((1-D)*1.224*Gea) print("R5 = " + str(R5)) C5 = Ro*Co/(2 * R5) print("C5 = " + str(C5)) Resr=0.003 C6 = Resr * Co / R5 print("C6 = " + str(C6)) ---------output--------------- Duty cycle 0.556666666667 Frhpz = 39.93E3 Fc = 7.987E3 R5 = 10.98E3 C5 = 12.84E-9 C6 = 12.84E-12
I have tried using these values with no luck - the dcdc converter seemed to start up and then quickly went into mode where it applies short bursts of PWM into inductor. This way the output voltage is not maintained at set 6V, but lower - around 5V.
Can someone please comment, what did I do when increasing C14 and reducing R5 drastically. Also where is the problem in the calculations? Is this related to motor being a complex load and Ro being 6V/1A is too big simplification? How do I go about properly calculating loop compensation component values? Am I safe with the values I have experimentally chosen?
My layout is two layer: