Z80-MBC2 Build Notes
Revision as of 20:27, 24 July 2021 by Blwikiadmin (talk | contribs) (→Space - 16 Drives, 8MB / drive)
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
- External RTC
- External SD card
- Runs Petit FAT File System - Loads FAT32 SD cards loaded in Windows
- External USB-Serial adapter
- Bare Board on ebay - $8 shipping included
- Arrived in a couple of days
- Kit for sale
Reference Docs
- An Easy to Build Real Homemade Computer: Z80-MBC2! - Instructable was helpful
- Hackaday project with files
- GitHub Repo
- Facebook page
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
- Connects to FTDI-49MM card
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
- Connects to SD_CARD_X49 with 6, 8 pin connectors
- Clip out R20 to use LED on SD_CARD_X49
J7 - GPIO
DB-25 connector
- Connect to DB25RIBBON card
- Use female DB-25 since power is exposed
- Wiring shown for male DB-25 connector
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>
SD Card (R240620)
- Selected CP/M 2.20
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
Space - 16 Drives, 8MB / drive (128MB)
F>a:stat A: R/W, Space: 7908k B: R/W, Space: 8068k C: R/W, Space: 7664k D: R/W, Space: 8004k E: R/W, Space: 7896k 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