Serial Interfaces

Z80 serial ports — 1982

Z80 CPU and serial port board

Serial interfaces have always been a bit tricky, as you never get around to purchasing a proper datascope or developing a break-out board that actually helps. As soon as a design works, the serial ports return to the back burner as a low priority activity. There are several serial interfaces that were mentioned on other pages of this website, but we will update them in time. The first efforts were the Z80 based cards shown here. This page will migrate to the Z80 as we add the Z8002, 68000, ARM and a host of others later.

The Z80 CPU is on the right hand side of the card cage, with the four-port serial board on the left-hand slot. There were two Zilog SCC chips and one Zilog CTC for the baud rates. The boards were being tested around 1982.

25-pin RS-232 Connectors

Serial port termination panel

The requirement was for eight serial ports. Using 1980 technology required a separate processor and serial chips — these here were using the dual channel Zilog Z80 SCC chips, which were a lot better than the Intel and National Semi serial chips at the time the IBM PC was frozen in concrete, which has defined the aftermath of lousy chips since then using the same register layout.

The 25-pin RS-232 interface was used before IBM defined the 9-pin connector in a future PC (post 1982). This serial interface dated to the era of valves and had all kinds of handshake defined, but the DCE/DTE and other definitions were interpreted differently by users of the “standard”, which was why a healthy after-market developed for break-out boards.

Scope test

Scope trace of the letter p

The simplest test we found to trigger an oscilloscope was a repeat pattern of ‘p’ characters.

The upper trace from left to right is the start bit going low, then the four bits low, three bits high (letter p), the stop bit and the next character. The lower trace (looks like two straight lines) is actually a single square wave of the 16× baud rate clock.

The scope was a 4-channel 100 MHz, but the baud rate during early testswas most likely 9600 into a terminal shown below.

Terminal test

Terminal test with repeat patter of the letter p

The repeat pattern of rows and rows of the character ‘p’ which was useful for scope testing. The screen tests were changed to a seed which was incremented and scrolled, which was an easy pattern to see if any characters were droppedby the terminal.

Fast Forward 30 Years

Why did we show this? There are a lot of other boards in between, which will be documented, but the PC under Linux was a lot better than under Windows, and for many years it was not possible to get reliable serial communications under Windows no matter what speed of processor was used. The original PC only had two serial ports and two interrupts dedicated to these devices, so when more ports were used, the interrupts were shared and the chips tried to compensate by including FIFOs, but it is still a mess if you look through the Linux serial.c driver code. Not so easy, so when this all goes into one chip with an ARM core and eight serial ports, then it is something to reconsider. You will have to wait, though.


The intelligent LED lighting standards use RS-485 for communications, so to use them, we need to revisit the RS-485 turn-around problem again as well as debugging serial interfaces.