*version1: 201807 *version2: 202011 .subckt MAX16141 IN VCC SHDN TERM OV UV GND GRC GFC SLP FLT OUT RS SRC GATE ***************************************************************************************************** *temp effect not modeled but can sim with normal function; *start-up time: 1.5ns in sim vs 450us in datasheet; *OVSET to GATE Prop Delay: 0.348us in sim vs 10us in datasheet; *GATE Pull Down Current:3mA in sim vs 280mA in datasheet; *Multi-Fault condition not exactly same as real unit such as time-out. *Slow rise/fall time not exactly same as real unit: time change with external Cgs. *LTspice: set Abstol=1e-009 ***************************************************************************************************** *set the OTP options as below with .param *octh=over current threshold; 25mV/50mV75mV/100mV *rvth=reverse voltage threshold; 10mV/20mV30mV/40mV *ovhyst=over voltage threshold; 12.5mV/25mV/50mV/100mV *uvhyst=under voltage threshold; 12.5mV/25mV/50mV/100mV ******************************************************** .param octh=25m .param rvth=40m .param ovhyst=25m .param uvhyst=25m ***************************************************************************************************** GCC VCC 0 value={(1.9m+10u*V(in))*V(sh)*V(sleep)+5u+50n*V(in)-5.6u*(1-V(sleep))*V(sh)} *Eg GATE1 0 value={(V(SRC)+9)*V(sh)*V(sleep)*V(ov1)*V(uv1)*V(oc)*V(rv)*V(vcc1)*V(h1)*V(och3)*V(rvr1)*V(uvr3)+(1-V(h1))*V(in)} Eg GATE1 0 value={(V(SRC)+V(gs))*V(rv)*V(vcc1)*V(h1)*V(uvr3)*V(rvr1)+(1-V(h1))*V(in)} Egs gs 0 table {V(in)} = (-40 0) (2 2) (3.5 6.3) (12 9) (24 8.5) (36 8) Cg gate 0 2p Cdg IN GATE 3n Sg gate1 gate sgh 0 smodsg Esgh sgh 0 value={if(V(gate1)<1,0,1)} *Egah gah 0 value={if(V(gate)>5,0,1)} Egah gah 0 value={if(V(gate)==0,1,0)} *Xgah 0 gate gah shutdown *Gga gate 0 value={0.28*V(gah)} *Dsl1 gate2 chp2 DA *Dsl2 chp1 gate2 DA *Dsl3 gate chp2 DA *Dsl4 chp1 gate DA .MODEL DA D(N=0.1) Rg1 gate 0 1meg *Vgg gate2 gate 0 *Gchp chp1 chp2 value={1.2m} *Srguv gate2 gate uv2 0 smodrguv .model smodrguv VSWITCH (Ron=100 Roff=1200 Von=0.5 Voff=0.3) *Sg gate 0 rvh2 0 smodg .model smodsg VSWITCH (Ron=7200 Roff=100 Von=0.5 Voff=0.2) *X_uov 0 uv rv4 h1 dfr Rh1 h1 0 10k *Erv4 rv4 0 value={V(rv)*5} *Vrv4 rv4 0 5 X_sh 0 SHDN1 sh shutdown Vsh shdn shdn2 0 Rsh shdn2 shdn1 100 Csh shdn1 0 800n Ssh shdn1 0 shdn 0 smodsh .model smodsh VSWITCH (Ron=10g Roff=500 Von=0.1 Voff=0.05) Eh1 h1 0 value={if(V(in)<0,0,1)} *Eh2 h2 0 value={V} Gsh shdn 0 value={-I(Vsh)+0.1u} X_sleep 0 slp sleep shutdown Eov1 ov1 0 value={if(V(ov2)0.025,0,1)} Eoc oc 0 value={if(V(oc1)>octh,0,1)} Eoch och 0 value={if(V(oc1)>octh,5,0)} Eoch1 och1 0 och 0 1 Soch1 och1 och2 och 0 smodoch .model smodoch VSWITCH (Ron=0.1 Roff=10g Von=1 Voff=0.3) Coch och2 0 150n Roch och2 0 1400k Eoch3 och3 0 value={if(V(och2)<1.17,1,0)} Eoc0 oc0 0 value={V(rs)-V(out)} Roc oc0 oc1 100 Coc oc1 0 2.8n Erv rv 0 value={if(V(rv1)>rvth,0,1)} ************************************************ Ervh rvh 0 value={if(V(rv1)>rvth,5,0)} Ervh1 rvh1 0 rvh 0 1 Srvh1 rvh1 rvh2 rvh 0 smodrvh .model smodrvh VSWITCH (Ron=1 Roff=10g Von=1 Voff=0.3) Crvh rvh2 0 150p Rrvh rvh2 0 10 Ervh3 rvh3 0 value={if(V(rvh2)<1.17,1,0)} *Ervr rvr 0 value={if(V(in)>=V(out),1,0)} Ervr rvr 0 value={if(V(out)>(V(in)+rvth),0,1)} Crvr rvr1 0 5n Rrvr rvr rvr1 100 *Ervf rvf 0 value={if(V(rv)<0.5,1,0)} *Srvf uvr3 0 rvf 0 smodrvh *.model smodrvh VSWITCH (Ron=0.2 Roff=1g Von=0.5 Voff=0.3) *E *Ervr rvr 0 value={if(V(rv)>0.5,1,0)} *Srvr rvr uvr3 rvr 0 smodrvr *.model smodrvr VSWITCH (Ron=1 Roff=1g Von=0.5 Voff=0.3) ************************************************ Eslr slr 0 value={-I(vgrc)*100k} Eslr11 slr11 0 value={if(V(slr)>1,1,0)} Eslr12 slr12 0 value={if(V(slr)<3,1,0)} Eslr1 slr1 0 value={V(slr11)*V(slr12)} *** Eslr21 slr21 0 value={if(V(slr)>4,1,0)} Eslr22 slr22 0 value={if(V(slr)<6,1,0)} Eslr2 slr2 0 value={V(slr21)*V(slr22)} *** Eslr31 slr31 0 value={if(V(slr)>9,1,0)} Eslr32 slr32 0 value={if(V(slr)<11,1,0)} Eslr3 slr3 0 value={V(slr31)*V(slr32)*V(uv1)} *** Eovh ovh 0 value={if(V(ov)<0.5,1,0)} Euvr uvr 0 value={V(uvr1)*V(sh)*V(sleep)*V(och3)*V(ovr1)} Euvr1 uvr1 0 value={if(V(uv)>=V(thh),1,0)} *Eovo ovo 0 value={V(ov)-3m} Eovr1 ovr1 0 value={if(V(ov)>=V(thp),0,1)} Cov1 ov 0 1n *Eshr shr 0 value={1-V(sh)} Cuvr uvr3 0 30u Euvf uvf 0 value={5-V(uv1)-V(sh)-V(sleep)-V(och3)-V(ovr1)} Euvfh2 uvfh2 0 value={V(uvf)*V(slf2)} Euvfh3 uvfh3 0 value={V(uvf)*V(slf3)} Suvf2 uvr3 0 uvfh2 0 smodslf2 Suvf3 uvr3 0 uvfh3 0 smodslf3 .model smodslf2 VSWITCH (Ron=20 Roff=1g Von=0.5 Voff=0.3) .model smodslf3 VSWITCH (Ron=10 Roff=1g Von=0.5 Voff=0.3) Suvr1 uvr uvr3 slr1 0 smodslr1 Suvr2 uvr uvr3 slr2 0 smodslr2 Suvr3 uvr uvr3 slr3 0 smodslr3 .model smodslr1 VSWITCH (Ron=995 Roff=1g Von=0.5 Voff=0.3) .model smodslr2 VSWITCH (Ron=500 Roff=1g Von=0.5 Voff=0.3) .model smodslr3 VSWITCH (Ron=250 Roff=1g Von=0.5 Voff=0.3) ***** Eslf slf 0 value={-I(vgfc)*100k} Eslf21 slf21 0 value={if(V(slf)>4,1,0)} Eslf22 slf22 0 value={if(V(slf)<6,1,0)} Eslf2 slf2 0 value={V(slf21)*V(slf22)} *** Eslf31 slf31 0 value={if(V(slf)>9,1,0)} Eslf32 slf32 0 value={if(V(slf)<11,1,0)} Eslf3 slf3 0 value={V(slf31)*V(slf32)} ************************************************ Erv0 rv0 0 value={V(out)-V(in)} Rrv rv0 rv1 100 Crv rv1 0 1.8n Stm VCC TERM sh 0 smodsh1 .model smodsh1 VSWITCH (Ron=700 Roff=1g Von=0.5 Voff=0.3) Vgrc grc 0 1 Vgfc gfc 0 1 Eggf ggf 0 gate 0 1 X_gf 0 ggf gf shutdown X_outf 0 out outf shutdown Eff ff GND value={V(sh)*V(sleep)*V(ov1)*V(uv1)*V(oc)*V(rv)*V(vcc1)*V(ph1)*V(ph2)*V(och3)} S1 FLT GND ff 0 smod .model smod VSWITCH (Ron=10g Roff=166 Von=0.8 Voff=0.5) Epok1 po1 0 value={V(in)*0.89} Epok2 po2 0 value={V(in)*0.87} Eph1 ph1 0 value={if(V(out)>V(po1),1,0)} Eph2 ph2 0 value={if(V(out)