Version 4 SHEET 1 1400 932 WIRE -128 -736 -208 -736 WIRE 0 -736 -48 -736 WIRE 48 -736 0 -736 WIRE 64 -736 48 -736 WIRE 144 -736 128 -736 WIRE 176 -736 144 -736 WIRE 320 -736 256 -736 WIRE 480 -736 400 -736 WIRE 736 -736 720 -736 WIRE 0 -688 0 -736 WIRE 736 -688 736 -736 WIRE 800 -672 784 -672 WIRE 816 -672 800 -672 WIRE 320 -592 288 -592 WIRE 432 -592 400 -592 WIRE 0 -576 0 -608 WIRE 736 -576 736 -608 WIRE 784 -576 784 -624 WIRE -112 -544 -128 -544 WIRE -128 -512 -128 -544 WIRE 288 -464 288 -592 WIRE 320 -464 288 -464 WIRE 432 -464 400 -464 WIRE 192 -400 176 -400 WIRE 736 -400 720 -400 WIRE -80 -384 -80 -416 WIRE 112 -384 -80 -384 WIRE -128 -368 -128 -416 WIRE 288 -368 288 -464 WIRE 288 -368 176 -368 WIRE 736 -352 736 -400 WIRE 288 -336 288 -368 WIRE 320 -336 288 -336 WIRE 432 -336 400 -336 WIRE -128 -320 -128 -368 WIRE 16 -320 0 -320 WIRE 0 -304 0 -320 WIRE 288 -304 288 -336 WIRE 736 -240 736 -272 WIRE -128 -208 -128 -240 WIRE 0 -208 0 -224 WIRE 288 -208 288 -240 WIRE 736 -160 720 -160 WIRE 736 -144 736 -160 WIRE 736 -64 736 -80 WIRE 736 -64 720 -64 WIRE 720 32 704 32 WIRE 736 32 720 32 WIRE 736 64 736 32 WIRE -128 112 -144 112 WIRE -32 112 -48 112 WIRE -16 112 -32 112 WIRE 64 112 32 112 WIRE 176 112 144 112 WIRE 224 112 176 112 WIRE 352 112 304 112 WIRE 32 144 32 112 WIRE 176 144 176 112 WIRE 736 176 736 144 WIRE 80 208 32 144 WIRE 128 208 176 144 WIRE 416 208 352 112 WIRE -128 256 -208 256 WIRE 0 256 -48 256 WIRE 48 256 0 256 WIRE 80 256 80 208 WIRE 80 256 48 256 WIRE 128 256 128 208 WIRE 144 256 128 256 WIRE 176 256 144 256 WIRE 320 256 256 256 WIRE 416 256 416 208 WIRE 416 256 400 256 WIRE 480 256 416 256 WIRE 736 256 720 256 WIRE 0 304 0 256 WIRE 736 304 736 256 WIRE 320 400 288 400 WIRE 432 400 400 400 WIRE 0 416 0 384 WIRE 736 416 736 384 WIRE -112 496 -128 496 WIRE -16 496 -32 496 WIRE -128 528 -128 496 WIRE 192 528 160 528 WIRE 288 528 288 400 WIRE 288 528 256 528 WIRE 320 528 288 528 WIRE 432 528 400 528 WIRE -128 656 -128 608 WIRE 0 656 -128 656 WIRE 224 656 144 656 WIRE 288 656 224 656 WIRE 320 656 288 656 WIRE 432 656 400 656 WIRE -128 688 -128 656 WIRE 0 688 0 656 WIRE 144 688 144 656 WIRE 288 688 288 656 WIRE -128 784 -128 752 WIRE 0 784 0 768 WIRE 144 784 144 768 WIRE 288 784 288 752 FLAG 720 -400 i IOPIN 720 -400 Out FLAG 720 256 o IOPIN 720 256 Out FLAG -16 496 0 FLAG -128 496 d FLAG 736 -240 0 FLAG 736 416 0 FLAG 144 784 0 FLAG 288 784 0 FLAG 0 784 0 FLAG -128 784 0 FLAG 224 656 ramp FLAG 48 256 x FLAG 0 416 0 FLAG 432 400 0 FLAG 160 528 0 FLAG 432 528 0 FLAG 288 400 di FLAG 432 656 0 FLAG -128 -208 0 FLAG 0 -576 0 FLAG -128 -544 pwm FLAG 192 -400 0 FLAG 432 -336 0 FLAG 0 -208 0 FLAG 0 -320 saw FLAG 432 -592 0 FLAG 288 -208 0 FLAG 432 -464 0 FLAG 288 -592 di1 FLAG 736 -160 di1 FLAG -208 -736 i IOPIN -208 -736 BiDir FLAG 480 -736 o2 IOPIN 480 -736 BiDir FLAG -128 -368 clk FLAG 736 -64 di FLAG 48 -736 x1 FLAG 144 -736 y1 FLAG 144 256 y FLAG -144 112 0 FLAG -32 112 Dz FLAG 736 176 0 FLAG 720 32 Kf FLAG -208 256 i IOPIN -208 256 BiDir FLAG 480 256 o IOPIN 480 256 BiDir FLAG 720 -736 o2 IOPIN 720 -736 Out FLAG 736 -576 0 FLAG 784 -576 0 FLAG 800 -672 o SYMBOL bi -128 256 M90 WINDOW 0 -32 40 VBottom 0 WINDOW 3 48 16 VCenter 0 SYMATTR InstName Bi SYMATTR Value I=V(d)*I(Vx) SYMBOL bv 0 288 R0 WINDOW 3 -112 56 Center 0 WINDOW 0 16 16 Left 0 SYMATTR Value V=V(d)*V(i) SYMATTR InstName Bx SYMBOL voltage 304 256 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 -32 56 VBottom 0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName Vx SYMATTR Value 0 SYMBOL res -128 512 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 0 56 VBottom 0 SYMATTR InstName Rd SYMATTR Value 1 SYMBOL voltage 736 -368 M0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 WINDOW 0 16 16 Left 0 WINDOW 3 16 96 Left 0 SYMATTR InstName Vi SYMATTR Value 10 SYMBOL bi 144 768 M180 WINDOW 0 16 80 Left 0 WINDOW 3 0 -80 Center 0 SYMATTR InstName BrI SYMATTR Value I=V(i,o)/{2*f*Lo} SYMBOL cap 304 688 M0 WINDOW 39 24 56 Left 0 WINDOW 3 8 56 Right 0 SYMATTR SpiceLine Rpar=1 SYMATTR Value 1n SYMATTR InstName Cr SYMBOL bi 0 768 R180 WINDOW 0 -16 80 Right 0 WINDOW 3 0 -48 Center 0 SYMATTR InstName B2 SYMATTR Value I=limit(0,1,V(di)/V(ramp)) SYMBOL cap -112 688 M0 WINDOW 39 24 86 Left 0 WINDOW 3 24 56 Left 0 SYMATTR Value {4/pi/pi/f} SYMATTR InstName Cd SYMBOL ind 160 272 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 5 56 VBottom 0 WINDOW 39 -17 56 VBottom 0 SYMATTR InstName Lo SYMATTR Value {Lo} SYMATTR SpiceLine Rser=10u SYMBOL voltage 736 288 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 WINDOW 0 16 16 Left 0 WINDOW 3 16 96 Left 0 SYMATTR InstName Vo SYMATTR Value PWL(0 8 50m 0) SYMBOL f 320 400 M90 WINDOW 0 -32 40 VBottom 0 WINDOW 3 32 40 VTop 0 SYMATTR InstName Ffb SYMATTR Value Vx 1 SYMBOL current 400 528 M270 WINDOW 0 34 40 VTop 0 WINDOW 3 -34 40 VBottom 0 WINDOW 123 -32 0 VLeft 0 WINDOW 39 0 0 Left 0 SYMATTR InstName Iref SYMATTR Value {Iref} SYMATTR Value2 AC 1 SYMBOL cap 256 544 M270 WINDOW 39 56 32 VCenter 0 WINDOW 0 32 48 VRight 0 WINDOW 3 32 16 VLeft 0 SYMATTR SpiceLine Rpar=1 SYMATTR InstName Cdi SYMATTR Value 1n SYMBOL ind -112 512 M0 WINDOW 0 40 40 Left 0 WINDOW 3 40 64 Left 0 SYMATTR InstName Ld SYMATTR Value {1/4/f} SYMBOL bi 400 656 M270 WINDOW 0 32 40 VTop 0 WINDOW 3 -34 16 VBottom 0 SYMATTR InstName BrV SYMATTR Value I=V(o)/{Lo*f}*n SYMBOL Digital\\srflop -176 -464 R270 WINDOW 3 16 136 VRight 0 WINDOW 0 40 136 VRight 0 WINDOW 123 -8 136 VRight 0 SYMATTR Value tripdt=10n SYMATTR InstName A2 SYMATTR Value2 td=10n SYMBOL voltage -128 -336 R0 WINDOW 0 16 16 Left 0 WINDOW 3 16 160 Center 0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName Vclk SYMATTR Value PULSE(0 1 1u 10n 10n 10n {1/f}) SYMBOL bv 0 -704 R0 WINDOW 3 -128 56 Center 0 WINDOW 0 16 16 Left 0 SYMATTR Value V=V(pwm)*V(i) SYMATTR InstName Bx1 SYMBOL Digital\\diffschmtbuf 176 -448 M0 WINDOW 3 64 -16 Right 0 WINDOW 0 64 32 Right 0 WINDOW 123 64 8 Right 0 SYMATTR Value Vt=0 Vh=0 SYMATTR InstName A1 SYMATTR Value2 tripdt=10n SYMBOL cap 752 -144 M0 WINDOW 3 24 56 Left 0 SYMATTR Value 1p SYMATTR InstName Ctic SYMBOL bi 320 -336 R270 WINDOW 0 32 40 VTop 0 WINDOW 3 -48 0 VRight 0 SYMATTR InstName BrV1 SYMATTR Value I=V(saw)*V(o)/{Lo*f}*n SYMBOL voltage 0 -320 M0 WINDOW 0 -16 16 Right 0 WINDOW 3 0 168 Center 0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName Vsawtooth SYMATTR Value PULSE(0 1 {1u+25n} {1/f-20n} 20n 0 {1/f}) SYMBOL ind 160 -720 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 5 56 VBottom 0 WINDOW 39 -17 56 VBottom 0 SYMATTR InstName Lo1 SYMATTR Value {Lo} SYMATTR SpiceLine Rser=10u SYMBOL voltage 304 -736 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 -32 56 VBottom 0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName Vx1 SYMATTR Value 0 SYMBOL f 320 -592 M90 WINDOW 0 -32 40 VBottom 0 WINDOW 3 32 40 VTop 0 SYMATTR InstName Ffb1 SYMATTR Value Vx1 1 SYMBOL current 400 -464 M270 WINDOW 0 34 40 VTop 0 WINDOW 3 -34 40 VBottom 0 WINDOW 39 0 0 Left 0 SYMATTR InstName Iref1 SYMATTR Value {Iref} SYMBOL cap 304 -304 M0 WINDOW 39 7 56 Right 0 WINDOW 3 24 56 Left 0 SYMATTR SpiceLine Rpar=1 SYMATTR Value 1n SYMATTR InstName Cdi1 SYMBOL bi -128 -736 M90 WINDOW 0 -32 40 VBottom 0 WINDOW 3 48 0 VCenter 0 SYMATTR InstName Bi1 SYMATTR Value I=V(pwm)*I(Vx1) SYMBOL diode 64 -720 R270 WINDOW 0 32 32 VTop 0 WINDOW 3 0 32 VBottom 0 SYMATTR InstName D1 SYMATTR Value Di SYMBOL bv 160 112 R90 WINDOW 0 35 56 VTop 0 WINDOW 3 -35 56 VBottom 0 SYMATTR InstName BzV SYMATTR Value V= V(Dz)*V(o) SYMBOL bi 304 112 M270 WINDOW 0 -35 40 VBottom 0 WINDOW 3 35 40 VTop 0 SYMATTR InstName BzI SYMATTR Value I= V(Dz)*I(Vx) SYMBOL bv -32 112 M270 WINDOW 0 -35 56 VBottom 0 WINDOW 3 88 135 VLeft 0 SYMATTR InstName B_Dzero SYMATTR Value V= limit(0,1,1-V(D)/2*(1+V(i)/V(o))-{f*Lo}*I(Vx)/V(o)) SYMBOL bv 736 48 R0 WINDOW 0 32 32 Left 0 WINDOW 3 32 80 Left 0 SYMATTR InstName Bf SYMATTR Value V= limit(0,1,(V(i,o)/V(i)+n)*2) SYMBOL e 736 -704 M0 SYMATTR InstName Eo SYMATTR Value 1 TEXT 720 592 Left 0 ;.ac dec 501 10k 100k TEXT 720 528 Left 0 !.param f=20k Lo=100u Iref=1 TEXT 720 560 Left 0 !.tran 0 50m 5m 2u uic TEXT 216 328 Center 0 ;(100u) TEXT 720 624 Left 0 ;.step param Vo 0 9.9 .5 TEXT 752 -136 Left 0 ;"Tickler" TEXT 216 -664 Center 0 ;(100u) TEXT 720 680 Left 0 !.param n=0 TEXT 720 720 Left 0 ;Slope Compensation Control\n0 is no compensation\n1 is 100% compensation\n (I_ramp = Lo downslope) TEXT -304 -64 Left 0 ;Current Mode Control (averaged model - analogspiceman 2007)\nwith Discontinuous Conduction Extension (2010) TEXT -304 -832 Left 0 ;Current Mode Control (switched model with diode to allow discontinuous mode) TEXT 720 -512 Left 0 ;To check match\nof models, plot\nI(Eo) and I(Vo) TEXT 56 -616 Left 0 !.model Di\n+ d Ron=10u TEXT 464 40 Left 0 ;Discontinuous\nConduction\nAveraged\nModel\nExtension TEXT 464 -592 Left 0 ;Feedback\nCurrent TEXT 464 -464 Left 0 ;Reference\nCurrent TEXT 432 -248 Left 0 ;Compensating\nCurrent Ramp TEXT 464 400 Left 0 ;Feedback\nCurrent TEXT 464 528 Left 0 ;Reference\nCurrent TEXT 432 744 Left 0 ;Compensating\nCurrent Ramp TEXT 144 640 Bottom 0 ;Natural\nRamp TEXT 0 640 Bottom 0 ;Effective\nGain TEXT -208 528 Bottom 0 ;Effective\nSampling\nDelay TEXT -88 80 Bottom 0 ;Zero Duty Cycle TEXT -216 -224 Bottom 0 ;Clock\nGenerators TEXT -216 -480 Center 0 ;PWM\nLatch TEXT 808 0 Left 0 ;Effective Operating\nFrequency Multiplier\n(Freq Reduction Due to\nSubharmonic Oscillation) TEXT 808 168 Left 0 ;(For Reference\nOnly - not used) TEXT 784 -328 Left 0 ;Fixed\nInput Voltage TEXT 808 312 Left 0 ;Ramping\nOutput Voltage TEXT 720 496 Left 0 !.step param Iref list 1 3 LINE Normal -128 368 -128 464 2 LINE Normal -128 -624 -128 -576 2 LINE Normal 288 656 288 528 1 LINE Normal 0 656 144 656 1 LINE Normal 32 -320 272 -320 1 LINE Normal 392 -720 392 -608 2 LINE Normal 328 -720 328 -608 2 LINE Normal 392 272 392 384 2 LINE Normal 328 272 328 384 2 RECTANGLE Normal 640 864 -320 -96 RECTANGLE Normal 640 -128 -320 -864 RECTANGLE Normal 448 192 -192 0 1