NitrOS9-Board: Unterschied zwischen den Versionen
Tw (Diskussion | Beiträge) (→Ein eigenes Computer System) |
Tw (Diskussion | Beiträge) (→Die 8 Bit CPU) |
||
| Zeile 53: | Zeile 53: | ||
=== Die 8 Bit CPU === | === Die 8 Bit CPU === | ||
| − | Die Wahl der CPU ist Motorola 6809 | + | Die Wahl der CPU ist nicht so schwer, wenn man 8 Bit als Einschränkung möchte. Die Motorola 6809 und die W65C816 sind aus meiner Sicht die am weitesten entwickelten CPU Typen. Letzten Endes hat die 6809 gewonnen. Das schlichte Konzept gepaart mit ausgefeilten Adressierungsmodi haben einen unvergleichlichen Charme. |
| + | Motorola hat die 6809 an die Firma Hitachi lizensiert. Bei Hitachi heißt diese CPU 6309. Nun hat Hitachi keine 6809 Kopien produziert, sondern die 6809 weiterentwickelt und sehr stark verbessert. Mehr Register, kombinierbar zu einem 32 Bit Register, 32/16 Division in Hardware, 16x16 Bit Multiplikation in Hardware, zahlreiche neue Befehle und nicht zuletzt bestehende Befehle stark optimiert! | ||
| + | |||
| + | Die Hitachi 6309 ist ganz klar die bessere 6809. Dabei ist sie praktisch zu 100% kompatibel. Durch ein Flag kann man die 6309 in einen 6809 kompatiblem Modus versetzen. Von der Hardware her ist die 6309 Pin kompatibel, man kann eine 6309 direkt in einem System verwenden, wo normalerweise eine 6809 drin ist. | ||
| + | |||
| + | Die 6309 gibt es in verschiedenen Versionen. Es gibt Typen die mit einem Takt von ein, zwei oder drei MHz laufen. Und es gibt die Typen P und EP, der Unterschied ist die Taktsteuerung. Die P Typen erzeugen den Takt intern aus einem 4 fachen Grundtakt (12MHz für eine 3MHz 6309P). Die EP Typen brauchen einen externen Takt, den man mit externer Elektronik bilden muss. Bei beiden Typen steuert die CPU die äußere Beschaltung mit zwei Taktleitungen: E und Q. Die Takte E und Q sind 90° phasenverschoben. Aber im Grunde genügt meist das E Signal für eine externe Beschaltung. Das E Signal ist ähnlich dem PHI2 bei der 6502 CPU, man erkennt aus dem Signal die Gültigkeit der Daten am Adressbus. | ||
| + | |||
| + | |||
| + | Basierend auf der Doku des W65C02 Board für die ByteMachine, habe ich je ein Board für die CPU 6309P und 6309EP gemacht. Beide Boards laufen tadellos an dem ByteMachine Mainboard. | ||
| Zeile 63: | Zeile 71: | ||
<br /> | <br /> | ||
| + | |||
=== CPU Board === | === CPU Board === | ||
Version vom 29. April 2022, 14:48 Uhr
Inhaltsverzeichnis
Ein eigenes Computer System
Seit jeher schon wollte ich mal mein eigenes Computer System aufbauen. Es soll einfach bleiben, daher kommt nur eine 8-Bit CPU in Frage. Die Verwendung moderner, heute noch erhältlicher Bausteine ist sinnvoll. Das schließt auch GAL und CPLD mit ein, die hat es zur Zeit der 8 Bit CPU's auch schon gegeben, ein FPGA hingegen scheint mir überzogen.
Das Board soll eine leistungsfähige Software bekommen, ein kleines Betriebssystem, sodass man mit dem Board auch etwas anfangen kann.
Das CPU Board ist das Kernstück von jedem Computer System. Bisher habe ich mich nie drüber getraut eines zu entwickeln. Aber eines Tages habe ich ein Projekt im GITHUB entdeckt, das meine Fantasie beflügelt hat: Die ByteMachine
Die ByteMachine
Im GITHUB gibt es das Projekt die ByteMachine von dem GIT User c0pperdragon. Die ByteMachine besticht durch ihre grandiose Einfachheit kombiniert mit enorm großer Flexibilität.
Die ByteMachine trennt CPU vom 'Rest' eines Computer Systems:
- CPU Board
- Mainboard: SRAM, EEPROM, Taktgenerator, Reset Signal, 8 LED und 8 digitale Eingänge
- IO Board: serielles Port und SD Karte
Jede 8 Bit CPU benötigt dieselben Komponenten für ein lauffähiges System. Daher macht es Sinn, die gemeinsamen Komponenten auf ein eigenes Board zu legen. Das CPU Board macht nur die Anpassung für das Mainboard der ByteMachine. Das IO Board ist optional und wird ggf. auf das Mainboard gesteckt.
Das Mainboard der ByteMachine hat zwei Schnittstellen, eine zum CPU Board und eine zum IO Board. Das CPU Board sowie das optionale IO Board werden einfach auf das Mainboard aufgesteckt. Man kann die CPU aber auch einfach in ein Steckbrett setzen und die Verbindung zum Mainboard über Steckdrähte herstellen.
Die Schnittstelle zwischen CPU Board und Mainboard ist eine Stiftleiste mit 34 Pins. Über die Schnittstelle wird das CPU Board versorgt mit Strom, Takt und Reset. Das CPU Board kontrolliert die restlichen Komponenten über die Schnittstelle. Jede CPU benötigt eine minimale Anpassung um Kompatibilität zur Mainboard Schnittstelle herzustellen.
Das IO Board ist optional. Es bietet eine serielle Schnittstelle und den Anschluss einer SD Karte. Allerdings hat das IO Board keinerlei 'Intelligenz': Sowohl die serielle Schnittstelle als auch die SD Karte werden nur über digitale IO getrieben (Soft UART und SD-Card Bit-Bang). Das IO Board wird einfach auf das Mainboard aufgesteckt, dazu dienen sie Stiftleisten auf der rechten Seite: 8 digitale Ausgänge, 8 digitale Eingänge und Stromversorgung.
Für die ByteMachine existieren 4 CPU Boards im GITHUB:
- W65C02 mit 10 bis 16 MHz
- W65C816 mit 10 bis 16 MHz
- Z84C00
- i8088
Es existieren Schaltbilder, Doku und Platinen Layout für jedes CPU Board. Außerdem gibt es im ROM des Mainboard für jede CPU ein Testprogramm. Das Testprogramm zeigt über die LED des Mainboard an, dass die Hardware richtig funktioniert. Es braucht nur ein EPROM am Mainboard, denn jede CPU hat ihren eigenen Speicherbereich in dem 512K großen EPROM Speicher.
Wenn man eine neue CPU an das Mainboard der Bytemachine anschließen möchte, dann genügen ein Steckbrett und ein paar Verbindungsdrähte. Das macht dieses Konzept so wunderbar flexibel.
Die 8 Bit CPU
Die Wahl der CPU ist nicht so schwer, wenn man 8 Bit als Einschränkung möchte. Die Motorola 6809 und die W65C816 sind aus meiner Sicht die am weitesten entwickelten CPU Typen. Letzten Endes hat die 6809 gewonnen. Das schlichte Konzept gepaart mit ausgefeilten Adressierungsmodi haben einen unvergleichlichen Charme.
Motorola hat die 6809 an die Firma Hitachi lizensiert. Bei Hitachi heißt diese CPU 6309. Nun hat Hitachi keine 6809 Kopien produziert, sondern die 6809 weiterentwickelt und sehr stark verbessert. Mehr Register, kombinierbar zu einem 32 Bit Register, 32/16 Division in Hardware, 16x16 Bit Multiplikation in Hardware, zahlreiche neue Befehle und nicht zuletzt bestehende Befehle stark optimiert!
Die Hitachi 6309 ist ganz klar die bessere 6809. Dabei ist sie praktisch zu 100% kompatibel. Durch ein Flag kann man die 6309 in einen 6809 kompatiblem Modus versetzen. Von der Hardware her ist die 6309 Pin kompatibel, man kann eine 6309 direkt in einem System verwenden, wo normalerweise eine 6809 drin ist.
Die 6309 gibt es in verschiedenen Versionen. Es gibt Typen die mit einem Takt von ein, zwei oder drei MHz laufen. Und es gibt die Typen P und EP, der Unterschied ist die Taktsteuerung. Die P Typen erzeugen den Takt intern aus einem 4 fachen Grundtakt (12MHz für eine 3MHz 6309P). Die EP Typen brauchen einen externen Takt, den man mit externer Elektronik bilden muss. Bei beiden Typen steuert die CPU die äußere Beschaltung mit zwei Taktleitungen: E und Q. Die Takte E und Q sind 90° phasenverschoben. Aber im Grunde genügt meist das E Signal für eine externe Beschaltung. Das E Signal ist ähnlich dem PHI2 bei der 6502 CPU, man erkennt aus dem Signal die Gültigkeit der Daten am Adressbus.
Basierend auf der Doku des W65C02 Board für die ByteMachine, habe ich je ein Board für die CPU 6309P und 6309EP gemacht. Beide Boards laufen tadellos an dem ByteMachine Mainboard.
- UC-Cover-99.jpg
CPU Board
Die Hardware
Das Betriebssystem
NitrOS9
News
- 29.04.2022 -- Layout des OS9 Board
- 13.03.2022 -- Aufbau und erste Versuche mit der ByteMachine
Downloads