initial commit

This commit is contained in:
Joseph Hopfmüller
2023-01-23 08:17:09 +01:00
commit 1d8dca1c6c
11733 changed files with 1219458 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
Version 4
SHEET 1 4156 1252
WIRE 1424 544 1392 544
WIRE 1520 544 1504 544
WIRE 1696 544 1520 544
WIRE 1856 544 1776 544
WIRE 1936 576 1936 560
WIRE 2032 576 2032 560
WIRE 1520 640 1520 544
WIRE 1552 640 1520 640
WIRE 1584 640 1552 640
WIRE 1696 640 1664 640
WIRE 1760 640 1696 640
WIRE 1856 656 1856 544
WIRE 1856 656 1824 656
WIRE 1760 672 1744 672
WIRE 1936 672 1936 656
WIRE 2032 672 2032 656
FLAG 1552 640 A
FLAG 1696 640 B
FLAG 1936 672 0
FLAG 2032 672 0
FLAG 1936 560 +V
FLAG 1792 624 +V
FLAG 2032 560 -V
FLAG 1792 688 -V
FLAG 1744 672 0
FLAG 1392 544 0
SYMBOL VOLTAGE 1568 640 M90
WINDOW 0 -32 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName V3
SYMATTR Value SINE(0 10m {Freq})
SYMATTR Value2 ac 1
SYMBOL Opamps\\UniversalOpamp2 1792 656 R0
SYMATTR InstName U1
SYMBOL voltage 1936 560 R0
SYMATTR InstName V1
SYMATTR Value 5
SYMBOL voltage 2032 560 R0
SYMATTR InstName V2
SYMATTR Value -5
SYMBOL res 1792 528 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 10K
SYMBOL res 1520 528 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R2
SYMATTR Value 1K
TEXT 2200 560 Left 2 !.tran 0 {5/Freq+.1m} .1m\n.step oct param Freq .1 10Meg 3
TEXT 1504 752 Left 2 !.measure Aavg avg V(a)\n.measure Bavg avg V(b)\n.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)\n.measure Aim avg -(V(a)-Aavg)*sin(360*time*Freq)\n.measure Bre avg (V(b)-Bavg)*cos(360*time*Freq)\n.measure Bim avg -(V(b)-Bavg)*sin(360*time*Freq)\n.measure GainMag param 20*log10(hypot(Are,Aim) / hypot(Bre,Bim))\n.measure GainPhi param mod(atan2(Aim, Are) - atan2(Bim, Bre)+180,360)-180
TEXT 2200 448 Left 2 !.save V(a) V(b)\n.option nomarch\n.option plotwinsize=0 numdgt=15
TEXT 2200 648 Left 2 ;.ac oct 10 .1 10Meg\n.param freq=0
TEXT 1856 248 Center 2 ;This example shows the basic principle of extracting\nthe small signal AC characteristics from time domain simulation.\n \nAfter running the simulation, execute menu command\nView=>SPICE Error Log. Then right click and select\n"Plot .step'ed .meas data". Press "yes" to the dialog\nasking if it should combine the data to complex numbers.
TEXT 2200 784 Left 2 ;To use this technique in your\nown simulations, include these\n.measure statements
RECTANGLE Normal 2608 976 1488 720 2

View File

@@ -0,0 +1,182 @@
Version 4
SHEET 1 4460 1080
WIRE 160 -48 48 -48
WIRE 288 -48 160 -48
WIRE 896 -48 288 -48
WIRE 48 -32 48 -48
WIRE 160 -32 160 -48
WIRE 384 -32 240 -32
WIRE 928 -32 384 -32
WIRE 384 -16 384 -32
WIRE 48 64 48 48
WIRE 160 64 160 32
WIRE 384 80 384 64
WIRE 464 80 384 80
WIRE 384 96 384 80
WIRE 288 112 288 -48
WIRE 464 128 464 80
WIRE 496 128 464 128
WIRE 896 128 896 -48
WIRE 896 128 880 128
WIRE 384 192 384 176
WIRE 288 224 288 192
WIRE 496 224 288 224
WIRE 976 224 880 224
WIRE 1088 224 976 224
WIRE 1232 224 1168 224
WIRE 1328 224 1232 224
WIRE 1472 224 1328 224
WIRE 1568 224 1472 224
WIRE 1328 240 1328 224
WIRE 1472 240 1472 224
WIRE 1568 240 1568 224
WIRE 416 320 400 320
WIRE 496 320 480 320
WIRE 976 320 976 288
WIRE 976 320 880 320
WIRE 1328 336 1328 304
WIRE 1472 336 1472 304
WIRE 1568 336 1568 320
WIRE 1232 400 1232 224
WIRE 240 416 240 -32
WIRE 272 416 240 416
WIRE 384 416 352 416
WIRE 496 416 384 416
WIRE 928 416 928 -32
WIRE 928 416 880 416
WIRE 976 416 976 384
WIRE 976 416 928 416
WIRE 384 448 384 416
WIRE 496 512 480 512
WIRE 1040 512 880 512
WIRE 1072 512 1040 512
WIRE 1184 512 1152 512
WIRE 1232 512 1232 480
WIRE 1232 512 1184 512
WIRE 1232 528 1232 512
WIRE 384 544 384 528
WIRE 240 576 240 416
WIRE 480 576 480 512
WIRE 480 576 240 576
WIRE 912 608 880 608
WIRE 992 608 912 608
WIRE 1104 608 1072 608
WIRE 912 624 912 608
WIRE 1104 624 1104 608
WIRE 1232 624 1232 608
WIRE 608 688 608 672
WIRE 768 688 768 672
WIRE 912 704 912 688
WIRE 1104 704 1104 688
FLAG 976 480 0
FLAG 1568 336 0
FLAG 1232 624 0
FLAG 1328 336 0
FLAG 48 64 0
FLAG 400 320 0
FLAG 160 64 0
FLAG 48 -48 IN
FLAG 1568 224 OUT
FLAG 1104 704 0
FLAG 912 704 0
FLAG 768 688 0
FLAG 608 688 0
FLAG 384 544 0
FLAG 384 192 0
FLAG 1472 336 0
FLAG 1184 512 A
FLAG 1040 512 B
SYMBOL res 1216 384 R0
SYMATTR InstName R1
SYMATTR Value 6.49K
SYMBOL res 1216 512 R0
SYMATTR InstName R2
SYMATTR Value 4.99K
SYMBOL schottky 960 384 M180
WINDOW 0 41 53 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D1
SYMATTR Value CMDSH2-3
SYMBOL cap 960 416 R0
WINDOW 3 30 51 Left 2
SYMATTR InstName C1
SYMATTR Value 4.7<EFBFBD>
SYMBOL ind 1072 240 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 5 56 VBottom 2
WINDOW 39 -16 56 VBottom 2
SYMATTR InstName L1
SYMATTR Value 2.2<EFBFBD>
SYMATTR SpiceLine Rser=6m
SYMBOL polcap 1312 240 R0
WINDOW 39 27 59 Left 2
WINDOW 40 27 83 Left 2
WINDOW 3 45 38 Left 2
SYMATTR SpiceLine Rser=9m
SYMATTR SpiceLine2 x2
SYMATTR Value 200<30>
SYMATTR InstName C2
SYMBOL VOLTAGE 48 -48 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value 28
SYMBOL cap 480 304 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C3
SYMATTR Value .1<EFBFBD>
SYMBOL cap 960 224 R0
WINDOW 0 31 16 Left 2
SYMATTR InstName C4
SYMATTR Value .22<EFBFBD>
SYMBOL cap 144 -32 R0
SYMATTR InstName C5
SYMATTR Value 22<32>
SYMATTR SpiceLine Rser=1m Lser=.3n
SYMBOL res 976 624 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 0 56 VBottom 2
SYMATTR InstName R3
SYMATTR Value 24.9K
SYMBOL cap 1088 624 R0
SYMATTR InstName C6
SYMATTR Value 1n
SYMBOL cap 896 624 R0
SYMATTR InstName C7
SYMATTR Value 10p
SYMBOL VOLTAGE 1168 512 R90
WINDOW 0 -32 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName V2
SYMATTR Value SINE(0 1m {Freq})
SYMBOL PowerProducts\\LTC3611 688 368 R0
SYMATTR InstName U1
SYMBOL res 256 432 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 0 56 VBottom 2
SYMATTR InstName R4
SYMATTR Value 6.49K
SYMBOL res 368 432 R0
SYMATTR InstName R5
SYMATTR Value 39.2K
SYMBOL res 272 96 R0
SYMATTR InstName R6
SYMATTR Value 249K
SYMBOL res 368 -32 R0
SYMATTR InstName R7
SYMATTR Value 15.0K
SYMBOL res 368 80 R0
SYMATTR InstName R8
SYMATTR Value 4.99K
SYMBOL cap 1456 240 R0
SYMATTR InstName C8
SYMATTR Value 50<35>
SYMATTR SpiceLine Rser=1.5m Lser=.24n
SYMBOL res 1552 224 R0
SYMATTR InstName Rload
SYMATTR Value 0.25
TEXT 1672 192 Left 2 !.measure Aavg avg V(a)\n.measure Bavg avg V(b)\n.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)\n.measure Aim avg -(V(a)-Aavg)*sin(360*time*Freq)\n.measure Bre avg (V(b)-Bavg)*cos(360*time*Freq)\n.measure Bim avg -(V(b)-Bavg)*sin(360*time*Freq)\n.measure GainMag param 20*log10(hypot(Are,Aim) / hypot(Bre,Bim))\n.measure GainPhi param mod(atan2(Aim, Are) - atan2(Bim, Bre)+180,360)-180
TEXT 1680 560 Left 2 ;Loop crossover frequency: 125KHz\nPhase Margin: 92<39>
TEXT 1664 32 Left 2 !.param Freq=125K ; iterate to 0dB gain or use the .step statement below\n.step oct param freq 50K 200K 5\n.save V(a) V(b) I(L1)\n.option plotwinsize=0 numdgt=15
TEXT 1672 472 Left 2 !.param t0=.2m\n.tran 0 {t0+25/freq} {t0}

View File

@@ -0,0 +1,162 @@
Version 4
SHEET 1 2936 1904
WIRE 1120 768 912 768
WIRE 1728 768 1120 768
WIRE 912 784 912 768
WIRE 1536 800 1408 800
WIRE 1664 800 1536 800
WIRE 1664 816 1664 800
WIRE 1120 848 1120 768
WIRE 1408 848 1408 800
WIRE 1536 848 1536 800
WIRE 912 880 912 864
WIRE 1664 896 1664 880
WIRE 1728 912 1728 768
WIRE 1536 928 1536 912
WIRE 1536 928 1488 928
WIRE 1680 992 1488 992
WIRE 1536 1008 1536 928
WIRE 912 1056 848 1056
WIRE 1040 1056 976 1056
WIRE 1536 1088 1536 1072
WIRE 1536 1088 1488 1088
WIRE 1728 1088 1728 1008
WIRE 1728 1088 1536 1088
WIRE 1872 1088 1728 1088
WIRE 1904 1088 1872 1088
WIRE 2000 1088 1984 1088
WIRE 2016 1088 2000 1088
WIRE 2112 1088 2096 1088
WIRE 2192 1088 2112 1088
WIRE 2320 1088 2192 1088
WIRE 2480 1088 2320 1088
WIRE 1728 1104 1728 1088
WIRE 2192 1104 2192 1088
WIRE 1872 1120 1872 1088
WIRE 2320 1120 2320 1088
WIRE 2480 1120 2480 1088
WIRE 864 1184 848 1184
WIRE 960 1184 944 1184
WIRE 1040 1184 1024 1184
WIRE 1680 1184 1488 1184
WIRE 2192 1200 2192 1184
WIRE 2192 1200 2144 1200
WIRE 1728 1216 1728 1200
WIRE 1872 1216 1872 1184
WIRE 2192 1216 2192 1200
WIRE 2320 1232 2320 1184
WIRE 2480 1232 2480 1200
WIRE 2000 1264 2000 1088
WIRE 2000 1264 1488 1264
WIRE 928 1312 848 1312
WIRE 1040 1312 992 1312
WIRE 2192 1312 2192 1296
WIRE 2112 1328 2112 1088
WIRE 2112 1328 1488 1328
WIRE 1616 1392 1488 1392
WIRE 1664 1392 1616 1392
WIRE 1776 1392 1744 1392
WIRE 2144 1392 2144 1200
WIRE 2144 1392 1776 1392
WIRE 1152 1488 1152 1456
WIRE 1376 1488 1376 1456
FLAG 1152 1488 0
FLAG 1376 1488 0
FLAG 848 1184 0
FLAG 848 1056 0
FLAG 2192 1312 0
FLAG 2480 1232 0
FLAG 2320 1232 0
FLAG 912 880 0
FLAG 1728 1216 0
FLAG 848 1312 0
FLAG 2480 1088 OUT
FLAG 1664 896 0
FLAG 1872 1216 0
FLAG 1616 1392 B
FLAG 1776 1392 A
FLAG 912 768 IN
SYMBOL RES 960 1168 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 10K
SYMBOL res 2176 1088 R0
SYMATTR InstName R2
SYMATTR Value 20K
SYMBOL res 2176 1200 R0
SYMATTR InstName R3
SYMATTR Value 10K
SYMBOL res 2000 1104 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 0 56 VBottom 2
SYMATTR InstName R4
SYMATTR Value .006
SYMBOL cap 1024 1168 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C1
SYMATTR Value 330p
SYMBOL cap 992 1296 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C2
SYMATTR Value 43p
SYMBOL cap 976 1040 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C3
SYMATTR Value .001<EFBFBD>
SYMBOL polcap 2304 1120 R0
WINDOW 39 27 65 Left 2
WINDOW 123 25 86 Left 2
WINDOW 3 44 37 Left 2
SYMATTR SpiceLine Rser=.05
SYMATTR Value2 x4
SYMATTR Value 180<38>
SYMATTR InstName C4
SYMBOL VOLTAGE 912 768 R0
SYMATTR InstName V1
SYMATTR Value 6
SYMBOL ind 1888 1104 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 5 56 VBottom 2
SYMATTR InstName L1
SYMATTR Value 1.5<EFBFBD>
SYMBOL NMOS 1680 912 R0
SYMATTR InstName Q1
SYMATTR Value Si4410DY
SYMBOL nmos 1680 1104 R0
SYMATTR InstName Q2
SYMATTR Value Si4410DY
SYMBOL cap 1648 816 R0
SYMATTR InstName C5
SYMATTR Value 4.7<EFBFBD>
SYMBOL cap 1520 1008 R0
SYMATTR InstName C6
SYMATTR Value .22<EFBFBD>
SYMBOL schottky 1520 848 R0
SYMATTR InstName D1
SYMATTR Value 1N5818
SYMBOL schottky 1856 1184 M180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D2
SYMATTR Value 1N5818
SYMBOL POWERPRODUCTS\\LTC1735 1264 1120 R0
SYMATTR InstName U1
SYMBOL voltage 1760 1392 R90
WINDOW 0 -32 56 VBottom 2
WINDOW 3 32 56 VTop 2
WINDOW 39 53 56 VTop 2
WINDOW 123 74 56 VTop 2
SYMATTR InstName V2
SYMATTR Value SINE(0 10m {Freq})
SYMBOL res 2464 1104 R0
SYMATTR InstName Rload
SYMATTR Value .5
TEXT 1856 1624 Left 2 !.param t0=.5m\n.tran 0 {t0+10/Freq} {t0} 10n
TEXT 1856 1536 Left 2 !.ic V(out)=2.4\n.save V(a) V(b) I(L1)
TEXT 800 1480 Left 2 !.measure Aavg avg V(a)\n.measure Bavg avg V(b)\n.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)\n.measure Aim avg -(V(a)-Aavg)*sin(360*time*Freq)\n.measure Bre avg (V(b)-Bavg)*cos(360*time*Freq)\n.measure Bim avg -(V(b)-Bavg)*sin(360*time*Freq)\n.measure GainMag param 20*log10(hypot(Are,Aim) / hypot(Bre,Bim))\n.measure GainPhi param mod(atan2(Aim, Are) - atan2(Bim, Bre)+180,360)-180
TEXT 1856 1464 Left 2 !.param freq=21K ; iterate to 0dB gain or use the .step statement below\n.step oct param Freq 15K 30K 4
TEXT 2256 1576 Left 2 ;Loop crossover frequency: 21KHz\nPhase Margin: 66<36>

View File

@@ -0,0 +1,68 @@
Frequency Response Analysis
These examples show to how to extract the small-signal, AC open-loop
gain from time-domain, closed-loop simulations. The technique is a
subset of the method shown in ../LoopGain.asc and ../LoopGain2.asc.
The method assumes that the input impedance of the error amplifier is
infinite so that the loop gain can be computed solely by the voltage
loop gain.
The open-loop gain is computed from the closed-loop system by inserting
a perturbing voltage source in the loop and measuring how well the
perturbation is servoed out of the the loop via the feedback. The
open-loop gain is given by the ratio of complex voltages at either side
of the perturbing voltage source.
But since the SMPS macromodels are implemented as time-domain models
that include detailed switching information but don't include
continuous-time(average) equivalents, the complex voltage is determined
from Fourier analysis of a time-domain sine wave perturbation.
A script of .measure statements is used to perform the Fourier analysis
and computer the open-loop response. To use this script into your own
SMPS design, follow these steps:
1. Place these .measure statements on your circuit as a SPICE
directive:
.measure Aavg avg V(a)
.measure Bavg avg V(b)
.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)
.measure Aim avg -(V(a)-Aavg)*sin(360*time*Freq)
.measure Bre avg (V(b)-Bavg)*cos(360*time*Freq)
.measure Bim avg -(V(b)-Bavg)*sin(360*time*Freq)
.measure GainMag param 20*log10(hypot(Are,Aim) / hypot(Bre,Bim))
.measure GainPhi param mod(atan2(Aim,Are)-atan2(Bim,Bre)+180,360)-180
2. Insert a voltage source in the feedback loop under analysis. Give
this voltage sourse the value SINE(0 5m {Freq})
3. Place a SPICE directive on the schmatic that defines Freq:
.param Freq=10K
4. Run a .tran command to see how long it takes your circuit to come to
steady state and then edit the .tran command so that data isn't saved
until this time.
5. Rerun the .tran command to do the analysis at the frequency defined
with the .param statement of step 3.
6. Execute menu command View=>SPICE Error Log to see the results of this
analysis. The open-loop response magnitude is given by GainMag[dB]
and the phase is given by GainPhi[<5B>].
You can iterate the param Freq to zero dB. That frequency is the loop
crossover frequency and phase margin will be reported as GainPhi in the
error log.
You can set up a .step statement to sweep the parameter Freq. Then you
can plot the open-loop response be executing menu command
View=>SPICE Error Log, and then right mouse clicking and executing menu
command "Plot .step'ed .meas data" Answer yes to the dialog that asks
if LTspice should combine the real .meas data to complex data. Then you
can plot the quanity gain to get a Bode plot the open-loop response of
the system.
--Mike