2 An easy to build Zilog Z80 based single board computer
5 * [Introduction](#introduction)
6 * [Specifications](#specifications)
7 * [Hardware Documentation](#hardware-documentation)
8 * [Schematic and PCB Layout](#schematic-and-pcb-layout)
9 * [Connectors and Jumpers](#connectors-and-jumpers)
10 * [Bill of Materials](#bill-of-materials)
11 * [Firmware Documentation](#firmware-documentation)
12 * [BIOS and OS](#bios-and-os)
13 * [SPLD Fuse Map](#spld-fuse-map)
14 * [Release Notes](#release-notes)
16 * [Known Issues](#known-issues)
17 * [Wishlist](#wishlist)
20 My son Max asked me what does it take to build a computer, and whether he can design and build one himself. This project is our attempt to design and build a simple, easy to understand, yet capable single board computer.
21 It reuses the same memory paging mechanism I've implemented in Zeta SBC V2. It uses Zilog Z80 SIO/O and Z80 CTC peripheral ICs and implements daisy chain mode 2 interrupt configuration.
23 ![Easy Z80 PCB Rendering](images/Easy_Z80-Assembled.jpg)
26 * Processor: Zilog Z80 CPU (CMOS version - Z84C00)
27 * Memory: 512 KiB battery-backed SRAM, 512 KiB Flash ROM
29 * Zilog Z80 CTC - Programmable timer used for periodic interrupts and (optionally) for generating UART clock
30 * Zilog Z80 SIO - Dual channel serial interface, used for console and for connecting to other peripheral devices
31 * Bus: [RC2014](https://rc2014.co.uk/) compatible
32 * Microprocessor Supervisor:
38 ## Hardware Documentation
40 ### Schematic and PCB Layout
42 [Schematic - Version 1.1](KiCad/Easy_Z80-Schematic-1.1.pdf)
44 [PCB Layout - Version 1.1](KiCad/Easy_Z80-Board-1.1.pdf)
46 ### Connectors and Jumpers
49 Connect regulated +5V power supply to this connector.
51 Pin | Signal Name | Description
52 ----------------------- | ----------- | -----------
53 Tip (the inner contact) | VCC | Positive terminal - +5V
54 Barrel / sleeve | GND | Negative terminal - ground
56 #### J2, J3 - Serial Channel A and Serial Channel B
57 Pin | Signal Name | Description
58 ------ | ----------- | -----------
59 1 | DCD | Carrier Detect; Not used - Not connected on the SBC
60 2 | RXA, RXB | Receive Data; Input to SBC
61 3 | TXA, TXB | Transmit Data; Output from SBC
62 4 | DTR | Data Terminal Ready; Not used - Not connected on the SBC
63 5 | GND | Connected to the SBC GND signal
64 6 | DSR | Data Set Ready; Not used - Not connected on the SBC
65 7 | RTSA, RTSB | Request to Send; Output from SBC
66 8 | CTSA, CTSB | Clear to Send; Input to SBC
67 9 | RI | Ring Indicator; Not used - Not connected on the SBC
68 Shield | DE9 Shield | Connected to the SBC GND signal
70 #### J4 - NVRAM Battery
71 Pin | Signal Name | Description
72 --- | ----------- | -----------
73 1 | VBAT | Positive terminal - +3V
74 2 | GND | Negative terminal - ground
76 #### J5, J6, J7 - RC2014 Bus
77 Pin | Signal Name | Description | Pin | Signal Name | Description
78 ----- | ----------- | ------------------- | ---- | ----------- | -----------
79 J5-1 | A15 | Address A15; Output | | |
80 J5-2 | A14 | Address A14; Output | | |
81 J5-3 | A13 | Address A13; Output | | |
82 J5-4 | A12 | Address A12; Output | | |
83 J5-5 | A11 | Address A11; Output | | |
84 J5-6 | A10 | Address A10; Output | | |
85 J5-7 | A9 | Address A9; Output | | |
86 J5-8 | A8 | Address A8; Output | | |
87 J5-9 | A7 | Address A7; Output | | |
88 J5-10 | A6 | Address A6; Output | | |
89 J5-11 | A5 | Address A5; Output | | |
90 J5-12 | A4 | Address A4; Output | | |
91 J5-13 | A3 | Address A3; Output | | |
92 J5-14 | A2 | Address A2; Output | | |
93 J5-15 | A1 | Address A1; Output | | |
94 J5-16 | A0 | Address A0; Output | | |
95 J5-17 | GND | Ground | J6-1 | GND | Ground
96 J5-18 | VCC | Power Supply - +5V | J6-2 | VCC | Power Supply - +5V
97 J5-19 | /M1 | Machine Cycle One; Output | J6-3| /RFSH | DRAM refresh; Output
98 J5-20 | /RESET | Reset; Output | J6-4 | N/C | Not connected
99 J5-21 | CPU_CLK | CPU Clock; Output | J6-5 | UART_CLK | UART Clock (1.8432 MHz); Output
100 J5-22 | /INT | Interrupt; Input | J6-6 | /BUSACK | DMA Bus Acknowledge; Output
101 J5-23 | /MREQ | Memory Request; Output | J6-8 | /HALT | Halt; Output
102 J5-24 | /WR | Write Request; Output | J6-9 | /WAIT | Wait; Input
103 J5-25 | /RD | Read Request; Output | J6-10 | /NMI | Non-maskable Interrupt; Input
104 J5-26 | /IORQ | Input/Output Request; Output | | |
105 J5-27 | D0 | Data D0; Input/Output | | |
106 J5-28 | D1 | Data D1; Input/Output | | |
107 J5-29 | D2 | Data D2; Input/Output | | |
108 J5-30 | D3 | Data D3; Input/Output | | |
109 J5-31 | D4 | Data D4; Input/Output | | |
110 J5-32 | D5 | Data D5; Input/Output | | |
111 J5-33 | D6 | Data D6; Input/Output | | |
112 J5-34 | D7 | Data D7; Input/Output | | |
113 J5-35 | TXDA | Channel A, Transmit Data; Output | J7-1 | TXDB | Channel B, Transmit Data; Output
114 J5-36 | RXDA | Channel A, Receive Data; Input | J7-2 | RXDB | Channel B, Receive Data; Input
115 J5-37 | USR1 | User Pin 1, Not connected | J7-3 | USR5 | User Pin 5, Not connected
116 J5-38 | IEI | Interrupt Enable Input | J7-4 | USR6 | User Pin 6, Not connected
117 J5-39 | IEO | Interrupt Enable Output | J7-5 | USR7 | User Pin 7, Not connected
119 #### JP1 - Serial Channel A Clock Select
120 Position | Description
121 --------------- | -----------
122 *1-2 (default)* | 1.8432 MHz (115200 bps if using x16 mode)
123 2-3 | Programmable using CTC channel 0
125 #### JP2 - Serial Channel B Clock Select
126 Position | Description
127 --------------- | -----------
128 *1-2 (default)* | 1.8432 MHz (115200 bps if using x16 mode)
129 2-3 | Programmable using CTC channel 1
131 ### Bill of Materials
135 [Easy Z80 project on Mouser.com](https://www.mouser.com/ProjectManager/ProjectDetail.aspx?AccessID=f16751cb33) - View and order all components except of the PCB.
137 [Easy Z80 project on OSH Park](https://oshpark.com/shared_projects/4onyIbSB) - View and order the PCB.
139 Component type | Reference | Description | Quantity | Possible sources and notes
140 ------------------ | --------- | ------------------------------------------- | -------- | --------------------------
141 PCB | | Easy Z80 PCB - Version 1.0 | 1 | Refer to the [RetroBrew Computers Board Inventory](https://www.retrobrewcomputers.org/doku.php?id=boardinventory#minimal_8085_z80_single_board_computer) page for ordering information, or order from a PCB manufacturer of your choice using provided Gerber or KiCad files
142 Integrated Circuit | U1 | Z80 CPU, CMOS, 40 pin DIP - Z84C00xxPEG | 1 | Mouser [692-Z84C0010PEG](https://www.mouser.com/ProductDetail/692-Z84C0010PEG)
143 Integrated Circuit | U2 | Z80 CTC, CMOS, 28 pin DIP - Z84C30xxPEG | 1 | Mouser [692-Z84C3010PEG](https://www.mouser.com/ProductDetail/692-Z84C3010PEG)
144 Integrated Circuit | U3 | Z80 SIO/0, CMOS, 28 pin DIP - Z84C40xxPEG | 1 | Mouser [692-Z84C4010PEG](https://www.mouser.com/ProductDetail/692-Z84C4010PEG)
145 Integrated Circuit | U4 | 512 KiB SRAM, 32 pin DIP - AS6C4008 | 1 | Mouser [913-AS6C4008-55PCN](https://www.mouser.com/ProductDetail/913-AS6C4008-55PCN)
146 Integrated Circuit | U5 | 512 KiB Flash ROM, 32 pin DIP - SST39SF040 | 1 | Mouser [804-39SF0407CPHE](https://www.mouser.com/ProductDetail/804-39SF0407CPHE)
147 Integrated Circuit | U6 | Microprocessor Supervisory Circuit - MAX693 | 1 | Mouser [584-ADM693ANZ](https://www.mouser.com/ProductDetail/584-ADM693ANZ); Possible alternatives: MAX693, LTC693, ADM691, MAX691, LTC691, ADM695, MAX695, LTC965, LTC1235
148 Integrated Circuit | U7, U8 | Dual RS-232 Driver/Receiver - MAX232A | 2 | Mouser [595-TRS232IN](https://www.mouser.com/ProductDetail/595-TRS232IN)
149 Integrated Circuit | U9 | Simple Programmable Logic Device - ATF16V8B | 1 | Mouser [556-AF16V8B15PU](https://www.mouser.com/ProductDetail/556-AF16V8B15PU)
150 Integrated Circuit | U10, U11 | 4-by-4 Register File - 74HC670 | 2 | Mouser [595-CD74HC670E](https://www.mouser.com/ProductDetail/595-CD74HC670E)
151 Integrated Circuit | U12 | Dual Flip Flop - 74HC74 | 1 | Mouser [595-SN74HC74N](https://www.mouser.com/ProductDetail/595-SN74HC74N)
152 Oscillator | QG1 | 10 MHz, CMOS oscillator, Half Can | 1 | Mouser [774-MXO45HS-3C-10.0](https://www.mouser.com/ProductDetail/774-MXO45HS-3C-10.0)
153 Oscillator | QG2 | 1.8432 MHz, CMOS oscillator, Half Can | 1 | Mouser [774-MXO45HS-3C-1.8](https://www.mouser.com/ProductDetail/774-MXO45HS-3C-1.8)
154 LED | D1 | 3 mm, green LED indicator | 1 | Mouser [859-LTL-4231N](https://www.mouser.com/ProductDetail/859-LTL-4231N)
155 Tactile Button | SW1 | 6 mm tactile button, right angle | 1 | Mouser [653-B3F-3152](https://www.mouser.com/ProductDetail/653-B3F-3152)
156 Connector | J1 | DC Power Jack, 2mm | 1 | Mouser [806-KLDX-0202-A](https://www.mouser.com/ProductDetail/806-KLDX-0202-A)
157 Connector | J2, J3 | Sub-D DE9M, Right Angle, PCB mount | 2 | Mouser [806-K22X-E9P-N-99](https://www.mouser.com/ProductDetail/806-K22X-E9P-N-99)
158 Connector | J4 | 2 Pin Header with Friction Lock | 1 | Mouser [571-6404562](https://www.mouser.com/ProductDetail/571-6404562)
159 Pin Header | J5 - J7 | 40x2 Pin Header, 2.54 mm Pitch, Right Angle | 1 | Mouser [571-9-103326-0](https://www.mouser.com/ProductDetail/571-9-103326-0)
160 Capacitor | C1 - C14, C16 - C23 | 0.1 uF, MLCC, 5 mm Pitch | 22 | Mouser [594-K104K15X7RF53H5](https://www.mouser.com/ProductDetail/594-K104K15X7RF53H5)
161 Capacitor | C15 | Do not populate | 1 | Do not populate this capacitor
162 Capacitor | C24 | 47 uF, 25V, Aluminum Organic Polymer | 1 | Mouser [80-A750EK476M1EAAE40](https://www.mouser.com/ProductDetail/80-A750EK476M1EAAE40)
163 Resistor Array | RR1 - RR3 | 4.7 k, bussed, 5 pin SIP | 3 | Mouser [652-4605X-AP1-472LF](https://www.mouser.com/ProductDetail/652-4605X-AP1-472LF)
164 Resistor | R1 | 470 ohm, axial | 1 | Mouser [603-MFR-25FBF52-470R](https://www.mouser.com/ProductDetail/603-MFR-25FBF52-470R)
165 Resistor | R2 - R4 | 10 kohm, 1% tolerance, axial | 3 | Mouser [603-MFR-25FRF5210K](https://www.mouser.com/ProductDetail/603-MFR-25FRF5210K)
166 Resistor | R5 | 29.4 kohm, 1% tolerance, axial | 1 | Mouser [603-MFR-25FBF52-29K4](https://www.mouser.com/ProductDetail/603-MFR-25FBF52-29K4)
167 Trimmer Resistor | RV1 | 2 kohm, through hole | 1 | Mouser [652-3362P-1-202LF](https://www.mouser.com/ProductDetail/652-3362P-1-202LF)
168 IC Socket | U1, U3 | 40 pin DIP | 2 | Mouser [517-4840-6000-CP](https://www.mouser.com/ProductDetail/517-4840-6000-CP)
169 IC Socket | U4, U5 | 32 pin DIP | 2 | Mouser [517-4832-6000-CP](https://www.mouser.com/ProductDetail/517-4832-6000-CP)
170 IC Socket | U2 | 28 pin DIP | 1 | Mouser [517-4828-6000-CP](https://www.mouser.com/ProductDetail/517-4828-6000-CP)
171 IC Socket | U9 | 20 pin DIP | 1 | Mouser [517-4820-3000-CP](https://www.mouser.com/ProductDetail/517-4820-3000-CP)
172 IC Socket | U6 - U8, U10, U11 | 16 pin DIP | 5 | Mouser [517-4816-3000-CP](https://www.mouser.com/ProductDetail/517-4816-3000-CP)
173 IC Socket | U12 | 14 pin DIP | 1 | Mouser [517-4814-3000-CP](https://www.mouser.com/ProductDetail/517-4814-3000-CP)
174 Oscillator Socket | QG1, QG2 | 4 pin DIP, Half Can | 2 | Mouser [535-1108800](https://www.mouser.com/ProductDetail/535-1108800)
176 ## Firmware Documentation
180 The current plan is to use [RomWBW](https://github.com/wwarthen/RomWBW), which includes BIOS and CP/M-80 2.2, Z-System. It also should be possible to run [FUZIX](https://github.com/EtchedPixels/FUZIX) on this board.
184 Easy Z80 uses an ATF16V8/GAL16V8 SPLD (U9) for address decode logic. The [SPLD fuse map](SPLD/easy_z80.jed) and the [SPLD source code](SPLD/easy_z80.pld) are provided in [SPLD](SPLD) directory of this repository.
190 * Add pull-up resistors on data bus (RN4 - 4.7k) to support interrupt mode 0
191 * Use 74HC series instead of 74HCT
194 * Make RN1 reference and value visible
195 * Update silkscreen of headers footprints, so that JP1 and JP2 don't cover the traces
196 * Add project URL to the bottom silkscreen
202 * Top silkscreen: RR1 reference and value are not visible. It should read "RR1, 4.7k"
203 * Bottom silkscreen on JP1 and JP2 covers the trace connections, so they are not easily visible
204 * Bottom silkscreen: No project URL. Should be [github.com/skiselev/easy_z80](https://github.com/skiselev/easy_z80)
205 * Board will not reset when C15 is populated. Workaround: Do not populate this capacitor
206 * Schematic and top silkscreen: Use 74HC series instead of 74HCT
209 * Add pull-ups on the data bus to support extension boards that were not designed for Z80 interrupt mode 2