Goal: Design a boost converter that gives 170VDC at 0.15A from a 12VDC supply.
Adafruit has a nice boost converter calculator, assuming you're using the simple single-inductor version. To power my boost converter, I'd like to use a 12VDC wall adapter. I don't know, but suspect that the output voltage of the adapter will drop under load, so I'm just going to go ahead and specify a minimum input voltage of 8VDC. Min and max output voltage are 170VDC, output current is 0.15A, I'll specify an output ripple voltage of 2V, and a switching frequency of 150kHz. I hate low-frequency converters with their whining. Shut up already, converter!
This gives me a required inductance of at least 17.5uH capable of handling 4.25A. Also a duty cycle (switch on-time to total time) of 0.953. This rules out the popular MC36033, which has a max duty cycle of 0.857.
TL;DR: After the design procedure, here's what I ended up with:
The LM3478 datasheet provides a nice series of design procedures for various converter topologies. Here's the one for the boost converter:
First, choose a switching frequency between 100kHz and 1MHz. I chose 150kHz because I wanted it to be above the minimum, but not so fast that all my components had to be super-fast.
Next, compute the duty cycle, D. We got this from the Adafruit calculator, 0.953. Also convenient is the inverse duty cycle (proportion of off-time to total period), D' = 1 - D.
Note that the converter will adjust the duty cycle based on the output voltage and switch current, so this is only a value for calculation.
Compute the minimum inductance required. Again, this is from the Adafruit calculator, but here is the formula:
So with a maximum input voltage of 12V, and an output current of 0.15A, I get L > 12uH. Note that the Adafruit calculator (correctly, in my opinion) uses the lowest of two possible duty cycle based on the minimum input and output voltage, because this will result in the highest minimum inductance. In any case, I chose L = 22uH as a convenient value.
Maximum inductor current
Compute the maximum current flowing through the inductor. Again, Adafruit gives this as 4.25A, but the formula is:
And so I get a current of 4.92A. Again, Adafruit correctly is using the D based on the maximum input voltage, but I'm using a higher value for extra safety margin.
So based on the inductance and current, I can choose an inductor that can handle this current. Thus, I chose the Bourns 2105-H-RC, capable of 7A.
Frequency adjust resistor
The LM3478 uses this formula:
With my chosen frequency of 150kHz, I get 135.4k. I chose a 133k 1% resistor which slightly increase the frequency to 152kHz. I'll keep using 150kHz in the calculations as it doesn't matter much.
Current sense resistors
One of these is the resistor that goes between the switch and ground. This resistor protects the circuit against overload currents. We use the maximum inductor current from above, plus an additional 20% margin, to set the overload threshold:
And so I get a sense resistor of 0.014 ohms. I chose a standard resistor of 0.015 ohms (Stackpole BR3FB15L0). With that resistor, the current limit would be 5.52A, well within the maximum required 4.92A and the 7A spec for the inductor.
There is a second resistor which goes between the current sense pin of the converter and the current sense resistor. The datasheet recommends adding this resistor when the duty cycle is above 50% to prevent sub-harmonic oscillations (that is, oscillations lower than the switching frequency) caused by instability in the loop. No whiny converters!
We first calculate the maximum sense resistor for current mode loop stability (loop stability is always a good thing):
I get a maximum sense resistance of 0.004 ohms. Our chosen sense resistor is bigger than this by a factor of 3.75, so we need to add that second "slope compensation" resistor:
This yields 6.325k as the minimum slope compensation resistor.
The problem is that addition of...
Read more »