Mikroprozessor Boards/6809
Inhaltsverzeichnis
6809/6309 Mikroprozessor Board
Es handelt sich hier um einen Einplatinencomputer für die Motorola CPU 6809. Die baugleiche CPU 6309 von Hitachi läuft ebenso problemlos auf diesem Board. Das Board wurde von Wichit Sirichote entwickelt und wird von ihm über eBay vertrieben. Alle Bauteile auf dem Board sind gut erhältlich, so dass Ersatzeile kein Problem darstellen.
Die Doku zu dem Board ist tadellos, wie bei allen Boards von Wichit Sirichote. Die Systemsoftware ist als Source Code verfügbar und kann so einfach modifiziert und erweitert werden.
Edilbert Kirk hat einen sehr guten Cross Assembler (BS9) entwickelt, der für beide CPU's (6809 und 6309) arbeitet und ebenfalls im Sourcecode zur Verfügung steht. Der BS9 kann auch Motorola S-Record Format emittieren. Dieses dateiformat kann direkt in das Board geladen werden über die serielle Schnittstelle (zb. über Tera-Term). So kann man ganz bequem die Software an einem PC entwickeln und anschließend direkt in das Board laden, um sie zu testen.
Firmware
Die Firmware auf dem Board wurde von Wichit Sirichote entwickelt und wird sehr gut supported. Selbst komplexe Bugs werden in wenigen Tagen gefixed.
Die Firmware ist als Sourcecode erhältlich. Man findet ihn auf der Homepage. Damit kann man selbst Erweiterungen einbringen oder Anpassungen machen. Die Firmware ist fast komplett in C geschrieben, nur der Startup Code und die Systemvektoren sind in einem in Assembler geschriebenen Modul.
Die Toolchain um die Firmware zu kompilieren ist ebenfalls auf der Homepage von Wichit Sirichote erhältlich. Es ist ein Small-C Compiler der direkt 6809 Assembler Code auswirft. Dazu kommt der AS9 Assembler, der den Code vom C Compiler übersetzt in ein HEX File für das EPROM Programmiergerät.
Die Toolchain Binaries laufen leider nur in einem MSDOS System. Aber die Toolchain ist ebenfalls als Sourcecode vorhanden (Plain C). So kann man sich selbst Binaries für beliebige Zielsysteme generieren. Ich habe das mit Pelles-C gemacht und es läuft prima auf meinem Windows 10/64 PC als Cross-Compiler.
Hardware Erweiterungen
SD-IO auf Lochraster
Die Hardware des Board ist sehr gut dokumentiert so dass man sehr leicht Erweiterungen basteln kann. So kann ich auf die Idee, eine SD Karte an das Board anzuschließen (siehe digital I/O Karte mit SD-Karte).
Das 16 polige LCD-Display Port ermöglicht den direkten Anschluss eines optionalen HD44780 kompatiblen Displays. Die Board Firmware unterstützt auch die Verwendung eines LCD Display und zeigt auch eine Einschaltmeldung nach einem Reset. Das Display Port kann aber auch für eigene Zwecke verwendet werden. An dem Port liegt der Datenbus (D0 bis D7), zwei Adressleitungen (A0 und A1) sowie ein fertig aus-kodiertes IO-Select Signal an. Damit kann man sehr einfach eine eigene IO Karte (zum Beispiel das SD-IO) anschließen.
SD-IO von Nils Eilers als Print
Der 40 polige Erweiterungsport führt alle relevanten Signale der CPU heraus. Dazu gehört der ganze Adressbus (A0 bis A15) sowie der Datenbus und der Controlbus. Hier kann man sehr einfach seine eigene Hardware anschließen und das System beliebig erweitern.
Das SD-IO Board von Nils Eilers enthält einen GAL für die Adressdekodierung und Clock Erzeugung für das SD Board. Dazu enthält es TTL für IO (D-FF + Input Driver) sowie einen Baustein für die Pegelanpassung zur SD Karte.
Der Vorteil eines SD-IO am Erweiterungsport: das LCD Port ist wieder frei, man kann also SD Karte UND LCD Display zugleich haben.
Vielen Dank an Nils für das wunderschöne Board!
Erweiterung des ROM auf 30KB
Die Hardware des Board teilt den Speicher 32 KB RAM, 16 KB ROM für Firmware und 16 KB for, - IO!
Zum Glück hat Hr. Sirichote wohl schon an Erweiterungen gedacht:
- auf dem Board ist ein 32KB EEPROM 27256
- das Signal A14 ist am EEPROM angelegt
- die Adressierung übernimmt ein GAL-16v8
- am GAL liegen A0, A1 und A10 bis A15
Aufgrund dieser flexiblen Hardware kann man die Memory Map ganz leicht verändern, ohne dass eine Änderung an der Hardware selbst notwendig wird. Mit den Adressleitungen A10 bis A15 kann man Blöcke ab einer Größe von 1KB selektieren. Innerhalb des 1KB Block hat man A0 und A1, also 4 Speicherzellen, die adressiert werden können. Diese 4 Byte wiederholen sich dann über den ganzen Speicherblock.
Es sind einige IO Adressen belegt:
- INP/OUT: ACIA (serielle Kommunikation)
- OUT: 7 Segment Display (Segment)
- OUT: Tastatur (Spalten) + 7 Segment Display (Zeichen)
- INP: Tastatur (Zeile)
- OUT: Debug Port
- INP/OUT: LCD Port
Man bringt nicht alle IO in einen 1KB Block und auch nicht in zwei Blöcke, weil nur 4 Adressen pro Block selektierbar sind. Aber nur diese IO, die lesend zugegriffen werden (INP), müssen einen eigenen Block haben. Da man auf den ROM nur lesend zugreift, können die anderen IO (OUT) sich den Speicher mit dem ROM teilen. Man kann alle INPUT Ports in 2 Speicherblöcke legen. Dadurch bleiben für den ROM Bereich ganze 30KB übrig. Der ROM Speicher kann so nahezu verdoppelt werden, ohne dass die Hardware selbst verändert wird.
Die neue Speicher-Map:
- 0000-7FFF ... System RAM (32 KB)
- 8800-FFFF ... System ROM (30 KB)
- 8000-87FF ... IO (input / output)
- 8800-8FFF ... IO (output only)
Vielen Dank an Wichit Sirichote für das Board und die Firmware.
Vielen Dank an Edilbert für seinen 6309 Assembler.
Vielen Dank an Edilbert für die Verbesserungen in der Firmware.
Anbei sind alle Dateien für die 30 KB Version des 6809 Board. Es ist die gepatchte Firmware im Source Code (und binaries als ROM) sowie die GAL Datei (+ binaries als Jedec)
Specifications
- CPU Motorola 6809 oder Hitachi 6309 (DIL-40 Sockel)
- Speicher: 32kB RAM, 16kB EPROM
- Adressdekodierung über einen GAL16V8D
- Display: 7-Segment LED -- 6 Zeichen
- Debugging LED: 8 LED an GPIO1 (Adresse $8000)
- Display: optional LCD Anzeige (HD44780)
- Tastatur: 36 Tasten
- RS232 Port: 6850 ACIA 19200 bd 8n1
- Bus Interface
- Ticker: 10ms Takt (100 Hz)
- Erweiterungs-Port: 40-pin header
- Board Maße: xx x xx mm
Weiterführende Links
Dokumentation
- Wichit Sirichote - 6809 Kit - Quickstart
- Wichit Sirichote - 6809 Kit - Schaltplan
- Wichit Sirichote - 6809 Kit - Programming Book
- Hitachi 6309 CPU -- Technical Reference
- SD-IO Print von Nils Eilers (Schematic)
- Source + Binaries für 30KB ROM Änderung, vielen Dank an Edilbert und Hrn. Wichit