Close

EasyEDA - The Schematic and PCB

A project log for Grant Searle's Z80 CP/M Design

I thought I would put this CP/M 2.2 Z80 project together. See what I can learn.

agpcooperagp.cooper 03/19/2021 at 02:030 Comments

The Schematic and PCB

I use EasyEDA for the Schematic and PCD design and manufacture.

This is a well known project and there are a number of schematics and PCBs that can be used on the web-site.

I used https://easyeda.com/twahl/SBC_Z80_REV2 as a base for my schematic and PCB.

In my case I made a few changes, first I removed the MAX232 as I will use a FT232 USB TTL serial interface card. And the power supply as I can draw the 5v power supply from the USB connection.

I reworked the Cold Boot and Warm Boot to include a 50ms debounce RC network. It is a puzzle to me that not debouncing the reset buttons does not cause a problem.

I also added access to NMI and the decoded I/O addresses. But I have not added an expansion bus (to do).

I did make a few errors with the PCB:

1 Incorrect labelling of the serial port pins.

2 Incorrect switch foot-print (did not check).

3 Incorrect diode silk screen (backwards?).

4 Finally I had a problem finding an 90 degree IDE socket that bends with the CF facing up. So I used a straight IDE socket.

Burning the ROM

In my case I used an AT29C256 Flash ROM. I have a number of these and a programmer for them.

Power Up

Because of the incorrect reset button footprints the reset signal was locked down. An easy find an fix.

Communicating with the Machine

The boot up was fine, Basic works, but I was unable to upload hex files.

At first I suspected that the overclocked SIO/2 was tripping up. So I replaced the 7.3728 MHz crystal with a 3.6864 MHz crystal. It still did not work.

I use Linux and was using Putty to communicate with the machine. I needed to introduce a delay after each character to give the machine time to process the serial communications. I know HyperTerm does this but I don't have this for Linux. I found GTKTerm that has an option to introduce delays after each line. It worked well.

AlanX

Discussions