Previous 199869 Revisions Next

r40037 Wednesday 29th July, 2015 at 01:26:11 UTC by Couriersud
Added macro models of LM324 and LM358. Made kidniki use those. (nw)
[src/emu/netlist/macro]nlm_opamp.c nlm_opamp.h
[src/mame/audio]irem.c nl_kidniki.c

trunk/src/emu/netlist/macro/nlm_opamp.c
r248548r248549
2323   NET_C(A.VCC, B.VCC, C.VCC, D.VCC)
2424NETLIST_END()
2525
26/*
27 *   Generic layout with 2 opamps, VCC on pint 8 and GND on pin 4
28 */
29
30NETLIST_START(opamp_layout_2_8_4)
31   DIPPINS(      /*   +--------------+   */
32      A.OUT,    /*   |1     ++     8|   */ A.VCC,
33      A.MINUS,  /*   |2            7|   */ B.OUT,
34      A.PLUS,   /*   |3            6|   */ B.MINUS,
35      A.GND,    /*   |4            5|   */ B.PLUS
36              /*   +--------------+   */
37   )
38   NET_C(A.GND, B.GND)
39   NET_C(A.VCC, B.VCC)
40NETLIST_END()
41
2642NETLIST_START(MB3614_DIP)
27   /* The opamp actually has an FPF of about 500k. This doesn't work here and causes oscillations.
28    * FPF here therefore about half the Solver clock.
29    */
3043   OPAMP(A, "MB3614")
3144   OPAMP(B, "MB3614")
3245   OPAMP(C, "MB3614")
r248548r248549
3649
3750NETLIST_END()
3851
52NETLIST_START(LM324_DIP)
53   OPAMP(A, "LM324")
54   OPAMP(B, "LM324")
55   OPAMP(C, "LM324")
56   OPAMP(D, "LM324")
57
58   INCLUDE(opamp_layout_4_4_11)
59
60NETLIST_END()
61
62NETLIST_START(LM358_DIP)
63   OPAMP(A, "LM358")
64   OPAMP(B, "LM358")
65
66   INCLUDE(opamp_layout_2_8_4)
67
68NETLIST_END()
69
3970NETLIST_START(OPAMP_lib)
4071   LOCAL_LIB_ENTRY(opamp_layout_4_4_11)
72   LOCAL_LIB_ENTRY(opamp_layout_2_8_4)
4173
74   NET_MODEL("LM324       OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)")
75   NET_MODEL("LM358       OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.001)")
4276   NET_MODEL("MB3614      OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.6M RI=1000k RO=50 DAB=0.002)")
4377   NET_MODEL("MB3614_SLOW OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=11k  SLEW=0.6M RI=1000k RO=50 DAB=0.002)")
78
4479   LOCAL_LIB_ENTRY(MB3614_DIP)
80   LOCAL_LIB_ENTRY(LM324_DIP)
81   LOCAL_LIB_ENTRY(LM358_DIP)
4582
4683
4784NETLIST_END()
trunk/src/emu/netlist/macro/nlm_opamp.h
r248548r248549
1212#define MB3614_DIP(_name)                                                    \
1313      NET_REGISTER_DEV(MB3614_DIP, _name)
1414
15#define LM324_DIP(_name)                                                    \
16      NET_REGISTER_DEV(LM324_DIP, _name)
17
18#define LM358_DIP(_name)                                                    \
19      NET_REGISTER_DEV(LM358_DIP, _name)
20
1521/* ----------------------------------------------------------------------------
1622 *  External declarations
1723 * ---------------------------------------------------------------------------*/
trunk/src/mame/audio/irem.c
r248548r248549
399399
400400#if (USE_FRONTIERS)
401401   SOLVER(Solver, 18000)
402   PARAM(Solver.ACCURACY, 1e-7)
402   PARAM(Solver.ACCURACY, 1e-8)
403403   PARAM(Solver.NR_LOOPS, 300)
404404   PARAM(Solver.GS_LOOPS, 1)
405   PARAM(Solver.GS_THRESHOLD, 99)
405   PARAM(Solver.GS_THRESHOLD, 6)
406406   PARAM(Solver.ITERATIVE, "SOR")
407407   PARAM(Solver.PARALLEL, 1)
408408   PARAM(Solver.SOR_FACTOR, 1.00)
trunk/src/mame/audio/nl_kidniki.c
r248548r248549
1515
1616#ifndef __PLIB_PREPROCESSOR__
1717
18#define LM324_DIP(_name)                                                   \
19      NET_REGISTER_DEV(LM324_DIP, _name)
20
21#define LM358_DIP(_name)                                                   \
22      NET_REGISTER_DEV(LM358_DIP, _name)
23
24NETLIST_EXTERNAL(kidniki_lib)
25
2618#endif
2719
2820/* ----------------------------------------------------------------------------
r248548r248549
4133   // IGNORED O_AUDIO0: O_AUDIO0  49 0
4234   // .END
4335
44   LOCAL_SOURCE(kidniki_lib)
45   INCLUDE(kidniki_lib)
46
4736   /*
4837    * Workaround: The simplified opamp model does not correctly
4938    * model the internals of the inputs.
r248548r248549
316305   NET_C(R26.2, C29.2, GND)
317306
318307NETLIST_END()
319
320/* ----------------------------------------------------------------------------
321 *  Library section body START
322 * ---------------------------------------------------------------------------*/
323
324NETLIST_START(opamp)
325
326   /* Opamp model from
327    *
328    * http://www.ecircuitcenter.com/Circuits/opmodel1/opmodel1.htm
329    *
330    * Bandwidth 1Mhz
331    *
332    */
333
334   /* Terminal definitions for calling netlists */
335
336   ALIAS(PLUS, G1.IP) // Positive input
337   ALIAS(MINUS, G1.IN) // Negative input
338   ALIAS(OUT, EBUF.OP) // Opamp output ...
339
340   ALIAS(GND, EBUF.ON) // GND terminal
341   ALIAS(VCC, DUMMY.I) // VCC terminal
342   DUMMY_INPUT(DUMMY)
343
344   /* The opamp model */
345
346   VCCS(G1)
347   PARAM(G1.RI, RES_K(1000))
348#if 1
349   PARAM(G1.G, 100)  // typical OP-AMP amplification 100 * 1000 = 100000
350   RES(RP1, 1000)
351   CAP(CP1, 1.59e-5)   // <== change to 1.59e-3 for 10Khz bandwidth
352#else
353   PARAM(G1.G, 1)  // typical OP-AMP amplification 100 * 1000 = 100000
354   RES(RP1, 100000)
355   CAP(CP1, 1.59e-7)   // <== change to 1.59e-3 for 10Khz bandwidth
356#endif
357   VCVS(EBUF)
358   PARAM(EBUF.RO, 50)
359   PARAM(EBUF.G, 1)
360
361//    PARAM(EBUF.RI, 1e20)
362//    NET_C(EBUF.ON, GND)
363
364   NET_C(G1.ON, GND)
365   NET_C(RP1.2, GND)
366   NET_C(CP1.2, GND)
367   NET_C(EBUF.IN, GND)
368
369   NET_C(RP1.1, G1.OP)
370   NET_C(CP1.1, RP1.1)
371
372   DIODE(DP,"1N914")
373   DIODE(DN,"1N914")
374
375   NET_C(DP.K, VCC)
376#if 1
377   NET_C(DP.A, DN.K, RP1.1)
378#else
379   RES(RDP, 1000)
380   RES(RDN, 1000)
381   NET_C(RDP.1, DP.A)
382   NET_C(RDN.1, DN.K)
383   NET_C(RDP.2, RDN.2, RP1.1)
384#endif
385   NET_C(DN.A, GND)
386
387   NET_C(EBUF.IP, RP1.1)
388
389NETLIST_END()
390
391NETLIST_START(LM324_DIP)
392   SUBMODEL(opamp, op1)
393   SUBMODEL(opamp, op2)
394   SUBMODEL(opamp, op3)
395   SUBMODEL(opamp, op4)
396
397   ALIAS( 1, op1.OUT)
398   ALIAS( 2, op1.MINUS)
399   ALIAS( 3, op1.PLUS)
400
401   ALIAS( 7, op2.OUT)
402   ALIAS( 6, op2.MINUS)
403   ALIAS( 5, op2.PLUS)
404
405   ALIAS( 8, op3.OUT)
406   ALIAS( 9, op3.MINUS)
407   ALIAS(10, op3.PLUS)
408
409   ALIAS(14, op4.OUT)
410   ALIAS(13, op4.MINUS)
411   ALIAS(12, op4.PLUS)
412
413   NET_C(op1.GND, op2.GND, op3.GND, op4.GND)
414   NET_C(op1.VCC, op2.VCC, op3.VCC, op4.VCC)
415
416   ALIAS(11, op1.GND)
417   ALIAS( 4, op1.VCC)
418NETLIST_END()
419
420NETLIST_START(LM358_DIP)
421   SUBMODEL(opamp, op1)
422   SUBMODEL(opamp, op2)
423
424   ALIAS( 1, op1.OUT)
425   ALIAS( 2, op1.MINUS)
426   ALIAS( 3, op1.PLUS)
427
428   ALIAS( 7, op2.OUT)
429   ALIAS( 6, op2.MINUS)
430   ALIAS( 5, op2.PLUS)
431
432
433   NET_C(op1.GND, op2.GND)
434   NET_C(op1.VCC, op2.VCC)
435
436   ALIAS( 4, op1.GND)
437   ALIAS( 8, op1.VCC)
438NETLIST_END()
439
440NETLIST_START(kidniki_lib)
441
442   LOCAL_LIB_ENTRY(LM324_DIP)
443   LOCAL_LIB_ENTRY(LM358_DIP)
444
445NETLIST_END()
446


Previous 199869 Revisions Next


© 1997-2024 The MAME Team