Z180 Microprocessor Kit
Wichit Sirichote, email@example.com
New design with Zilog z180 microprocessor plus music synthesizer chip, Philips SAA1099P. Control the sound chip with z80 instructons directly!
The Z180 Microprocessor kit is suggested by Brian Sprules from NJ. I design this kit with z80180, 68 pin PLCC package, 128k RAM and 32kB monitor ROM. The 8-digit display can be used for displaying 20-bit physical address. The music synthesizer Philips SAA1099P is added with stereo amplifier, TDA2822.
The 128kB RAM is placed from location 08000H to 27FFFH. We can experiment with MMU directly. The onchip I/O is located from 00 to 3FH. Access to these registers can be done with IN0 and OUT0 instructions.
The z180 chip has the onchip UART. Kit uses UART 0 for 9600 terminal interface. Monitor code was developed with sdcc. Source code is available for modification.
Z180 Microprocessor kit
z180 Block diagram
U5 is Zilog Z80180 68 pin PLCC 8-bit microprocessor chip. The oscillator is the onchip circuit with 12.288MHz XTAL. Internal clock is 6.14MHz.
The PHI clock measured at TP3.
External memory is interfaced with data bus D0-D17, and A0-A16.
U1 is 32kB monitor EPROM, 27C32. The address space is located at 00000-07FFF.
U2 128kB static RAM, 628128. The RAM space is located at 08000-0FFFF.
The memory and I/O spaces are decoded to by PLD chip, U6 GAL22V10 (see PLD equations below)
U3, the 20-pin 89C2051 microcontroller chip produces 10ms tick. SW1 selects between 10ms tick or manual INT0 button. The 2051 chip uses 8MHz XTAL. The 8MHz clock is also feed to SA1099 sound chip.
U11, 74HC541 is 8-bit input port (PORT0). Seven bits, PA0-PA6 are input signals of the row keypad.
U9, 74HC573 is 8-bit output port (PORT2). The 8-bit output drives the 7-segment LED directly. No current limit resistor. U10 (PORT1) drives 8-digits common cathode pin of the display. The brightness is controlled by software.
U12(GPIO1), 74HC573 is 8-bit output port located at 40H. It is for program testing.
U14, SAA1099P is music synthesizer chip. The locations are 60H (DATA) and 61H(address). The PWM outputs, LEFT and RIGHT channel are fed to the stereo ampilifer chip, TDA2822. Q2 and Q3 provide software controlled volume. The drive signal is from RTS0 pin.
JR1 is 16-pin socket for text LCD interface. Any text LCD with HD44780 compatible controller can be used with no modifications. U13, HIN232 converts TTL level to RS232 level.
Q1, KIA7042 is reset chip for power brownout. JP1 is 40 pins header. It is for hardware interface experiment. And J1 is for serial I/O interface.
Hardware schematic (click to enlarge)
-CPU: Zilog z80180, 12.28MHz (6.144MHz internal clock).
-Memory: 128kB SRAM, 32k monitor ROM
-Memory and I/O Decoder chip: Programmable Logic Device GAL22V10D
-Display: high brightness 8-digit 7-segment LED
-Keyboard: 36 keys
-RS232 port: UART, 9600 bit/s 8n1
-Debugging LED: 8-bit GPIO1 LED at location 40H
-Music synthesizer: Philips SAA1099P
-Stereo amplifier: TDA2822 1Wx2
-Tick generator: 10ms tick produced by 89C2051 for time trigger experiment
-HALT indicator LED
-Text LCD interface: direct CPU bus interface text LCD
-Brownout reset: KIA7042 reset chip for power brownout reset
-Expansion header: 40-pin header
-Serial I/O interface header, 8-pin
-Power consumption: 900mW
The monitor program features:
-Simple hex code entering
-Insert and Delete byte
-User registers display
-Copy block of memory
-Relative byte calculation
-Intel HEX file downloading.
-TEST 10ms tick interrupt
-Sound test button
The monitor program will be updated and available for testing at the download links.
Keyboard layout: Nice keyboard design with Helvetica font.
The memory and I/O devices decoder is made with PLD chip, GAL22V10. The equations are compiled to JEDEC file using WInCupL. The locations of memory and I/O devices are shown in the comment lines.
Name Z180KIT ;
PartNo 22V10 ;
Date 28/4/2021 ;
Revision 01 ;
Designer Engineer ;
Company Fangkhao ;
Assembly None ;
Device p22v10;/* *************** INPUT PINS *********************/PIN 1 = IORQ; PIN 2 = MREQ; PIN 3 = RD; PIN 4 = WR; PIN 5 = A17; PIN 6 = A16; PIN 7 = A15; PIN 8 = A7; PIN 9 = A6; PIN 10 = A5; PIN 11 = A1; PIN 13 = A0; /* *************** OUTPUT PINS *********************/PIN 14 = NC1; PIN 15 = SOUND; PIN 16 = PORT2; PIN 17 = PORT1; PIN 18 = PORT0; PIN 19 = LCD_E; PIN 20 = GPIO1; PIN 21 = NC2; PIN 22 = RAM_CE; PIN 23 = ROM_CE;FIELD ADDRESS = [A17..A15];ROM_CE = MREQ # A17 # A16 # A15;RAM_CE = (MREQ # A17 # A16 # !A15) & (MREQ # A17 # !A16 # A15) & (MREQ # A17 # !A16 # !A15) & (MREQ # !A17 # A16 # A15);!GPIO1 = A7 # !A6 # A5 # A1 # A0 # WR # IORQ; /* 40H */PORT0 = A7 # !A6 # A5 # A1 # !A0 # RD # IORQ; /* 41H */!PORT1 = A7 # !A6 # A5 # !A1 # A0 # WR # IORQ; /* 42H */!PORT2 = A7 # !A6 # A5 # !A1 # !A0 # WR # IORQ; /* 43H */SOUND = A7 # !A6 # !A5 # A1 # WR # IORQ; /* 60H or 61H */!LCD_E = !A7 # A6 # A5 # (WR & RD) # IORQ; /* 80H-83H */
The memory and input/output MAP.
Memory Map Input/Output Map
Sample test code shows how to control the sound chip with z80 instructions.
On power up, the monitor program sets the sound chip function. Study the source code how to set it.
The sample code for testing the sound chip is then only set the OCTAVE and FREQUENCY.
The octave channel 0 is set to 4 and the frequency channel 0 is set to FF. We can test the sample code by entering the hex code.
When complete, press PC then GO. What is happenning? What is the frequency of the tone?
Can you change the octave and frequency, How?
Let us try producing noise using noise generator.
Test code sets noise enable bit at location 15 bit 0. Then noise frequency selection is loaded into location 16.
Enter the code from 8000 to 800F. Press PC then GO.
What is happening?
Can you change noise frequency? How?
Test code for the onchip Timer0. This code demos how to access the onchip special registers.
We will produce 10Hz tick using the onchip Timer0. Calculation for the reload value found, 7800H.
The timer0 will be counted down to zero. The interrupt flag will be set. We clear it by reading TCR and read timer data register.
The indicator is gpio1 LED, enter the code and press PC, then GO.
What is happening at GPIO1 LED? If we want other triggering rate, how ?
Below is the test waveform at gpio1 bit0. Found 5Hz exactly!
More registers can be tested, e.g. DMA, MMU. Testing can be done by z180 in0 and out0 instructions easily.
For long program testing, we can use Assembler and produce the hex file. Kit uses internal UART with common 9600 terminal interface..
We can dump memory contents with key DUMP and download Intel HEX file with key LOAD easily.
Kit has direct bus interface LCD module. The monitor program provides LCD drivers. Study the monitor source code at download section.
Any text LCD with HD44780 compatible controller can be used.
Four layers PCB is made by nextpcb.com
U1 27C256, 32kB EPROM
U2 HM628128B, 128kB Static RAM
U3 AT89C2051, 20-pin microcontroller
U4 74HC14A, hex inverter
U5 Z80180/LCC, Zilog z80 compatible microprocessor PLCC 68-pin
U6 GAL22V10, Programmable Logic Device
U8,U7 LTC-4727, 7-segment LED
U9,U10,U12 74HC573, 8-bit Latch
U11 74HC541, 8-bit tristate buffer
U13 HIN232, RS232 level converter
U14 SAA1099P, music synthesizer chip
U15 7805, +5V voltage regulator
U16 TDA2822, Stereo amplifier
D11, 3mm LED
D2 1N4733A, +5V zener didoe
D3 HALT LED, 3mm LED
D12 1N5227A, +3.6V zener diode
D14 1N4001, silicon diode rectifier
Q1 KIA7042, low voltage detector
Q2,Q3 BC557, PNP small signal transistor
Resistors (all resistors are 1/8W +/-5%)
R3,R2 RESISTOR SIP 9
R7,R6 10k RESISTOR SIP 9
R15,R17 RESISTOR 10k trim pot
C9 10uF 10V
C20 10uF 16V
JP1 HEADER 20X2
JR1 CONN RECT 16
J3 DC Input
SW1 Micro slide switch
S1,S2,S3,S4,S5,S6,S7,S8, SW PUSHBUTTON
VB1 SUB-D 9, Male (cross cable)
PCB Four layers plate through hole printed circuit board
display filter sheet
Kit is available on eBay.
Bitcoin and PayPal are accepted. Please contact firstname.lastname@example.org
Download Schematic, Source code Listing , PLD files, AT89C2051 file,
Lab Book rev1.0
User's Manual rev1.0
Z8x180 User Manual
January 4 , 2022