コード例 #1
0
#!/usr/bin/env python3

from svg_schematic import (Schematic, Amp, Dot, Ground, Label, Pin, Resistor,
                           Source, Wire)
from inform import Error, error, os_error

try:
    with Schematic(filename="noninverting.svg", line_width=2):

        vin = Source(kind='sine')
        Label(C=vin.p, name='Vin', loc='n')
        Ground(C=vin.n)
        amp = Amp(pi=vin.p, xoff=100, kind='oa')
        Label(C=amp.ni, xoff=-25, name='Vf', loc='n')
        Wire([vin.p, amp.pi])
        out = Pin(C=amp.o, xoff=50, name='out', w=2)
        Wire([amp.o, out.C])
        oj = Dot(C=amp.o, xoff=25)
        r1 = Resistor(p=amp.ni, off=(-25, 50), name='R1', orient='v')
        Wire([r1.N, amp.ni], kind='|-')
        r2 = Resistor(C=amp.C, yoff=75, name='R2')
        Wire([r1.p, r2.W], kind='|-')
        Wire([oj.C, r2.E], kind='|-')
        fj = Dot(C=r2.W, xoff=-25)
        Ground(C=r1.n)

except Error as e:
    e.report()
except OSError as e:
    error(os_error(e))
コード例 #2
0
                           midpoint)
from inform import Error, error, os_error

try:
    with Schematic(filename="buck.svg", line_width=2, background='none'):

        pvdd = Pin(kind='in', name='pvdd', w=2)
        avdd = Pin(C=pvdd.C, yoff=50, kind='in', name='avdd', w=2)
        Wire([avdd.C, shift_x(avdd.C, 50)])

        lvl = Pin(C=avdd.C, yoff=90, kind='in', name='lvl', w=2)
        reference = Converter(i=lvl.C, xoff=75, name='ref')
        lvl2ref = Wire([lvl.C, reference.i])
        Label(C=lvl2ref.m, kind='slash', name='6', loc='se')

        amp = Amp(pi=reference.o, xoff=50, kind='oa', name='amp')
        Wire([reference.o, amp.pi])
        C1 = Capacitor(p=amp.C, off=(-12.5, 75), orient='h')
        R1 = Resistor(p=C1.p, xoff=12.5, orient='h')
        C2 = Capacitor(C=midpoint(R1.C, C1.C), yoff=50, orient='h')
        Wire([C1.n, with_y(C1.n, amp.o)], kind='-|')
        Wire([R1.n, amp.ni], kind='|-')
        Wire([C2.p, R1.n], kind='-|')
        Wire([C2.n, C1.n], kind='-|')

        cmp = Amp(pi=amp.o, xoff=125, kind='comp', name='cmp')
        Wire([amp.o, cmp.pi])

        gd = Box(i=cmp.o, xoff=50, name='gate', value='drivers')
        Wire([cmp.o, gd.i])
コード例 #3
0
ファイル: inverting.py プロジェクト: KenKundert/svg_schematic
#!/usr/bin/env python3

from svg_schematic import (Schematic, Amp, Dot, Ground, Label, Pin, Resistor,
                           Source, Wire)
from inform import Error, error, os_error

try:
    with Schematic(filename="inverting.svg", font_size=16,
                   font_family='serif'):

        vin = Pin(kind='in', name='in', w=1.5)
        vout = Pin(C=vin.C, xoff=350, kind='out', name='out', w=2)
        Wire([vin.C, vout.C])
        rin = Resistor(W=vin.C, xoff=25, name='Rin')
        vg = Dot(C=rin.E, xoff=25)
        rfb = Resistor(W=vg.C, xoff=25, name='Rfb')
        oj = Dot(C=rfb.E, xoff=25)
        amp = Amp(C=rfb.C, yoff=75, orient='-', kind='oa')
        Wire([oj.C, amp.o], kind='|-')
        gnd = Ground(C=amp.pi, xoff=-25, orient='h|')
        Wire([gnd.C, amp.pi])
        Wire([vg.C, amp.ni], kind='|-')
        Label(C=vg.C, name='Vg', loc='sw')

except Error as e:
    e.report()
except OSError as e:
    error(os_error(e))
コード例 #4
0
from svg_schematic import (
    Schematic, Amp, Dot, Ground, Label, Pin, Resistor, Source, Wire
)
from inform import Error, error, os_error

try:
    with Schematic(
        filename = "inverting.svg",
        font_size=16,
        font_family='serif'
    ):

        vin = Pin(kind='in', name='in', w=1.5)
        vout = Pin(C=vin.C, xoff=350, kind='out', name='out', w=2)
        Wire([vin.C, vout.C])
        rin = Resistor(W=vin.C, xoff=25, name='Rin')
        vg = Dot(C=rin.E, xoff=25)
        rfb = Resistor(W=vg.C, xoff=25, name='Rfb')
        oj = Dot(C=rfb.E, xoff=25)
        amp = Amp(C=rfb.C, yoff=75, orient='-')
        Wire([oj.C, amp.o], kind='|-')
        gnd = Ground(C=amp.pi, xoff=-25, orient='h|')
        Wire([gnd.C, amp.pi])
        Wire([vg.C, amp.ni], kind='|-')
        Label(C=vg.C, name='Vg', loc='sw')

except Error as e:
    e.report()
except OSError as e:
    error(os_error(e))
コード例 #5
0
ファイル: amp.py プロジェクト: KenKundert/svg_schematic
from svg_schematic import Schematic, Amp, Converter, Label
from inform import Error, error, os_error

try:
    with Schematic(filename='amp.svg'):
        origin = (0, 0)
        a = Amp(C=origin, kind='se', name='As')
        Label(C=a.pi, name='pi', loc='w', kind='dot', color='blue', w=2)
        Label(C=a.i, name='i', loc='w', kind='dot', color='blue', w=2)
        Label(C=a.ni, name='ni', loc='w', kind='dot', color='blue', w=2)
        Label(C=a.po, name='po', loc='e', kind='dot', color='blue', w=2)
        Label(C=a.o, name='o', loc='e', kind='dot', color='blue', w=2)
        Label(C=a.no, name='no', loc='e', kind='dot', color='blue', w=2)

        a = Amp(kind='oa', name='Ao', C=a.C, xoff=200)
        Label(C=a.pi, name='pi', loc='w', kind='dot', color='blue', w=2)
        Label(C=a.i, name='i', loc='w', kind='dot', color='blue', w=2)
        Label(C=a.ni, name='ni', loc='w', kind='dot', color='blue', w=2)
        Label(C=a.po, name='po', loc='e', kind='dot', color='blue', w=2)
        Label(C=a.o, name='o', loc='e', kind='dot', color='blue', w=2)
        Label(C=a.no, name='no', loc='e', kind='dot', color='blue', w=2)

        a = Amp(kind='da', name='Ad', C=a.C, xoff=200)
        Label(C=a.pi, name='pi', loc='w', kind='dot', color='blue', w=2)
        Label(C=a.i, name='i', loc='w', kind='dot', color='blue', w=2)
        Label(C=a.ni, name='ni', loc='w', kind='dot', color='blue', w=2)
        Label(C=a.po, name='po', loc='e', kind='dot', color='blue', w=2)
        Label(C=a.o, name='o', loc='e', kind='dot', color='blue', w=2)
        Label(C=a.no, name='no', loc='e', kind='dot', color='blue', w=2)

        a = Amp(kind='comp', name='Ac', C=a.C, xoff=200)
コード例 #6
0
ファイル: receiver.py プロジェクト: MarioAAAS/svg_schematic
with Schematic(
        filename='receiver.svg',
        font_size=12,
        font_family='sans',
        outline='none',
        pad=20,
        line_width=2,
) as schematic:

    # Input from horn antenna
    rf_in = Pin(kind='in', name='L-band Horn', w=3)
    Label(C=rf_in.C, yoff=15, loc='w', name='fc=1420MHz', w=3.5, nudge=14)
    Label(C=rf_in.C, yoff=30, loc='w', name='BW=15MHz', w=3.5, nudge=14)

    # First preamp
    rf_preamp1 = Amp(i=rf_in.t, xoff=25, kind='se', name='RF Preamp1')
    Label(C=rf_preamp1.S, loc='s', name='A>=26dB')
    Wire([rf_in.t, rf_preamp1.i])

    # Second preamp
    rf_preamp2 = Amp(i=rf_preamp1.o, xoff=25, kind='se', name='RF Preamp2')
    Label(C=rf_preamp2.S, loc='s', name='A>=26dB')
    Wire([rf_preamp1.o, rf_preamp2.i])

    # RF band-pass filter
    rf_bpf = Box(i=rf_preamp2.o, xoff=25, name='RF BPF')
    l = Label(C=rf_bpf.S, loc='s', name='fc=1380MHz')
    Label(C=l.S, name='BW=320MHz')
    Wire([rf_preamp2.o, rf_bpf.i])

    # First RF amplifier
コード例 #7
0
        # Stage 1
        i = Pin(kind='in', name='in')
        s1 = Box(NW=i.t,
                 off=(25, -62.5),
                 w=10.5,
                 h=4.5,
                 background='lightgray')
        Label(C=s1.SE, loc='nw', name='Stage 1')
        adc = Box(W=i.t, off=(75, 100), name='2 bit', value='Flash')
        dac = Box(i=adc.o, xoff=50, name='2 bit', value='DAC')
        sh = Box(C=with_x(i.t, midpoint(adc.C, dac.C)), name='SAH')
        sum = Source(W=with_x(i.t, dac.E), xoff=25, kind='sum', orient='h|')
        Label(C=sum.W, loc='nw', name='+')
        Label(C=sum.S, loc='se', name='−')
        amp = Amp(i=sum.E, xoff=25, kind='se', name='4×')
        Wire([i.t, sh.i])
        Wire([sh.o, sum.W])
        Wire([sum.E, amp.i])
        Wire([shift_x(i.t, 50), adc.i], kind='|-')
        Wire([adc.o, dac.i])
        Wire([dac.o, sum.S], kind='-|')

        # Stages 2, 3, 4
        s2 = Box(N=dac.S, off=(25, 75), name='Stage 2')
        s3 = Box(W=s2.E, xoff=50, name='Stage 3')
        s4 = Box(W=s3.E, xoff=50, name='4 bit', value='Flash')
        Wire([s2.o, s3.i])
        Wire([s3.o, s4.i])
        Wire([
            amp.o,
コード例 #8
0
#!/usr/bin/env python3

from svg_schematic import Schematic, Amp, Box, Label, Pin, Source, Wire, shift_x
from inform import Error, error, os_error

try:
    with Schematic(
        filename = "feedback.svg",
        font_size=16,
        font_family='serif'
    ):

        summer = Source(kind='sum')
        amp = Amp(W=summer.E, xoff=25, name='$a$', kind='se')
        fb = Box(C=amp.C, yoff=100, name='$f$', h=1, orient='|')
        Label(C=summer.W, name='$+$', loc='nw')
        Label(C=summer.S, name='$-$', loc='sw')
        i = Pin(C=summer.W, xoff=-50, name='in', kind='in')
        o = Pin(C=amp.E, xoff=50, name='out', kind='out')

        Wire([i.C, summer.W])
        Wire([summer.E, amp.i])
        Wire([amp.E, o.C])
        Wire([shift_x(amp.E, 25), fb.i], kind='|-')
        Wire([summer.S, fb.W], kind='|-')

except Error as e:
    e.report()
except OSError as e:
    error(os_error(e))