100%
z80-rpm z80 RPM view
Description

Imported from GitHub: podzolelements/z80-RPM · commit 4e33736 · license GPL-3.0

Description

The z80 Rapid Prototyping Module: A compact, arduino-style z80 computer made for easy prototyping and hardware development

README

The z80 Rapid Prototyping Module v1.1


image info


The z80 RPM is a credit-card sized single board computer designed for prototyping hardware for the z80. With 8 built-in IO device select pins and every signal on the z80 available as a breakout, new hardware can quickly be tested and iterated upon, without the hassle of connecting the hardware to an existing z80 system. I wanted to create something of a 1980's Arduino: enough hardware to get a fully functional system, while keeping the footprint as small as possible and with all the signals exposed so I could hook up anything I want to it. I also designed the board around being able to add shields or hats for standalone z80 projects.

Hardware Features

  • 3 Memory Configurations (selectable via jumpers on board):

    • 56kb RAM and 8kb ROM (both 16k and 8k jumpers)

    • 48kb RAM and 16kb ROM (16k jumper)

    • 32kb RAM and 32kb ROM (no jumpers)

  • 8 IO 'Chip Select' pins connected to bits A5-A7

  • ZIF socket for easy ROM replacement

  • Automatic reset on power up with manual reset button

  • 90mm by 57mm footprint

  • Entirety of the z80's pins are accessible and labeled via breakout

image info

Memory & IO Address Map

56k/8k memory configuration:

  • ROM: 0x0000 - 0x1fff

  • RAM: 0x2000 - 0xffff

48k/16k memory configuration:

  • ROM: 0x0000 - 0x3fff

  • RAM: 0x4000 - 0xffff

32k/32k memory configuration:

  • ROM: 0x0000 - 0x7fff

  • RAM: 0x8000 - 0xffff

IO map:

  • 0b000xxxxx: IO device select 0

  • 0b001xxxxx: IO device select 1

  • 0b010xxxxx: IO device select 2

  • 0b011xxxxx: IO device select 3

  • 0b100xxxxx: IO device select 4

  • 0b101xxxxx: IO device select 5

  • 0b110xxxxx: IO device select 6

  • 0b111xxxxx: IO device select 7

Pinout

Note this is the board layout from v1.0, however the pin locations have not changed

image info

Going clockwise starting from the top:

  • Orange - Memory configuration jumpers

  • Purple - Data signals

  • White - Clock and reset

  • Blue - Data bus

  • Pink - z80 signals

  • Yellow - IO device selects

  • Green - Address bus

Some notes: Red and Black are +5v and GND respectively. Due to limited space on the board, the IO device select lines are not labeled. IO device 0 is at the top, device 1 is below device 0, etc, and device 7 is on the bottom, right above the lower +5v connection.

Schematic

A PDF version is also available in the schematics folder.

image info

Bill of Materials

If you'd like to recreate this project, here are all the parts on the PCB. Other parts likely can be substituted in, but be sure to check with the datasheets to ensure they are actually compatible. As a side note, I socket all of my IC's, which allows the removal of the IC's from the board, but they are not absolutely necessary.

Part ReferenceValuePurpose
C2,C3,C4,C5,C6,C7.1uFDecoupling capacitors
C1.1uFAutomatic reset circuit
D11N40001Automatic reset circuit
R110kAutomatic reset circuit
R2100Automatic reset circuit
R3,R42kMemory configuration pulldowns
RN110kz80 input pin pullups
SW1Tactile switchManual reset button
U127C512 (ZIF 28 socket)64k EEPROM
U224M51264k SRAM
U3z80 CPUCPU
U474LS32Memory configuration logic
U574LS138IO device port decoder
X1DIP 14 oscillator canCPU clock

Images

Note all images are from v1.0

Here's the RPM in action (I've got it hooked up to an SAA1099 here):

image info

Build progress:

image info

image info

This project is open source and can be used for any purpose in compliance with the GPLv3, but comes with absolutely NO WARRANTY of any kind.

Thanks for checking out my project! If you find this project useful or interesting, I'd love to hear about it!

Comments
Sign in to comment

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