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

trunk/src/emu/netlist/nl_parser.c
r26876r26877
6262         netdev_device(n, "R");
6363      else if (n == "NETDEV_D")
6464         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);
6569      else if ((n == "NETDEV_TTL_CONST") || (n == "NETDEV_ANALOG_CONST"))
6670         netdev_const(n);
6771      else if (n == "NETLIST_START")
trunk/src/emu/netlist/nl_setup.c
r26876r26877
2121   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)")
2222   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)")
2323   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)")
2525NETLIST_END()
2626
2727
trunk/src/emu/netlist/devices/nld_twoterm.c
r26876r26877
228228
229229   // Assume 5mA Collector current for switch operation
230230
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);
235232
236233   m_gB = d.gI(0.005 / alpha);
237234   if (m_gB < NETLIST_GMIN)
trunk/src/emu/netlist/devices/nld_twoterm.h
r26876r26877
314314   {
315315      double vE = INPANALOG(m_EV);
316316      double vB = INPANALOG(m_BV);
317      double m = (_type == BJT_NPN) ? 1 : -1;
317318
318      int new_state = (vB - vE > m_V ) ? 1 : 0;
319      int new_state = ((vB - vE) * m > m_V ) ? 1 : 0;
319320      if (m_state_on ^ new_state)
320321      {
321322         double gb = m_gB;
322323         double gc = m_gC;
323         double v  = m_V;
324         double v  = m_V * m;
324325         if (!new_state )
325326         {
326327            // not conducting
trunk/nl_examples/bjt.c
r0r26877
1/*
2 * bjt.c
3 *
4 */
5
6
7#include "netlist/devices/net_lib.h"
8
9NETLIST_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
46NETLIST_END()
Property changes on: trunk/nl_examples/bjt.c
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain

Previous 199869 Revisions Next


© 1997-2024 The MAME Team