mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
Fixed PNP model and added test netlist (bjt.c) [Couriersud]
This commit is contained in:
parent
1006bc5bd9
commit
3b28221fd3
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -348,6 +348,7 @@ keymaps/km_se_LINUX.map svneol=native#text/plain
|
||||
keymaps/km_se_OSX.map svneol=native#text/plain
|
||||
/makefile svneol=native#text/plain
|
||||
nl_examples/7400_astable.c svneol=native#text/plain
|
||||
nl_examples/bjt.c svneol=native#text/plain
|
||||
nl_examples/ne555_astable.c svneol=native#text/plain
|
||||
nl_examples/opamp.c svneol=native#text/plain
|
||||
src/build/build.mak svneol=native#text/plain
|
||||
|
46
nl_examples/bjt.c
Normal file
46
nl_examples/bjt.c
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* bjt.c
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include "netlist/devices/net_lib.h"
|
||||
|
||||
NETLIST_START(bjt)
|
||||
/* Standard stuff */
|
||||
|
||||
NETDEV_CLOCK(clk)
|
||||
NETDEV_PARAM(clk.FREQ, 1000) // 1000 Hz
|
||||
NETDEV_SOLVER(Solver)
|
||||
NETDEV_PARAM(Solver.FREQ, 48000)
|
||||
NETDEV_ANALOG_CONST(V5, 5)
|
||||
NETDEV_ANALOG_CONST(V3, 3.5)
|
||||
|
||||
/* NPN - example */
|
||||
|
||||
NETDEV_QNPN(Q, BC237B)
|
||||
NETDEV_R(RB, 1000)
|
||||
NETDEV_R(RC, 1000)
|
||||
|
||||
NET_C(RC.1, V5)
|
||||
NET_C(RC.2, Q.C)
|
||||
NET_C(RB.1, clk)
|
||||
NET_C(RB.2, Q.B)
|
||||
NET_C(Q.E, GND)
|
||||
|
||||
/* PNP - example */
|
||||
|
||||
NETDEV_QPNP(Q1, BC556B)
|
||||
NETDEV_R(RB1, 1000)
|
||||
NETDEV_R(RC1, 1000)
|
||||
|
||||
NET_C(RC1.1, GND)
|
||||
NET_C(RC1.2, Q1.C)
|
||||
NET_C(RB1.1, clk)
|
||||
NET_C(RB1.2, Q1.B)
|
||||
NET_C(Q1.E, V3)
|
||||
|
||||
//NETDEV_LOG(logB, Q1.B)
|
||||
//NETDEV_LOG(logC, Q1.C)
|
||||
|
||||
NETLIST_END()
|
@ -228,10 +228,7 @@ NETLIB_UPDATE_PARAM(QBJT_switch<_type>)
|
||||
|
||||
// Assume 5mA Collector current for switch operation
|
||||
|
||||
if (_type == BJT_NPN)
|
||||
m_V = d.V(0.005 / alpha);
|
||||
else
|
||||
m_V = - d.V(0.005 / alpha);
|
||||
m_V = d.V(0.005 / alpha);
|
||||
|
||||
m_gB = d.gI(0.005 / alpha);
|
||||
if (m_gB < NETLIST_GMIN)
|
||||
|
@ -314,13 +314,14 @@ public:
|
||||
{
|
||||
double vE = INPANALOG(m_EV);
|
||||
double vB = INPANALOG(m_BV);
|
||||
double m = (_type == BJT_NPN) ? 1 : -1;
|
||||
|
||||
int new_state = (vB - vE > m_V ) ? 1 : 0;
|
||||
int new_state = ((vB - vE) * m > m_V ) ? 1 : 0;
|
||||
if (m_state_on ^ new_state)
|
||||
{
|
||||
double gb = m_gB;
|
||||
double gc = m_gC;
|
||||
double v = m_V;
|
||||
double v = m_V * m;
|
||||
if (!new_state )
|
||||
{
|
||||
// not conducting
|
||||
|
@ -62,6 +62,10 @@ void netlist_parser::parse(const char *buf)
|
||||
netdev_device(n, "R");
|
||||
else if (n == "NETDEV_D")
|
||||
netdev_device(n, "model", true);
|
||||
else if (n == "NETDEV_QNPN")
|
||||
netdev_device(n, "model", true);
|
||||
else if (n == "NETDEV_QPNP")
|
||||
netdev_device(n, "model", true);
|
||||
else if ((n == "NETDEV_TTL_CONST") || (n == "NETDEV_ANALOG_CONST"))
|
||||
netdev_const(n);
|
||||
else if (n == "NETLIST_START")
|
||||
|
@ -21,7 +21,7 @@ static NETLIST_START(base)
|
||||
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)")
|
||||
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)")
|
||||
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)")
|
||||
|
||||
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)")
|
||||
NETLIST_END()
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user