Z80 System
Part 6 - CTC and SIO

So my natural choice for some serial communication had to be the combination SIO + CTC I had some of those chips and I wanted to be able to use vectored interrupts a choice that turned out to be a kind of a problem cause my buffering system. The problem is that I had "half of the chips one side and half the other side" of the buffers cause the way I originally built "the basic system". Let's say to do things properly I should have started differently, this was a kind of "upgrade" on a basic system and I had to deal with some "backwards compatibility problems".

Another "stupid problem" I had was my choice of a classic NE555 as baud rate clock generator, initially that had simply to be a 9600 x 16 clock and I was thinking to stay set on 9600 baud. I still don't know precisely what went wrong, done all the usual by-the-book computations and such sure enough the 555 was oscillating properly, the oscilloscope was showing a quite good square wave.

But if you were picky enough and try hard with some oscilloscope settings you were able to see a bit of a dirtiness not so easy to see .. until I attached a frequency meter on and what I saw was the almost impossibility to get two consecutive lecturers the same, it was looking like there was a slow drift in frequency that was going to more or less stabilize after a quite long time.

I got quite fed up and I went for a CAN oscillator that costed much less, allowed me to have any baud rate from 300 baud up to 1 Mbit and something and it's stable as a rock, I felt sorry for the 555, maybe I had a faulty chip.

The Z80 SIO
The Z80 SIO, CAN oscillator not yet in place

I had another of those "stupid nasty bugs" thanks the fact I wanted to use vectored interrupts, if you see that DIN connector to the left this is an "bus expansion" for my Transputer experiment. Cause a very silly problem ( that took me quite a while to understand ) I made an error with a partial address decoding causing a bus conflict during a particular situation and an interrupt acknowledge the same time.

The CTC counting
Interrupts test, CTC counting interrupts using system clock

At this point the system was more or less all together, once you have a serial port that talks, some I/O space available, 64K of RAM, 16K of ROM space and and IDE interface that works you have a lot to work on.


page 6-7