PPIDE + RTC + PIO for the Easy Z80

The Easy Z80 is a neat little 100mm x 100mm RomWBW-compatible Z80 computer with a good set of peripherals that make it perfect for quick test builds and hacks. It includes:

  • Z80 CPU (10MHz)
  • Z80 CTC
  • Z80 SIO/0 (with dual RS-232 level COM ports)
  • 512KB ROM
  • 512KB RAM
  • Memory paging
  • SPLD for easy reconfiguration of the I/O mapping of the on-board peripherals
  • Power/Reset monitor
  • Battery-backed SRAM

Still, a few additions would make it even more desirable, so I decided to make a new board in the same form factor. This is also the first board I’ve routed, so it’s ugly but thankfully the first prototype worked! They look great stacked and my idea is to create a vertical backplane to house them in a case.

For the lack of a better name, I named the working directory of this project “Easy Z80 Essentials”. It includes:

  • PPIDE (8255-based) interface for Hard Disks (plus CF cards and SD cards through adapters).
  • DS1302 real time clock.
  • Z80 PIO for GPIO and to allow the creation of other peripherals like keyboards, for example.
  • Address decode through a SPLD, just like the Easy Z80. They are fully decoded and easily remapped.
The first prototype. Don’t mind the dangling resistor, it’s there to replace a bad solder joint I noticed after cleaning the board!

To avoid reinventing the wheel, I based this design on the work of others:

I’m thankful for all of their contributions to open source vintage hardware!

Documentation

I/O Memory Map

All of the address below are fully decoded through the SPLD. They sit at the standard locations expected by RomWBW.

PeripheralAddress
RTC0xC0
PPIDE0x20-0x23
Z80 PIO0x68-0x6B

Connection instructions

ConnectorNotes
J1Bus connector.
J2IDE connector. Connect your cable/adapter here. Be aware that, depending on your accessories, you may have to remove pin 20 from this connector before installing it.
J3Dual-in-line connector for the Z80 PIO signals. Pinout in the silkscreen.
J4Single-in-line connector for the Z80 PIO signals. Pinout in the silkscreen
J5, JP1, JP2Z80 Interrupt mode 2 connectors for the Z80 PIO.
If your backplane has pins 38 as IEI and pin 39 as IEO forming a daisy-chain, jumper JP1 and JP2. Otherwise use J2 to route IEI and IEO. Pinout in the silkscreen. Do not use both options at the same time!
J6Optional IDE activity LED cable. One is already included onboard (reference D1).
BT1Insert a 3V CR2032 battery cell. Be aware of the DS1302 trickle charge setting in RomWBW.

RomWBW Options

The relevant RomWBW build options should already be set for the EZZ80_std config. They are:

  • RTCIO
  • PPIDE*

Versions newer than 3.0.1 should also have a PIOENABLE config that, as of 2022-01-10, just detects and initializes the PIO, nothing else.

Files

PCB front, Rev1
PCB back, Rev1

Bill of Materials

For the 74xx logic ICs, families other than HCT may work. Non-CMOS families like LS will draw more power.

For the 8255 and Z80 PIO, NMOS versions will also work but will also draw much more power. Beware of remarkings of NMOS as CMOS.

The schematic is simple, so it should be trivial to decide what to install depending on what functions you want.

TypeReferenceDescriptionQuantitySuggestion/Notes
PCBEasy Z80 Essentials Rev 11For now, download the gerbers and use one of the low-cost PCB houses.
ICU1ATF16V8B DIP-20 SPLD1Mouser 556-AF16V8B15PU
Need to program with the file provided in the documentation.
ICU274HCT174 DIP-16 Hex Flip-Flops W/ Reset1Mouser 595-CD74HCT174E
ICU374HCT125 DIP-14 Tri-State Quad Driver1Mouser 595-SN74HCT125N
ICU4DS1302+ DIP-8 RTC1Mouser 700-DS1302
ICU574HCT04 DIP-14 Hex Inverters1Mouser 595-SN74HCT04N
ICU682C55A DIP-401New ones from Intersil/Renesas are expensive from reputable sources, try eBay and be aware of fakes and remarkings.
ICU7Z80 PIO DIP-40, CMOS, Z84C20xxPEG1Mouser 692-Z84C2010PEG
10 MHz recommended (the default Easy Z80 clock speed).
ResistorR1, R10470 Ohm, through hole2Mouser 603-MFR-25FBF52-470R
ResistorR2-R910K Ohm, through hole8Mouser 603-MFR-25FRF5210K
CapacitorC1-C70.1 uF MLCC, 5mm, through hole7Mouser 594-K104K15X7RF53H5
CapacitorC847 uF Aluminum Polymer, 2.5mm, through hole1Mouser 80-A750EK476M1EAAE40
Should work fine with values down to 10 uF or less. Electrolytic capacitors are also fine.
LedD15mm (T-1 3/4) LED1Any regular 5mm (T-1 3/4) LED will be enough. R1 in series to 5V.
CrystalY132.768 KHz, 6pF1Mouser 815-AB26T32768KHZ6B
Battery HolderBT1Holder for CR2032 3V Cell, 20mm1Mouser 122-2420-GR
ConnectorJ11×39 Pin Header, 2.54mm, Horizontal1Break up any regular 1×40 2.54mm angled connector
ConnectorJ2IDE PCB connector1Mouser 517-30340-5002 (Angled.)
Mouser 517-30340-6002 (Straight, won’t be able to sit below the Easy Z80 depending on the cable/adapter.)
You can also break up any regular 2×40 2.54mm straight/angled connector if you have stock.
ConnectorJ32×13 Pin Header, 2.54mm, Horizontal1Break up any regular 2×40 2.54mm angled connector
ConnectorJ41×29 Pin Header, 2.54mm, Horizontal1Break up any regular 1×40 2.54mm angled connector
ConnectorJP1-JP2, J51×02 Pin Header, 2.54mm, Vertical3Mouser 649-68002-102HLF
You can also break up any regular 1×40 2.54mm straight connector if you have stock.
ConnectorJ61×02 Pin Header, 2.54mm, Horizontal1Mouser 649-77315-118-02LF
You can also break up any regular 1×40 2.54mm angled connector if you have stock.
SocketU4DIP-8 7.62mm1Mouser 517-4808-3000-CP
SocketU3, U5DIP-14 7.62mm2Mouser 517-4814-3000-CP
SocketU2DIP-16 7.62mm1Mouser 517-4816-3000-CP
SocketU1DIP-20 7.62mm1Mouser 517-4820-3000-CP
SocketU6, U7DIP-40 15.24mm2Mouser 517-4840-6000-CP

To-do List

Silkscreen

  • Add board name + revision number (also use the rev field in the schematic).
  • Add KiCad, license, do not throw away (WEEE) logos.
  • Create a logo + copyright + website link footprint for myself.
  • Battery holder: text should be “CR2032 3V”.
  • Add text to the silkscreen to remind the user that trickle-charge should be off for the DS1302 since most batteries are not rechargable.
  • Add note to remove IDE pin 20 if desired, it’s a key pin in some cables.

PCB

  • Re-route, it was amateurish at best.
  • Rounded borders.
  • Add 2-pin header for battery like the Easy z80 (bonus: add two to chain the SRAM battery from the Easy Z80).
  • Add 2-pin header with 5V for low-power CF cards. Also add a jumper to supply 5V through pin 20 if it wasn’t removed.
  • IEI-IEO (INT_CHAIN) header from the PIO should be vertical, not face the back panel like the silk screen indicates? (for creating a case that fits into the back of the boards).
  • Signals routed below a specific area of the DS1302 can influence the RTC, re-route.
  • For the Z80 PIO, also use a connector with two rows for the back of the board, creating space for a second IDE connector for an “external” drive.

Check

  • Can the IDE Act signal (IDE pin 39) drive two leds?

History

Rev 1 (2021-04-30)

  • First Version