Zilog Z8

Jeff Avery on the Web

HOME        SITEMAP        ABOUT        CONTACT        INTERESTS


Zilog Z8 (continued)

After studying the instruction set, I enhanced my assembler program, JAssembler, to enable it to assemble Z8 instructions and then wrote a little Z8 program to beep the buzzer and flash one of the LEDs. After burning it into a 27C64 EEPROM and inserting the chip into the board, I powered on and... success. Well, partial success - it beeped and beeped and beeped - a piercing screech that didn’t end until I powered off. That was when I really discovered the watchdog timer. Unless the program accesses the 7-seg LED driver at least as frequently as once every couple of milliseconds, the hardware resets the CPU. It took me a while to figure this out but, once I did, I changed my program to do the necessary and it then worked.

As a first project, I decided to convert one of the boards into an EEPROM burner. I intended to install a ZIF socket in the place where the DS1220 goes but decided that it would be a lot of work since the DS1220 does not have sufficient address lines for an 8K x 8 EEPROM. Instead, I decided to add a ZIF socket on top of the 6264 8K x 8 static RAM chip. The 6264 is soldered onto the board and so I first soldered some in-line headers to the pins of the 6264 and then soldered the ZIF socket to the header pins. All that was then left to do was to run a chip select line from the PAL chip to the ZIF socket. On the right is a photo of the mod. Click on it to see a larger version. This EEPROM blaster works a treat and is still very much in use.


<-Computers             Zilog Z8 Page:     <-Previous             1            2             Next->

Looking around for another project, I decided to create a controller for my central heating system. My house has in-floor heating and it takes several hours after pouring heat into the concrete floors covered with hardwood, until the rooms start to warm up. On a sunny day, the sun warms the rooms and the thermostats turn off. Later, when the sun goes down, the rooms cool down but the concrete floors are cold; the room temperature continues to fall during the hours that it takes for the floor heat to come through. In addition, I heat with a combination of wood and oil. When the wood boiler is on but all the concrete floors are cold, the boiler is overwhelmed. I decided a controller could alleviate these problems by controlling which floors are heated and when, and by not allowing all the floors to demand heat at the same time.

For the controller to decide when heat should be applied, it needed a clock. I researched clock chips and decided on an RTC-65271. To communicate with the board I bought a 4-line x 20-character LCD display and a simple matrix keypad. I also purchased a temperature sensor to determine the temperature of the boiler water. To interface with the heating system, I tested a number of 12-volt relays and decided on a version that took the least current draw. Finally, I chose an 8255 Programmable Peripheral Interface to tie it all together. Then I started to build the hardware and write the programs. I chose a Rev D board so as to benefit from the additional output current.

My design required a daughter-board to contain the real-time clock and the LCD display and I decided
to build a socket where the DS1220 was supposed to go. I soldered in-line headers to the board, making them two pins longer than provided for by the DS1220. I bent up the extra pins and used two of them to bring Reset and DataSelect signals to the daughter board. A photo of the mod is shown on the right. Click on it to see a larger version.

The real-time clock gave me a few problems understanding exactly how to interface to it but I mastered it in the end. Similarly, the LCD display took a while to get used to, discovering the best way to scroll the display, for instance. The photos below show the keypad, the Z8 board with daughter board containing the real-time clock and LCD display and also the relay board. On the right is my design for the various views to be shown on the LCD display. Click on the photos to see larger views.


EEPROM Blaster

Central Heating Controller

Everything worked well on the bench but, sad to say, the board never made it to the heating system. There were two main reasons: the first was that the wiring of the daughterboard to interface with 16 relays started to become a bit of a rat’s next; the second reason was that the whole setup was rather power hungry and I decided that running it 24 hours a day, 7 days a week was not an efficient solution. It needed more modern components that would run on much less juice. However, it was a very interesting project that I very much enjoyed doing.