I'm looking at the options for getting a boost power supply for some VFD type displays I have purchased.
Of course, one of the options is to buy a step up converter to provide the required 27 to 30 volt at max. 25mA. The other is to make something myself using an existing design.
Adafruit publishes a basic design together with a calculator for adjusting the component values to suit the required input and output values. It's on The Calculator | DIY DC/DC Boost Calculator | Adafruit Learning System
I've tried using this calculator to verify existing designs I have found and it seems, on that basis, OK.
However, I have a problem understanding one aspect. That is, the higher the required output current in mA, the lower the value of the inductor (microHenries).
This is, for me, counter-intuitive. I'd have thought that a higher output current would require a beefier inductor if the other input parameters stayed the same.
Has anyone an explanation ?
The calculation behind the Adafruit calculator is here ( in Javascript):
<script language="JavaScript">
function calcBoost(form) {
vinmax=eval(form.vinmax.value);
vinmin=eval(form.vinmin.value);
voutmax=eval(form.voutmax.value);
voutmin=eval(form.voutmin.value);
freq=eval(form.freq.value);
iout=eval(form.iout.value);
vripple = eval(form.vripple.value);
// calculate duty cycle
minduty = 100*(1-vinmax / voutmin);
maxduty = 100*(1-vinmin / voutmax);
form.minduty.value = minduty;
form.maxduty.value = maxduty;
// calculate inductor values: D*Vin * (1-D) / (freq * 2 * Iout ) < L
// for vinmin and voutmin
D1 = (1-vinmin / voutmin);
L1 = D1 * vinmin * (1-D1) / (freq * 2 *iout);
// calculate for vinmin and voutmax
D2 = (1-vinmin / voutmax);
L2 = D2 * vinmin * (1-D2) / (freq * 2 *iout);
// calculate for vinmax and voutmin
D3 = (1.0-vinmax / voutmin);
L3 = D3 * vinmax * (1-D3) / (freq * 2 *iout);
// for vinmax and voutmax
D4 = (1.0-vinmax / voutmax);
L4 = D4 * vinmax * (1.0-D4) / (freq * 2.0 *iout);
L = Math.max(L1, L2, L3, L4);
form.minL.value = L * 1000000;
// Calculate peak current Ipk = (Vin * D)/(f * L)
// for vinmin and voutmin
Ipk1 = vinmin * D1 / (freq * L);
// for vinmin and voutmax
Ipk2 = vinmin * D2 / (freq * L);
// for vinmax and voutmin
Ipk3 = vinmax * D3 / (freq * L);
// for vinmax and coutmax
Ipk4 = vinmax * D4 / (freq * L);
Ipk = Math.max(Ipk1, Ipk2, Ipk3, Ipk4);
form.ipk.value = Ipk;