Skip to content

Latest commit

 

History

History
217 lines (184 loc) · 14.9 KB

README.md

File metadata and controls

217 lines (184 loc) · 14.9 KB

Easy Z80

An easy to build Zilog Z80 based single board computer

Table of Content

Introduction

My son Max asked me what does it take to build a computer, and whether he can design and build one himself. This project is our attempt to design and build a simple, easy to understand, yet capable single board computer. It reuses the same memory paging mechanism I've implemented in Zeta SBC V2. It uses Zilog Z80 SIO/O and Z80 CTC peripheral ICs and implements daisy chain mode 2 interrupt configuration.

Easy Z80 PCB Rendering

Specifications

  • Processor: Zilog Z80 CPU (CMOS version - Z84C00)
  • Memory: 512 KiB battery-backed SRAM, 512 KiB Flash ROM
  • I/O:
    • Zilog Z80 CTC - Programmable timer used for periodic interrupts and (optionally) for generating UART clock
    • Zilog Z80 SIO - Dual channel serial interface, used for console and for connecting to other peripheral devices
  • Bus: RC2014 compatible
  • Microprocessor Supervisor:
    • Reset generation
    • SRAM battery backup
    • Power failure NMI
    • Watchdog (optional)

Hardware Documentation

For the version 1.0 schematic, PCB layout, and bill of materials please refer to tag v1.0

Schematic and PCB Layout

Schematic - Version 1.1

PCB Layout - Version 1.1

Connectors and Jumpers

J1 - Power

Connect regulated +5V power supply to this connector.

Pin Signal Name Description
Tip (the inner contact) VCC Positive terminal - +5V
Barrel / sleeve GND Negative terminal - ground

J2, J3 - Serial Channel A and Serial Channel B

Pin Signal Name Description
1 DCD Carrier Detect; Not used - Not connected on the SBC
2 RXA, RXB Receive Data; Input to SBC
3 TXA, TXB Transmit Data; Output from SBC
4 DTR Data Terminal Ready; Not used - Not connected on the SBC
5 GND Connected to the SBC GND signal
6 DSR Data Set Ready; Not used - Not connected on the SBC
7 RTSA, RTSB Request to Send; Output from SBC
8 CTSA, CTSB Clear to Send; Input to SBC
9 RI Ring Indicator; Not used - Not connected on the SBC
Shield DE9 Shield Connected to the SBC GND signal

J4 - NVRAM Battery

Connect 3V battery for SRAM backup to this connector.

Important: If the SRAM battery backup is not desired, short J4 with a jumper. Do not leave this connector open.

Pin Signal Name Description
1 VBAT Positive terminal - +3V
2 GND Negative terminal - ground

J5, J6, J7 - RC2014 Bus

Pin Signal Name Description Pin Signal Name Description
J5-1 A15 Address A15; Output
J5-2 A14 Address A14; Output
J5-3 A13 Address A13; Output
J5-4 A12 Address A12; Output
J5-5 A11 Address A11; Output
J5-6 A10 Address A10; Output
J5-7 A9 Address A9; Output
J5-8 A8 Address A8; Output
J5-9 A7 Address A7; Output
J5-10 A6 Address A6; Output
J5-11 A5 Address A5; Output
J5-12 A4 Address A4; Output
J5-13 A3 Address A3; Output
J5-14 A2 Address A2; Output
J5-15 A1 Address A1; Output
J5-16 A0 Address A0; Output
J5-17 GND Ground J6-1 GND Ground
J5-18 VCC Power Supply - +5V J6-2 VCC Power Supply - +5V
J5-19 /M1 Machine Cycle One; Output J6-3 /RFSH DRAM refresh; Output
J5-20 /RESET Reset; Output J6-4 N/C Not connected
J5-21 CPU_CLK CPU Clock; Output J6-5 UART_CLK UART Clock (1.8432 MHz); Output
J5-22 /INT Interrupt; Input J6-6 /BUSACK DMA Bus Acknowledge; Output
J5-23 /MREQ Memory Request; Output J6-7 /HALT Halt; Output
J5-24 /WR Write Request; Output J6-8 /BUSREQ DMA Bus Request; Input
J5-25 /RD Read Request; Output J6-9 /WAIT Wait; Input
J5-26 /IORQ Input/Output Request; Output J6-10 /NMI Non-maskable Interrupt; Input
J5-27 D0 Data D0; Input/Output
J5-28 D1 Data D1; Input/Output
J5-29 D2 Data D2; Input/Output
J5-30 D3 Data D3; Input/Output
J5-31 D4 Data D4; Input/Output
J5-32 D5 Data D5; Input/Output
J5-33 D6 Data D6; Input/Output
J5-34 D7 Data D7; Input/Output
J5-35 TXDA Channel A, Transmit Data; Output J7-1 TXDB Channel B, Transmit Data; Output
J5-36 RXDA Channel A, Receive Data; Input J7-2 RXDB Channel B, Receive Data; Input
J5-37 USR1 User Pin 1, Not connected J7-3 USR5 User Pin 5, Not connected
J5-38 IEI Interrupt Enable Input J7-4 USR6 User Pin 6, Not connected
J5-39 IEO Interrupt Enable Output J7-5 USR7 User Pin 7, Not connected

JP1 - Serial Channel A Clock Select

Position Description
1-2 (default) 1.8432 MHz (115200 bps if using x16 mode)
2-3 Programmable using CTC channel 0

JP2 - Serial Channel B Clock Select

Position Description
1-2 (default) 1.8432 MHz (115200 bps if using x16 mode)
2-3 Programmable using CTC channel 1

Bill of Materials

Version 1.1

Easy Z80 project on Mouser.com - View and order all components except of the PCB.

Easy Z80 project on OSH Park - View and order the PCB.

Component type Reference Description Quantity Possible sources and notes
PCB Easy Z80 PCB - Version 1.1 1 Refer to the RetroBrew Computers Board Inventory page for ordering information, or order from a PCB manufacturer of your choice using provided Gerber or KiCad files
Integrated Circuit U1 Z80 CPU, CMOS, 40 pin DIP - Z84C00xxPEG 1 Mouser 692-Z84C0010PEG
Integrated Circuit U2 Z80 CTC, CMOS, 28 pin DIP - Z84C30xxPEG 1 Mouser 692-Z84C3010PEG
Integrated Circuit U3 Z80 SIO/0, CMOS, 40 pin DIP - Z84C40xxPEG 1 Mouser 692-Z84C4010PEG
Integrated Circuit U4 512 KiB SRAM, 32 pin DIP - AS6C4008 1 Mouser 913-AS6C4008-55PCN
Integrated Circuit U5 512 KiB Flash ROM, 32 pin DIP - SST39SF040 1 Mouser 804-39SF0407CPHE
Integrated Circuit U6 Microprocessor Supervisory Circuit - MAX693 1 Mouser 584-ADM693ANZ; Possible alternatives: MAX693, LTC693, ADM691, MAX691, LTC691, ADM695, MAX695, LTC965, LTC1235
Integrated Circuit U7, U8 Dual RS-232 Driver/Receiver - MAX232A 2 Mouser 595-TRS202EIN
Integrated Circuit U9 Simple Programmable Logic Device - ATF16V8B 1 Mouser 556-AF16V8B15PU
Integrated Circuit U10, U11 4-by-4 Register File - 74HC670 2 Mouser 595-CD74HC670E
Integrated Circuit U12 Dual Flip Flop - 74HC74 1 Mouser 595-SN74HC74N
Oscillator QG1 10 MHz, CMOS oscillator, Half Can 1 Mouser 774-MXO45HS-3C-10.0
Oscillator QG2 1.8432 MHz, CMOS oscillator, Half Can 1 Mouser 774-MXO45HS-3C-1.8
LED               D1       3 mm, green LED indicator 1       Mouser 859-LTL-4231N
Tactile Button SW1 6 mm tactile button, right angle 1 Mouser 653-B3F-3152
Connector J1 DC Power Jack, 2mm 1 Mouser 806-KLDX-0202-A
Connector J2, J3 Sub-D DE9M, Right Angle, PCB mount 2 Mouser 806-K22X-E9P-N-99
Connector J4 2 Pin Header with Friction Lock 1 Mouser 571-6404562
Pin Header J5 - J7 40x2 Pin Header, 2.54 mm Pitch, Right Angle 1 Mouser 571-9-103326-0
Capacitor C1 - C14, C16 - C23 0.1 uF, MLCC, 5 mm Pitch 22 Mouser 594-K104K15X7RF53H5
Capacitor C24 47 uF, 25V, Aluminum Organic Polymer 1 Mouser 80-A750EK476M1EAAE40
Resistor Array RN1 - RN3 4.7 k, bussed, 5 pin SIP 3 Mouser 652-4605X-AP1-472LF
Resistor Array RN4 4.7 k, bussed, 9 pin SIP 1 Mouser 652-4609X-AP1-472LF
Resistor R1 470 ohm, axial 1 Mouser 603-MFR-25FRF52-470R
Resistor R2 - R4 10 kohm, 1% tolerance, axial 3 Mouser 603-MFR-25FRF5210K
Resistor R5 29.4 kohm, 1% tolerance, axial 1 Mouser 603-MFR-25FBF52-29K4
Trimmer Resistor RV1 2 kohm, through hole 1 Mouser 652-3362P-1-202LF
IC Socket U1, U3 40 pin DIP 2 Mouser 517-4840-6000-CP
IC Socket U4, U5 32 pin DIP 2 Mouser 517-4832-6000-CP
IC Socket U2 28 pin DIP 1 Mouser 517-4828-6000-CP
IC Socket U9 20 pin DIP 1 Mouser 517-4820-3000-CP
IC Socket U6 - U8, U10, U11 16 pin DIP 5 Mouser 517-4816-3000-CP
IC Socket U12 14 pin DIP 1 Mouser 517-4814-3000-CP
Oscillator Socket QG1, QG2 4 pin DIP, Half Can 2 Mouser 535-1108800

Firmware Documentation

BIOS and OS

Easy Z80 is supported by RomWBW v2.9.1 and later. RomWBW includes BIOS, CP/M-80 2.2, Z-System, and a collection of utilities. It also should be possible to run FUZIX on this board.

SPLD Fuse Map

Easy Z80 uses an ATF16V8/GAL16V8 SPLD (U9) for address decode logic. The SPLD fuse map and the SPLD source code are provided in SPLD directory of this repository.

Release Notes

Changes

  • Version 1.1
    • Add pull-up resistors on the data bus (RN4 - 4.7k) to support Z80 interrupt mode 0
    • Use 74HC series instead of 74HCT
    • Remove C15
    • Use RN reference for resistor arrays instead of RR
    • Update silkscreen:
      • Make RN1 reference and value visible
      • Update silkscreen of headers footprints, so that JP1 and JP2 don't cover the traces
      • Add project URL to the bottom silkscreen
  • Version 1.0
    • Initial version

Known Issues

  • Version 1.0
    • Top silkscreen: RR1 reference and value are not visible. It should read "RR1, 4.7k"
    • Bottom silkscreen on JP1 and JP2 covers the trace connections, so they are not easily visible
    • Bottom silkscreen: No project URL. Should be github.com/skiselev/easy_z80
    • Board will not reset when C15 is populated. Workaround: Do not populate this capacitor
    • Schematic and top silkscreen: Use 74HC series instead of 74HCT

Wishlist

  • Version 1.0
    • Add pull-ups on the data bus to support extension boards that were not designed for Z80 interrupt mode 2