6-chip BASIC computer with Z8671

Taken from CPUShack (http://www.cpushack.com/2010/10/15/zilog-the-first-decade-z80-z8-and-the-z8000/)
I’ve had some Z8671 chips for a while and I wanted to build a BASIC computer (get it?).

I just wanted it up and running (for now) and I came across this Hackaday Post and related GitHub. I learned from the eevlog forum that there is an appnote, but despite it now being the third result on Google, I had trouble finding it at first. For future people, here is a link to it.

My first try was to follow the picture from SmallRoomLabs to get it up and running, and….nothing. At best, I got garbage (when using a 4MHz crystal) and more often than not, I got nothing.

So I put the project away and came back to it with similar failures.

The past few weeks; however, I really wanted to get it up and going. What did I do? I outsourced it to one of my lab mates. He was able to consistently get garbage out to the monitor. We tried different crystals, but never got it up and going.

The other night; however, I found the app note and saw the example setup listed. I forwarded it to my lab mate and he apparently had already found it, but wasn’t getting good results (he later said that he ignored the example setup).

Being aware of this, I decided to try to build it according to spec and go from there. One of the things that is in the sheet and (apparently) is extremely important is the crystal speed. It


to be 7.3728MHz. 4Mhz and 8MHz just don’t work.

I ordered the correct crystal from Arrow ( click here to see why I’m using them now) and it just came in.

I put in the correct crystal, adjusted my BAUD rate and there we go!

With that, I tried to play with some of the configuration.

I swapped out the crystal, but that took me back a few steps.

I adjusted the resistor location and that got me mixed results. I found out the best results were to have a pull-up resistor on P1_0 (pin 21) and that’s the minimum that you need.

I also didn’t have a 22pf capacitor, so using my capacitor rules, I put a 20 and 2pf in parallel. With it up and running, I tried to reduce the capacitance needed and found that I can just use it with 20pf.

For UART, I’m using an FTDI adapter that provides power and Serial I/O. The RX on the FTDI is going to the SO on the Z8671 (pin 4) and likewise the TX is going to SI (pin 5).

So, let’s do a chip count and the relevant pins:

  1. FTDI
    • Vcc -> Z8671 Vcc (Pin 1)
    • Vcc -> 1K Ohm Resistor
    • GND -> Z8671 GND (Pin 11)
    • GND -> 20pf
    • GND -> 20pf
    • TX -> Z8671 SI (pin 5)
    • RX -> Z8671 SO (pin 4)
  2. 20pf
    • pin 1 -> GND
    • pin 2 -> 7.3728MHz Crystal
  3. 20pf (yes 2)
    • pin 1 -> GND
    • pin 2 -> 7.3728MHz Crystal
  4. 7.3628MHz Crystal
    • pin 1 -> Z8671 XTAL1 (pin 3)
    • pin 1 -> 20pf
    • pin 2 -> Z8671 XTAL2 (pin 2)
    • pin 2 -> 20pf (the other one)
  5. Z8671
    • Vcc (pin 1) -> FTDI Vcc
    • XTAL 2 (pin 2) -> 7.3628 MHz Crystal
    • XTAL 2 (pin 2) -> 20pf (the other one)
    • XTAL 1 (pin 3) -> 7.3628 MHz Crystal
    • XTAL 1 (pin 3) -> 20pf
    • P1_0 (pin 21) -> 1K Ohm resistor
  6. 1 KOhm Resistor
    • pin 1 -> FTDI Vcc
    • pin 2 -> Z8671 P1_0 (pin 21)

I could have just drawn a diagram, but on page 4 of the application note, you have one there for you. If you want reset, then just put a jumper from pin 6 -> Ground to turn it off and disconnect (and connect to Vcc) to turn it on.

I feel kinda of stupid now that I see how easy this is, but that’s the way it goes. 🙂

I”ll probably hook this up to another uC so that I can have a pocket basic computer (similar to here ), but that is to be determined.

This entry was posted in Engineering and tagged , . Bookmark the permalink.

Leave a Reply