A minimalistic industrial computer core, based on Motorola 6809 architecture.
Proof of concept custom 8-bit industrial computer with minimal device count implementation. Modular, low-power design, allowing easy expansion and customization per use case.
AC29 is dedicated to my beloved father.
- CPU: HD63B09 @ 1.8MHz
- RAM: 32KB W24257A
- ROM: 16KB 28C256 (half of it)
- UART: HD63B50 (1MBps) on FT23 USB Serial
- Address decoding: 74HCT00 & 74HCT138
- Expansion: 1x 40-pin header for expansion board with 3 slots mapped at $8000, $9000 and $B000
- Power over USB
Address range | Device | Size |
---|---|---|
$0000-$7FFF | RAM | 32KB |
$8000-$8FFF | Extension port #1 | 4KB |
$9000-$9FFF | Extension port #2 | 4KB |
$A000-$AFFF | UART | 4KB |
$B000-$BFFF | Extension port #3 | 4KB |
$C000-$FFFF | ROM | 16KB |
The 32KB of RAM is allocated from the bottom of the address range $0000 to $7FFF. The ROM is allocated at top 16KB of the address space starting $C000 to $FFFF.
The I/O mapping is allowing compatibility with existing BIOS images having ACIA on address 0xA000.
Using the combination ROM image in Intel HEX format it needs first be turned into a binary image to be written to the EEPROM.
objcopy -I ihex -O binary combined.hex combined.bin
Write the resulting .bin file using the specially created EEPROM programmer for AT28C-series EEPROMs. Or any other.
promdude.exe -combined.bin
As a note, burning the combined.bin (16K) onto 32K 28C256 has to be at the correct half. Optionally, a copy of combined.bin twice into the chip will do as well.
As the firmware is 16K and 28C256 (32K) chips are nowadays more accesible, two firmware images could be stored in the full 32K capacity of the chip. A ROM switching key to be implemented on the board, to switch the higher or lower part of the chip to be "visible" (A15) at boot.
The system communicates with a terminal via USB serial connection using the included ACIA device and its UART capability, coupled with an FT23 header. Terminal serial port settings: 115200 baud, 8n1, no hardware handshake.
- Run ASSIST09 and Extended BASIC
- Write basic program (asm)
- Cross-compile on host machine
- Easy program transer via ASSIST09 Load (S19)
- Use of high level C code (CMOC)
- Breadboard prototype running
- Revision 1 completion and PCB fabrication
- Extended addressing ("A" - four internal devices, "B" - four external devices)
- Expansion board with easy coupling
- 28C16-based address decoder
- Expansion card: Am9511 card (Am9511, 3MHz osc, 5to12Vbuck)
- Expansion card: Tape interface
- Expansion card: TMP68681 / 2x RS232 / 115200 bps (own osc)
- Expansion card: Ethernet adapter (ENC28J60)
- Expansion card: SAA1099 + TDA2822 audio interface
- Expansion card: VGA and PS/2 (Arduino)
- Expansion card: VGA and PS/2 (MC6845/HD6321)
- Expansion card: VGA (EF9367)
- Expansion card: Keyboard controller (XT, AT, PS/2, USB)
The schematics and PCB design is made with KiCad