diff options
Diffstat (limited to 'nl_examples/LM3900_test.cpp')
-rw-r--r-- | nl_examples/LM3900_test.cpp | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/nl_examples/LM3900_test.cpp b/nl_examples/LM3900_test.cpp deleted file mode 100644 index 0498b4d2f0b..00000000000 --- a/nl_examples/LM3900_test.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// license:GPL-2.0+ -// copyright-holders:Couriersud -/* - * Script to analyze opamp amplification as a function of frequency. - * - * ./nltool -t 0.5 -f nl_examples/LM9000_test.cpp - * - * t=0.0: 10 Hz - * t=0.1: 100 Hz - * t=0.2: 1000 Hz - * t=0.3: 10000 Hz - * t=0.4: 100000 Hz - * .... - * - * ./plot_nl.sh --db Y Z - */ - - -#include "netlist/devices/net_lib.h" - -NETLIST_START(main) - - /* Standard stuff */ - - //VARCLOCK(clk, "0.5 / pow(10, 1 + T * 4)") - //CLOCK(clk, 1000) - SOLVER(Solver, 48000) - PARAM(Solver.ACCURACY, 1e-10) - PARAM(Solver.NR_LOOPS, 300) - PARAM(Solver.DYNAMIC_TS, 1) - PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-7) - - VS(vs, 0) - /* - * Having f(t)=sin(g(t)*t) the derivative becomes - * - * f'(t) = d/dt(g(t)*t) * cos(g(t)*t) - * - * w(t) = d/dt(g(t)*t) = 2*pi*freq(t) is the angular frequency at time t - * - * choosing freq(t) = pow(10, a+b*t) and integrating we get - * - * g(t)*t = 2 * pi /(b*ln(10)) * (pow(10, a+b*t)-pow(10,a)) - */ - - PARAM(vs.FUNC, "0.001 * sin(0.2728752708 * (pow(10, 1 + 10*T) - 10))") - - /* - * Stepwise ... same as above - */ - //PARAM(vs.FUNC, "0.001 * sin(6.28 * pow(10, trunc((1 + T * 10)*10)/10) * T)") - - /* - * Fixed Frequency: - * PARAM(vs.FUNC, "1.001 * sin(6.28 * 100 * T)") - */ - PARAM(vs.R, 0.1) - ALIAS(clk, vs.1) - NET_C(vs.2, GND) - ANALOG_INPUT(V9, 9) - ANALOG_INPUT(V12, 12) - ANALOG_INPUT(VM12, -12) - - //OPAMP(op, OPAMP_TEST) - LM3900(op) - - NET_C(op.GND, VM12) - NET_C(op.VCC, V12) - - /* Opamp B wired as inverting amplifier connected to output of first opamp */ - - RES(R1, 50) - RES(RP, 500000) // Set to R2 * 2 if VPlus == VCC (see datasheet) - RES(R2, 500000) - - NET_C(op.PLUS, RP.1) - - //NET_C(RP.2, V9) - NET_C(RP.2, GND) - //NET_C(RP.2, V12) - - NET_C(op.MINUS, R2.2) - NET_C(op.MINUS, R1.2) - - CAP(C, 10e-6) - - NET_C(clk, C.1) - NET_C(C.2, R1.1) - NET_C(op.OUT, R2.1) - - CAP(CL, 10.0e-6) - RES(RL, 2000) - NET_C(RL.2, GND) - NET_C(RL.1, CL.2) - NET_C(CL.1, op.OUT) - - AFUNC(f, 1, "A0 * 1000") - NET_C(f.A0, RL.1) -#if 1 - LOG(log_Y, R1.1) - LOG(log_Z, f) -#endif -NETLIST_END() |