def caps(dc, l0, l1, n = 1, val = '0.1 uF'): r = [] for i in range(n): d = cu.C0402(dc, val) r.append(d) d.escape(l0, l1) dc.forward(1) return r
daz2.w("l 45 f 15 r 45 f 6 / l 45").wire() daz.s("12").w("i f 1 / r 45 f 14 r 45 f 30").goto(ftdi.s("OUT")).wire() # ------------------------------ dazzler console cx = dazzler_console(brd.DC((37.0, 48.0)).left(90).setlayer('GBL')) daz0.w("f 2 l 90 f 2 l 90") daz0.w("f 34 / l 45 f 12 r 90 f 3").wire() daz0.meet(cx) # ------------------------------ level shifters d = brd.DC((25, 42)).right(180) asig = [] # FPGA, 3.3V side bsig = [] # Z80, 5V side for i in range(3): cu.C0402(d.copy().goxy(1.2, 4), '0.1 uF').escape_2layer() (a, b) = TXB0108(d).escape() asig = a + asig bsig += b d.forward(8) bbus = brd.enriver90(bsig, -90).wire() x = 24 - len(daz1) daz1.w("l 90 f 4 l 45").meet(brd.enriver(asig[x:], -45).wire()) daz2.meet(brd.enriver(asig[:x], -45).wire()) zbus.meet(bbus) # ------------------------------ 5V power v5 = bus.s("5v").setlayer('GBL').setwidth(1) v5.copy().w("f 2 r 90 f 22 / l 45 f 11 r 45 f 8").goto(daz.s("5V")).wire()
"i f 1 / r 45 f 10 r 45 f 12 r 45 f 10.5 l 45 f 16 l 45 f 7 l 45 f 12" ).goto(ftdi.s("OUT")).wire() oe = daz.s("12").w("i f 1 / r 45 f 13.5 r 45 f 23").wire() # ------------------------------ dazzler console cx = dazzler_console(brd.DC((37.0, 48.0)).left(90).setlayer('GBL')) daz0.w("f 2 l 90 f 2 l 90") daz0.w("f 34 / l 45 f 12 r 90 f 3").wire() daz0.meet(cx) # ------------------------------ level shifters d = brd.DC((25, 42)).right(180) asig = [] # FPGA, 3.3V side bsig = [] # Z80, 5V side for i in range(3): cu.C0402(d.copy().goxy(-2.8, 4.5).left(180), '0.1 uF').escape_2layer() (a, b, _oe) = TXB0108(d).escape() oe.copy().goto(_oe).wire() asig = a + asig bsig += b d.forward(9) bbus = brd.enriver90(bsig, -90).wire() x = 24 - len(daz1) daz1.w("l 90 f 4 l 45").meet(brd.enriver(asig[x:], -45).wire()) daz2.meet(brd.enriver(asig[:x], -45).wire()) zbus.meet(bbus) # ------------------------------ 5V power v5 = bus.s("5v").setlayer('GBL').setwidth(0.6)
if __name__ == "__main__": brd = cu.Board((50, 42), trace=cu.mil(5), space=cu.mil(5) * 2.0, via_hole=0.3, via=0.6, via_space=cu.mil(5), silk=cu.mil(6)) daz = Dazzler(brd.DC((68.58 - 43.59, 26.5)).right(180)) sd = SD(brd.DC((53.6, 16.5)).right(0)) (lvl_in, lvl_out) = cu.M74LVC245(brd.DC((60, 37)).right(90)).escape() shield = ArduinoR3(brd.DC((0, 0))) cu.C0402(brd.DC((65, 39.0)), '0.1 uF').escape_2layer() cu.C0402(brd.DC((59, 27.5)), '0.1 uF').escape_2layer() R1 = cu.R0402(brd.DC((51.5, 46.0)).right(90), '4.7K') R2 = cu.R0402(brd.DC((53.0, 46.0)).right(90), '4.7K') R1.pads[0].w("o l 90 f 0.5 -") daz.s("PGM").w("o f 1 r 90 f 13 r 45 f 5.5 l 45 f 2").wire() daz.s("5V").copy().w( "i f 6 l 90 f 9.15 l 90 f 11.3 r 90 f 26.9 r 90 f 4").goto( R2.pads[0]).wire() def wii(i): y = 53.3 / 2 + i * (24.0 / 2) return cu.WiiPlug(brd.DC((76, y)).right(90)).escape() brd.layers['GML'].union(sg.box(68, 22, 80.8, 30))