Esempio n. 1
0
    ],
)
ext_gnd = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_1x06_Pitch2.54mm",
    identifier="EXTGND",
    value="0v",
    pins=[
        Pin(1, "", ["GND"]),
        Pin(2, "", ["GND"]),
        Pin(3, "", ["GND"]),
        Pin(4, "", ["GND"]),
        Pin(5, "", ["GND"]),
        Pin(6, "", ["GND"]),
    ],
)
ext_neg_5v = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_1x06_Pitch2.54mm",
    identifier="EXT-5V",
    value="-5v",
    pins=[
        Pin(1, "", ["-5V"]),
        Pin(2, "", ["-5V"]),
        Pin(3, "", ["-5V"]),
        Pin(4, "", ["-5V"]),
        Pin(5, "", ["-5V"]),
        Pin(6, "", ["-5V"]),
    ],
)

myelin_kicad_pcb.dump_netlist("%s.net" % PROJECT_NAME)
        Pin("SH2", "GND"),
    ],
)
#TODO figure out if this is necessary -- might only be with MMC cards
#sd_cmd_pullup = myelin_kicad_pcb.R0805("10k", "3V3", "sd_MOSI")

# In case we want to use an external SD adapter
ext_sd = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_2x03_Pitch2.54mm",
    identifier="EXTSD",
    value="ext sd",
    pins=[
        Pin(1, "1", ["sd_nSS"]),
        Pin(2, "2", ["sd_MOSI"]),
        Pin(3, "3", ["3V3"]),
        Pin(4, "4", ["sd_SCK"]),
        Pin(5, "5", ["GND"]),
        Pin(6, "6", ["sd_MISO"]),
    ],
)

for n in range(7):
    single_staple = myelin_kicad_pcb.Component(
        footprint="myelin-kicad:via_single",
        identifier="staple_single%d" % (n + 1),
        value="",
        pins=[Pin(1, "GND", ["GND"])],
    )

myelin_kicad_pcb.dump_netlist("bbc_1mhz_serial_sd.net")
Esempio n. 3
0
                               identifier="CON2",
                               value="3.3V #2",
                               pins=[
                                   Pin("1", "", ["ext_dbuf_nCE"]),
                                   Pin("2", "", ["ext_A10"]),
                                   Pin("3", "", ["ext_D3"]),
                                   Pin("4", "", ["ext_nOE"]),
                                   Pin("5", "", ["ext_D4"]),
                                   Pin("6", "", ["ext_A11"]),
                                   Pin("7", "", ["ext_A3"]),
                                   Pin("8", "", ["ext_D5"]),
                                   Pin("9", "", ["ext_A2"]),
                                   Pin("10", "", ["ext_D6"]),
                                   Pin("11", "", ["ext_D0"]),
                                   Pin("12", "", ["ext_D7"]),
                                   Pin("13", "", ["ext_A0"]),
                                   Pin("14", "", ["ext_A1"]),
                               ]),
]

staples = [
    myelin_kicad_pcb.Component(
        footprint="myelin-kicad:via_single",
        identifier="staple_single%d" % (n + 1),
        value="",
        pins=[Pin(1, "GND", ["GND"])],
    ) for n in range(7)
]

myelin_kicad_pcb.dump_netlist("rom_socket_level_shifter.net")
    pins=[
        Pin(1, "TCK", ["cpld_TCK"]), # top left
        Pin(2, "GND", ["GND"]), # top right
        Pin(3, "TDO", ["cpld_TDO"]),
        Pin(4, "3V3", ["3V3"]),
        Pin(5, "TMS", ["cpld_TMS"]),
        Pin(6, "NC"),
        Pin(7, "NC"),
        Pin(8, "NC"),
        Pin(9, "TDI", ["cpld_TDI"]),
        Pin(10, "GND", ["GND"]),
    ],
)

regulator = Component(
    footprint="TO_SOT_Packages_SMD:SOT-89-3",
    identifier="U3",
    value="MCP1700T-3302E/MB",
	desc="3.3V LDO regulator.  Search for the exact part number because there are many variants.",
    pins=[
        Pin(2, "VIN", ["5V"]),
        Pin(3, "VOUT", ["3V3"]),
        Pin(1, "GND", ["GND"]),
    ],
)
reg_in_cap = C0805("1u", "5V", "GND", ref="C3")
reg_out_cap = C0805("1u", "3V3", "GND", ref="C4")

dump_netlist("standalone_programmer.net")
dump_bom("bill_of_materials.txt")
            Pin(16, "", "C4_16_DPCLK0"),
            Pin(17, "", "C4_17"),
            Pin(18, "", "C4_18"),
            Pin(19, "", "C4_19"),
            Pin(20, "", "C4_20"),
            Pin(21, "", "C4_21"),
            Pin(22, "", "C4_22"),
            Pin(23, "", "C4_23"),
            Pin(24, "", "C4_24"),
            Pin(25, "", "C4_25"),
            Pin(26, "", "C4_26"),
            Pin(27, "", "C4_27"),
            Pin(28, "", "C4_28"),
            Pin(29, "5V", "NC-4-29"),
            Pin(30, "", "C4_30"),
            Pin(31, "", "C4_31"),
            Pin(32, "", "C4_32"),
            Pin(33, "", "C4_33"),
            Pin(34, "", "C4_34"),
            Pin(35, "", "C4_35"),
            Pin(36, "", "C4_36"),
            Pin(37, "", "C4_37"),
            Pin(38, "", "C4_38"),
            Pin(39, "", "C4_39"),
            Pin(40, "", "C4_40"),
        ],
    ),
]

myelin_kicad_pcb.dump_netlist("bga_in_two_layers.net")
Esempio n. 6
0
    pins=[
        # DIN-5 pins are numbered weirdly -- 1, 4, 2, 5, 3 around the circle
        Pin( 1, "D+", ["econet_data_line_P"]),
        Pin( 4, "D-", ["econet_data_line_M"]),
        Pin( 2, "GND", ["GND"]),
        Pin( 5, "C+", ["econet_clock_line_P"]),
        Pin( 3, "C-", ["econet_clock_line_M"]),

        # Ground all the shield pins
        Pin("S1", "", "GND"),
        Pin("S2", "", "GND"),
        Pin("S3", "", "GND"),
        Pin("S4", "", "GND"),
    ],
) for socket_id in range(5)]

# Ground plane stapling vias
for n in range(5):
    single_staple = myelin_kicad_pcb.Component(
        footprint="myelin-kicad:via_single",
        identifier="staple_single%d" % (n+1),
        value="",
        pins=[Pin(1, "GND", ["GND"])],
    )

myelin_kicad_pcb.dump_netlist("%s.net" % PROJECT_NAME)

myelin_kicad_pcb.dump_netlist("cpu_socket_expansion.net")
myelin_kicad_pcb.dump_bom("bill_of_materials.txt",
                          "readable_bill_of_materials.txt")
Esempio n. 7
0
        #Pin(1, "3V3", ["3V3"]),
        #Pin(2, "5V", ["5V"]),
        Pin(3, "GPIO0-2", ["tube_A1"]),
        Pin(4, "5V", ["5V"]),
        Pin(5, "GPIO1-3", ["tube_A2"]),
        Pin(6, "ser_GND", ["pi_serial_GND"]),
        Pin(7, "GPIO4", ["tube_nRST"]),
        Pin(8, "ser_TX", ["pi_serial_TX"]),
        Pin(9, "GND", ["GND"]),
        Pin(10, "ser_RX", ["pi_serial_RX"]),
        Pin(11, "GPIO17", ["tube_nTUBE"]),
        Pin(12, "GPIO18", ["tube_RnW"]),
        Pin(13, "GPIO21-27", ["tube_A0"]),
        Pin(14, "GND", ["GND"]),
        Pin(15, "GPIO22", ["tube_D4"]),
        Pin(16, "GPIO23", ["tube_D5"]),
        Pin(17, "3V3", ["3V3"]),
        Pin(18, "GPIO24", ["tube_D6"]),
        Pin(19, "GPIO10", ["tube_D2"]),
        Pin(20, "GND", ["GND"]),
        Pin(21, "GPIO9", ["tube_D1"]),
        Pin(22, "GPIO25", ["tube_D7"]),
        Pin(23, "GPIO11", ["tube_D3"]),
        Pin(24, "GPIO8", ["tube_D0"]),
        Pin(25, "GND", ["GND"]),
        Pin(26, "GPIO7", ["tube_PHI0"]),
    ],
)

myelin_kicad_pcb.dump_netlist("cpu_socket_minispartan_daughterboard.net")
Esempio n. 8
0
        Pin(31, "nWE", ["elk_RnW"]),
        Pin(32, "VDD", ["5V"]),
    ],
)
flash_cap = myelin_kicad_pcb.C0805("100n", "5V", "GND", ref="C2")

quad_nand = myelin_kicad_pcb.Component(
    footprint="Housings_SOIC:SOIC-14_3.9x8.7mm_Pitch1.27mm",
    identifier="U1",
    value="74HCT00",
    pins=[
        Pin(1, "1A", ["elk_nOE"]),
        Pin(2, "1B", ["elk_nOE"]),
        Pin(3, "1Y", ["not_elk_nOE"]),
        Pin(4, "2A", ["not_elk_nOE"]),
        Pin(5, "2B", ["elk_PHI0"]),
        Pin(6, "2Y", ["flash_nCE"]),
        Pin(7, "GND", ["GND"]),
        Pin(8, "3Y"),  # unused gate
        Pin(9, "3A", ["GND"]),  # unused gate
        Pin(10, "3B", ["GND"]),  # unused gate
        Pin(11, "4Y", ["flash_nOE"]),
        Pin(12, "4A", ["elk_RnW"]),
        Pin(13, "4B", ["elk_RnW"]),
        Pin(14, "VCC", ["5V"]),
    ],
)
nand_cap = myelin_kicad_pcb.C0805("100n", "5V", "GND", ref="C1")

myelin_kicad_pcb.dump_netlist("flash_cartridge.net")
        Pin(11, "D8_A8_PB4", ["mcu_GPIO_D8_nSD_SEL"]),  # /SD_SEL
        Pin(12, "D9_A9_nOC4B_PB5", ["mcu_SS"]),  # /SS
        Pin(
            13,
            "D10_A10_OC4B_PB6",
        ),
        Pin(14, "D16_MOSI_PB2", ["mcu_MOSI_TDI"]),  # SPI (shared with JTAG)
        Pin(15, "D14_MISO_PB3", ["mcu_MISO"]),  # SPI
        Pin(16, "D15_SCK_PB1", ["mcu_SCK_TMS"]),  # SPI (shared with JTAG)
        Pin(17, "D18_A0_PF7", ["mcu_GPIO_D18_TDO"]),  # JTAG TDO
        Pin(18, "D19_A1_PF6", ["mcu_SCK_TMS"]),  # JTAG (shared with SPI)
        Pin(19, "D20_A2_PF5", ["mcu_GPIO_D20_TCK"]),  # JTAG TCK
        Pin(20, "D21_A3_PF4", ["mcu_MOSI_TDI"]),  # JTAG (shared with SPI)
        Pin(21, "VCC", ["3V3"]),
        Pin(22, "RST", ["mcu_RESET"]),
        Pin(23, "GND", ["GND"]),
        Pin(24, "VRAW", ["5V"]),
    ],
)

# Ground plane stapling vias
for n in range(15):
    single_staple = myelin_kicad_pcb.Component(
        footprint="myelin-kicad:via_single",
        identifier="staple_single%d" % (n + 1),
        value="",
        pins=[Pin(1, "GND", ["GND"])],
    )

myelin_kicad_pcb.dump_netlist("atsamd11_pro_micro.net")
    ],
)

# Jumper to connect 5v power from the Electron to the Pi Zero.
# Plus 1 cartridges aren't meant to draw more than 50 mA, and the Pi Zero
# typically needs ~150 mA, so this should probably be left unconnected,
# with a separate PSU supplying the Pi.
power_jumper = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm",
    identifier="POWER1",
    value="Elk-Pi 5V",
    pins=[
        Pin(1, "A", ["5V"]),
        Pin(2, "B", ["elk_5V"]),
    ],
)

# Just in case we want to connect up an ext PSU for CPLD programming
ext_power = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm",
    identifier="EXTPWR",
    value="ext pwr",
    pins=[
        Pin(1, "A", ["GND"]),
        Pin(2, "B", ["3V3"]),
        Pin(3, "C", ["5V"]),
    ],
)

myelin_kicad_pcb.dump_netlist("elk_pi_tube_direct.net")
        Pin("29", "", ["ext_A4"]),
        Pin("30", "", ["ext_A5"]),
        Pin("31", "", ["ext_A6"]),
        Pin("32", "", ["ext_A7"]),
        Pin("33", "", ["ext_A8"]),
        Pin("34", "", ["ext_A9"]),
        Pin("35", "", ["ext_A10"]),
        Pin("36", "", ["ext_A11"]),
        Pin("37", "", ["ext_A12"]),
        Pin("38", "", ["ext_A13"]),
        Pin("39", "", ["ext_A14"]),
        Pin("40", "", ["ext_A15"]),
    ],
)
gp1_pullup = myelin_kicad_pcb.R0805("10k", "ext_GP1", "3V3", ref="R4")
gp3_pullup = myelin_kicad_pcb.R0805("10k", "ext_GP3", "3V3", ref="R5")
gp4_pullup = myelin_kicad_pcb.R0805("10k", "ext_GP4", "3V3", ref="R6")

staples = [
    myelin_kicad_pcb.Component(
        footprint="myelin-kicad:via_single",
        identifier="staple_single%d" % (n + 1),
        value="",
        pins=[Pin(1, "GND", ["GND"])],
    ) for n in range(33)
]

myelin_kicad_pcb.dump_netlist("cpu_socket_expansion.net")
myelin_kicad_pcb.dump_bom("bill_of_materials.txt",
                          "readable_bill_of_materials.txt")
Esempio n. 12
0
        Pin("27", "A14", ["bbc_A14"]),
        Pin("28", "VCC", ["5V"]),
    ],
)

staples = [
    myelin_kicad_pcb.Component(
        footprint="myelin-kicad:via_single",
        identifier="staple_single%d" % (n+1),
        value="",
        pins=[Pin(1, "GND", ["GND"])],
    )
    for n in range(10)
]

myelin_kicad_pcb.dump_netlist("master_updateable_megarom.net")
myelin_kicad_pcb.dump_bom("bill_of_materials.txt",
                          "readable_bill_of_materials.txt")


# Keeping these around just in case I do decide to switch over to using a
# PSoC4 chip (CY8C4245) instead of the 64-pin XC9572XL one day!
# -----------------------------------------------------------------------

# # unidirectional buffer for address lines, cpu -> expansion connector
# addr_buf_lo = myelin_kicad_pcb.Component(
#     footprint="Housings_SSOP:SSOP-20_4.4x6.5mm_Pitch0.65mm",
#     identifier="ABUFL",
#     value="74LVC245",
#     pins=[
#         Pin( 1, "A->B", ["abuf_ext_to_cpu"]),
Esempio n. 13
0
        Pin(1, "RnW", ["RnW"]),
        Pin(2, "WnR", ["nRnW"]),
        Pin(3, "BANK2", ["A14"]),
        Pin(4, "BANK3", ["A15"]),
    ],
)

ext_power = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm",
    identifier="EXTPWR",
    value="ext pwr",
    desc="1x2 0.1 inch male header",
    pins=[
        Pin(1, "GND", ["GND"]),
        Pin(2, "5V", ["5V"]),
    ],
)

staples = [
    myelin_kicad_pcb.Component(
        footprint="myelin-kicad:via_single",
        identifier="staple_single%d" % (n + 1),
        value="",
        pins=[Pin(1, "GND", ["GND"])],
    ) for n in range(0)
]

myelin_kicad_pcb.dump_netlist("bbc_128kb_sram.net")
myelin_kicad_pcb.dump_bom("bill_of_materials.txt",
                          "readable_bill_of_materials.txt")
power_header = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm",
    identifier="PWR",
    value="reset",
    pins=[
        Pin(1, "", ["3V3"]),
        Pin(2, "", ["5V"]),
    ],
)

reset_header = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm",
    identifier="RST",
    value="reset",
    pins=[
        Pin(1, "", ["GND"]),
        Pin(2, "", ["mcu_RESET"]),
    ],
)

for n in range(20):
    single_staple = myelin_kicad_pcb.Component(
        footprint="myelin-kicad:via_single",
        identifier="staple_single%d" % (n + 1),
        value="",
        pins=[Pin(1, "GND", ["GND"])],
    )

myelin_kicad_pcb.dump_netlist("atsamd21_usb.net")
        ],
    )
    return myelin_kicad_pcb.Component(
        footprint="myelin-kicad:cherry_mx_pcb_mount",
        identifier=ref,
        value="keyswitch",
        pins=[
            Pin(1, "1", a_net),
            Pin(2, "2", d_net),
        ],
    )

cherry_with_diode("x", "y")

ext = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm",
    identifier="EXT",
    value="ext",
    pins=[
        Pin(1, "5V", ["5V"]),
        Pin(2, "X", ["x"]),
        Pin(3, "Y", ["x_y_diode"]),
        Pin(4, "GND", ["y"]),
    ],
)

myelin_kicad_pcb.R0805("10k", "x", "5V")


myelin_kicad_pcb.dump_netlist("cherry_mx.net")
Esempio n. 16
0
        Pin(3, "", "cpu_SYNC"),
        Pin(4, "", "cpu_nNMI"),
        Pin(5, "", "analyzer_PD2_READY"),
        Pin(6, "", "elk_READY_master_RnW"),
        Pin(7, "", "tube_RnW"),
        Pin(8, "", "analyzer_PD0_RnW"),
    ],
)

# Just in case we want to connect up an ext PSU for CPLD programming
ext_power = myelin_kicad_pcb.Component(
    footprint="Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm",
    identifier="EXTPWR",
    value="ext pwr",
    pins=[
        Pin(1, "A", ["GND"]),
        Pin(2, "B", ["3V3"]),
        Pin(3, "C", ["5V"]),
    ],
)

for n in range(32):
    single_staple = myelin_kicad_pcb.Component(
        footprint="myelin-kicad:via_single",
        identifier="staple_single%d" % (n + 1),
        value="",
        pins=[Pin(1, "GND", ["GND"])],
    )

myelin_kicad_pcb.dump_netlist("fx2_tube_cartridge_adapter.net")
Esempio n. 17
0
    identifier="JTAG",
    value="jtag",
    pins=[
        Pin(1, "TCK", ["cpld_TCK"]),  # top left
        Pin(2, "GND", ["GND"]),  # top right
        Pin(3, "TDO", ["cpld_TDO"]),
        Pin(4, "3V3", ["3V3"]),
        Pin(5, "TMS", ["cpld_TMS"]),
        Pin(6, "NC"),
        Pin(7, "NC"),
        Pin(8, "NC"),
        Pin(9, "TDI", ["cpld_TDI"]),
        Pin(10, "GND", ["GND"]),
    ],
)

regulator = myelin_kicad_pcb.Component(
    footprint="TO_SOT_Packages_SMD:SOT89-3_Housing",
    identifier="REG",
    value="MCP1700T-3302E/MB",
    pins=[
        Pin(2, "VIN", ["5V"]),
        Pin(3, "VOUT", ["3V3"]),
        Pin(1, "GND", ["GND"]),
    ],
)
reg_in_cap = myelin_kicad_pcb.C0805("1u", "5V", "GND", ref="C4")
reg_out_cap = myelin_kicad_pcb.C0805("1u", "3V3", "GND", ref="C5")

myelin_kicad_pcb.dump_netlist("minus_one.net")