mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2024-11-22 11:05:04 +00:00
d25ac664f8
Some simulation demos curtesy of Holger Vogt and a new board design curtesy of Pat Deegan
69 lines
2.2 KiB
Plaintext
69 lines
2.2 KiB
Plaintext
.SUBCKT LM317 IN ADJ OUT_0
|
|
R_R1 VXX IN {RINP}
|
|
R_R6 N242982 VYY 10 TC=0,0
|
|
R_R5 VZZ VYY {ROUT}
|
|
E_ABM1 N242982 0 VALUE { MIN(V(VXX), (V(Vzz)+(ILIM*ROUT))) }
|
|
R_R2 N222524 VXX {PSRR*RINP}
|
|
R_U1_R2 0 U1_N26728 1G
|
|
E_U1_ABM5 U1_N31197 0 VALUE { MIN(V(U1_N26728),
|
|
+ MAX(V(IN) - {DROP}, 0)) }
|
|
C_U1_C2 0 U1_N26728 1n
|
|
R_U1_R1 0 U1_N08257 1G
|
|
R_U1_R4 U1_N28933 U1_N26728 10 TC=0,0
|
|
R_U1_R5 U1_N31197 N222524 10 TC=0,0
|
|
C_U1_C3 0 N222524 1n
|
|
X_U1_U2 IN U1_N12783 U1_N12664 U1_UVLO_OK COMPHYS_BASIC_GEN PARAMS:
|
|
+ VDD=1 VSS=0 VTHRESH=0.5
|
|
C_U1_C1 0 U1_N08257 {1e-6*SQRT(TTRN)}
|
|
V_U1_V4 U1_N12783 0 {UVLO}
|
|
V_U1_V3 U1_N12664 0 {UHYS}
|
|
E_U1_ABM6 U1_EN_OUT 0 VALUE { IF(V(U1_UVLO_OK)> 0.6, {VREF}, 0) }
|
|
R_U1_R3 U1_EN_OUT U1_N08257 {3.333e5*SQRT(TTRN)} TC=0,0
|
|
E_U1_ABM4 U1_N28933 0 VALUE { V(U1_N08257)*
|
|
+ (ABS(V(OUT_0))/(ABS(V(OUT_0)-v(ADJ)))) }
|
|
X_U2 0 OUT_0 d_d PARAMS:
|
|
X_F1 VZZ OUT_0 IN VYY LM317_TRANS_F1
|
|
C_C1 VXX IN {1/(6.28*RINP*POLE)}
|
|
C_C2 VXX N222524 {1/(6.28*PSRR*RINP*ZERO)}
|
|
C_C3 0 VYY 1n
|
|
.PARAM psrr=7.9432e-4 uvlo=0 ilim=2.2 pole=15k rinp=1e7 zero=100e6 rout=0.4m
|
|
+ ttrn=1e-4 vref=1.25 uhys=0 drop=.5
|
|
.ENDS LM317_TRANS
|
|
*$
|
|
.SUBCKT LM317_TRANS_F1 1 2 3 4
|
|
F_F1 3 4 VF_F1 1
|
|
VF_F1 1 2 0V
|
|
.ENDS LM317_TRANS_F1
|
|
*$
|
|
.SUBCKT COMP_BASIC_GEN INP INM Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5
|
|
E_ABM Yint 0 VALUE {IF (V(INP) >
|
|
+ V(INM), {VDD},{VSS})}
|
|
R1 Yint Y 1
|
|
C1 Y 0 1n
|
|
.ENDS COMP_BASIC_GEN
|
|
*$
|
|
.SUBCKT COMPHYS_BASIC_GEN INP INM HYS OUT PARAMS: VDD=1 VSS=0 VTHRESH=0.5
|
|
EIN INP1 INM1 INP INM 1
|
|
EHYS INP1 INP2 VALUE { IF( V(1) > {VTHRESH},-V(HYS),0) }
|
|
EOUT OUT 0 VALUE { IF( V(INP2)>V(INM1), {VDD} ,{VSS}) }
|
|
R1 OUT 1 1
|
|
C1 1 0 5n
|
|
RINP1 INP1 0 1K
|
|
.ENDS COMPHYS_BASIC_GEN
|
|
*$
|
|
.SUBCKT COMPHYS2_BASIC_GEN INP INM HYS OUT PARAMS: VDD=1 VSS=0 VTHRESH=0.5
|
|
+ T=10
|
|
EIN INP1 INM1 INP INM 1
|
|
EHYS INM2 INM1 VALUE { IF( V(1) > {VTHRESH},-V(HYS)/2,V(HYS)/2) }
|
|
EOUT OUT 0 VALUE { IF( V(INP1)>V(INM2), {VDD} ,{VSS}) }
|
|
R1 OUT 1 1
|
|
C1 1 0 {T*1e-9}
|
|
RINP1 INP1 0 10K
|
|
RINM2 INM2 0 10K
|
|
.ENDS COMPHYS2_BASIC_GEN
|
|
*$
|
|
.SUBCKT D_D 1 2
|
|
D1 1 2 DD
|
|
.MODEL DD D (IS=1E-015 N=0.01 TT=1e-011)
|
|
.ENDS D_D
|
|
*$ |