The software listed below is designed to run on Microsoft Basica or GWBasic. All the software is the copyright of JH Fielding, ZS5JF. Permission is granted to use and copy this provided the originator is acknowledged and the software remains unchanged. Software for designing switchmode supplies Standard buck converter 10 CLS:COLOR 11,1:CLS 20 PRINT 30 PRINT” Buck Converter Design" 40 PRINT” Written by J.H.Fielding" 50 PRINT:COLOR 15,1 60 INPUT” Minimum supply voltage ";VMIN 70 INPUT” Maximum supply voltage ";VMAX 80 INPUT” Output voltage ";VO 90 INPUT” Maximum output current ";IMAX 100 INPUT” Maximum ripple current % ";IL 110 INPUT” Frequency of operation (kHz) ";F 120 F=F*1000 130 IL=IL/100 140 IL=IL*IMAX 150 T=1/F 160 CLS:PRINT:COLOR 14,1 170 DMAX=VO/VMIN 180 DMIN=VO/VMAX 190 DM=DMAX*100 200 TON=T*DMAX 210 PRINT” Maximum duty cycle at Vmin = ";DM;"%" 220 L=(VO*(VMAX-VO))/(IL*F*VMAX) 230 PRINT” Pk-Pk Inductor ripple current = ";IL;"Amps" 240 IRMS=(IL/2)+IMAX 250 PRINT” Average Current in inductor = ";IRMS;"Amps" 260 TD=TON*1000000! 270 LM=L*1000000! 280 PRINT” Minimum Inductance required = ";LM;" uH" 290 PRINT:COLOR 15,1 300 PRINT” Use this value of inductor ? [Y/N]" Appendix 2: Software Listings A2 310 X$=INKEY$ 320 IF X$ ="" THEN GOTO 310 330 IF X$ = "y" OR X$= "Y" THEN GOTO 360 340 IF X$="N" OR X$="n" THEN GOSUB 790 350 L=LM 360 PRINT:COLOR 15,1 370 INPUT” Forward voltage of catch diode ";VD 380 INPUT” On resistance of switch ";RDS 390 INPUT” Estimated resistance of inductor ";LR 400 INPUT” Estimated ESR of Capacitor ";CR 410 PRINT 420 CLS:COLOR 14,1:PRINT:PRINT 430 DH=VO/VMAX 440 DL=VO/VMIN 450 PRINT” Inductance =";LM; "uH" 460 PRINT” Duty cycle at max input voltage = ";DH*100;"%" 470 PRINT” Duty cycle at min input voltage = ";DL*100;"%" 480 PC=(IL/2)*CR 490 PL=(IMAX+IL/2)*LR 500 PD=(IMAX*VD) 510 PRINT” Worst case loss in diode = ";PD;"watts" 520 PRINT” Worst case loss in inductor = ";PL;"watts" 530 PRINT” Worst case loss in capacitor = ";PC;"watts" 540 PRINT” RMS current in output capacitor = ";IL/2 ;"Amps" 550 PRINT” Peak current in diode = ";IMAX+IL/2 ;"Amps" 560 VC=((IL)*CR)*1000 570 PRINT” Output ripple voltage = ";VC ;"mV pk-pk " 580 PO=IMAX*VO 590 COLOR 10,1 600 PRINT:COLOR 15,1 610 PRINT 620 PSW=(IMAX+IL/2)*RDS 630 PT=PC+PL+PD+PSW 640 E1=PO/(PT+PO) 650 LL=(PT+PO)/VMIN 660 HL=(PT+PO)/VMAX 670 E=E1*100 680 PRINT” Worst case loss in switch = ";PSW;"watts" 690 PRINT” Total power losses (except core)= ";PT ;"Watts" 700 PRINT” Approx. Low line input current = ";LL;"Amps" 710 PRINT” Approx. High line input current = ";HL;"Amps" 720 PRINT” Estimated efficiency (approx.) = ";E;" %" 730 PRINT:COLOR 10,1 740 PRINT” RUN AGAIN [Y/N] " 750 X$=INKEY$ 760 IF X$="y" OR X$="Y" THEN GOTO 10 770 IF X$="n" OR X$="N" THEN SYSTEM 780 IF X$="" THEN 750 790 INPUT” Enter value of inductor in uH ";LM 800 RETURN Standard boost converter 10 CLS:COLOR 11,1:CLS 20 PRINT 30 PRINT” Boost Converter Design" 40 PRINT” Written by J.H.Fielding" 50 PRINT:COLOR 15,1 60 INPUT” Minimum supply voltage ";VMIN 70 INPUT” Maximum supply voltage ";VMAX 80 INPUT” Output voltage ";VO 90 INPUT” Maximum output current ";IO 100 INPUT” Minimum output current ";IMIN 110 INPUT” Diode forward voltage ";VD 120 INPUT” Frequency of operation (kHz) ";F 130 INPUT” Maximum inductor ripple % ";R 140 F=F*1000 150 T=1/F 160 DL=IO*R/100 170 CLS:PRINT:COLOR 14,1 180 D=1-(VMIN/(VO+VD)) 190 D2=1-(VMAX/(VO+VD)) 200 DM=D*100 210 PRINT” maximum duty cycle =";DM;"%" 220 PRINT” minimum duty cycle =";D2*100;"%" 230 IMAX=IO 240 TON=T*D 250 LMIN=(VMIN *(VO-VMIN))/(DL*F*VO) 260 IL=(VMIN/LMIN)*T*D:COLOR 14,1 270 PRINT” Pk-Pk inductor ripple I = ";IL;"Amps" 280 IRMS=(IL/2)+IO 290 PRINT” RMS Current in inductor =";IRMS;"Amps" 300 TON=TON*1000000! 310 PRINT” Maximum Switch on time = ";TON; "uS" 320 L=LMIN*1000000! 330 PRINT” Inductance (min) = ";L;" uH" 340 PRINT:COLOR 15,1 350 PRINT” Use this value of inductor ? [Y/N]" 360 X$=INKEY$ 370 IF X$ ="" THEN GOTO 360 380 IF X$ = "y" OR X$= "Y" THEN GOTO 400 390 IF X$="N" OR X$="n" THEN GOSUB 830 400 PRINT:COLOR 15,1 410 INPUT” On resistance of switch ";RDS 420 INPUT” Estimated resistance of inductor ";LR 430 INPUT” Estimated ESR of Capacitor ";CR 440 PRINT 450 CLS:COLOR 14,1:PRINT:PRINT 460 PRINT” Inductance = ";L; "uH" 470 PRINT” Duty cycle at max input voltage = ";D2*100;"%" 480 PRINT” Duty cycle at min input voltage = ";D*100;"%" 490 PC=(IL/2)*(IL/2)*CR 500 PL=(IO+IL/2)*(IO+IL/2)*LR 510 PD=(IO*VD) 520 PRINT” Worst case loss in diode = ";PD;"watts" 530 PRINT” Worst case loss in inductor = ";PL;"watts" 540 PRINT” Worst case loss in capacitor = ";PC;"watts" 550 PRINT” RMS current in output capacitor = ";IL/2 ;"Amps" 560 PRINT” Peak current in diode = ";IO+IL/2 ;"Amps" 570 VC=(IL)*CR*1000 580 PRINT” Output ripple voltage = ";VC ;"mV pk-pk" 590 PO=IO*VO 600 COLOR 10,1 610 PRINT:COLOR 15,1 620 PRINT” Recalculated input currents " 630 PRINT 640 LL=(PO/.85)/VMIN 650 HL=(PO/.9)/VMAX:COLOR 14,1 660 PRINT” Approx. Low line input current = ";LL;"Amps" 670 PRINT” Approx. High line input current = ";HL;"Amps" 680 PSW=(LL*LL)*RDS 690 PT1=PC+PL+PD 700 PT=PC+PL+PD+PSW 710 E1=PO/(PT1+PO) 720 E=E1*100 730 PRINT” Worst case loss in switch = ";PSW;"watts" 740 PRINT” Total power losses (except core) = ";PT ;"Watts" 750 E2=PO/(PT+PO) 760 PRINT” Estimated efficiency (approx.) = ";E2*100;" %" 770 PRINT:COLOR 10,1 780 PRINT” RUN AGAIN [Y/N] " 790 X$=INKEY$ 800 IF X$="y" OR X$="Y" THEN GOTO 10 810 IF X$="n" OR X$="N" THEN SYSTEM 820 IF X$="" THEN 790 830 INPUT” Enter value of inductor in uH ";L 840 RETURN Synchronous buck converter 10 CLS:COLOR 11,1:CLS 20 PRINT 30 PRINT” Synchronous Converter" 40 PRINT” Written by J.H.Fielding" 50 PRINT:COLOR 15,1 60 INPUT” Minimum supply voltage ";VMIN 70 INPUT” Maximum supply voltage ";VMAX 80 INPUT” Output voltage ";VO 90 INPUT” Maximum output current ";IMAX 100 INPUT” Maximum ripple current (%) ";IL 110 INPUT” Frequency of operation (kHz) ";F 120 F=F*1000 130 T=1/F 140 CLS:PRINT:COLOR 14,1 150 IL=IL/100 160 IL=IMAX*IL 170 DMAX=VO/VMIN 180 DMIN=VO/VMAX 190 DM=DMAX*100 200 TON=T*DMAX 210 PRINT” Maximum duty cycle at Vmin = ";DM;"%" 220 LMIN=(VO*(VMAX-VO))/(IL*VMAX*F) 230 PRINT” Pk-Pk Inductor ripple current = ";IL;"Amps" 240 IPK =(IL/2)+IMAX 250 PRINT” Peak Current in inductor = ";IPK ;"Amps" 260 TD=TON*1000000! 270 LM=LMIN*1000000! 280 PRINT” Minimum Inductance required = ";LM;" uH" 290 PRINT:COLOR 15,1 295 PRINT” Use this value ? [Y/N]" 300 X$=INKEY$ 310 IF X$ ="" THEN GOTO 300 320 IF X$ = "y" OR X$= "Y" THEN GOTO 340 330 IF X$="N" OR X$="n" THEN GOSUB 770 340 L=LM 350 PRINT:COLOR 15,1 360 INPUT” On resistance of top switch ";RDS 370 INPUT” On resistance of bottom switch ";BSW 380 INPUT” Estimated resistance of inductor ";LR 390 INPUT” Estimated resistance of capacitor";CR 400 CLS:PRINT:COLOR 14,1 410 DH=VO/VMAX 420 DL=VO/VMIN 430 PRINT” Inductor value selected = ";L;"uH" 440 PRINT” Duty cycle at max input voltage = ";DH*100;"%" 450 PRINT” Duty cycle at min input voltage = ";DL*100;"%" 460 PC=(IL/2)*(IL/2)*CR 470 PL=(IMAX+IL/2)*(IMAX+IL/2)*LR 480 PD=(IMAX*IMAX)*(BSW) 490 PRINT” Worst case loss in inductor = ";PL;"watts" 500 PRINT” Worst case loss in capacitor = ";PC;"watts" 510 PRINT” RMS current in output capacitor = ";IL/2 ;"Amps" 520 PRINT” Peak current in bottom switch = ";IMAX+IL/2 ;"Amps" 530 VC=((IL)*CR)*1000 540 PRINT” Output ripple voltage = ";VC ;"mV pk-pk" 550 PO=IMAX*VO 560 COLOR 10,1 570 PRINT:COLOR 15,1 580 PRINT 590 PSW=((IMAX+IL/2)*(IMAX+IL/2))*(RDS) 600 PT=PC+PL+PD+PSW 610 E1=PO/(PT+PO) 620 E=E1*100 630 HL=(PT+PO)/VMAX 640 LL=(PT+PO)/VMIN 650 PRINT” Worst case loss in top switch = ";PSW;"watts" 660 PRINT” Worst case loss in bottom switch = ";PD;"watts" 670 PRINT” Total power losses (except core) = ";PT ;"Watts" 680 PRINT” Approx. Low line input current = ";LL;"Amps" 690 PRINT” Approx. High line input current = ";HL;"Amps" 700 PRINT” Estimated efficiency (approx.) = ";E;" %" 710 PRINT:COLOR 10,1 720 PRINT” RUN AGAIN [Y/N] " 730 X$=INKEY$ 740 IF X$="y" OR X$="Y" THEN GOTO 10 750 IF X$="n" OR X$="N" THEN SYSTEM 760 IF X$="" THEN 730 770 INPUT” Enter value of inductor in uH ";LM 780 RETURN Standard forward converter 10 CLS:COLOR 11,1:CLS 20 PRINT 30 PRINT” Forward Converter Design" 40 PRINT” Written by J.H.Fielding" 50 PRINT:COLOR 15,1 60 INPUT” Minimum supply voltage ";VMIN 70 INPUT” Maximum supply voltage ";VMAX 80 INPUT” Output voltage ";VO 90 INPUT” Maximum output current ";IO 100 INPUT” Frequency of operation (kHz) ";F 110 INPUT” Forward voltage of diode ";VD 120 F=F*1000 130 T=1/F 140 INPUT” Efficiency assumed ( % ) ";E 150 PO=IO*(VO+VD) 160 E=E/100 170 IIN=PO/(E*VMIN) 180 PIN=IIN*VMIN 190 CLS:PRINT:COLOR 14,1 200 PRINT” Power input = ";PIN; "watts" 210 PRINT” Average input current = ";IIN ; "amps" 220 PRINT:COLOR 15,1 230 INPUT” maximum duty cycle allowed = % ",D 240 INPUT” Select Ae of core (mm2)";AE 250 INPUT” Select Bmax of core (mT) ";BM 260 INPUT” Select Vcesat of switch (volts) ";VCESAT 270 PRINT:D=D/100 280 AE=AE/100 290 BM=BM*10 300 NP=((VMIN-VCESAT)*1E+09)/(4*F*AE*BM) 310 TON=T*D 320 COLOR 14,1 330 PRINT” Primary turns (minimum) = ";NP 340 INPUT” Select primary turns ";NP 350 TON=TON*1000000! 360 PRINT” Maximum Switch on time = ";TON; "uS" 370 PRINT:COLOR 15,1 380 INPUT” AL value of chosen core = ";AL 390 L=(NP*NP)*AL/1000 400 COLOR 14,1:CLS:PRINT:PRINT 410 N=(VO+VD)/(VMIN*D) 420 NS=N*NP 430 PRINT” Number of turns on primary = ";NP 440 PRINT” Number of turns on secondary = ";NS 450 PRINT” Inductance of primary = ";L;"uH" 460 DM=D*(VMIN/VMAX) 470 COLOR 14,1 480 PRINT” Duty cycle at max input voltage = ";DM*100;"%" 490 PSW=(IIN*VCESAT) 500 PRINT” Worst case loss in switch at low line = ";PSW;"watts" 510 PD=(IO*VD) 520 PRINT” Worst case loss in diode = ";PD;"watts" 530 IAVGH=(PO/VMAX)/E 540 IAVGL=(PO/VMIN)/E 550 PT=PSW+PD 560 PRINT” Average input current at high line = ";IAVGH;"Amps" 570 PRINT” Average input current at low line = ";IAVGL;"Amps" 580 PRINT” Total power losses (except core) = ";PT ;"Watts" 590 PO=IO*VO 600 E=PO/(PT+PO) 610 E=E*100 620 PRINT” Estimated efficiency = ";E;" %" 630 PRINT:COLOR 10,1 640 PRINT 650 PRINT 660 PRINT” CALCULATE OUTPUT INDUCTOR [Y/N] ?" 670 X$=INKEY$ 680 IF X$="y" OR X$="Y" THEN GOTO 770 690 IF X$="n" OR X$="N" THEN GOTO 710 700 IF X$="" THEN 670 710 PRINT 720 PRINT” RUN AGAIN [Y/N] " 730 X$=INKEY$ 740 IF X$="y" OR X$="Y" THEN GOTO 10 750 IF X$="n" OR X$="N" THEN SYSTEM 760 IF X$="" THEN 730 770 PRINT:COLOR 15,1 780 INPUT” SELECT RIPPLE CURRENT % ";IR 790 IL = IO*(IR/100) 800 VS=(VMAX)*(NS/NP) 810 L=(VO*(VS-VO))/(IL*F*VS) 820 L=L*1000000! 830 PRINT:COLOR 14,1 840 PRINT” Minimum inductor value =";L;"uH" 850 ILPK=IO+IL/2 860 PRINT” Peak inductor current =";ILPK;"Amps" 870 COLOR 10,1:GOTO 710 Standard flyback converter 10 CLS:COLOR 11,1:CLS 20 PRINT 30 PRINT” Flyback Converter Design" 40 PRINT” Using Current Mode Control" 50 PRINT” Written by J.H.Fielding" 60 PRINT:COLOR 15,1 70 INPUT” Minimum supply voltage ";VMIN 80 INPUT” Maximum supply voltage ";VMAX 90 INPUT” Main output voltage ";VO 100 INPUT” Maximum output current (A) ";IO 110 INPUT” Diode forward voltage ";VD 120 INPUT” Frequency of operation (kHz) ";F 130 F=F*1000 140 INPUT” On resistance of switch (ohms) ";RDS 150 COLOR 15,1 160 INPUT” Efficiency assumed ( % ) ";E 170 E=E/100 180 PO=IO*VO 190 IAVG=PO/(E*VMIN) 200 PIN=IAVG*VMIN 210 CLS:PRINT:COLOR 14,1 220 PRINT” Power input = ";PIN; "watts" 230 PRINT” Average input current = ";IAVG; "amps" 240 PRINT:COLOR 15,1 250 PRINT” maximum duty cycle allowed = % " 260 INPUT” (recommended Dmax = 45%)";D 270 PRINT:D=D/100:COLOR 14,1 280 TONMAX=(1/F)*D 290 PRINT” Maximum Switch on time = ";TONMAX*1000000!; "uS" 300 VI=VMIN-(RDS*IAVG) 310 LP=E*((VI)*(VI))/(2*PO*F) 320 PRINT” Primary inductance (min) = ";LP*1000000!;" uH" 330 PRINT:COLOR 15,1 340 INPUT” AL value of core (nH/t) = ";AL 350 AL=AL/1E+09 360 N=LP/AL:COLOR 14,1:CLS:PRINT 370 NP=SQR(N) 380 PRINT” Minimum number of turns on primary = ";NP 390 PRINT:COLOR 15,1 400 INPUT” Choose number of turns for primary ";NP 410 PRINT:COLOR 14,1 420 LP=(NP*NP)*AL 430 PRINT” Primary inductance = ";LP*1000000!;" uH" 440 COLOR 15,1 450 NS=NP*((VO+VD)*(1-D))/(VMIN*D) 460 PRINT 470 COLOR 14,1 480 PRINT” Minimum number of turns for secondary = ";NS 490 PRINT 500 COLOR 15,1 510 INPUT” Choose number of turns for secondary ";NS1 520 LS=(NS1*NS1)*AL 530 PRINT:COLOR 14,1 540 PRINT” With ";NS1;"turns sec inductance = ";LS*1000000!;" uH" 550 VT=VO/NS1:N=NS1/NP 560 PRINT” Secondary constant = ";VT;" volts/turn" 570 VSPK=(VO+VD)+(N*VMIN) 580 IPK=(5.5*PO)/VMIN 590 PRINT” Primary peak curent - low line = ";IPK;"Amps" 600 PRINT” Secondary peak voltage - low line = ";VSPK;"volts" 610 VPK1=(VO+VD)+(N*VMAX) 620 DMAX=(VO)/((VO+(N)*VMAX)) 630 COLOR 14,1 640 PRINT” Secondary peak voltage - high line = ";VPK1 650 PRINT” Duty cycle at maximum input voltage = ";DMAX*100;"%" 660 PSW=(IAVG*IAVG)*RDS 670 PRINT” Worst case loss in switch - low line = ";PSW;"watts" 680 PD=(PO/VO)*VD 690 PRINT” Worst case loss in diode = ";PD;"watts" 700 IAVGH=(PO/VMAX)/E 710 IAVGL=(PO/VMIN)/E 720 PIV=VPK1*1.5 730 PRINT” Average input current at high line = ";IAVGH;"Amps" 740 PRINT” Average input current at low line = ";IAVGL;"Amps" 750 PRINT” Minimum diode PIV required = ";PIV ;"Volts" 760 PRINT:COLOR 10,1 770 PRINT” Do you want to calculate turns for other outputs [Y/N] " 780 X$=INKEY$ 790 IF X$="y" OR X$="Y" THEN CLS:COLOR 15,1:PRINT:GOTO 880 800 IF X$="n" OR X$="N" THEN GOTO 820 810 IF X$="" THEN 780 820 PRINT 830 PRINT” RUN AGAIN [Y/N] " 840 X$=INKEY$ 850 IF X$="y" OR X$="Y" THEN GOTO 10 860 IF X$="n" OR X$="N" THEN SYSTEM 870 IF X$="" THEN 840 880 INPUT” Secondary output voltage required ";VS2 890 INPUT” Diode forward voltage ";VF2 900 NS2=(VS2+VF2)/VT 910 VPK2=VPK1*(NS2/NS1) 920 PIV2=VPK2*1.5 930 PRINT” Secondary turns required is ";NS2 940 PRINT” Minimum Diode PIV required ";PIV2;"volts" 950 PRINT:COLOR 14,1 960 PRINT “ Another secondary ? [Y/N] " 970 X$=INKEY$ 980 IF X$="y" OR X$="Y" THEN GOTO 880 990 IF X$="n" OR X$="N" THEN GOTO 820 1000 IF X$="" THEN 970 Standard SEPIC converter 10 CLS:COLOR 11,1:CLS 20 PRINT 30 PRINT” SEPIC Converter Design" 40 PRINT” Written by J.H.Fielding" 50 PRINT:COLOR 15,1 60 INPUT” Minimum supply voltage ";VMIN 70 INPUT” Maximum supply voltage ";VMAX 80 INPUT” Output voltage ";VO 90 INPUT” Maximum output current ";IO 100 INPUT” Minimum output current ";IMIN 110 INPUT” Output Diode forward voltage ";VD 120 INPUT” Frequency of operation (kHz) ";FD 130 F=FD*1000 140 T=1/F 150 CLS:PRINT:COLOR 14,1 160 D1=((VO+VD)/(VMIN+VO+VD)) 170 D2=((VO+VD)/(VMAX+VO+VD)) 180 PRINT” maximum duty cycle =";D1*100;"%" 190 PRINT” minimum duty cycle =";D2*100;"%" 200 TON=T*D1 210 L=((VO)*(VMAX*VMAX)*(VO+VD-VMIN)*T)/((2*VO*IMIN)*(VO+VD)*(VO+VD)) 220 COLOR 14,1 230 TON=TON*1000000! 240 LM=L*1000000! 250 PRINT” Maximum Switch on time = ";TON; "uS" 260 PRINT” Inductance (min) = ";LM;" uH" 270 PRINT:COLOR 15,1 280 PRINT” Use this value of inductor ? [Y/N]" 290 X$=INKEY$ 300 IF X$ ="" THEN GOTO 290 310 IF X$ = "y" OR X$= "Y" THEN GOSUB 840 320 IF X$="N" OR X$="n" THEN GOSUB 830 330 PRINT:COLOR 15,1 340 INPUT” On resistance of switch ";RDS 350 INPUT” Estimated resistance of inductor ";LR 360 INPUT” Estimated ESR of Capacitor ";CR 370 PRINT:CMN=(L*(IO*IO)*(VO*VO))/(VMIN*VMIN*VMIN*VMIN) 380 CMIN=CMN*1000000! 390 RC=IO*(SQR(VO/VMIN)) 400 CLS:COLOR 14,1:PRINT:PRINT 410 PRINT” Inductance = ";LM; "uH" 420 PRINT” Coupling Capacitor - minimum = ";CMIN; "uF" 430 PRINT” Coupling Capacitor - ripple current = ";RC; "Amps" 440 PRINT” Duty cycle at maximum input voltage = ";D2*100;"%" 450 PRINT” Duty cycle at minimum input voltage = ";D1*100;"%" 460 IC=IL/3.4641 470 PC=(IC*IC)*CR 480 PL=(IO+IL/2)*(IO+IL/2)*LR 490 PD=IO*VD 500 DP=(IO)*((VO+VD)+1)/(VMIN) 510 PIV=(VO+VMAX) 520 PRINT” Diode Peak Inverse Voltage = ";PIV;"Volts" 530 PRINT” Worst case loss in inductor = ";PL;"watts" 540 PRINT” RMS current in output capacitor = ";IC ;"Amps" 550 PRINT” Worst case loss in output capacitor = ";PC;"watts" 560 PRINT” Peak current in diode = ";DP ;"Amps" 570 VR=2*(IC*CR)*1000 580 PRINT” Output ripple voltage = ";VR ;"mV pk-pk" 590 PO=IO*VO 600 COLOR 10,1 610 PRINT 620 PSW=((IO+IL/2)*(IO+IL/2))*RDS 630 PT1=PC+PL+PD 640 PT=PC+PL+PD+PSW 650 E1=PO/(PT+PO) 660 E=E1*100 670 LL=(PT+PO)/VMIN 680 HL=(PT+PO)/VMAX 690 PRINT” Total throughput power = ";PO;"watts" 700 PRINT:COLOR 15,1 710 PRINT” Worst case loss in switch = ";PSW;"watts" 720 PRINT” Worst case loss in diode = ";PD;"watts" 730 PRINT” Total power losses (except core) = ";PT ;"Watts" 740 PRINT” Approx. Low line input current = ";LL;"Amps" 750 PRINT” Approx. High line input current = ";HL;"Amps" 760 PRINT” Estimated efficiency (approx.) = ";E;" %" 770 PRINT:COLOR 10,1 780 PRINT” RUN AGAIN [Y/N] " 790 X$=INKEY$ 800 IF X$="y" OR X$="Y" THEN GOTO 10 810 IF X$="n" OR X$="N" THEN SYSTEM 820 IF X$="" THEN 790 830 INPUT” Enter value of inductor in uH ";LM 840 L=LM/1000000! 850 IL=(VMIN*(VO+VD))/((F*2*L)*(VMIN+VO+VD)) 860 IL1=IO*(VO/VMIN)+IL/2 870 IL2=IO*((VMIN+VD)/(VMIN))+IL/2 880 CLS:COLOR 14,1:PRINT 890 PRINT” Using inductance of ";LM;" uH" 900 PRINT” Peak-Peak current in L1 = ";IL1;"Amps" 910 PRINT” Peak-Peak current in L2 = ";IL2;"Amps" 920 RETURN Synchronous SEPIC (using two mosfet switches) 10 CLS:COLOR 11,1:CLS 20 PRINT 30 PRINT” Synchronous SEPIC Converter Design" 40 PRINT” Written by J.H.Fielding" 50 PRINT:COLOR 15,1 60 INPUT” Minimum supply voltage ";VMIN 70 INPUT” Maximum supply voltage ";VMAX 80 INPUT” Output voltage ";VO 90 INPUT” Maximum output current ";IO 100 INPUT” Minimum output current ";IMIN 110 INPUT” Sync diode on resistance ";RD 120 INPUT” Frequency of operation (kHz) ";FD 130 F=FD*1000 140 VD=(IO)*RD 150 T=1/F 160 CLS:PRINT:COLOR 14,1 170 D1=((VO+VD)/(VMIN+VO+VD)) 180 D2=((VO+VD)/(VMAX+VO+VD)) 190 PRINT” maximum duty cycle =";D1*100;"%" 200 PRINT” minimum duty cycle =";D2*100;"%" 210 TON=T*D1 220 L=((VO)*(VMAX*VMAX)*(VO+VD-VMIN)*T)/((2*VO*IMIN)*(VO+VD)*(VO+VD)) 230 COLOR 14,1 240 TON=TON*1000000! 250 LM=L*1000000! 260 PRINT” Maximum Switch on time = ";TON; "uS" 270 PRINT” Inductance (min) = ";LM;" uH" 280 PRINT:COLOR 15,1 290 PRINT” Use this value of inductor ? [Y/N]" 300 X$=INKEY$ 310 IF X$ ="" THEN GOTO 300 320 IF X$ = "y" OR X$= "Y" THEN GOSUB 840 330 IF X$="N" OR X$="n" THEN GOSUB 830 340 PRINT:COLOR 15,1 350 INPUT” On resistance of switch ";RDS 360 INPUT” Estimated resistance of inductor ";LR 370 INPUT” Estimated ESR of Capacitor ";CR 380 PRINT:CMN=(L*(IO*IO)*(VO*VO))/(VMIN*VMIN*VMIN*VMIN) 390 CMIN=CMN*1000000! 400 RC=IO*(SQR(VO/VMIN)) 410 CLS:COLOR 14,1:PRINT:PRINT 420 PRINT” Inductance = ";LM; "uH" 430 PRINT” Coupling Capacitor - minimum = ";CMIN; "uF" 440 PRINT” Coupling Capacitor - ripple current = ";RC; "Amps" 450 PRINT” Duty cycle at maximum input voltage = ";D2*100;"%" 460 PRINT” Duty cycle at min input voltage = ";D1*100;"%" 470 IC=IL/3.4641 480 PC=(IC*IC)*CR 490 PL=(IO+IL/2)*(IO+IL/2)*LR 500 PD=IO*VD 510 DP=(IO)*((VO+VD)+1)/(VMIN) 520 PIV=(VO+VMAX) 530 PRINT” Switch Diode Peak Inverse Voltage = ";PIV;"Volts" 540 PRINT” Worst case loss in inductor = ";PL;"watts" 550 PRINT” RMS current in output capacitor = ";IC ;"Amps" 560 PRINT” Worst case loss in output capacitor = ";PC;"watts" 570 PRINT” Peak current in diode = ";DP ;"Amps" 580 VR=2*(IC*CR)*1000 590 PRINT” Output ripple voltage = ";VR ;"mV pk-pk" 600 PO=IO*VO 610 COLOR 10,1 620 PRINT:COLOR 15,1 630 PRINT 640 PSW=((IO+IL/2)*(IO+IL/2))*RDS 650 PT1=PC+PL+PD 660 PT=PC+PL+PD+PSW 670 E1=PO/(PT+PO) 680 E=E1*100 690 LL=(PT+PO)/VMIN 700 HL=(PT+PO)/VMAX 710 PRINT” Worst case loss in switch = ";PSW;"watts" 720 PRINT” Worst case loss in diode = ";PD;"watts" 730 PRINT” Total power losses (except core) = ";PT ;"Watts" 740 PRINT” Approx. Low line input current = ";LL;"Amps" 750 PRINT” Approx. High line input current = ";HL;"Amps" 760 PRINT” Estimated efficiency (approx.) = ";E;" %" 770 PRINT:COLOR 10,1 780 PRINT” CALCULATE THE NUMBER OF TURNS REQUIRED [Y/N] ?" 790 X$=INKEY$ 800 IF X$="y" OR X$="Y" THEN GOTO 930 810 IF X$="n" OR X$="N" THEN GOTO 1000 820 IF X$="" THEN 790 830 INPUT” Enter value of inductor in uH ";LM 840 L=LM/1000000! 850 IL=(VMIN*(VO+VD))/((F*2*L)*(VMIN+VO+VD)) 860 IL1=IO*(VO/VMIN)+IL/2 870 IL2=IO*((VMIN+VD)/(VMIN))+IL/2 880 CLS:COLOR 14,1:PRINT 890 PRINT” Using inductance of ";LM;" uH" 900 PRINT” Peak-Peak current in L1 = ";IL1;"Amps" 910 PRINT” Peak-Peak current in L2 = ";IL2;"Amps" 920 RETURN 930 CLS:PRINT:COLOR 15,1 940 INPUT” AL VALUE OF CORE SELECTED ";AL 950 LP=LM/1000 960 L=LP/AL 970 N=1000*SQR(L) 980 PRINT 990 PRINT” NUMBER OF TURNS = ";N 1000 PRINT:COLOR 14,1 1010 PRINT” RUN AGAIN [Y/N] ?" 1020 X$=INKEY$ 1030 IF X$="y" OR X$="Y" THEN GOTO 10 1040 IF X$="n" OR X$="N" THEN SYSTEM 1050 IF X$="" THEN 1020 Off-line flyback converter 10 CLS:COLOR 11,1:CLS:PRINT 20 PRINT” Off-Line Flyback Converter" 30 PRINT” Using Current Mode Control" 40 PRINT” Written by J.H.Fielding" 50 PRINT:COLOR 15,1 60 INPUT” Minimum supply voltage (AC) ";VMIN 70 INPUT” Maximum supply voltage (AC) ";VMAX 80 INPUT” Main output voltage ";VO 90 INPUT” Maximum output current (A) ";IO 100 INPUT” Short circuit current (A) ";ISC 110 INPUT” Diode forward voltage ";VD 120 INPUT” Frequency of operation (kHz) ";F 130 F=F*1000 140 INPUT” On resistance of switch (ohms) ";RDS 150 COLOR 15,1 160 VMIN = VMIN*1.414 170 VMAX = VMAX*1.414 180 INPUT” Efficiency assumed ( % ) ";E 190 E=E/100 200 PO=ISC*VO 210 IAVG=PO/(E*VMIN) 220 PIN=IAVG*VMIN 230 CLS:PRINT:COLOR 14,1 240 PRINT” Power input = ";PIN; "watts" 250 PRINT” Average input current = ";IAVG; "amps" 260 PRINT:COLOR 15,1 270 PRINT” maximum duty cycle allowed = % " 280 INPUT” (recommended Dmax = 45%)";D 290 PRINT:D=D/100:COLOR 14,1 300 TONMAX=(1/F)*D 310 PRINT” Maximum Switch on time = ";TONMAX*1000000!; "uS" 320 IPK=(2*PO)/(E*(VMIN*D)) 330 IRMS=IPK*(SQR(D/3)) 340 VI=VMIN-(RDS*IRMS) 350 LP=E*((VI*D)*(VI*D))/(2*PO*F) 360 PRINT” Primary inductance (min) = ";LP*1000000!;" uH" 370 PRINT:COLOR 15,1 380 INPUT” AL value of core (nH/t) = ";AL 390 AL=AL/1E+09 400 N=LP/AL:COLOR 14,1:CLS:PRINT 410 NP=SQR(N) 420 PRINT” Minimum number of turns on primary = ";NP 430 PRINT:COLOR 15,1 440 INPUT” Choose number of turns for primary ";NP 450 PRINT:COLOR 14,1 460 LP=(NP*NP)*AL 470 PRINT” Primary inductance = ";LP*1000000!;" uH" 480 COLOR 15,1 490 NS=NP*((VO+VD)*(1-D))/(VMIN*D) 500 PRINT 510 COLOR 14,1 520 PRINT” Minimum number of turns for secondary = ";NS 530 PRINT 540 COLOR 15,1 550 INPUT” Choose number of turns for secondary ";NS1 560 LS=(NS1*NS1)*AL 570 PRINT:COLOR 14,1 580 PRINT” With ";NS1;"turns secondary inductance = ";LS*1000000!;" uH" 590 VT=VO/NS1:N=NS1/NP 600 PRINT” Secondary constant = ";VT;" volts/turn" 610 VSPK=(VO+VD)+((NS1/NP)*VMIN) 620 PRINT” Primary switch peak curent = ";IPK;"Amps" 630 PRINT” Secondary peak voltage - low line = ";VSPK;"volts" 640 VPK=(VO+VD)+((N)*VMAX) 650 DMAX=(VO)/((VO+(N)*VMAX)) 660 COLOR 14,1 670 PRINT” Secondary peak voltage - high line = ";VPK 680 PRINT” Duty cycle at maximum input voltage = ";DMAX*100;"%" 690 PSW=(IAVG*IAVG)*RDS 700 PRINT” Worst case loss in switch - low line = ";PSW;"watts" 710 PD=ISC*VD 720 PRINT” Worst case loss in diode = ";PD;"watts" 730 IAVGH=(PO/VMAX)/E 740 IAVGL=(PO/VMIN)/E 750 PRINT” Average input current at high line = ";IAVGH;"Amps" 760 PRINT” Average input current at low line = ";IAVGL;"Amps" 770 PRINT:COLOR 10,1 780 PRINT” Do you want to calculate turns for other outputs [Y/N] " 790 X$=INKEY$ 800 IF X$="y" OR X$="Y" THEN CLS:COLOR 15,1:PRINT:GOTO 890 810 IF X$="n" OR X$="N" THEN GOTO 830 820 IF X$="" THEN 790 830 PRINT 840 PRINT” RUN AGAIN [Y/N] " 850 X$=INKEY$ 860 IF X$="y" OR X$="Y" THEN GOTO 10 870 IF X$="n" OR X$="N" THEN SYSTEM 880 IF X$="" THEN 850 890 INPUT” Secondary output voltage required ";VS2 900 INPUT” Diode forward voltage ";VF2 910 NS2=(VS2+VF2)/VT 920 PRINT” Secondary turns required is ";NS2 930 PRINT:COLOR 14,1 940 PRINT “ Another secondary ? [Y/N] " 950 X$=INKEY$ 960 IF X$="y" OR X$="Y" THEN GOTO 890 970 IF X$="n" OR X$="N" THEN GOTO 830 980 IF X$="" THEN 950 Choke calculator (for buck converter or extra filtering pole) 10 CLS:COLOR 11,1:CLS:PRINT 20 PRINT” AL to Turns Calculator " 30 PRINT” J.H.Fielding " 40 PRINT:COLOR 15,1 50 INPUT” INDUCTANCE REQUIRED (uH)";LM 60 L=LM/1000000! 70 PRINT 80 INPUT” AL VALUE OF CORE (nH/t) ";AL 90 LP=LM/1000 100 L=LP/AL 110 N=1000*SQR(L) 120 PRINT:COLOR 14,1 130 PRINT” NUMBER OF TURNS = ";N 140 PRINT:COLOR 10,1 150 PRINT” RUN AGAIN [Y/N] ?" 160 X$=INKEY$ 170 IF X$="y" OR X$="Y" THEN CLS:GOTO 10 180 IF X$="n" OR X$="N" THEN SYSTEM 190 IF X$="" THEN 160