Microcontroller

Translate from German into English (some links may be mistranslated, then turn back to the original site): 

Jahrelang hatte ich vorgehabt, mich endlich für mit dem Thema Microcontroller zu beschäftigen. Anspruchsvolle Selbstbauprojekte sind ohne Controller fast nicht mehr denkbar. Sie vereinfachen viele Ideen, aber aller Anfang ist leider schwer, und mühsam, und ich fand ständig Gründe, nicht anzufangen...

Zunächst stand die wichtigste Entscheidung an: welche Controller-Linie soll es sein? Die Fülle an verschiedenen Systemen ist fast unüberschaubar. Also: recherchieren - wochenlang. Dann die Entscheidung: es sollten die modernen AVR-RISC-Controller der Firma ATMEL sein! Zunächst habe ich ein Experimentierboard gebastelt.

Fig. 1:Experimentier-Board mit Netzteil, seriellen und parallelen Portanschlüssen

Fig. 2:Die Steckplatte mit ATMEGA8 Controller, ext. Quarzgenerator (8 MHz) und serieller Schnittstelle (MAX232) für das "Debugging"

Fig. 3:Konnektoren zu paralleler und serieller Schnittstelle des PC

Ich habe in diversen Foren recherchiert und unzählige Webseiten zum Thema gelesen - danach habe ich Abstand davon genommen, in Assembler programmieren zu wollen. Eine Hochsprache mit möglichst vielen Bibliotheken muss her. Ich will ja das Rad nicht neu erfinden. Und die Entwicklung soll schnell gehen. Die Lösung: BASCOM AVR - eine komplette Entwicklungsumgebung einschl. Programmer, Simulator, Terminal, und, und... Ist zwar BASIC (...), aber optimiert für die ATMEL-Risc-Prozessoren. Der Compiler hat angeblich nur geringen Overhead. Für den Anfänger genau das Richtige; die letzten Bits kann ich dann immer noch suchen... Der holländische Hersteller der Entwicklungsumgebung bietet eine Demo-Version zum Download an, mit der man schon richtig loslegen kann.

Die ersten Versuche sind erstaunlich problemlos gelaufen: die obligatorische Blinkschaltung, einen UART-Repeater, diverse Interrupt-Experimente. Vom enormen Befehlsumfang des Compilers bin ich voll begeistert (erinnert mich ganz stark an GFA-Basic aus uralten ATARI-Zeiten). Manches, wobei man sich in Assembler die Finger brechen würde, ist gaaaanz einfach!

Sobald das erste Projekt fertig ist, werde ich es an dieser Stelle präsentieren (die anderen noch nicht abgeschlossenen Projekte müssen einmal wieder liegen bleiben; bei mir wird anscheinend nie etwas richtig fertig).

Hier der Link zu einer Seite, die mir die ersten Gehversuche stark erleichtert hat.

Für ein ordentliches "Händling" habe ich dann ein Platinchen erstellt, dass die Programmierung (über den Parallelport) erleichtert. Nebenbei ist noch ein bidirektionelles RS232-Interface vorhanden. Natürlich beherrscht der AVR "In-Circuit-Programming" - somit kann der Controller direkt in der Zielschaltung programmiert werden: sehr bequem.

Fig. 4:Programmierung mittels Parallelport ist heute meist obsolet

Hier das zugehörige Schaltbild. Ich finde besonders den "Online/Offline"-Schalter sehr wichtig: damit lässt sich der Microcontroller komplett vom PC trennen. Wichtig insbesondere dann, wenn die ISP-Anschlüsse noch in anderer Funktion in der Zielschaltung Verwendung finden. Ohne diesen Schalter kam es immer wieder vor, dass die Controllerschaltung nicht lief, weil ein (zufälliges) Parallelport-Signal dazu führte, dass z.B. die RESET-Leitung aktiv war. Dann war das Abziehen des Steckers angesagt, später wieder das Anstecken. Der Schalter sorgt für Ordnung.


Inzwischen haben moderne Rechner kaum noch die sog. "Legacy"-Anschlüsse wie Parallel- und Seriell-Port. Intel will diese alten PC-Anschlüsse aus der Hardware verbannen. Dann muss ein USB-Programmer für die Programmierung - geht eh viel schneller! - und ein USB-Adapter für die serielle Emulation her. Letzterer kostet nur einige Euro und funktioniert perfekt.

Fig. 5:So sieht es aktuell (2013) aus.
Links: für die serielle Kommunikation über Pegelwandler und aufgestecktem Seriell-USB-Konverter
Rechts: der USB-Programmer von mcselec.com

nach ganz oben

     Hier Kommentare dazu anschauen bzw. selbst kommentieren!