From 80c18a087593d301aea1ebcd4c730e46e351b572 Mon Sep 17 00:00:00 2001 From: Alessandro Mauri Date: Sat, 21 Feb 2026 17:08:58 +0100 Subject: [PATCH] driver --- sim/AO3400.asy | 46 +++++++++++++++++ sim/AO3400.lib | 50 +++++++++++++++++++ sim/AO3401A.asy | 41 ++++++++++++++++ sim/AO3401A.lib | 25 ++++++++++ sim/pi_filter.asc | 123 +++++++++++++++++++++++----------------------- 5 files changed, 223 insertions(+), 62 deletions(-) create mode 100644 sim/AO3400.asy create mode 100644 sim/AO3400.lib create mode 100644 sim/AO3401A.asy create mode 100644 sim/AO3401A.lib diff --git a/sim/AO3400.asy b/sim/AO3400.asy new file mode 100644 index 0000000..0f3d87f --- /dev/null +++ b/sim/AO3400.asy @@ -0,0 +1,46 @@ +Version 4 +SymbolType BLOCK +LINE Normal -70 16 -80 16 +LINE Normal -32 -48 -32 -64 +LINE Normal -64 -48 -32 -48 +LINE Normal -64 -48 -64 -48 +LINE Normal -64 -40 -64 -56 +LINE Normal -64 -40 -64 -40 +LINE Normal -32 -16 -32 32 +LINE Normal -64 -16 -64 -16 +LINE Normal -64 -8 -64 -24 +LINE Normal -64 -8 -64 -8 +LINE Normal -64 16 -64 16 +LINE Normal -64 24 -64 8 +LINE Normal -64 24 -64 24 +LINE Normal -40 -8 -40 -24 +LINE Normal -64 -16 -40 -8 +LINE Normal -40 -24 -64 -16 +LINE Normal -40 -16 -32 -16 +LINE Normal -70 -48 -70 16 +LINE Normal -70 -48 -70 -48 +LINE Normal -32 16 -64 16 +LINE Normal -16 16 -32 16 +LINE Normal -16 -48 -16 16 +LINE Normal -32 -48 -16 -48 +LINE Normal -8 -7 -24 -7 +LINE Normal -16 -24 -8 -7 +LINE Normal -24 -7 -16 -24 +LINE Normal -9 -24 -22 -24 +LINE Normal -8 -25 -9 -24 +LINE Normal -8 -25 -8 -25 +LINE Normal -23 -23 -22 -24 +WINDOW 0 27 -51 Bottom 2 +WINDOW 3 25 19 Top 2 +SYMATTR Value AO3400 +SYMATTR Prefix X +SYMATTR ModelFile AO3400.lib +PIN -80 16 NONE 8 +PINATTR PinName 4 +PINATTR SpiceOrder 1 +PIN -32 -64 NONE 8 +PINATTR PinName 1 +PINATTR SpiceOrder 2 +PIN -32 32 NONE 8 +PINATTR PinName 2 +PINATTR SpiceOrder 3 diff --git a/sim/AO3400.lib b/sim/AO3400.lib new file mode 100644 index 0000000..0c9a42a --- /dev/null +++ b/sim/AO3400.lib @@ -0,0 +1,50 @@ +.SUBCKT AO3400 4 1 2 + +M1 3 1 2 2 NMOS W=998956u L=1.0u + +M2 2 1 2 4 PMOS W=998956u L=0.4u + +R1 4 3 RTEMP 15E-3 + +CGS 1 2 225E-12 + +DBD 2 3 DBD + +************************************************************************** + +.MODEL NMOS NMOS (LEVEL = 3 TOX = 2.5E-8 + ++ RS = 2E-4 RD = 0 NSUB = 1.6E17 + ++ kp = 3E-5 UO = 600 THETA = 0 + ++ VMAX = 0 XJ = 4E-7 KAPPA = 1.1 + ++ ETA = 0 TPG = 1 + ++ IS = 0 LD = 0 + ++ CGSO = 0 CGDO = 0 CGBO = 0 + ++ NFS = 2E10 DELTA = 0.1) + +************************************************************************* + +.MODEL PMOS PMOS (LEVEL = 3 TOX = 2.5E-8 + ++NSUB = 2.0E16 TPG = -1) + +************************************************************************* + +.MODEL DBD D (CJO=690E-12 VJ=0.6 M=0.3 + ++RS=0.005 FC=0.5 IS=1E-11 TT=1.5E-8 N=1.0 BV=36 IBV=1E-4) + +************************************************************************* + +.MODEL RTEMP RES (TC1=6.5E-3 TC2=1E-6) + +************************************************************************* + +.ENDS + diff --git a/sim/AO3401A.asy b/sim/AO3401A.asy new file mode 100644 index 0000000..b8f58cb --- /dev/null +++ b/sim/AO3401A.asy @@ -0,0 +1,41 @@ +Version 4 +SymbolType BLOCK +LINE Normal -64 -8 -64 -24 +LINE Normal -64 -8 -64 -8 +LINE Normal -64 56 -64 40 +LINE Normal -64 56 -64 56 +LINE Normal -64 24 -64 8 +LINE Normal -64 24 -64 24 +LINE Normal -72 48 -80 48 +LINE Normal -72 -17 -72 48 +LINE Normal -32 -16 -64 -16 +LINE Normal -32 -32 -32 -16 +LINE Normal -32 64 -32 16 +LINE Normal -32 48 -64 48 +LINE Normal -56 8 -56 16 +LINE Normal -32 16 -56 8 +LINE Normal -56 16 -56 24 +LINE Normal -32 16 -56 24 +LINE Normal -56 16 -64 16 +LINE Normal -16 48 -32 48 +LINE Normal -16 -16 -16 48 +LINE Normal -32 -16 -16 -16 +LINE Normal -8 24 -16 24 +LINE Normal -6 26 -8 24 +LINE Normal -8 8 -16 8 +LINE Normal -16 24 -8 8 +LINE Normal -24 24 -16 24 +LINE Normal -24 24 -26 22 +LINE Normal -24 8 -16 8 +LINE Normal -16 24 -24 8 +WINDOW 0 17 -21 Bottom 2 +WINDOW 3 -48 80 Top 2 +SYMATTR Value AO3401A +SYMATTR Prefix X +SYMATTR ModelFile AO3401A.lib +PIN -32 -32 LEFT 8 +PINATTR SpiceOrder 1 +PIN -80 48 RIGHT 8 +PINATTR SpiceOrder 2 +PIN -32 64 LEFT 8 +PINATTR SpiceOrder 3 diff --git a/sim/AO3401A.lib b/sim/AO3401A.lib new file mode 100644 index 0000000..55550e5 --- /dev/null +++ b/sim/AO3401A.lib @@ -0,0 +1,25 @@ +.SUBCKT AO3401A 4 1 2 +M1 3 1 2 2 PMOS W=998956u L=1.0u +M2 2 1 2 4 NMOS W=998956u L=0.7u +R1 4 3 RTEMP 17E-3 +CGS 1 2 30E-12 +DBD 3 2 DBD +************************************************************************** +.MODEL PMOS PMOS (LEVEL = 3 TOX = 2.5E-8 ++ RS = 2E-4 RD = 0 NSUB = 2E17 ++ UO = 120 THETA = 0.2 VTO=-1.1 ++ VMAX = 5e6 XJ = 4E-7 KAPPA = 1.2 ++ ETA = 0 TPG = 1 ++ IS = 0 LD = 0 ++ CGSO = 0 CGDO = 0 CGBO = 0 ++ NFS = 2E10 DELTA = 0) +************************************************************************* +.MODEL NMOS NMOS (LEVEL = 3 TOX = 5.2E-8 ++NSUB = 2.0E16 TPG = -1) +************************************************************************* +.MODEL DBD D (CJO=900E-13 VJ=0.6 M=0.3 ++RS=0.005 FC=0.5 IS=1E-12 TT=1.6E-8 N=1.0 BV=36 IBV=1E-4) +************************************************************************* +.MODEL RTEMP RES (TC1=1.5E-3 TC2=1E-6) +************************************************************************* +.ENDS diff --git a/sim/pi_filter.asc b/sim/pi_filter.asc index e0b4dec..e1e46f9 100644 --- a/sim/pi_filter.asc +++ b/sim/pi_filter.asc @@ -38,66 +38,60 @@ WIRE 512 -400 512 -416 WIRE -784 -384 -784 -400 WIRE -1600 -288 -1600 -320 WIRE -784 -288 -784 -304 -WIRE 288 -288 96 -288 -WIRE 528 -288 288 -288 -WIRE 752 -288 752 -560 -WIRE 752 -288 528 -288 -WIRE 96 -272 96 -288 -WIRE 288 -256 288 -288 -WIRE 528 -256 528 -288 +WIRE 544 -256 448 -256 +WIRE 752 -256 752 -560 +WIRE 752 -256 544 -256 WIRE -960 -240 -1008 -240 WIRE -848 -240 -880 -240 -WIRE 224 -208 192 -208 +WIRE 448 -224 448 -256 WIRE -1008 -176 -1008 -240 WIRE -784 -176 -784 -192 -WIRE 96 -176 96 -192 -WIRE 192 -176 192 -208 -WIRE 192 -176 96 -176 -WIRE 752 -144 752 -288 -WIRE 288 -128 288 -160 -WIRE 384 -128 288 -128 -WIRE 528 -128 528 -192 -WIRE 528 -128 464 -128 -WIRE 704 -128 528 -128 +WIRE 544 -128 544 -256 WIRE -1600 -112 -1600 -208 -WIRE 288 -96 288 -128 +WIRE 448 -112 448 -144 WIRE -1600 -64 -1600 -112 WIRE -1600 -64 -1728 -64 WIRE -1008 -64 -1008 -96 WIRE -1600 -48 -1600 -64 -WIRE 192 -48 192 -176 -WIRE 224 -48 192 -48 -WIRE 96 -32 96 -176 +WIRE 752 -32 752 -256 WIRE -1728 -16 -1728 -64 -WIRE -64 16 -96 16 -WIRE 32 16 16 16 -WIRE 288 32 288 0 +WIRE 448 -16 448 -48 +WIRE 544 -16 544 -48 +WIRE 544 -16 448 -16 +WIRE 704 -16 544 -16 WIRE -1600 48 -1600 32 -WIRE 96 80 96 64 -WIRE -96 112 -96 16 +WIRE 336 112 304 112 +WIRE 448 112 448 -16 +WIRE 448 112 400 112 WIRE -1728 128 -1728 48 -WIRE 752 208 752 -48 -WIRE 848 208 752 208 -WIRE 752 240 752 208 -WIRE 848 256 848 208 -WIRE 752 384 752 320 -WIRE 848 384 848 320 -FLAG 752 384 0 +WIRE 448 176 448 112 +WIRE 80 224 -48 224 +WIRE 304 224 304 112 +WIRE 304 224 160 224 +WIRE 384 224 304 224 +WIRE 752 320 752 64 +WIRE 848 320 752 320 +WIRE 448 352 448 272 +WIRE 752 352 752 320 +WIRE 848 368 848 320 +WIRE -48 432 -48 224 +WIRE 752 496 752 432 +WIRE 848 496 848 432 +FLAG 752 496 0 FLAG 512 -400 0 FLAG -272 -400 0 FLAG -1600 128 0 -FLAG -96 192 0 +FLAG -48 512 0 FLAG -1600 -560 vbus FLAG -384 -560 vmid -FLAG 848 384 0 +FLAG 848 496 0 FLAG -1680 -416 0 FLAG -1600 -112 vdrv FLAG -1728 128 0 FLAG -784 -176 0 FLAG -1008 -64 0 -FLAG 288 32 0 -FLAG 96 80 0 -SYMBOL res 736 224 R0 +FLAG 448 352 0 +SYMBOL res 736 336 R0 SYMATTR InstName R1 SYMATTR Value {rtip} SYMBOL cap 496 -480 R0 @@ -118,11 +112,11 @@ WINDOW 123 0 0 Left 0 WINDOW 39 24 44 Left 2 SYMATTR InstName V1 SYMATTR Value PWL(0 0 1m 0 1.1m {vbus} 10m {vbus} 10.1m 0) -SYMBOL voltage -96 96 R0 +SYMBOL voltage -48 416 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V3 -SYMATTR Value PULSE(0 5 5m 100n 100n {d*1/fsw} {1/fsw} 200) +SYMATTR Value PULSE(0 {vcc} 5m 100n 100n {d*1/fsw} {1/fsw} 200) SYMBOL pmos -704 -512 M270 SYMATTR InstName M2 SYMATTR Value RRS090P03 @@ -134,7 +128,7 @@ WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R2 SYMATTR Value 5m -SYMBOL cap 832 256 R0 +SYMBOL cap 832 368 R0 SYMATTR InstName C4 SYMATTR Value 10p SYMBOL ind -1616 -416 R0 @@ -188,38 +182,43 @@ SYMBOL voltage -1008 -192 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V4 -SYMATTR Value 5 -SYMBOL Contrib\\Toshiba\\bjt\\TMBT3906 224 0 M180 -SYMATTR InstName U1 -SYMBOL Contrib\\Toshiba\\bjt\\TMBT3904 224 -256 R0 -SYMATTR InstName U3 -SYMBOL res 480 -144 R90 -WINDOW 0 0 56 VBottom 2 -WINDOW 3 32 56 VTop 2 -SYMATTR InstName R7 -SYMATTR Value 500 -SYMBOL diode 512 -192 M180 +SYMATTR Value {vcc} +SYMBOL pmos 704 64 M180 +SYMATTR InstName M1 +SYMATTR Value SP8J66 +SYMBOL diode 464 -48 R180 WINDOW 0 24 64 Left 2 WINDOW 3 24 0 Left 2 SYMATTR InstName D1 SYMATTR Value UFZV15B -SYMBOL pmos 704 -48 M180 -SYMATTR InstName M1 -SYMATTR Value SP8J66 -SYMBOL res 80 -288 R0 +SYMBOL res 528 -144 R0 +SYMATTR InstName R10 +SYMATTR Value 500 +SYMBOL npn 384 176 R0 +SYMATTR InstName Q2 +SYMATTR Value 2N3019 +SYMBOL diode 336 128 R270 +WINDOW 0 32 32 VTop 2 +WINDOW 3 0 32 VBottom 2 +SYMATTR InstName D3 +SYMATTR Value 1N5819 +SYMATTR Description Diode +SYMATTR Type diode +SYMBOL res 432 -240 R0 SYMATTR InstName R6 SYMATTR Value 1k -SYMBOL res 32 0 R90 +SYMBOL res 176 208 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 -SYMATTR InstName R13 -SYMATTR Value 1k -SYMBOL Contrib\\Toshiba\\bjt\\TMBT3904 32 -32 R0 -SYMATTR InstName U2 -TEXT -552 144 Left 2 !.tran 30m +SYMATTR InstName R7 +SYMATTR Value 150 +TEXT -544 144 Left 2 !.tran 30m TEXT -80 -632 Left 2 !.param L=2.2u Is=7 TEXT -544 352 Left 2 !.param fsw=50k TEXT -544 384 Left 2 !.param d={pout/(vbus*vbus/rtip)} TEXT -544 256 Left 2 !.param vbus=28 TEXT -544 320 Left 2 !.param pout=130 TEXT -544 288 Left 2 !.param rtip=2.5 +TEXT -544 224 Left 2 !.param vcc=3.3 +TEXT -408 -184 Left 2 !.lib AO3401A.lib +TEXT -408 -152 Left 2 !.lib AO3400.lib