Development board based on CPU Zilog Z80 and MCU Zilog Z8

Why?

The main reason why I started to work on this project was curly developed topic "NEW MODEL OF SPECTRUM" (link is accesible for registered and logged-in users only) in Speccy newsgroup on server Pandora.cz. (available in Czech and Slovak language only)

With power of old-good and by-decades-verified Zilog Z80CPU and new positive and powerful features of Zilog Z8Encore! we can build a nice synergy platform powered by rich set of features. And last but not least is the compatibility (not perfect yet) with legendary ZX Spectrum.

Architecture

Function blocks of development board are described on following block diagram:


Click here for PDF version

For better clarity I intentionally cut out following peripherals from block diagram:

The heart of development board is the Z8Encore! MCU, which drives all other components of the board.
After self-initialization and default port setup (I2C, LCD, SRAM) it does the following tasks:
  1. brings Z80CPU to the RESET state - all 3-state buses to high-impedance state
  2. fills very first 16kB of SRAM with Z80CPU code (now it's ROM of the ZX Spectrum 48K)
  3. initializes it's internal Timer0 in role of interrupt generator (/INT) for Z80CPU (signal trace compatible with ZX Spectrum ULA)
  4. releases SRAM control signals
  5. returns bus control to Z80CPU
  6. finishes reset of Z80CPU (signal /RESET of Z80CPU do logic HIGH)

Z8Encore! drives these bus signals of Z80CPU:

Z8Encore! also allows/denies Z80CPU to access SRAM (signals /CS a /WR).
In role of display device I utilized graphics LCD with resolution 84*48 pixels (around one third of horizontal resolution and quarter of vertical resolution of ZX Spectrum screen).

After first initialization, Z8Encore! periodically refreshes information on LCD. While Z8 wants to read data from SRAM, it activates /BUSREQ signal of Z80CPU. After this request Z80CPU releases the bus and allow DMA controller (Z8 in this design) to access memory directly. Z8 displays a copy of video RAM on LCD (last 6 lines).

Schematics

There is MAX232 connected to Z8 UART0 missing in current version of schematics.

Schematic diagram in Eagle 4.09 format is available for download . If you want to see schematics and you don't use Eagle, diagram is available in PDF or PNG picture too.

Construction

Prototype version is realized on universal PCB. Following picture shows the part placement.


Click here for PDF version

In Eagle archive you can find autorouted PCB too (preview available in PNG picture).

Software

Software for Z8Encore! is available: Version 0.1 from 27.03.2004 (full ZDS II project).

Gallery

Photos:
  1. Board protoype
  2. Full development system
  3. Two Zilogs
  4. Start of initialization
  5. Initialization finished
  6. Z80CPU is running

Development tools

I used these development tools during prototyping dual-Zilog board:

Expected improvements

  • MMC card will be attached to Z8 SPI interface to provide storage solution for Z80CPU software
  • Z8F6401 lacks I/Os and should be replaced to other type of Z8Encore! MCU with more pins (e.g. Z8F6423). This config allows direct memory address generation and avoid shift registers.
  • Allow Z80CPU to be able to access Z8Encore! peripherals (UART, IrDA, I2C, SPI, timers etc.). Z8 acts as intelligent I/O controller for Z80CPU
  • Memory paging (ZX Spectrum 128k, CP/M or -at least- utilization of full capacity of SRAM chip - 512kB)
  • Other type of display controller (display full ZX Screen)
  • Keyboard support (matrix or PS/2)

    Comments and suggestions

    Design of this development board is not finished yet. I hope I will be able to finish my work in next few months. If you have any questions, suggestions or comments, please send them to my e-mail.


    Last update: 13.04.2004