2019-08-21

I think the next steps for the Z80 project are twofold:

First, I need an EEPROM programmer. Right now I don't have a way to upload programs to the EEPROM, and that should not be so. I have a handful of SN74HCT595s, so I'll probably slap those on an Arduino and call that particular cat skinned, at least for a first pass at programmer. Following that, I'd like to make a ZIF-socket shield and figure out how to read data from the EEPROM. I envision that this is a serial interface for maximum justice or whatever.

The second thing is I need an EEPROM to program; to wit, I need a way to connect the two boards together. Now this turns out to be more of a challenge than I thought previously for a number of reasons:

  • My EDA software (Eagle) is limited in the number of layers (maximum of two), sheets (2), and board size (eurocard).
  • I am unwilling to pay $100/year for a subscription-only upgrade when I paid $160 for a fully unlocked version several years ago.
  • The alternative EDA software, Kicad [1], is pretty bad. I can symapthise with the plight of open source software, but I can't use it. So far, every attempt at learning it has lasted about 15 minutes before I have to go to Eagle to get done what I set out to do. I'll keep trying, but this is kind of like training yourself to enjoy surströmming.
  • It turns out to be hard to layout everything in one schematic, and a Eurocard-sized board isn't really big enough.

One idea I've been floating around is using IDC40 cables (e.g. the same connector used on ATA drives and the Raspberry Pi's GPIO header) which coincidentally have as many connections as the Z80 has pins. This would let me build small boards, like a CPU board and separate clock boards, without having to commit to an overall board design early on. It also lets me vet components in stages - first I can make test the clock, power, and basic Z80 functionality; then, I can check the memory subsystem, etc.

To that end, I think it'd be useful to have a jumper on the clock line so that I can also inject an external clock in order to use a manual timing cycle.

Another idea was stacked connectors using the same sort of connector.

[1]There are other EDA platforms, but Kicad is the most usable and has the largest parts libraries available.

Tags: ,