easy_z80

Public

skiselev/easy-z80

Loading…

Description

Imported from GitHub: skiselev/easy_z80 · commit c236fe8 · license GPL-3.0

Description

An easy to build Zilog Z80 based single board computer

README

Easy Z80

An easy to build Zilog Z80 based single board computer

Table of Contents

Introduction

My son Max asked me what it takes to build a computer, and whether or not 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 the Zilog Z80 SIO/O, 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.

PinSignal NameDescription
Tip (the inner contact)VCCPositive terminal - +5V
Barrel / sleeveGNDNegative terminal - ground

J2, J3 - Serial Channel A and Serial Channel B

PinSignal NameDescription
1DCDCarrier Detect; Not used - Not connected on the SBC
2RXA, RXBReceive Data; Input to SBC
3TXA, TXBTransmit Data; Output from SBC
4DTRData Terminal Ready; Not used - Not connected on the SBC
5GNDConnected to the SBC GND signal
6DSRData Set Ready; Not used - Not connected on the SBC
7RTSA, RTSBRequest to Send; Output from SBC
8CTSA, CTSBClear to Send; Input to SBC
9RIRing Indicator; Not used - Not connected on the SBC
ShieldDE9 ShieldConnected 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.

PinSignal NameDescription
1VBATPositive terminal - +3V
2GNDNegative terminal - ground

J5, J6, J7 - RC2014 Bus

PinSignal NameDescriptionPinSignal NameDescription
J5-1A15Address A15; Output
J5-2A14Address A14; Output
J5-3A13Address A13; Output
J5-4A12Address A12; Output
J5-5A11Address A11; Output
J5-6A10Address A10; Output
J5-7A9Address A9; Output
J5-8A8Address A8; Output
J5-9A7Address A7; Output
J5-10A6Address A6; Output
J5-11A5Address A5; Output
J5-12A4Address A4; Output
J5-13A3Address A3; Output
J5-14A2Address A2; Output
J5-15A1Address A1; Output
J5-16A0Address A0; Output
J5-17GNDGroundJ6-1GNDGround
J5-18VCCPower Supply - +5VJ6-2VCCPower Supply - +5V
J5-19/M1Machine Cycle One; OutputJ6-3/RFSHDRAM refresh; Output
J5-20/RESETReset; OutputJ6-4N/CNot connected
J5-21CPU_CLKCPU Clock; OutputJ6-5UART_CLKUART Clock (1.8432 MHz); Output
J5-22/INTInterrupt; InputJ6-6/BUSACKDMA Bus Acknowledge; Output
J5-23/MREQMemory Request; OutputJ6-7/HALTHalt; Output
J5-24/WRWrite Request; OutputJ6-8/BUSREQDMA Bus Request; Input
J5-25/RDRead Request; OutputJ6-9/WAITWait; Input
J5-26/IORQInput/Output Request; OutputJ6-10/NMINon-maskable Interrupt; Input
J5-27D0Data D0; Input/Output
J5-28D1Data D1; Input/Output
J5-29D2Data D2; Input/Output
J5-30D3Data D3; Input/Output
J5-31D4Data D4; Input/Output
J5-32D5Data D5; Input/Output
J5-33D6Data D6; Input/Output
J5-34D7Data D7; Input/Output
J5-35TXDAChannel A, Transmit Data; OutputJ7-1TXDBChannel B, Transmit Data; Output
J5-36RXDAChannel A, Receive Data; InputJ7-2RXDBChannel B, Receive Data; Input
J5-37USR1User Pin 1, Not connectedJ7-3USR5User Pin 5, Not connected
J5-38IEIInterrupt Enable InputJ7-4USR6User Pin 6, Not connected
J5-39IEOInterrupt Enable OutputJ7-5USR7User Pin 7, Not connected

JP1 - Serial Channel A Clock Select

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

JP2 - Serial Channel B Clock Select

PositionDescription
1-2 (default)1.8432 MHz (115200 bps if using x16 mode)
2-3Programmable 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 typeReferenceDescriptionQuantityPossible sources and notes
PCBEasy Z80 PCB - Version 1.11Refer 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 CircuitU1Z80 CPU, CMOS, 40 pin DIP - Z84C00xxPEG1Mouser 692-Z84C0010PEG
Integrated CircuitU2Z80 CTC, CMOS, 28 pin DIP - Z84C30xxPEG1Mouser 692-Z84C3010PEG
Integrated CircuitU3Z80 SIO/0, CMOS, 40 pin DIP - Z84C40xxPEG1Mouser 692-Z84C4010PEG
Integrated CircuitU4512 KiB SRAM, 32 pin DIP - AS6C40081Mouser 913-AS6C4008-55PCN
Integrated CircuitU5512 KiB Flash ROM, 32 pin DIP - SST39SF0401Mouser 804-39SF0407CPHE
Integrated CircuitU6Microprocessor Supervisory Circuit - MAX6931Mouser 584-ADM693ANZ; Possible alternatives: MAX693, LTC693, ADM691, MAX691, LTC691, ADM695, MAX695, LTC965, LTC1235
Integrated CircuitU7, U8Dual RS-232 Driver/Receiver - MAX232A2Mouser 595-TRS202EIN
Integrated CircuitU9Simple Programmable Logic Device - ATF16V8B1Mouser 556-AF16V8B15PU
Integrated CircuitU10, U114-by-4 Register File - 74HC6702Mouser 595-CD74HC670E
Integrated CircuitU12Dual Flip Flop - 74HC741Mouser 595-SN74HC74N
OscillatorQG110 MHz, CMOS oscillator, Half Can1Mouser 774-MXO45HS-3C-10.0
OscillatorQG21.8432 MHz, CMOS oscillator, Half Can1Mouser 774-MXO45HS-3C-1.8
LED              D1      3 mm, green LED indicator1      Mouser 859-LTL-4231N
Tactile ButtonSW16 mm tactile button, right angle1Mouser 653-B3F-3152
ConnectorJ1DC Power Jack, 2mm1Mouser 806-KLDX-0202-A
ConnectorJ2, J3Sub-D DE9M, Right Angle, PCB mount2Mouser 806-K22X-E9P-N-99
ConnectorJ42 Pin Header with Friction Lock1Mouser 571-6404562
Pin HeaderJ5 - J740x2 Pin Header, 2.54 mm Pitch, Right Angle1Mouser 571-9-103326-0
CapacitorC1 - C14, C16 - C230.1 uF, MLCC, 5 mm Pitch22Mouser 594-K104K15X7RF53H5
CapacitorC2447 uF, 25V, Aluminum Organic Polymer1Mouser 80-A750EK476M1EAAE40
Resistor ArrayRN1 - RN34.7 k, bussed, 5 pin SIP3Mouser 652-4605X-AP1-472LF
Resistor ArrayRN44.7 k, bussed, 9 pin SIP1Mouser 652-4609X-AP1-472LF
ResistorR1470 ohm, axial1Mouser 603-MFR-25FRF52-470R
ResistorR2 - R410 kohm, 1% tolerance, axial3Mouser 603-MFR-25FRF5210K
ResistorR529.4 kohm, 1% tolerance, axial1Mouser 603-MFR-25FBF52-29K4
Trimmer ResistorRV12 kohm, through hole1Mouser 652-3362P-1-202LF
IC SocketU1, U340 pin DIP2Mouser 517-4840-6000-CP
IC SocketU4, U532 pin DIP2Mouser 517-4832-6000-CP
IC SocketU228 pin DIP1Mouser 517-4828-6000-CP
IC SocketU920 pin DIP1Mouser 517-4820-3000-CP
IC SocketU6 - U8, U10, U1116 pin DIP5Mouser 517-4816-3000-CP
IC SocketU1214 pin DIP1Mouser 517-4814-3000-CP
Oscillator SocketQG1, QG24 pin DIP, Half Can2Mouser 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
Comments

No comments yet. Be the first to ask about this board.

Askabout this board