Parts
- On card
- Z80 CPU CMOS (Z84C00) 8Mhz or greater - I used 20 MHz
- Atmega32A
- TC551001-70 (128kB RAM)
- I used AS6C1008-55PIN since it is available on Mouser and Digikey
- 74HC00
- I added the optional MCP23017 for GPIO
- External cards
- Bare Board on ebay - $8 shipping included
- Arrived in a couple of days
- Kit for sale
Reference Docs
Build Notes
- All through hole construction
- Build took less than 2 hours
- Used mostly junk box parts
- 20 MHz Z80 (Runs ar 4 or 8 MHz)
- Purchased alternate SRAM
- Purchased DIP machined sockets (I usually go cheaper but these were very nice)
- Forgot to buy SIP resistors
- Made my own SIP resistors
- Pin 1 (boxed pin on silkscreen is the common
- Used 1/8W resistors vertically mounted
- 5mm LEDs fit into 3mm hole spacing
- I didn't have a 3mm Blue so I used 5mm
- Ordered DS3231 AT24C32 IIC Precision Real Time Clock RTC Memory Module for Arduino
Negatives
- Ref des are not top-bottom or left-right
- Struggled to find some of the resistors on the PCB
- PDF Assembly drawing text is not searchable
- Serial port marking correlated to the FTDI card end not referenced from card internal
Connectors
- Triangle/arrow points to pin 1
J1 - I2C Expansion
J2 - Serial
J3 - ICSP
- Connects to ISP connector on ATProgHead for programming using Arduino as ISP connector and 2x3 jumper
J4 - AUX PWR
J5 - RTC
J6 - SD Card
J7 - GPIO
DB-25 connector
- Connect to DB25RIBBON card
- Use female DB-25 since power is exposed
- Wiring shown for male DB-25 connector
Z80-MBC2 to DB25RIBBON Card Wiring
Port
|
J7 Pin
|
DB-25F Pin
|
P1 Pin
|
Color
|
Port
|
J7 Pin
|
DB-25F Pin
|
P1 Pin
|
GND
|
20
|
1
|
25
|
Black
|
GND
|
19
|
14
|
24
|
GPA0
|
18
|
2
|
23
|
Brown
|
GPB0
|
3
|
15
|
22
|
GPA1
|
16
|
3
|
21
|
Orange
|
GPB1
|
5
|
16
|
20
|
GPA2
|
14
|
4
|
19
|
Yellow
|
GPB2
|
7
|
17
|
18
|
GPA3
|
12
|
5
|
17
|
Green
|
GPB3
|
9
|
18
|
16
|
GPA4
|
10
|
6
|
15
|
Blue
|
GPB4
|
11
|
19
|
14
|
GPA5
|
8
|
7
|
13
|
Violet
|
GPB5
|
13
|
20
|
12
|
GPA6
|
6
|
8
|
11
|
Grey
|
GPB6
|
15
|
21
|
10
|
GPA7
|
4
|
9
|
9
|
White
|
GPB7
|
17
|
22
|
8
|
+5V
|
2
|
10
|
7
|
Red
|
+5V
|
1
|
23
|
6
|
Programming THE ATMEGA32
- IOS-LITE build (no SD card support)
- Full build with SD card
- Was able to use ATProgHead ICSP 2x3 cable running Arduino as ISP to burn bootloader but not program the code
- Could not use any of my FTDI cards for serial programming since they have RTS/CTS but not DTR
- Most programmer setups in Arduino work just fine with RTS since both are usually pulled, but not the MightyCore
- This is speculation as to why but I am able to program Screwduino cards just fine
- Used TL866ii to program ATMEGA32 fuses
- The Fuse bits should be: High Byte 0xD6, Low Byte 0xAF, Lock Byte 0xCF.
- Reference: Setting AVR Fuse Bits
- If you use the programmer defaults it sets the clock to 1 MHz which gives a serial port rate of 600 baud (told me I needed to fix the fuses).
- Found path in dump in Arduino IDE:
Arduino: 1.8.13 (Windows 10), Board: "ATmega32, Yes (UART0), EEPROM retained, Standard pinout, BOD 2.7V, LTO disabled, External 16 MHz"
Sketch uses 28642 bytes (88%) of program storage space. Maximum is 32256 bytes.
Global variables use 1213 bytes (59%) of dynamic memory, leaving 835 bytes for local variables. Maximum is 2048 bytes.
C:\Users\HPz420\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino18/bin/avrdude -CC:\Users\HPz420\AppData\Local\Arduino15\packages\MightyCore\hardware\avr\2.1.3/avrdude.conf -v -patmega32 -carduino -PCOM23 -b115200 -D -Uflash:w:C:\Users\HPz420\AppData\Local\Temp\arduino_build_883457/S220618_IOS-LITE-Z80-MBC2.ino.hex:i
Software
Boot
Z80-MBC2 - A040618
IOS - I/O Subsystem - S220718-R240620
IOS: Z80 clock set at 8MHz
IOS: Found GPE Option
IOS: CP/M Autoexec is OFF
IOS: Select boot mode or system parameters:
0: No change (3)
1: Basic
2: Forth
3: Load OS from Disk Set 0 (CP/M 2.2)
4: Autoboot
5: iLoad
6: Change Z80 clock speed (->4MHz)
7: Toggle CP/M Autoexec (->ON)
8: Change Disk Set 0 (CP/M 2.2)
Enter your choice >3 Ok
IOS: Current Disk Set 0 (CP/M 2.2)
IOS: Loading boot program (CPM22.BIN)... Done
IOS: Z80 is running from now
Z80-MBC2 CP/M 2.2 BIOS - S030818-R140319
CP/M 2.2 Copyright 1979 (c) by Digital Research
A>
Disk Sets
- Disk Set 0 (CP/M 2.2)
- Disk Set 1 (QP/M 2.71)
- Disk Set 2 (CP/M 3.0)
- Disk Set 3 (UCSD Pascal)
- Disk Set 4 (Collapse OS)
SD Card (R240620)
Disk Set 0 (CP/M 2.2)
Z80-MBC2 CP/M 2.2 BIOS - S030818-R140319
CP/M 2.2 Copyright 1979 (c) by Digital Research
A>DIR
A: ASCIART BAS : ASM COM : AUTOEXEC SUB : AUTOEXEC TXT
A: D COM : DDT COM : DUMP COM : ED COM
A: GENHEX COM : GPELED BAS : GPIO BAS : HELLO ASM
A: HELLO COM : LOAD COM : MAC COM : MBASIC COM
A: MBASIC85 COM : PEG COM : PIP COM : RTC BAS
A: STARTREK BAS : STAT COM : SUBMIT COM : TREKINST BAS
A: USERLED BAS : XMODEM CFG : XMODEM COM : XSUB COM
A: ZDE16 COM : ZDENST16 COM
B>DIR
B: TINST COM : TURBO COM : ART TXT : TINST DTA
B: TINST MSG : TURBO MSG : TURBO OVR : TURBOMSG OVR
B: SA PAS : README TXT
C>DIR
C: $EXEC COM : ASSERT H : C COM : CGEN COM
C: CONIO H : CPM H : CPP COM : CREF COM
C: CRTCPM OBJ : CTYPE H : DEBUG COM : DEHUFF COM
C: EXEC H : FLOAT H : HITECH H : LIBC LIB
C: LIBF LIB : LIBR COM : LIMITS H : LINK COM
C: MATH H : OBJTOHEX COM : OPTIM COM : OPTIONS
C: P1 COM : README TXT : RRTCPM OBJ : SETJMP H
C: SIGNAL H : STAT H : STDARG H : STDDEF H
C: STDIO H : STDLIB H : STRING H : SYS H
C: TIME H : UNIXIO H : ZAS COM
D>dir
D: CPMIO MAC : CRCKLIST CRC : CREF80 COM : DSKDRV MAC
D: DTBF MAC : F80 COM : FCHAIN MAC : FORLIB REL
D: INIT MAC : IOINIT MAC : L80 COM : LIB COM
D: LPTDRV MAC : LUNTB MAC : M80 COM : TTYDRV MAC
D: README TXT
E>dir
E: BASCOM COM : BASCOM HLP : BASCOM2 HLP : BASLIB REL
E: BCLOAD : BRUN COM : CREF COM : CREF80 COM
E: README TXT : L80 COM : LIB80 COM : M80 COM
E: MBASIC COM : OBSLIB REL : RANTEST ASC : RANTEST BAS
E: RANTEST COM : RANTEST REL : SAMPLE BAS : SAMPLE COM
E: SAMPLE REL
CP/M 2.20 - 16 Drives, 8MB / drive (128MB)
F>a:stat
A: R/W, Space: 7908k - CP/M 2.2
B: R/W, Space: 8068k - Turbo Pascal Compiler v3.01A
C: R/W, Space: 7664k - HI-TECH Z80 CP/M C compiler V3.09
D: R/W, Space: 8004k - Microsoft Fortran-80 Compiler v.3.44
E: R/W, Space: 7896k - Microsoft Basic-80 Compiler v.5.30a
F: R/W, Space: 8176k
G: R/W, Space: 8176k
H: R/W, Space: 8176k
I: R/W, Space: 8176k
J: R/W, Space: 8176k
K: R/W, Space: 8176k
L: R/W, Space: 8176k
M: R/W, Space: 8176k
N: R/W, Space: 8176k
O: R/W, Space: 8176k
P: R/W, Space: 8176k