Difference between revisions of "EP2C5-DB"
Jump to navigation
Jump to search
Blwikiadmin (talk | contribs) |
Blwikiadmin (talk | contribs) |
||
(38 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
<video type="youtube">7O0njivn-Po</video> | <video type="youtube">7O0njivn-Po</video> | ||
− | == EP2C5-DB FPGA card == | + | == EP2C5-DB-TH FPGA card == |
[[File:P1743-720PX.jpg]] | [[File:P1743-720PX.jpg]] | ||
Line 9: | Line 9: | ||
I love [http://searle.x10host.com/Multicomp/index.html Grant Searle's Multicomp project]. It lets you easily create 6502, Z80, 6809 Retrocomputers of the late 1970s era. This card provides all of the connections needed. | I love [http://searle.x10host.com/Multicomp/index.html Grant Searle's Multicomp project]. It lets you easily create 6502, Z80, 6809 Retrocomputers of the late 1970s era. This card provides all of the connections needed. | ||
− | Grant's original design used an EP2 and that's exactly what this cards USES. Note that's not compatible with the latest version Altera/Intel Quartus but you can download older versions like 13.1 | + | Grant's original design used an EP2 and that's exactly what this cards USES. Note that's not compatible with the latest version of Altera/Intel Quartus but you can download older Quartus II versions like 13.1 SP1. Just make sure it supports the Cyclone II family of FPGAs. |
+ | |||
+ | === Other (Newer, Bigger) Versions of this card === | ||
+ | |||
+ | We also have two EP4 versions of this card for sale on Tindie (bare boards, you populate). | ||
+ | |||
+ | * [https://www.tindie.com/products/land_boards/z80-6502-6809-fpga-multicomp-pcb-retro-ep4/ EP4CE6 card, mounts WaveShare board] | ||
+ | * [https://www.tindie.com/products/land_boards/retrocomputer-fpga-card-pcb-only/ EP4CE15 card, mounts QMTECH boards] | ||
== Features == | == Features == | ||
Line 25: | Line 32: | ||
* Connector for serial ports | * Connector for serial ports | ||
** Can attach inexpensive FTDI USB to serial converter | ** Can attach inexpensive FTDI USB to serial converter | ||
− | ** Supports hardware handshake for high speed serial | + | *** Also, [http://land-boards.com/blwiki/index.php?title=FTDI-49MM Land Boards FTDI-49MM] |
− | * SD Card | + | ** Supports hardware handshake (out) for high speed serial |
+ | * 2x 8-bit ports with Power/Ground | ||
+ | * SD Card (Full size, some builds support SDHC cards) | ||
* DC power jack (on FPGA card) | * DC power jack (on FPGA card) | ||
Line 36: | Line 45: | ||
== Stackup with FTDI Card == | == Stackup with FTDI Card == | ||
+ | |||
+ | * Top to bottom of stackup | ||
+ | # EP2C5-DB (this card) | ||
+ | # [[Cyclone II EP2C5 Mini Dev Board]] | ||
+ | # [[FTDI-49MM]] | ||
+ | # [[CARRIER95TO49MM|CARRIER 95mm TO 49MM]] | ||
[[File:P1752-CROPPED-720PX.jpg]] | [[File:P1752-CROPPED-720PX.jpg]] | ||
− | * | + | === Hardware === |
− | + | ||
− | + | * 4-40 screws with nuts as spacers between [[CARRIER95TO49MM|CARRIER 95mm TO 49MM]] and [[FTDI-49MM]] | |
− | + | * (4) 1.25" tall, 6-32 M-F Standoffs [https://www.mouser.com/ProductDetail/Fascomp/FC4546-632-A?qs=T%2B5DAjFZ5JP20KmtIj3ECQ%3D%3D FC4546-632-A] connect [[CARRIER95TO49MM]] to EP2C5-DB | |
− | + | * (4) 1/4" tall, 6-32 M-F Standoffs [https://www.mouser.com/ProductDetail/728-FC4536-632-A FC4536-632-A] as spacer below [[CARRIER95TO49MM]] board | |
== VGA - Ideal Drive 2:2:2 Case == | == VGA - Ideal Drive 2:2:2 Case == | ||
Line 68: | Line 83: | ||
=== LEDs on EP2C5 Board === | === LEDs on EP2C5 Board === | ||
− | * D2 is on | + | * D2 is on PIN_3 |
* D4 is on PIN_7 | * D4 is on PIN_7 | ||
* D5 is on PIN_9 | * D5 is on PIN_9 | ||
Line 89: | Line 104: | ||
=== J5 - Serial Ports 1/2 === | === J5 - Serial Ports 1/2 === | ||
+ | * Set jumper on FTDI module to 3.3V | ||
* Connects to FTDI Module | * Connects to FTDI Module | ||
Line 99: | Line 115: | ||
==== FTDI Module ==== | ==== FTDI Module ==== | ||
+ | |||
+ | * Set jumper on FTDI module to 3.3V | ||
[[File:FTDI_rot.jpg]] | [[File:FTDI_rot.jpg]] | ||
Line 104: | Line 122: | ||
==== FTDI Wiring ==== | ==== FTDI Wiring ==== | ||
− | ** J5-1 (marked RTS on PCB) to FTDI CTS pin | + | * Set jumper on FTDI module to 3.3V |
− | + | * J5-1 (marked RTS on PCB) to FTDI CTS pin | |
− | + | * J5-3 (marked RX on PCB) to FTDI TX pin | |
− | + | * J5-5 (marked TX on PCB) to FTDI RX pin | |
+ | * J5-7 (marked GND on PCB) to FTDI GND pin | ||
[[File:EP2C5-DB_FTDI_Wiring.PNG]] | [[File:EP2C5-DB_FTDI_Wiring.PNG]] | ||
Line 146: | Line 165: | ||
== Schematics == | == Schematics == | ||
+ | |||
+ | === SMT Version === | ||
* [http://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X5.pdf Rev X5 schematic] | * [http://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X5.pdf Rev X5 schematic] | ||
* [http://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X6.pdf Rev X6 schematic] | * [http://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X6.pdf Rev X6 schematic] | ||
− | == | + | === Through Hole Version === |
− | * [ | + | * [http://land-boards.com/EP2C5-DB-TH/EP2C5-DB-TH_Rev1.pdf Rev 1 schematic] |
− | == Programming the Flash | + | == Retro-Computer Builds == |
+ | |||
+ | [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5 Github repository for Multicomp builds] | ||
+ | |||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6502_VGA_PS2_ExtRAM M6502 CPU, OSI BASIC-in-ROM, VGA, PS2, 56KB External RAM] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/UK101-GS-Original UK101, Grant Searle's Original, CEGMON and BASIC-in-ROM] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/UK101_4KRAM UK101, 4K SRAM, CEGMON and BASIC-in-ROM] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/uk101_NTSC-PS2-ExtRAM UK101, NTSC, PS2, Ext SRAM, CEGMON and BASIC-in-ROM] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/uk101_VGA-PS2-ExtRAM-115200Serial UK101, VGA, PS2, External SRAM, 115200 baud Serial, CEGMON and BASIC-in-ROM] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6809_56KRAM_VGA M6809, 56K SRAM, VGA] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-128KRAM Z80, CP/M 2, VGA, PS2, 128K SRAM] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-ExtRAM Z80, CP/M 2, VGA, PS2, 128K SRAM] | ||
+ | |||
+ | === Multicomp Extensions === | ||
+ | |||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG M6800, MIKBUG ROM] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM M6800, MIKBUG ROM, External RAM] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM_MIKBUG_at_F000 M6800, MIKBUG ROM at 0xF000 base, External RAM] | ||
+ | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_Serial M6800, MIKBUG ROM, Serial port] | ||
+ | * [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_Book(Almy)/PDP8_VDU_EP2CE5 PDP-8 4KW, Serial, VGA] | ||
+ | |||
+ | == Programming the Flash EPROM Memory == | ||
+ | |||
+ | [[FILE:EP2CE_P428-720PX.jpg]] | ||
=== Permanent (.pof file) === | === Permanent (.pof file) === | ||
+ | |||
+ | * AS - Upload ,pof file to EPROM over AS | ||
+ | ** Flash EPROM = EPCS4 | ||
+ | ** Remains after power cycling | ||
[[File:Program-permanent-720px.png]] | [[File:Program-permanent-720px.png]] | ||
=== Temporary (.sof file) === | === Temporary (.sof file) === | ||
+ | |||
+ | * JTAG - Upload temporary .sof program over JTAG | ||
+ | ** Does not remain after power cycling | ||
[[File:Program-temporarily-720px.png]] | [[File:Program-temporarily-720px.png]] | ||
Line 172: | Line 223: | ||
# PS/2 | # PS/2 | ||
set_location_assignment PIN_87 -to ps2Data | set_location_assignment PIN_87 -to ps2Data | ||
+ | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Data | ||
set_location_assignment PIN_86 -to ps2Clk | set_location_assignment PIN_86 -to ps2Clk | ||
+ | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Clk | ||
# ACIA (Serial) | # ACIA (Serial) | ||
set_location_assignment PIN_60 -to serSelect | set_location_assignment PIN_60 -to serSelect | ||
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to serSelect | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to serSelect | ||
− | set_location_assignment PIN_104 -to | + | # Serial |
− | set_location_assignment PIN_101 -to | + | set_location_assignment PIN_104 -to o_rts1 |
− | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to | + | set_location_assignment PIN_101 -to i_rxd1 |
− | set_location_assignment PIN_103 -to | + | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_rxd1 |
+ | set_location_assignment PIN_103 -to o_txd1 | ||
# External SRAM | # External SRAM | ||
set_location_assignment PIN_4 -to n_sRamWE | set_location_assignment PIN_4 -to n_sRamWE | ||
Line 228: | Line 282: | ||
set_location_assignment PIN_97 -to sdCS | set_location_assignment PIN_97 -to sdCS | ||
set_location_assignment PIN_3 -to driveLED | set_location_assignment PIN_3 -to driveLED | ||
− | |||
− | |||
# J6 IO | # J6 IO | ||
set_location_assignment PIN_25 -to J6IO8[0] | set_location_assignment PIN_25 -to J6IO8[0] | ||
Line 252: | Line 304: | ||
== EP2C5-DB Assembly Sheet == | == EP2C5-DB Assembly Sheet == | ||
− | * [[EP2C5-DB Rev X6 Assembly Sheet]] | + | * [[EP2C5-DB Rev X6 Assembly Sheet]] - SMT board version |
− | * [[EP2C5-DB-TH Rev 1 Assembly Sheet]] | + | * [[EP2C5-DB-TH Rev 1 Assembly Sheet]] - Through-hole board version |
Latest revision as of 09:57, 17 February 2022
Contents
EP2C5-DB-TH FPGA card
I love Grant Searle's Multicomp project. It lets you easily create 6502, Z80, 6809 Retrocomputers of the late 1970s era. This card provides all of the connections needed.
Grant's original design used an EP2 and that's exactly what this cards USES. Note that's not compatible with the latest version of Altera/Intel Quartus but you can download older Quartus II versions like 13.1 SP1. Just make sure it supports the Cyclone II family of FPGAs.
Other (Newer, Bigger) Versions of this card
We also have two EP4 versions of this card for sale on Tindie (bare boards, you populate).
Features
- Full MultiComp Support of classic 8-bit Retrocomputers
- Mounts Cyclone II EP2C5 Mini Dev Board
- EP2C5T144C8N FPGA Card - Ebay listing
- 6 bit video on VGA (2:2:2 R:G:B)
- 128KB of SRAM for banked use in CP/M
- PS/2 Keyboard Mini-DIN connector
- Connector for serial ports
- Can attach inexpensive FTDI USB to serial converter
- Also, Land Boards FTDI-49MM
- Supports hardware handshake (out) for high speed serial
- Can attach inexpensive FTDI USB to serial converter
- 2x 8-bit ports with Power/Ground
- SD Card (Full size, some builds support SDHC cards)
- DC power jack (on FPGA card)
EP2 Resources
- EP2C5 has 26 of 512x9 SRAM blocks
Stackup with FTDI Card
- Top to bottom of stackup
- EP2C5-DB (this card)
- Cyclone II EP2C5 Mini Dev Board
- FTDI-49MM
- CARRIER 95mm TO 49MM
Hardware
- 4-40 screws with nuts as spacers between CARRIER 95mm TO 49MM and FTDI-49MM
- (4) 1.25" tall, 6-32 M-F Standoffs FC4546-632-A connect CARRIER95TO49MM to EP2C5-DB
- (4) 1/4" tall, 6-32 M-F Standoffs FC4536-632-A as spacer below CARRIER95TO49MM board
VGA - Ideal Drive 2:2:2 Case
- FPGA has a 3.3V driver which can drive 8 mA
- Ideal case drive current
- 0.7V into 75 Ohms = 9.33 mA
- R-2R values
- Ideal resistor values are 417.9 ohms and 835.7 ohms
- Standard value 1% resistors
- 1% standard values are 422 (Mouser), 845 (Mouser) Ohms
- Get closest values
- 0V, 0.228V, 0.460V, 0.693V
- Voltage steps are:
- Current steps are:
LEDs
LEDs on EP2C5 Board
- D2 is on PIN_3
- D4 is on PIN_7
- D5 is on PIN_9
LED on EP2C5-DB Cards
- LED is on FPGA pin 53
Connectors
J1 - VGA
J4 - SD Card
J5 - Serial Ports 1/2
- Set jumper on FTDI module to 3.3V
- Connects to FTDI Module
- RTS
- RXD
- TXD
- GND
FTDI Module
- Set jumper on FTDI module to 3.3V
FTDI Wiring
- Set jumper on FTDI module to 3.3V
- J5-1 (marked RTS on PCB) to FTDI CTS pin
- J5-3 (marked RX on PCB) to FTDI TX pin
- J5-5 (marked TX on PCB) to FTDI RX pin
- J5-7 (marked GND on PCB) to FTDI GND pin
J6 - 8-bit I/O connector
- FPGA Pins
- 3.3V
- 3.3V
- 25
- 31
- 41
- 40
- 43
- 42
- 45
- 44
- GND
- GND
J8 - 8-bit I/O connector
- FPGA Pins
- 3.3V
- 3.3V
- 48
- 47
- 52
- 51
- 58
- 55
- 76
- 69
- GND
- GND
Schematics
SMT Version
Through Hole Version
Retro-Computer Builds
Github repository for Multicomp builds
- M6502 CPU, OSI BASIC-in-ROM, VGA, PS2, 56KB External RAM
- UK101, Grant Searle's Original, CEGMON and BASIC-in-ROM
- UK101, 4K SRAM, CEGMON and BASIC-in-ROM
- UK101, NTSC, PS2, Ext SRAM, CEGMON and BASIC-in-ROM
- UK101, VGA, PS2, External SRAM, 115200 baud Serial, CEGMON and BASIC-in-ROM
- M6809, 56K SRAM, VGA
- Z80, CP/M 2, VGA, PS2, 128K SRAM
- Z80, CP/M 2, VGA, PS2, 128K SRAM
Multicomp Extensions
- M6800, MIKBUG ROM
- M6800, MIKBUG ROM, External RAM
- M6800, MIKBUG ROM at 0xF000 base, External RAM
- M6800, MIKBUG ROM, Serial port
- PDP-8 4KW, Serial, VGA
Programming the Flash EPROM Memory
Permanent (.pof file)
- AS - Upload ,pof file to EPROM over AS
- Flash EPROM = EPCS4
- Remains after power cycling
Temporary (.sof file)
- JTAG - Upload temporary .sof program over JTAG
- Does not remain after power cycling
Pin List (Multicomp)
# Clocks and reset set_location_assignment PIN_17 -to clk set_location_assignment PIN_144 -to n_reset set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_reset # PS/2 set_location_assignment PIN_87 -to ps2Data set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Data set_location_assignment PIN_86 -to ps2Clk set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Clk # ACIA (Serial) set_location_assignment PIN_60 -to serSelect set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to serSelect # Serial set_location_assignment PIN_104 -to o_rts1 set_location_assignment PIN_101 -to i_rxd1 set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_rxd1 set_location_assignment PIN_103 -to o_txd1 # External SRAM set_location_assignment PIN_4 -to n_sRamWE set_location_assignment PIN_126 -to n_sRamCS set_location_assignment PIN_134 -to n_sRamOE set_location_assignment PIN_32 -to sramAddress[16] set_location_assignment PIN_8 -to sramAddress[15] set_location_assignment PIN_30 -to sramAddress[14] set_location_assignment PIN_24 -to sramAddress[13] set_location_assignment PIN_28 -to sramAddress[12] set_location_assignment PIN_136 -to sramAddress[11] set_location_assignment PIN_132 -to sramAddress[10] set_location_assignment PIN_139 -to sramAddress[9] set_location_assignment PIN_142 -to sramAddress[8] set_location_assignment PIN_143 -to sramAddress[7] set_location_assignment PIN_141 -to sramAddress[6] set_location_assignment PIN_137 -to sramAddress[5] set_location_assignment PIN_135 -to sramAddress[4] set_location_assignment PIN_133 -to sramAddress[3] set_location_assignment PIN_129 -to sramAddress[2] set_location_assignment PIN_125 -to sramAddress[1] set_location_assignment PIN_121 -to sramAddress[0] set_location_assignment PIN_122 -to sramData[7] set_location_assignment PIN_120 -to sramData[6] set_location_assignment PIN_118 -to sramData[5] set_location_assignment PIN_114 -to sramData[4] set_location_assignment PIN_112 -to sramData[3] set_location_assignment PIN_113 -to sramData[2] set_location_assignment PIN_115 -to sramData[1] set_location_assignment PIN_119 -to sramData[0] # Composite Video set_location_assignment PIN_75 -to video set_location_assignment PIN_74 -to videoSync # VGA set_location_assignment PIN_64 -to videoB0 set_location_assignment PIN_63 -to videoB1 set_location_assignment PIN_67 -to videoG0 set_location_assignment PIN_65 -to videoG1 set_location_assignment PIN_70 -to videoR0 set_location_assignment PIN_69 -to videoR1 set_location_assignment PIN_71 -to hSync set_location_assignment PIN_72 -to vSync # SD Card set_location_assignment PIN_92 -to sdMISO set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to sdMISO set_location_assignment PIN_94 -to sdSCLK set_location_assignment PIN_93 -to sdMOSI set_location_assignment PIN_97 -to sdCS set_location_assignment PIN_3 -to driveLED # J6 IO set_location_assignment PIN_25 -to J6IO8[0] set_location_assignment PIN_31 -to J6IO8[1] set_location_assignment PIN_41 -to J6IO8[2] set_location_assignment PIN_40 -to J6IO8[3] set_location_assignment PIN_43 -to J6IO8[4] set_location_assignment PIN_42 -to J6IO8[5] set_location_assignment PIN_45 -to J6IO8[6] set_location_assignment PIN_44 -to J6IO8[7] # J8 I/O set_location_assignment PIN_48 -to J8IO8[0] set_location_assignment PIN_47 -to J8IO8[1] set_location_assignment PIN_52 -to J8IO8[2] set_location_assignment PIN_51 -to J8IO8[3] set_location_assignment PIN_58 -to J8IO8[4] set_location_assignment PIN_55 -to J8IO8[5] set_location_assignment PIN_76 -to J8IO8[6] # set_location_assignment PIN_60 -to J8IO8[7]
EP2C5-DB Assembly Sheet
- EP2C5-DB Rev X6 Assembly Sheet - SMT board version
- EP2C5-DB-TH Rev 1 Assembly Sheet - Through-hole board version