summaryrefslogblamecommitdiffstatshomepage
path: root/nl_examples/test.c
blob: b47815de25ffb7e646ef0755da3dc3412b7e4c53 (plain) (tree)





















































































                                                                    
/*
 * 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(V3, 3)
    NETDEV_ANALOG_CONST(STOPG, 0)
    NET_ALIAS(SRSTQ, RYf.2)
    NET_ALIAS(SRST, RYc.2)
    NET_C(antenna, GND)
    NET_ALIAS(runQ, Q1.C)

    TTL_7404_INVERT(e4d, STOPG)

    NETDEV_R(RYf, 50)   // output impedance
    NETDEV_R(RYc, 50)   // output impedance

    TTL_7404_INVERT(c9f, RYc.2)
    TTL_7404_INVERT(c9c, RYf.2)
    NET_C(c9f.Q, RYf.1)
    NET_C(c9c.Q, RYc.1)

    NETDEV_SWITCH2(coinsw,  RYc.2, RYf.2)

    NET_C(coinsw.Q, GND)

    /* Antenna circuit */
    /* Also has a diode to clamp negative voltages - omitted here */
    NETDEV_QNPN(Q3, BC237B)
    NET_ALIAS(antenna, Q3.B)
    NET_C(GND, Q3.E)
    NETDEV_R(RX5, 100)
    NETDEV_C(CX1, 100)
    NET_C(RX5.1, CX1.1)
    NET_C(RX5.1, Q3.C)
    NET_C(RX5.2, GND)
    NET_C(CX1.2, GND)
    NETDEV_QNPN(Q1, BC237B)
    NET_C(Q1.B, RX5.1)
    NET_C(Q1.E, GND)

    NETDEV_D(D3, 1N914)
    NET_C(D3.A, Q1.C)
    NET_C(D3.K, SRSTQ)

    NETDEV_D(D2, 1N914)
    NETDEV_R(RX4, 220)
    NET_C(D2.K, e4d.Q)
    NET_C(D2.A, RX4.1)
    NET_C(RX4.2, Q3.C)

    NETDEV_R(RX1, 100)
    NETDEV_R(RX2, 100)
    NETDEV_R(RX3, 330)
    NETDEV_C(CX2, CAP_U(0.1))

    NET_C(RX3.2, D3.A)
    NET_C(RX3.1, RX1.2)
    NET_C(RX1.1, V3)

    NET_C(RX1.1, CX2.1)
    NET_C(RX1.2, CX2.2)

    NETDEV_QPNP(Q2, BC556B)
    NET_C(Q2.E, V3)
    NET_C(Q2.B, RX1.2)
    NET_C(Q2.C, RX2.2)

    NET_C(RX2.1, D2.A)


    //NETDEV_LOG(logB, Q1.B)
    //NETDEV_LOG(logC, Q1.C)

NETLIST_END()