Introduction
This project is a Z80-based 8-bit home computer inspired by 1980's computer era. The goal is to recreate the look and feel of computers of that era using mostly modern components that are currently in production. The second goal is to make it as much DIY-friendly as possible — only through-hole components, single 5V power bus, 4-layer board with 2 inner power layers and 2 outer signal layers. Most of the ICs are in DIP packages, except two CPLD chips and dual port VRAM that are in PLCC packages mounted using trough-hole PLCC sockets. No sophisticated soldering and debugging skills needed to assemble, test, debug, and troubleshoot this computer.
Specifications
- Zilog Z80 CPU at 10Mhz
- 8Kb ROM with small monitor program built-in
- 8Kb dual-port static VRAM
- 48Kb static RAM
- Zero wait state RAM and ROM access
- Atmel ATF1508AS CPLD VGA video generator, 256x192 pixels, 16 colors
- Atmel ATF1504AS or ATF1502AS CPLD chipset for address and I/O mapping
- AY-3-8913 sound generator
- Zilog CTC programmable timer and interrupt controller
- Zilog SIO providing 2 serial ports at a fixed 115200 baud rate
- Zilog PIO providing 2 joystick ports with Atari-compatible pinout
- Zilog PIO servicing built-in mechanical keyboard
Hardware overview
Main and keyboard boards are the same size and have symmetrical M4 mounting holes, so can be stacked together for a comfortable operation without an enclosure. Rear connectors and switches are PCB-mounted. All main board components are mounted on the top. The keyboard has standard 61-key PC layout and Cherry MX mechanical switches, connected to main board using 16-wire ribbon cable and IDC connector. Keyboard signals are implemented as a standard 8 rows by 8 columns diode keyboard matrix. Row and column scanning is performed in the software.
The main board has a JTAG IDC connector for in-circuit programming of the chipset and video CPLD chips. Both chips are connected in daisy-chained JTAG configuration. ATDH1150USB JTAG programmer can be directly plugged in into the main board and power should be supplied to the board for it to work.
Computer is thoroughly tested. Various software and hardware tests were running for days without a single glitch. Schematics, gerbers and CAD files are available at GitHub: https://github.com/solisted/z80sbc
Bill of materials
Integrated circuits
Reference | Qty | Part Number | Package | Description |
---|---|---|---|---|
U6 | 1 | Z84C0010PEG | DIP-40 | Zilog Z80 CPU, 10Mhz, processor |
U11, U19 | 2 | Z84C2010PEG | DIP-40 | Zilog Z80 PIO, 10Mhz, parallel I/O interface |
U12 | 1 | Z84C4010PEG | DIP-40 | Zilog Z80 SIO/0, 10Mhz, serial I/O interface |
U17 | 1 | Z84C3010PEG | DIP-28 | Zilog Z80 CTC, 10Mhz, programmable timer |
U2 | 1 | ATF1502AS | PLCC-44 | Atmel CPLD, 32MC, chipset |
U18 | 1 | ATF1508AS | PLCC-84 | Atmel CPLD, 128MC, VGA video generator |
U1 | 1 | AT28C64 | DIP-28 | Atmel EEPROM, 8Kb read-only memory |
U4, U7 | 2 | IDT7164S | DIP-28 | IDT/Renesas SRAM, 8Kb memory |
U8 | 1 | IDT71256SA | DIP-28 | IDT/Renesas SRAM, 32Kb memory |
U14 | 1 | IDT7005L15JG | PLCC-68 | IDT/Renesas dual-port SRAM, 8Kb video memory |
U9 | 1 | AY-3-8913 | DIP-24 | GI/Yamaha AY-3 PSG, 3-ch sound generator |
U3, U5 | 2 | MAX232A | DIP-16 | Analog Devices RS-232, 2-ch driver |
U15, U16 | 2 | SN74AHC14N | DIP-14 | Texas Instruments 74xx, 6-ch inverter |
U10 | 1 | DS1813 | TO-92 | Analog Devices reset circuit |
U13 | 1 | LM7805CV | TO-220 | STMicroelectronics linear voltage regulator |
Clock oscillators
Reference | Qty | Part Number | Package | Description |
---|---|---|---|---|
QG1 | 1 | ECS-2100AX-3.579545MHZ | DIP-8 | ECS, 3.579545MHz, PSG clock |
QG2 | 1 | MXO45HS-3C-7M3728 | DIP-8 | CTS, 7.3728MHz, SIO clock |
QG3 | 1 | ACH-10.000MHZ-EK | DIP-8 | Abracon, 10Mhz, CPU/system clock |
QG4 | 1 | MXO45HS-3C-25M1750 | DIP-8 | CTS, 25.175MHz, VGA clock |
Connectors and switches
Reference | Qty | Part Number | Type | Function | Description |
---|---|---|---|---|---|
J5 | 1 | PRT-00119 | Barrel | Power In | SparkFun, 5.5mm |
J1, J7 | 2 | 615008143721 | RJ45 | Serial | Wurth Elektronik, Horizontal |
J3 | 1 | SJ1-3525N | Mini TRS | Audio Out | CUI Devices, 3.5mm Stereo |
M2 | 1 | 618015330923 | DB15-HD | VGA Out | Wurth Elektronik, D-Sub Female |
J2, J4 | 2 | 618009231221 | DB9 | Joystick | Wurth Elektronik, D-Sub Male |
SW1 | 1 | PN12SHNA03QE | SPDT | Power Sw | C&K Switches, Locking |
SW2 | 1 | PN11SHNA03QE | SPDT | Reset Sw | C&K Switches, Momentary |
J6 | 1 | 61201021621 | IDC 10p | JTAG | Wurth Elektronik, 2.54mm, Male |
J8 | 1 | 61201621621 | IDC 16p | Keyboard | Wurth Elektronik, 2.54mm, Male |
Tools required
- Soldering iron
- EEPROM programmer (MiniPro TL866)
- Atmel JTAG CPLD programmer (ATDH1150USB)
- Multimeter (for testing and troubleshooting)
- Oscilloscope (for testing and troubleshooting)
Project demo
Please, feel free to leave comments, suggestions and ask questions under this video. And of course, subscribe to my channel.