* 555 Astable Multivibrator - from the FOSSEE eSim examples (Astable555), GPL-3.0 * https://github.com/FOSSEE/eSim/tree/master/Examples/Astable555 * Model files from the project folder are inlined below. Run: ngspice esim-astable555.cir * /home/ash98/esim-workspace/555/555.cir * ---- begin lm555n.sub ---- * Subcircuit lm555n .subckt lm555n 22 14 7 6 15 16 3 13 * ---- begin npn_1.lib ---- .model npn_1 NPN( + Vtf=1.7 + Cjc=0.5p + Nc=2 + Tr=46.91n + Ne=1.307 + Cje=0.5p + Isc=0 + Xtb=1.5 + Rb=500 + Rc=1 + Tf=411.1p + Xti=3 + Ikr=0 + Bf=125 + Fc=.5 + Ise=14.34f + Br=6.092 + Ikf=.2847 + Mje=.377 + Mjc=.3416 + Vaf=74.03 + Vjc=.75 + Vje=.75 + Xtf=3 + Itf=.6 + Is=14.34f + Eg=1.11 ) * ---- end npn_1.lib ---- * eeschema netlist version 1.1 (spice format) creation date: monday 17 december 2012 11:00:36 am ist * Inverter d_inverter * SR Latch d_srlatch e2 18 0 23 14 10000 * Limiter limit8 * Digital to Analog converter dac8 * Analog to Digital converter adc8 r8 9 2 1500 q1 3 2 22 npn_1 r7 18 20 25 r6 17 19 25 e1 17 0 16 15 10000 r4 16 15 2e6 r5 23 14 2e6 r3 23 22 5000 r2 15 23 5000 r1 13 15 5000 a1 5 21 u5 .model u5 d_inverter(rise_delay=1e-12 fall_delay=1e-12 input_load=1e-12) a2 1 4 5 21 21 8 10 u6 .model u6 d_srlatch(rise_delay=1e-12 fall_delay=1e-12 ic=0 +sr_load=1e-12 enable_load=1e-12 set_load=1e-12 reset_load=1e-12 +sr_delay=1e-12 enable_delay=1e-12 set_delay=1e-12 reset_delay=1e-12) a3 19 11 u4 a4 20 12 u4 .model u4 limit(out_lower_limit=0.0 out_upper_limit=5.0 in_offset=0.0 gain=1.0) a5 [8] [7] u3 a6 [10] [9] u3 .model u3 dac_bridge(out_low=0.2 out_high=5.0 out_undef=5.0 ) a7 [11] [4] u2 a8 [12] [1] u2 a9 [6] [5] u2 .model u2 adc_bridge(in_low=0.8 in_high=2.0 ) *control statements .ends lm555n * ---- end lm555n.sub ---- r3 v_out gnd 1k r1 net-_r1-pad1_ net-_r1-pad2_ 1k r2 net-_r1-pad2_ c_out 10k v1 net-_r1-pad1_ gnd dc 10 c1 c_out gnd 0.1u c2 net-_c2-pad1_ gnd 0.01u * u2 v_out plot_v1 * u1 c_out plot_v1 x1 gnd c_out v_out net-_r1-pad1_ net-_c2-pad1_ c_out net-_r1-pad2_ net-_r1-pad1_ lm555n .tran 1e-03 50e-03 0e-00 uic * eetree.cn: 'uic' added so the transient converges in current ngspice * Control Statements .control option noopalter run print allv > plot_data_v.txt print alli > plot_data_i.txt plot v(v_out) plot v(c_out) .endc .end