Was ein Mikroprozessor ist, weiß inzwischen ja wohl jeder. Dagegen ist der Begriff Mikro-Controller den meisten weniger geläufig. Der Grund: Mikro-Controller sind ‘Heinzelmännchen’; sie arbeiten fast immer im Verborgenen: in Videorekordern, Waschmaschinen, Aufzügen, in Spielzeug, Alarmanlagen und sogar in Bohrmaschinen!
Mit Sicherheit gibt es heutzutage bedeutend mehr Mikro-Controller auf der Welt als „reine“ Mikroprozessoren. Was aber ist der Unterschied: Zum Aufbau eines „klassischen“ Computersystems werden mindestens die folgenden Komponenten benötigt:
Ein Mikro-Controller ist die Summe dieser 5 Teile in einem einzigen IC. Daher werden Mikro-Controller oft auch als Ein-Chip-Computer bezeichnet, was den Sachverhalt sehr genau beschreibt: Die gesamte Peripherie eines Mikro-Controllers besteht im Minimalfall aus einer Batterie und einem Quarz.
Durch den massenhaften industriellen Einsatz ist der Preis für Mikro-Controller ziemlich niedrig: Einfache Typen sind bereits für weniger als DM 5.- zu erhalten!
Für den Amateur sind Mikro-Controller prinzipiell nicht weniger interessant als für die Industrie: Die Wahrscheinlichkeit, daß eine selbstgebastelte Schaltung funktioniert, ist umgekehrt proportional zur Anzahl der verwendeten Bauteile.
Es gibt eigentlich nur ein Haupthindernis: Ein Entwicklungssystem für Mikro-Controller kostete bis heute mindestens 1000 DM, davon abgesehen, daß es sowas für ATARIs bis jetzt überhaupt nicht gab.
Doch jetzt, zum Selberbauen in der ST-Computer, gibt es MIDI8031, ein komplettes Entwicklungssystem für die industriell am weitesten verbreitete Mikro-Controller-Familie: Die „80x1x“-er (Bild 2). Und es kostet keine 1000 DM, keine 500 DM, und auch nicht 100 DM, nein: es ist UMSONST, Public Domain! Sie benötigen lediglich die Hardware, die Sie als kompletten Bausatz preiswert selbst herstellen können.
Einige der „80x1x“ besitzen keinen Programmspeicher auf dem Chip (wie etwa der 8031). Diese sind dann keine echten Ein-Chip-Computer, da sie zusätzlich ein ROM oder EPROM benötigen. Manche der Typen sind für Amateure ungeeignet (zum Beispiel der 8051): Ein ROM kann nur bei der Herstellung des Chips programmiert werden, so etwas lohnt sich erst bei hohen Stückzahlen. Typen mit EPROM (8071,80C71 ...) lassen sich mit etlichen handelsüblichen EPROM-Programmiergeräten programmieren. Das ‘C’ im Namen mancher Typen (etwa 80C31) bedeutet, daß es sich um einen CMOS-Typ handelt. CMOS-Typen brauchen nur sehr wenig Strom. Die Verwandtschaft der Familie liegt an zwei Dingen: Zum einen besitzen alle eine minimale gemeinsame Anzahl von Ports, Timern und RAM, zum anderen sind die CPUs aller Typen identisch (Bild 1)! Der Befehlssatz der CPU ist sehr einfach zu erlernen. Trotzdem ist er recht effizient, und vor allem schnell: Für eine 8:!:8-Bit-Multiplikation oder eine 16/8-Bit-Divison benötigen selbst die langsamsten der Familie nur 4 Mikrosekunden! Alle „80x1x“ sind somit Software-aufwärtskompatibel zum 8031. Die zusätzlichen Funktionen der größeren Geschwister des 8031 (sie haben mehr Ports, mehr RAM, ROM oder EPROM, Timer; sie sind schneller; ...) lassen sich durch ein schlaues Software-Konzept ohne Änderungen mit einem Standard-8031 - Assembler nutzen. Doch davon später mehr.
Das Entwicklungssystem MIDI8031 besteht aus 2 Komponenten: Soft- und Hardware. Die Software selbst ist sehr umfangreich, trotzdem aber, wie bereits erwähnt, Public Domain! Hier eine kurze Übersicht:
Software:
Die MIDI8031-Hardware besteht aus einem Mikro-Controller 80C31 (Preis etwa 14 DM), einem maximal 32KB-EPROM (das ein kleines „Betriebssystemchen“) enthält, einer MIDI-Schnittstelle und einem 32KB-RAM. MIDI8031 ist ein kompletter Mikrocomputer! Einige Daten:
Hardware (Name: „MIDI8031“)
80C31 - 8-Bit CMOS-Mikro-Controller:
Der Entwicklungsablauf ist folgendermaßen: Das 8031-Programm wird auf einem ATARI geschrieben. Per ‘Tastendruck’ wird es über MIDI in das RAM des MIDI8031 transferiert, wo es getestet werden kann. Läuft es korrekt, bestehen 3 Möglichkeiten:
Sie brennen das Programm in ein EPROM und ersetzen das Original-EPROM des MIDI8031 durch Ihr eigenes. Oder aber, Sie verwenden Ihr EPROM für eine komplette Eigenentwicklung. Als dritte Alternative kann das Programm in einen Mikro-Controller mit eingebautem EPROM gebrannt werden, (vorausgesetzt, es ist für sein EPROM nicht zu groß), womit Sie sich Ihren persönlichen Ein-Chip-Computer verwirklicht hätten: Er überwacht Ihr Haus, steuert Ihre Modelleisenbahn, Lego, Fischertechnik, weckt Sie morgens (nachdem er den Kaffee gekocht hat). Ihrem Ideenreichtum sind keine Grenzen gesetzt! Besonders durch die eingebaute MIDI-Schnittstelle steht Ihnen mit der MIDI8031-Hardware aber auch die Welt der Musik offen.
Der Ablauf des Projekts besteht aus 3 Folgen:
Teil 1: beschreibt den Aufbau der Hardware und einen Funktionstest.
Teil 2: widmet sich der softwareseitigen Struktur des 8031 und seinen Verwandten. Mit Hilfe der Public-Domain-Entwicklungsumgebung sind Sie so in der Lage, erste kleine, eigene Programme zu entwickeln. Als ‘Appetithappen’ wird in diesem Teil auch die Verwendung eines der interessantesten der beiliegenden Demoprogramme erläutert: ein Sprachsynthesizer mit Pulswandler.
Teil 3: liefert Ihnen das Tor zur Außenwelt, den MIDI8031-Powerport. Jeder der 8 Ausgänge des Portes kann bis zu 20 Ampere schalten. Als Beispiel aus der Praxis demonstriert die dazugehörige Software die Ansteuerung von Schrittmotoren über MIDI.
Die Hardware wurde möglichst einfach gehalten. Die Portpins können an der 20poligen Buchsenleiste abgegriffen werden, die Testanzeige mit den 11 LEDs ist oftmals beim Programmieren recht nützlich. Als zweite Stromversorgung ist eine 9-Volt-Batterie vorgesehen, um den MIDI 8031 auch in ‘netzlosen Zeiten’ zu versorgen. Der 80C31 selbst befindet sich in einem 40poligen Gehäuse. Daten und Adreßbits 0-7 sind gemultiplext und werden vom 74HCT573 wieder getrennt. Normalerweise ist der 8031 nicht in der Lage, Code und Daten zu mischen. Um aber Programme in der Entwicklungsphase im RAM ausführen zu können, bedarf es einiger Gatter. Diesen Job erledigt der 74HCT00. Da die Platine nur einseitig ist, ließen sich einige Drahtbrücken nicht umgehen. Zum Entwurf der Platine wurde das Programm ULTIM ADE. PCB verwendet, das sich vor allem durch ein sehr gutes Preis/Leistungsverhältnis, eine ergonomische Bedienung und durch eine Vielzahl von Ausgabetreibern auszeichnet!
Nicht jeder hat zu Hause einen EPROM-Brenner oder eine „Ätzküche“ für die Platinenherstellung. Daher können Sie folgendes Angebot wahrnehmen: Den komplette Bausatz MIDI8031 mit einer hochwertigen Platine, sämtlichen Bauteilen, einer ausführlichen Aufbauanleitung, dem gebrannten Entwicklungs-System-EP-ROM und einer Diskette mit dem vollständigen Public-Domain-Entwicklungssystem für alle ATARI ST/STE ab 512 KB können Sie beim Autor für DM 85.- (Verrechnungsscheck) oder DM 89.- (Nachnahme) unter folgender Adresse bestellen:
Jürgen Piscol Rastatter Str. 144 7500 Karlsruhe 51
Besteller des Bausatzes erwerben gleichzeitig das Recht, für MIDI8031 geeignete EPROMS zum Selbstkostenpreis brennen zu lassen! Wie das geht, steht in der Anleitung zum Entwicklungssystem.
Der nächste Teil dieser Serie wird sich der Software widmen. Begleitend dazu befindet sich auf einer PD-Disk das vollständige Entwicklungssystem.
Literatur zur Hardware:
Stückliste MIDI8031
IC1: | 80C31 Microcontroller, DIL40 |
1C2: | 74HCT573 8-Bit Latch, DIL20 |
IC3: | 27C256 (32kB) oder 27C64(8kB) EPROM, DIL28 |
IC4: | 51256 oder 43256 oder Vergleichstyp 32kB-RAM, DIL28 |
IC5: | PC900 Optokoppler, DIL6 |
IC6: | 74HCT00 4 NAND-Gatter, DIL14 |
IC7: | 7805 Spannungsregler 5V |
C1: | 220uF/40V, axial |
C2: | 47uF/16V, radial |
C3, C6, C7, C8, C9, C10, C11 | 100nF, Rastermaß 5mm |
C4,C5: | 33pF, Rastermaß 5mm |
C12: | 10uF/16V, radial |
R1,R3,R4,R6: | 150 Ohm |
R2: | 8.2 kOhm |
R5: | 1 kOhm |
R7: | 270 Ohm (R9-R19: 1 kOhm) |
D1,D2: | 1N4003 |
D3: | 1N4148 |
LED1: | Standard-Typ, 5mm (LED2-12 dto.) |
Q1: | Quarz 12.000 MHz |
T1: | Mini-Taster |
CON1: | Buchsenleiste 20 Polig |
(CON2: | Steckerleiste 20 Polig) |
M1,M2: | DIN-Buchse 5 Polig |