| Previous | 199869 Revisions | Next |
| r26877 Wednesday 1st January, 2014 at 20:28:59 UTC by Couriersud |
|---|
| Fixed PNP model and added test netlist (bjt.c) [Couriersud] |
| [nl_examples] | bjt.c* |
| [src/emu/netlist] | nl_parser.c nl_setup.c |
| [src/emu/netlist/devices] | nld_twoterm.c nld_twoterm.h |
| r26876 | r26877 | |
|---|---|---|
| 62 | 62 | netdev_device(n, "R"); |
| 63 | 63 | else if (n == "NETDEV_D") |
| 64 | 64 | netdev_device(n, "model", true); |
| 65 | else if (n == "NETDEV_QNPN") | |
| 66 | netdev_device(n, "model", true); | |
| 67 | else if (n == "NETDEV_QPNP") | |
| 68 | netdev_device(n, "model", true); | |
| 65 | 69 | else if ((n == "NETDEV_TTL_CONST") || (n == "NETDEV_ANALOG_CONST")) |
| 66 | 70 | netdev_const(n); |
| 67 | 71 | else if (n == "NETLIST_START") |
| r26876 | r26877 | |
|---|---|---|
| 21 | 21 | NET_MODEL(".model 1N914 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") |
| 22 | 22 | NET_MODEL(".model 1N4148 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)") |
| 23 | 23 | NET_MODEL(".MODEL BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45V ICRATING=100M MFG=ZETEX)") |
| 24 | ||
| 24 | NET_MODEL(".model BC556B PNP(IS=3.83E-14 NF=1.008 ISE=1.22E-14 NE=1.528 BF=344.4 IKF=0.08039 VAF=21.11 NR=1.005 ISC=2.85E-13 NC=1.28 BR=14.84 IKR=0.047 VAR=32.02 RB=1 IRB=1.00E-06 RBM=1 RE=0.6202 RC=0.5713 XTB=0 EG=1.11 XTI=3 CJE=1.23E-11 VJE=0.6106 MJE=0.378 TF=5.60E-10 XTF=3.414 VTF=5.23 ITF=0.1483 PTF=0 CJC=1.08E-11 VJC=0.1022 MJC=0.3563 XCJC=0.6288 TR=1.00E-32 CJS=0 VJS=0.75 MJS=0.333 FC=0.8027 Vceo=65 Icrating=100m mfg=Philips)") | |
| 25 | 25 | NETLIST_END() |
| 26 | 26 | |
| 27 | 27 |
| r26876 | r26877 | |
|---|---|---|
| 228 | 228 | |
| 229 | 229 | // Assume 5mA Collector current for switch operation |
| 230 | 230 | |
| 231 | if (_type == BJT_NPN) | |
| 232 | m_V = d.V(0.005 / alpha); | |
| 233 | else | |
| 234 | m_V = - d.V(0.005 / alpha); | |
| 231 | m_V = d.V(0.005 / alpha); | |
| 235 | 232 | |
| 236 | 233 | m_gB = d.gI(0.005 / alpha); |
| 237 | 234 | if (m_gB < NETLIST_GMIN) |
| r26876 | r26877 | |
|---|---|---|
| 314 | 314 | { |
| 315 | 315 | double vE = INPANALOG(m_EV); |
| 316 | 316 | double vB = INPANALOG(m_BV); |
| 317 | double m = (_type == BJT_NPN) ? 1 : -1; | |
| 317 | 318 | |
| 318 | int new_state = (vB - vE > m_V ) ? 1 : 0; | |
| 319 | int new_state = ((vB - vE) * m > m_V ) ? 1 : 0; | |
| 319 | 320 | if (m_state_on ^ new_state) |
| 320 | 321 | { |
| 321 | 322 | double gb = m_gB; |
| 322 | 323 | double gc = m_gC; |
| 323 | double v = m_V; | |
| 324 | double v = m_V * m; | |
| 324 | 325 | if (!new_state ) |
| 325 | 326 | { |
| 326 | 327 | // not conducting |
| r0 | r26877 | |
|---|---|---|
| 1 | /* | |
| 2 | * bjt.c | |
| 3 | * | |
| 4 | */ | |
| 5 | ||
| 6 | ||
| 7 | #include "netlist/devices/net_lib.h" | |
| 8 | ||
| 9 | NETLIST_START(bjt) | |
| 10 | /* Standard stuff */ | |
| 11 | ||
| 12 | NETDEV_CLOCK(clk) | |
| 13 | NETDEV_PARAM(clk.FREQ, 1000) // 1000 Hz | |
| 14 | NETDEV_SOLVER(Solver) | |
| 15 | NETDEV_PARAM(Solver.FREQ, 48000) | |
| 16 | NETDEV_ANALOG_CONST(V5, 5) | |
| 17 | NETDEV_ANALOG_CONST(V3, 3.5) | |
| 18 | ||
| 19 | /* NPN - example */ | |
| 20 | ||
| 21 | NETDEV_QNPN(Q, BC237B) | |
| 22 | NETDEV_R(RB, 1000) | |
| 23 | NETDEV_R(RC, 1000) | |
| 24 | ||
| 25 | NET_C(RC.1, V5) | |
| 26 | NET_C(RC.2, Q.C) | |
| 27 | NET_C(RB.1, clk) | |
| 28 | NET_C(RB.2, Q.B) | |
| 29 | NET_C(Q.E, GND) | |
| 30 | ||
| 31 | /* PNP - example */ | |
| 32 | ||
| 33 | NETDEV_QPNP(Q1, BC556B) | |
| 34 | NETDEV_R(RB1, 1000) | |
| 35 | NETDEV_R(RC1, 1000) | |
| 36 | ||
| 37 | NET_C(RC1.1, GND) | |
| 38 | NET_C(RC1.2, Q1.C) | |
| 39 | NET_C(RB1.1, clk) | |
| 40 | NET_C(RB1.2, Q1.B) | |
| 41 | NET_C(Q1.E, V3) | |
| 42 | ||
| 43 | //NETDEV_LOG(logB, Q1.B) | |
| 44 | //NETDEV_LOG(logC, Q1.C) | |
| 45 | ||
| 46 | NETLIST_END() |
| Added: svn:eol-style + native Added: svn:mime-type + text/plain |
| Previous | 199869 Revisions | Next |