Version 4 SHEET 1 2332 688 WIRE 160 -1136 160 -1152 WIRE 160 -1024 160 -1056 WIRE 256 -1024 160 -1024 WIRE 336 -1024 256 -1024 WIRE 368 -1024 336 -1024 WIRE 464 -1024 448 -1024 WIRE 560 -1024 544 -1024 WIRE 656 -1024 640 -1024 WIRE 928 -1024 912 -1024 WIRE 1024 -1024 1008 -1024 WIRE 1040 -1024 1024 -1024 WIRE 1168 -1024 1136 -1024 WIRE 1312 -1024 1296 -1024 WIRE 1408 -1024 1392 -1024 WIRE 1424 -1024 1408 -1024 WIRE 1552 -1024 1520 -1024 WIRE 1696 -1024 1680 -1024 WIRE 1792 -1024 1776 -1024 WIRE 1808 -1024 1792 -1024 WIRE 1952 -1024 1904 -1024 WIRE 256 -1008 256 -1024 WIRE 1040 -992 1024 -992 WIRE 1424 -992 1408 -992 WIRE 1808 -992 1792 -992 WIRE 256 -928 256 -944 WIRE 384 -864 384 -976 WIRE 400 -864 384 -864 WIRE 512 -864 480 -864 WIRE 544 -864 512 -864 WIRE 752 -864 688 -864 WIRE 928 -848 912 -848 WIRE 1024 -848 1008 -848 WIRE 1040 -848 1024 -848 WIRE 1168 -848 1136 -848 WIRE 1312 -848 1296 -848 WIRE 1408 -848 1392 -848 WIRE 1424 -848 1408 -848 WIRE 1552 -848 1520 -848 WIRE 1696 -848 1680 -848 WIRE 1792 -848 1776 -848 WIRE 1808 -848 1792 -848 WIRE 1952 -848 1904 -848 WIRE 160 -832 160 -1024 WIRE 208 -832 160 -832 WIRE 336 -832 304 -832 WIRE 384 -832 384 -864 WIRE 384 -832 336 -832 WIRE 1040 -816 1024 -816 WIRE 1424 -816 1408 -816 WIRE 1808 -816 1792 -816 WIRE 208 -800 160 -800 WIRE 512 -800 512 -864 WIRE 512 -800 448 -800 WIRE 544 -800 512 -800 WIRE 736 -800 688 -800 WIRE 752 -800 736 -800 WIRE 400 -784 384 -784 WIRE 992 -736 960 -736 WIRE 1088 -736 1040 -736 WIRE 1136 -736 1088 -736 WIRE 1328 -736 1312 -736 WIRE 1376 -736 1328 -736 WIRE 1472 -736 1424 -736 WIRE 1520 -736 1472 -736 WIRE 1760 -736 1728 -736 WIRE 1904 -736 1808 -736 WIRE 1952 -736 1904 -736 WIRE 1040 -720 1040 -736 WIRE 1136 -720 1136 -736 WIRE 1328 -720 1328 -736 WIRE 1424 -720 1424 -736 WIRE 1520 -720 1520 -736 WIRE 1808 -720 1808 -736 WIRE 1904 -720 1904 -736 WIRE 400 -704 400 -736 WIRE 448 -704 448 -720 WIRE 992 -704 992 -736 WIRE 1376 -704 1376 -736 WIRE 1760 -704 1760 -736 WIRE 160 -624 160 -800 WIRE 192 -624 160 -624 WIRE 224 -624 192 -624 WIRE 992 -624 992 -656 WIRE 1040 -624 1040 -640 WIRE 1136 -624 1136 -656 WIRE 1328 -624 1328 -640 WIRE 1328 -624 1312 -624 WIRE 1376 -624 1376 -656 WIRE 1424 -624 1424 -640 WIRE 1520 -624 1520 -656 WIRE 1760 -624 1760 -656 WIRE 1808 -624 1808 -640 WIRE 1904 -624 1904 -656 WIRE 336 -608 288 -608 WIRE 384 -608 336 -608 WIRE 496 -608 448 -608 WIRE 560 -608 496 -608 WIRE 736 -608 736 -800 WIRE 736 -608 624 -608 WIRE 192 -592 176 -592 WIRE 224 -592 192 -592 WIRE 560 -512 544 -512 WIRE 656 -512 640 -512 FLAG 336 -1024 f+1 FLAG 912 -848 0 FLAG 1024 -1024 3 FLAG 1168 -848 Da FLAG 336 -608 clk FLAG 912 -1024 0 FLAG 1024 -848 4 FLAG 1168 -1024 Qa FLAG 1024 -992 clk FLAG 1024 -816 clk FLAG 464 -1024 0 FLAG 256 -928 0 FLAG 1296 -848 0 FLAG 1408 -1024 5 FLAG 1552 -848 Db FLAG 1296 -1024 0 FLAG 1408 -848 6 FLAG 1552 -1024 Qb FLAG 1408 -992 clk FLAG 1408 -816 clk FLAG 960 -736 a IOPIN 960 -736 In FLAG 336 -832 f FLAG 192 -624 r FLAG 656 -1024 win FLAG 544 -1024 0 FLAG 656 -512 0 FLAG 544 -512 cy FLAG 448 -704 0 FLAG 400 -704 0 FLAG 432 -976 0 FLAG 512 -864 fc FLAG 1312 -624 c IOPIN 1312 -624 In FLAG 1040 -624 0 FLAG 1136 -624 0 FLAG 992 -624 0 FLAG 1088 -736 Ca FLAG 1312 -736 b IOPIN 1312 -736 In FLAG 1424 -624 0 FLAG 1520 -624 0 FLAG 1376 -624 0 FLAG 1472 -736 Cb FLAG 1792 -1024 m FLAG 1952 -1024 mag IOPIN 1952 -1024 Out FLAG 1680 -1024 0 FLAG 1792 -848 p FLAG 1952 -848 pha IOPIN 1952 -848 Out FLAG 1680 -848 0 FLAG 1792 -816 _r FLAG 1952 -736 freq IOPIN 1952 -736 Out FLAG 1792 -992 _r FLAG 192 -592 _r FLAG 1728 -736 f FLAG 1808 -624 0 FLAG 1904 -624 0 FLAG 1760 -624 0 FLAG 496 -608 sqr FLAG 752 -864 Q FLAG 752 -800 D FLAG 160 -1152 0 FLAG 384 -784 freq SYMBOL current 160 -1136 R0 WINDOW 0 16 80 Left 0 WINDOW 3 16 0 Left 0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName I1 SYMATTR Value PULSE({f1} 0 {tstart+10n} 10n) SYMBOL cap 240 -1008 R0 WINDOW 0 8 8 Right 0 WINDOW 3 24 56 Left 0 WINDOW 39 24 8 Left 0 WINDOW 123 8 56 Right 0 SYMATTR InstName C1 SYMATTR Value {1/f2/10} SYMATTR SpiceLine Rpar=1 SYMATTR Value2 ic={f1} SYMBOL g 352 -1024 R270 WINDOW 0 48 32 VLeft 0 WINDOW 3 48 80 VRight 0 SYMATTR InstName G1 SYMATTR Value {inc} SYMBOL bi 560 -1024 R270 WINDOW 0 -35 40 VBottom 0 WINDOW 3 80 40 VCenter 0 WINDOW 123 48 40 VCenter 0 SYMATTR InstName B1 SYMATTR Value I=sin(pi*sdt(V(f)/round(V(cy)*{1-du}),0,V(r))) SYMATTR Value2 Rpar=1 nojacob SYMBOL S&H 256 -832 R0 WINDOW 3 0 48 Invisible 0 SYMATTR Value Vhigh={Vo} Vlow={-Vo} tripdt={tdt} Cout={Co} Rout={Ro} SYMATTR InstName A1 SYMBOL res 496 -880 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R1 SYMATTR Value 1k SYMBOL sw 448 -704 M180 WINDOW 0 32 80 Left 0 WINDOW 3 16 16 Left 0 SYMATTR InstName S1 SYMATTR Value cbar SYMBOL SpecialFunctions\\modulate2 544 -864 R0 WINDOW 3 0 112 Left 0 WINDOW 123 0 136 Left 0 WINDOW 0 0 -46 Left 0 SYMATTR Value space=0 mark=1 SYMATTR Value2 Vhigh=1 Vlow=-1 SYMATTR InstName A2 SYMBOL Digital\\buf1 624 -672 M0 WINDOW 3 16 80 Top 0 WINDOW 0 16 48 Bottom 0 SYMATTR Value Ref=0 SYMATTR InstName A3 SYMATTR Value2 tripdt={tdt} SYMBOL Digital\\buf1 448 -672 M0 WINDOW 3 16 88 Top 0 WINDOW 0 16 48 Bottom 0 WINDOW 38 16 24 Bottom 0 WINDOW 123 16 120 Top 0 SYMATTR Value duty={du} SYMATTR InstName A4 SYMATTR SpiceModel Counter SYMATTR Value2 cycles=V(cy) SYMBOL Digital\\buf 288 -672 M0 WINDOW 0 32 32 Bottom 0 WINDOW 3 32 96 Top 0 SYMATTR InstName A5 SYMATTR Value td=5n SYMATTR Value2 tripdt={tdt} SYMBOL bi 640 -512 M270 WINDOW 0 32 64 VRight 0 WINDOW 3 -32 112 VBottom 0 WINDOW 123 32 16 VLeft 0 SYMATTR InstName B2 SYMATTR Value I=u(time-Tstart)*round(limit(cy,cy*25,25*abs(V(f)/(fs-V(f)))**.5)) SYMATTR Value2 Rpar=1 SYMBOL bi 928 -1024 R270 WINDOW 0 40 -32 VRight 0 WINDOW 3 88 -32 VRight 0 WINDOW 123 64 -32 VRight 0 WINDOW 39 -48 -32 VRight 0 SYMATTR InstName B3 SYMATTR Value I=sdt(V(win)*V(Ca,a)*V(q),0,V(r)) SYMATTR Value2 Rpar=1 SYMATTR SpiceLine nojacob SYMBOL S&H 1088 -1024 R0 WINDOW 3 0 48 Invisible 0 SYMATTR Value Vhigh={Vo} Vlow={-Vo} tripdt={tdt} Cout={Co} SYMATTR InstName A6 SYMBOL bi 928 -848 R270 WINDOW 0 40 -32 VRight 0 WINDOW 3 88 -32 VRight 0 WINDOW 123 64 -32 VRight 0 WINDOW 39 -48 -32 VRight 0 SYMATTR InstName B4 SYMATTR Value I=sdt(V(win)*V(a,Ca)*V(d),0,V(r)) SYMATTR Value2 Rpar=1 SYMATTR SpiceLine nojacob SYMBOL S&H 1088 -848 R0 WINDOW 3 0 48 Invisible 0 SYMATTR Value Vhigh={Vo} Vlow={-Vo} tripdt={tdt} Cout={Co} SYMATTR InstName A7 SYMBOL g 1040 -736 R0 WINDOW 0 32 24 Left 0 WINDOW 3 32 88 Left 0 SYMATTR InstName Ga SYMATTR Value 1 SYMBOL cap 1120 -720 R0 WINDOW 3 24 56 Left 0 WINDOW 39 24 80 Left 0 SYMATTR Value {Cx} SYMATTR SpiceLine Rpar=1 SYMATTR InstName Ca SYMBOL bi 1312 -1024 R270 WINDOW 0 40 -32 VRight 0 WINDOW 3 88 -32 VRight 0 WINDOW 123 64 -32 VRight 0 WINDOW 39 -48 -32 VRight 0 SYMATTR InstName B5 SYMATTR Value I=sdt(V(win)*V(Cb,b)*V(q),0,V(r)) SYMATTR Value2 Rpar=1 SYMATTR SpiceLine nojacob SYMBOL S&H 1472 -1024 R0 WINDOW 3 0 48 Invisible 0 SYMATTR Value Vhigh={Vo} Vlow={-Vo} tripdt={tdt} Cout={Co} SYMATTR InstName A8 SYMBOL bi 1312 -848 R270 WINDOW 0 40 -32 VRight 0 WINDOW 3 88 -32 VRight 0 WINDOW 123 64 -32 VRight 0 WINDOW 39 -48 -32 VRight 0 SYMATTR InstName B6 SYMATTR Value I=sdt(V(win)*V(b,Cb)*V(d),0,V(r)) SYMATTR Value2 Rpar=1 SYMATTR SpiceLine nojacob SYMBOL S&H 1472 -848 R0 WINDOW 3 0 48 Invisible 0 SYMATTR Value Vhigh={Vo} Vlow={-Vo} tripdt={tdt} Cout={Co} SYMATTR InstName A9 SYMBOL bv 1328 -736 M0 WINDOW 0 34 56 Left 0 WINDOW 3 0 -24 Center 0 SYMATTR InstName Bb SYMATTR Value V=V(d)/V(fc)*Kt SYMBOL g 1424 -736 R0 WINDOW 0 32 24 Left 0 WINDOW 3 32 88 Left 0 SYMATTR InstName Gb SYMATTR Value 1 SYMBOL cap 1504 -720 R0 WINDOW 3 24 56 Left 0 WINDOW 39 24 80 Left 0 SYMATTR Value {Cx} SYMATTR SpiceLine Rpar=1 SYMATTR InstName Cb SYMBOL bi 1696 -1024 R270 WINDOW 0 40 -32 VRight 0 WINDOW 3 88 -32 VRight 0 WINDOW 123 64 -32 VRight 0 WINDOW 39 -48 -32 VRight 0 SYMATTR InstName B7 SYMATTR Value I=log10((V(Da)**2+V(Qa)**2)/(V(Db)**2+V(Qb)**2)) SYMATTR Value2 Rpar=10 SYMATTR SpiceLine nojacob SYMBOL S&H 1856 -1024 R0 WINDOW 3 0 48 Invisible 0 SYMATTR Value Vhigh={Vo} Vlow={-Vo} tripdt={tdt} Cout={Co} SYMATTR InstName A10 SYMBOL bi 1696 -848 R270 WINDOW 0 40 -32 VRight 0 WINDOW 3 88 -32 VRight 0 WINDOW 123 64 -32 VRight 0 WINDOW 39 -48 -32 VRight 0 SYMATTR InstName B8 SYMATTR Value I=atan2(V(Qa),V(Da))-atan2(V(Qb),V(Db)) SYMATTR Value2 Rpar={180/pi} SYMATTR SpiceLine nojacob SYMBOL S&H 1856 -848 R0 WINDOW 3 0 48 Invisible 0 SYMATTR Value Vhigh={Vo} Vlow={-Vo} tripdt={tdt} Cout={Co} SYMATTR InstName A11 SYMBOL g 1808 -736 R0 WINDOW 0 32 24 Left 0 WINDOW 3 0 -16 Center 0 SYMATTR InstName Gf SYMATTR Value {inc**-1.6} SYMBOL cap 1888 -720 R0 WINDOW 3 24 56 Left 0 WINDOW 39 24 80 Left 0 SYMATTR Value 10n SYMATTR SpiceLine Rpar=1 SYMATTR InstName Cf TEXT 256 -672 Bottom 0 ;Delayed\nIntegrator\nReset TEXT 1144 -384 Left 0 !.param tdt=1n du=0.2\n+ Vo=2*f2 Ro=1 Co=0n1 TEXT 1136 -424 Left 0 ;S/H & other parameters TEXT 480 -952 Left 0 ;DFT window generator (sine) TEXT 920 -528 Left 0 !C3 3 0 10n\nC4 4 0 10n\nC5 5 0 10n\nC6 6 0 10n\nCm m 0 1n0\nCp p 0 159p\nCw win 0 10n\nCy cy 0 10n TEXT 1144 -320 Left 0 !.model cbar sw Ron=1m\n+ Vt={0.4*f2} Vh={0.6*f2} TEXT 688 -512 Left 0 ;DFT cycle count TEXT 896 -576 Left 0 ;Convergence aids TEXT 1192 -1224 Center 0 ;Time Domain Frequency Response Analyzer\nby analogspiceman 2010\n(requires this file, FRA-as.asc, two symbol files, FRA-as.asy, S&H.asy, and a top level schematic) TEXT 1144 -536 Left 0 !.param\n+ inc=(f2/f1)**(1/pts)\n+ Cx=10/(2*pi*f1) TEXT 1136 -576 Left 0 ;FRA derived parameters TEXT 1472 -344 Left 0 ;.param f1=1k f2=100k fs=1G Kt=0.1 pts=500 cy=5 tstart=.1 trun=1\n.options plotwinsize=50k reltol=300u trtol=6\n.tran 0 {tstart+trun} {tstart+2*cy/f1} uic TEXT 1472 -576 Left 0 ;The following parameters must be defined in the Main Schematic:\n+ f1, f2 ; start and stop frequency for the FRA sweep\n+ fs ; switching frequency of the SMPS being analyzed\n+ Kt ; amplitude (peak) of test signal between b and c\n+ pts ; frequency points between f1 and f2\n+ cy ; nominal integration cycles per DFT point\n+ tstart ; settling time delay to start of FRA\n+ trun ; FRA worst case run time (set >> than actual) TEXT 160 -400 Left 0 ;To view output data in pseudo-frequency format, change the \nhorizontal axis quantity plotted to V(freq)/1V*1Hz, change the \nhorizontal scale to logarithmic and set the axis limits to f1 and f2. \nTo display the correct format for vertical axis units, change traces\nplotted to V(mag)/1V and V(pha)/1V*1deg.