* UC3843A Current-Mode PWM Controller Macro Model * Author: Zabb Csaba * Date: 29/04/2023 .SUBCKT UC3843A COMP FB CS RTCT GND OUT VCC VREF X1 VCC GND VREF SVCC UVLO X2 CLK RTCT VREF GND OSC3845 X3 VREF FB COMP GND SVCC AMP3845 X4 5 VCC GND OUT OUT3845 E1 1 GND VALUE {IF(V(CS,GND)>V(8,GND),5,0)} E2 13 GND VALUE {V(VREF,GND)/4} R1 CS 13 1MEG X5 1 2 GND DELAY5 PARAMS:DELAY=150n R2 3 4 30k R3 4 GND 15k E3 8 GND VALUE {IF(V(4,GND)>1,1,V(4,GND))} V1 COMP 9 1 D1 9 3 DX X6 CLK1 VREF 2 GND 6 7 GND DFFSR5 X7 CLK CLK1 GND DELAY5 PARAMS:DELAY=70n E5 5 GND VALUE {IF(V(VREF,GND)>2.5&&V(7,GND)>2.5&&V(CLK,GND)>2.5,5,0)} .MODEL DX D(IS=1E-16 BV=100) .ENDS UC3843A * .SUBCKT DFFSR5 CLK D R S QB Q GND X1 CLK CLKD GND INV_DELAY5 PARAMS:DELAY=20n X2 CLK CLKD CLKI GND AND25 GQ GND QINT VALUE {IF(V(S,GND)>2.5,5,IF(V(R,GND)>2.5,-5,IF(V(CLKI,GND)>2.5,IF(V(D,GND)>2.5,5,-5),0)))} CQ QINT GND 1n RQ QINT GND 1G D1 QINT MY5 DLIM V1 MY5 GND 5 D2 MY0 QINT DLIM V2 MY0 GND 0 EQ Qqq GND QINT GND 1 X3 Qqq Qqd GND DELAY5 PARAMS:DELAY=30n RQq Qqd Q 1 L1 Qqd Q 1n EQb Qbr GND VALUE {IF(V(Q,GND)>2.5,0,5)} RQb Qbr Qb 1 L2 Qbr Qb 1n R1 CLK GND 1G R2 D GND 1G R3 R GND 1G R4 S GND 1G .IC V(QINT)=0 *.IC V(GND)=0 .MODEL DLIM D(IS=1E-16) .ENDS DFFSR5 * .SUBCKT INV_DELAY5 A Y GND PARAMS: DELAY=10n E1 Y1 GND VALUE {IF(V(A,GND)>2.5,5,0)} R1 Y1 Y2 1 R3 A GND 1G C1 Y2 GND {DELAY*1.3} E2 Y3 GND VALUE {IF(V(Y2,GND)>2.5,0,5)} R2 Y3 Y 1 L1 Y3 Y 1n .ENDS INV_DELAY5 * .SUBCKT AND25 A B Y GND E1 Y1 GND VALUE {IF(V(A,GND)>2.5&&V(B,GND)>2.5,5,0)} R1 A GND 1G R2 B GND 1G R3 Y1 Y 1 L1 Y1 Y 1n .ENDS AND25 * .SUBCKT DELAY5 A Y GND PARAMS: DELAY = 10n E1 Y1 GND VALUE {IF(V(A,GND)>2.5,5,0)} R1 Y1 Y2 1 C1 Y2 GND {DELAY*1.3} E2 Y3 GND VALUE {IF(V(Y2,GND)>2.5,5,0)} R2 A GND 1G R3 Y3 Y 1 L1 Y3 Y 1n .ENDS DELAY5 * .SUBCKT OUT3845 IN VCC GND OUT X1 VCC 8 IG PARAMS:I1=100u D1 8 VCC DMOD D2 OUT 8 DMOD Q1 8 1 9 QIN Q2 OUT 9 GND QMOD Q3 VCC 8 6 QMOD I1 GND 1 0.9m R1 IN 2 10k Q4 1 2 GND QIN Q5 VCC 6 OUT QMOD2 C1 OUT GND 150p .MODEL QMOD NPN(RC=1.5 RE=.5 RB=100 IKF=0.5 CJC=0.4p) .MODEL QMOD2 NPN(TF=400p TR=400p) .MODEL QIN NPN(BF=100 BR=2 IS=1E-16 VAF=50 CJE=1.5p CJC=.15p TR=1n TF=4n) .MODEL DMOD D(RS=1 IS=0.4u) .ENDS OUT3845 * .SUBCKT AMP3845 VREF VFB COMP GND VCC R1 1 VREF 100k R2 1 GND 100k R3 6 GND 300MEG C1 6 GND 12p E1 5 GND 6 GND 1 E2 7 GND 1 GND 1 R4 VFB 7 10MEG X1 VCC COMP IG PARAMS:I1=800u R6 GND 3 300 Q1 GND 4 COMP PNP X2 4 GND IG PARAMS:I1=68u D1 3 4 DX D2 GND 6 DZ L1 2 3 10u C2 3 GND 200p R9 5 2 5 C5 2 GND 20n G1 GND 6 1 VFB 100u .MODEL PNP PNP(IS=1E-14 BF=126) .MODEL DZ D(RS=10 BV=7.5 IBV=.01) .MODEL DX D .ENDS AMP3845 * .SUBCKT OSC3845 CLK RTCT VREF GND S1 CLK GND RTCT GND SWOSC G1 1 GND VALUE {IF(V(CLK,GND)<2.5 && V(VREF,GND)>2.5,8.3m,0)} L1 1 RTCT 1n R1 1 RTCT 1k R2 CLK VREF 100k .MODEL SWOSC VSWITCH(RON=1 ROFF=10MEG VT=1.85 VH=0.85) .ENDS OSC3845 * .SUBCKT UVLO VCC GND VREF SVCC S1 VCC SVCC VCC GND SWUVLO R1 SVCC GND 1MEG X1 VCC GND IG PARAMS:I1=200u R2 VREF GND 534 X2 SVCC VREF GND REF5 D1 VREF VCC DSUB .MODEL DSUB D(IS=1E-16 RS=10m) .MODEL SWUVLO VSWITCH (RON=10m ROFF=5MEG VT=8.0 VH=0.4) .ENDS UVLO *REF5 .SUBCKT REF5 IN OUT GND R1 1 2 10 C1 0 3 1n E1 4 GND VALUE {V(5,GND)*(ABS(V(OUT,GND))+1e-6)/(ABS(V(16,GND))+1e-6)} C2 0 5 1n R2 GND 5 1G V2 6 GND {REF} E3 7 0 VALUE {MIN(V(3),MAX(V(IN)-V(8),0))} E4 8 0 TABLE {V(LOAD,0)}((1m,1.5)(40m,1.7)(70m,1.9)(100m,2.1)) R3 7 12 10 R4 6 5 333.3 C3 0 12 1n R5 GND 3 1G R6 4 3 10 R7 GND IN 1E6 F1 IN 2 V1 1 V1 14 15 0 C4 0 2 1n R8 14 2 {ROUT} E5 1 0 VALUE {{MIN(V(13),(V(15)+(ILIM*ROUT)))}} E6 LOAD 0 VALUE {I(V3)} R9 12 13 1k R10 GND 16 30k C5 13 IN 12.2p R11 16 OUT 270k C6 13 12 31.8p V3 15 OUT 0 .PARAM ILIM=150m ROUT=50m REF=0.4996 .ENDS REF5 * .SUBCKT IG 1 2 PARAMS: I1=100u G1 1 2 Value {LIMIT(V(1,2)*2*{I1},0,{I1})} .ENDS IG *