Close

Z80 PIO Emulation

A project log for 3-Chip Z80 Design

Combining a Z80 retro design with a modern PSoC CPU.

land-boardscomland-boards.com 09/25/2019 at 19:080 Comments

The Z80 PIO has two 8-bit ports. This can be emulated (albeit slower) with the MCP23017 I2C port expander and the PSoC. If speed doesn't matter, then the MCP23017 should work just fine.

The Z80 views the I/O space as if a real PIO chip was present. Just like the example previously for the Serial IO chip the PSoC sees the request to access the PIO and translates the request to I2C transfers to the MCP23017. Bits can be set as input or output and read or written as needed.

I've added an optional MCP23017 to the card to support this PIO emulation. The chip is hardwired on the card to address 0x20. It should be socketed in case larger external I/O requirements are needed.

I've designed a bunch of I2C cards. One card, the DIGIO-128 even has 128-bits of I2C space but it uses the entire 0x20-0x27 address space. These cards are ODAS form factor like this CPU card (95x95mm).

Here's the DIGIO-128 card for reference.

Discussions