The motherboard of the system is now completly assembled and working. I`ve made a single sided PCB using simple theromotransfer method. I`ve used a HD44780 LCD on a dedicated connector for debuggind during initial tests. The final version of the motherboard has these components installed:
– Z80 microprocessor – NEC version, model D780C
– RAM 32KB – IS61C256AH-15N chip from ISSI , 15nS access time
– ROM 256KB (32KB accesible – 4 banks selectable by jumpers) – AM28F020 chip 120nS access time
– I/O chips 2x74HCT574 & 2x74HCT245
– address decoder based on 74HCT138,74HCT32,74LS30, 74LS14
– reset circuit , 4,096Mhz crystal generator, 3.3V voltage regulator, dedicated LCD HD44780 port connected to one of the 74574 output latches.
I`ve used a Commodore C64 keyboard for input.
Willem programmer was used for burning the ROM contents to FLASH chip. For the software development I`ve used Z80PC Assembler and Z80 Simulator IDE from OshonSoft. The simple demo program was loaded for tests: 4 Rows of text was displayed on the LCD.
Below you can check the schematics and board layout design from EAGLE editor:
PCB etched and cleaned, just before drilling:
Below is a fully assembled and running set. There is a demo program executing. A commodore C64 Keyboard is allso attached to the board, but not yet tested. This setup allready makes a fully functional Single Board Computer (SBC), but it is not yet the final goal I would like to achieve with this project.
Plans for near future:
– A bootloader with a serial interface is BADLY needed for rapid software development: my idea is based on an add-on module with Atmega8 and MAX3232 ICs. This module would be plugged to the 74HCT245 input port of the motherboard, allowing 4-bit parallel transmission from the PC`s serial port. 2 bits would be used for simple flow control mechanism. The maximum baudrate has to be determined trough a series of experiments – both Z80 and Atmega8 speed limitations has to meet each other in a halfway. A simple bootloader code has to be burned into the FLASH ROM of the Z80 system. On the PC side, only a serial terminal capable of RAW BINARY byte transfer functionality will be needed. This will allow fast and simple transfer of Z80 code developed on the PC directly to RAM memory of the Z80 system.
-After building the bootloader system, I may start working on some basic keyboard and LCD routines. Further work will be focused on an expansion board which will be placed on top of the motherboard. The expansion board will have additional logic for address and control signals decoding , and also a set of jumpers for terminating certain Z80 CPU signals: /NMI /INT /WAIT /BUSRQ in case they are not used by any expansion module.