GPL 3.0
Simple Z80 test design - single board with all the basics and a few luxuries.
NOTE EasyEDA shows the most recent WIP for this project, which might be part way through me making changes. Before using the PCB layout please do get in touch (comment or message) so I can let you know if what you're seeing is stable! I create labelled versions of the project, but EasyEDA doesn't allow me to publish a specific version :-(
Please do post comments down below if you find any of this interesting, I'd love to share thoughts on how this could be improved in future! I've noticed a few people have cloned it and a few have starred so I'd love to hear from you all.
The board has many more options than it really needs so that I can experiment. All devices are through-hole to make the build easy for those of us yet to venture into SMD. Influences for this project include the RC2014 512K RAM/Flash card and the SIO/2 card along with bits and pieces from all over the Internet that I've managed to lose track of.
The paged memory model supports a 4MB address space, 1MB of which is used on board. The main header exports all Z80 control lines plus the extended address bus allowing 3MB external. I'm hoping to add a memory mapped video card along the lines of the 70s/early 80s systems which would sit in the paged memory map. Great for simple games!
The board uses an oscillator chip and an optional divide by 2 to the CPU and SIO. This allows a certain level of exprimentation with clock speeds. I'm using a 10MHz Z80/SIO/CTC and on the first version of the board a 7.35MHz clock. With the CTC it's possible to decouple the system clock from the SIO baud rate so it's easier to play with clock speeds. I'm hoping to use at least a 10MHz clock or possibly higher. I have a 25MHz clock which, with the divide by 2 might work quite nicely. It's also possible to drive the clock externally rather than use the on board one. So I could have a video card with 25MHz dot-clock also driving the main board. Lots of options!
update the board is working nicely and I have it running at 14.7456MHz crystal.
Version 2 board features:
The banked memory system means there's plenty of space. I have CP/M 2.2 running from SD Card and a boot loader that supports a range of functions including booting from a Raspberry Pi over the second serial port, or booting directly from SD Card. It's a bit of a mess at the moment but once it's cleaned up it'll be on GitHub.
Bug fixes from the version 2.1 board:
Enhancements:
Bug fixes:
Changes from version 1 to version 2
With the SDcard interface working very nicely maybe the board doesn't need 512K of flash. It's a complete PITA to programme compared with simply writing to the SD card. Maybe a smaller flash device?
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | 74LS670N | REG_1,REG_2 | DIL16 | 2 |
2 | DS1307+ | U6-1307 | DIP-8 | 1 |
3 | 1u | C1 | AXIAL-0.3 | 1 |
4 | 10K | R15 | AXIAL-0.4 | 1 |
5 | 1k | R31,R32,R33,R7,R10,R30,R8,R16 | AXIAL-0.4 | 8 |
6 | 4K7 | R14,R13 | AXIAL-0.4 | 2 |
7 | 2k | R1,R4 | AXIAL-0.4 | 2 |
8 | Header-Male-2.54_1x4 | P7 | DIP-1X4P-2.54MM-M | 1 |
9 | Z80CTC-P | CTC | DIP-28 | 1 |
10 | 2N5551 | Q1,Q2,Q3 | TO-92(TO-92-3) | 3 |
11 | Header-Male-2.54_1x3 | P2,P6,P3 | HDR-3X1/2.54 | 3 |
12 | Header-Male-2.54_1x3 | SIOCLK,CPUCLK,BA21SEL | HDR-TH_3P-P2.54-V | 3 |
13 | Header | I2C | HDR-3X1/2.54 | 1 |
14 | Z80CPU-P | CPU | DIP-40 | 1 |
15 | Resistor SIL 4K7x8 | RP3,RP1,RP2,RP4 | SIL-9 | 4 |
16 | RESET | S1 | TACTILE-PTH | 1 |
17 | SW-DIL-3 | SW2 | DIP-6__300_ELL | 1 |
18 | Header-Female-2.54_2x30 | P1 | HDR-30X2/2.54 | 1 |
19 | Z80 SIO/0 | SIO | DIP-40-600-ELL | 1 |
20 | SN74HCT175N | U7-175,U2-175,SPI-OUT | DIP16 | 3 |
21 | 330 | R23,R37,R36,R35,R24 | AXIAL-0.4 | 5 |
22 | 4K7 | R34,R18,R5,R6 | AXIAL-0.4 | 4 |
23 | 2k | R3,R2 | AXIAL-0.4 | 2 |
24 | S4 | LED4 | LED-3MM/2.54 | 1 |
25 | S5 | LED5 | LED-3MM/2.54 | 1 |
26 | S3 | LED3 | LED-3MM/2.54 | 1 |
27 | S2 | LED2 | LED-3MM/2.54 | 1 |
28 | S1 | LED1 | LED-3MM/2.54 | 1 |
29 | SST39SF040-70-4I-NHEDIP36-X | FLASH | DIP-32-600-ELL | 1 |
30 | 74ACT541 | U4-541 | DIP20 | 1 |
31 | 74ACT32 | U3-7432 | DIP14 | 1 |
32 | 1074 | B1 | 1074 | 1 |
33 | M05PTH | SB,SA | 1X05 | 2 |
34 | 32.768KHz | X1 | CRYSTAL_TC26V | 1 |
35 | Header-Male-2.54_1x8 | SPI,SDCARD1,SDCARD2 | 210S-1X8P | 3 |
36 | CTC_CFG | P4 | 210S-1X8P | 1 |
37 | NOCTC | P5 | HDR-2X1/2.54 | 1 |
38 | Header-Male-2.54_1x2 | SA3V3 | HDR-2X1/2.54 | 1 |
39 | Male Header 2.54mm | PWR | 2.54MM_HDR_2PIN | 1 |
40 | AS6C4008-55PCN | SRAM | DIP-32-600-ELL | 1 |
41 | 74HCT138N | MUX_2 | DIP-16_300MIL | 1 |
42 | 100nf | C8,C7,C11,C3,C5,C4,C2,C10,C6,C9 | RAD-0.1 | 10 |
43 | Oscillator 8/14 Pin Layout | OSC | DIP14 - OSCILLATOR | 1 |
44 | 74F04 | U1 | DIP-14_300MIL | 1 |
45 | 74AHCT139N | MUX_1 | DIL16 | 1 |
46 | MC74F74AN | U5 | DIP14 | 1 |
Comments (5)
Nice project, thanks for sharing
@UserSupport Thank you!
hi there
can you tell me the values of the 4 resistor packs please. R23 R24 can i have the values for these too.
what is the value of Q3. p5 is it a test point or a jumper?
its a great project too
regards
kim
@Kimbo sorry for the delay replying, I've just seen your message.
All the resistor packs are 4K7 pullups.
R23 and R24 are 330R for driving the LEDs.
Let me know how you get on!
Pete
@Kimbo and Q3 is a standard 2N5551 transistor
P5 - this jumper is there for people that don't want to include the Z80 CTC on the board. If you leave that device out then add the jumper to complete the interrupt daisychain.