www.blafusel.de

  Home  |   Privat  |   Impressum  |   Bücher  |   Computer  |   Mikrocontroller  |   Misc  |   OBD  |   Forum

zonak

Einstieg in die Mikrocontrollertechnik mit AVR ATmega

Inhalt

My first µC
Die Spannungsversorgung
Der Mikrocontroller
Der Programmieradapter
Die Software
Der erste Test
LED + Taster
Abschluß

My first µC

Sie wollen in die Welt der Mikrocontrollertechnik (auch MC, µC oder Microcontroller genannt) einsteigen und wissen nicht wie? Kein Problem!

Dieser Beitrag entstand vor allem aus einem Grund: In zahlreichen Foren zum Thema findet man immer wieder die Frage, wie man einsteigen kann, was man braucht und wie sich ein spezielles Projekt verwirklichen läßt. Die Antworten sind immer wieder die gleichen: Meistens wird der Fragesteller mit einer Vielzahl an gut gemeinten, in meinen Augen aber zu ambitionierten, Tips überschüttet. Ich denke, der Einstieg sollte einfach gehalten werden. Anschließend kann man immer noch expandieren und dabei das bis dahin gelernte Wissen mitnehmen.
Geht es darum, daß ein unbedarfter fragt, wie er sein individuelles Projekt verwirklichen soll, liegt der Knackpunkt meistens da, daß der Fragesteller keine Ahnung von der Materie hat (was er auch zugibt und was nicht schlimm ist) und nun aber auf eine Antwort hofft, bei der entweder jemand anderes die Arbeit für ihn macht oder jemand in wenigen Sätzen seine Lösung komplett beschreibt. Zweites ist nur selten möglich, für erstes wird sich nur selten jemand finden. Es wird also darauf hinaus laufen, selbst zu lernen, wie es geht. Das ist oft mühsam und zeitaufwendig, wird aber mit einem Ergebnis honoriert, auf das man dann Stolz sein kann.

Diese Einführung ist bewußt einfach gehalten. Sie soll keine Kenntnisse im Bereich Elektronik oder Programmierung vermitteln. Dafür gibt es genügend Fachliteratur und Webseiten. Es geht auch nicht darum, den ultimativen Einstieg aufzuzeigen, der auch den Profi befriedigt und Sie zu einem Profi macht. Das Projekt soll dafür aber Narrensicher sein: Alles, wirklich alles, was Sie für Ihren ersten MC benötigen, wird hier vorgestellt. Anschließend haben Sie Ihr erstes Erfolgserlebnis und wissen, ob Sie weiter machen wollen (und dann Ihre Ausstattung ggf. auch bereit sind zu erweitern). Das einzige, was Sie vorerst an Equipment benötigen sind

Diese Ausstattung benötigen Sie immer. Auch wenn Sie sich später ausführlicher mit Mikrocontrollern befassen wollen oder sich anderen elektronischen Aufgaben widmen. Es handelt sich also um keine unnütze Ausgabe.

Im Text finden Sie immer wieder Weblinks zu Shops, wo Sie die genannten Artikel kaufen können. Dies ist keine Führsprache für einen bestimmten Anbieter. Vielleicht bekommen Sie den Artikel woanders auch (billiger). Es soll Ihnen einfach nur die Beschaffung vereinfachen. Oft werden die billigsten Artikel gelistet. Gerade bei Werkzeug etc. lohnt es sich aber oft, wenn man (teurere) Qualitätsmarkenprodukte kauft. Für alle im folgenden benötigten Elektronikteile gibt es einen fertigen Warenkorb, so daß Sie wirklich alle Teile zusammen haben, die Sie für einen Nachbau des gesamten Workshops benötigen. Zum Zeitpunkt des ersten Entwurfs dieses Workshops kosteten diese Teile zusammen lediglich € 6,46.

In diesem Workshop wird bewußt auf die Verwendung eines fertigen Experimentierboard verzichtet. Es gibt zahlreiche Vertreter. Bekannt sind vor allem das preiswerte von Pollin, und der Klassiker wie das STK500 von Atmel. Aber auch viele private User haben ähnliches entwickelt. Von mir stammt ein einfaches Board und auch ein recht umfangreiches, welches bei Elektor 5/2006 vorgestellt wurde. Die Boards sind alle praktisch und bieten zahlreiche Funktionen, die hier im Workshop für die ersten Schritte aber nicht benötigt werden. Sobald es etwas mehr sein darf, würde ich das Evaluations-Board von Pollin empfehlen, da es unschlagbar günstig ist. Mit dem Mini-Mega-Board von Elektor bekommt man ein kompaktes Board, welches sich auch gut für die ersten eigenen Projekte eignet, die man in ein Gehäuse einbauen will und wo nicht mehr möglichst viele Steckplätze für diverse Prozessortypen benötigt werden. Zudem ist hier der einfache Anschluß eines LCDs bereits vorgesehen. Will man nur einen allerersten Einstieg (und um den geht es hier), bieten die Boards aber immer zu viel nebensächliches und kosten mehr als die hier gezeigte Lösung.

Die Spannungsversorgung

Es wird eine primitive, aber ausreichende Spannungsversorgung auf dem Steckbrett aufgebaut. Wenn Sie mehr zur Spannungsversorgung wissen wollen, lesen Sie meinen Beitrag dazu.

Diese Schaltung genügt vollends:

7805 Spannungsversorgung ATmega8 Das Steckernetzteil stellt eine einfache, meist nur schlecht oder gar nicht geregelte Spannung bereit, die für einen MC zu ungenau ist. Deshalb wird die Spannung stabilisiert. Schneiden Sie ggf. vom Ausgangskabel des Steckernetzteils den Niedervoltstecker ab. An den beiden Adern liegt Plus und Minus (Masse/GND). Stellen Sie ggf. die Ausgangsspannung am Steckernetzteil auf 9 V.

7805 Spannungsversorgung ATmega8 Auf dem Steckboard platzieren Sie den 7805 und die weiteren Bauteile. Achten Sie auf die Polung der LED: kurzes Bein/abgeschrägte Gehäuseseite = Kathode (Minus).
Verbinden Sie den mittleren Pin des 7805 mit Masse vom Steckernetzteil und den linken Pin mit der Anodenseite der Diode (der Strich auf dem Diodengehäuse wird wie der Querstrich im Schaltbild ausgerichtet).

Die 5 V Ausgangsspannung des 7805 und Masse wird an die waagerecht durchgehenden Kontaktleisten am Rand des Experimentierboards gelegt. Achten Sie darauf, daß bei den meisten Boards diese Stege nicht durchgängig, sondern meistens auf der Hälfte der Boardlänge unterbrochen sind.
Wenn Sie jetzt die Ausgänge des Steckernetzteils mit dem Aufbau verbinden und das Steckernetzteil einstecken, muß die LED leuchten.

Diese Spannungsstabilisierung lassen Sie stets aufgebaut.


Der Mikrocontroller

Zum Einsatz kommt ein ATmega8-16 DIP von Atmel. Das Datenblatt ist englischsprachig (wie bei fast allen Datenblättern, da müssen Sie einfach mit leben) und als PDF downoladbar. Die AVRs haben den Vorteil, daß sie einfach zu programmieren sind, zahlreiche Funktionen integriert haben, eine große Akzeptanz besitzen und preiswert sind. Der mega8 hat zudem den Vorteil, daß er Pinkompatibel zum ATmega168 ist. So können Sie von kleinen Projekten ganz bequem auf größere expandieren. Beachten Sie aber, daß Pinkompatibel niemals heißt, daß die µC auch Codekompatibel sind. Der Sourcecode muß für den jeweiligen Prozessor passend (minimal) angepaßt und neu übersetzt (compiliert) werden.

Der Aufbau ist relativ einfach:

ATmega8 Einstieg Es wird auf einen externen Quarz verzichtet und der interne Taktgenerator mit 1 MHz wird genutzt. Die Stiftleiste ISP dient der Programmierung des Prozessors. C3 ist ein Abblockkondensator und muß möglichst dicht an Pin 7 und 8 des ATmega platziert werden. Für die ersten einfachen Experimente steht ein Taster und eine LED zur Verfügung. Der Taster benötigt keinen Pull-Up Widerstand, da der ATmega intern einen aktivieren kann.

ATmega8 Einstieg Noch ist der MC nicht in der Lage, ein Programm auszuführen. Die LED wird also dunkel bleiben. Sie müssen erst ein Programm erstellen und dies in den Prozessor übertragen (brennen).

Der Programmieradapter

AVRs werden per In Sytem Programming (ISP) mit dem Programmcode beschrieben. Auf dem PC erzeugen Sie mit einem Compiler und einer Programmiersprache die Maschinenbefehle, die der µC dann abarbeiten kann. Vom PC müssen die Daten dann in den µC übertragen werden, wozu ein Adapter benötigt wird. Hier wird der einfachste Adapter vorgestellt, der denkbar ist. Dieser ist wirklich nur für die ersten Schritte geeignet und sollte später durch eine hochwertigere Schaltung oder einen aktiven Brenner (bspw. mit JTAG) ersetzt werden.

ISP Adapter Der Adapter besteht nur aus einem 25-poligen männlichen Sub-D Stecker, der über ein paar Widerständer und etwas Kabel mit einer fünfpoligen Buchsenleiste verbunden ist. Diese Buchsenleiste wird auf die ISP-Pfostenleiste am ATmega gesteckt (Polung beachten, so daß die einzelnen Datenleitungen zueinander passen), wobei der dort vorhandene Pin für +5 V unbenutzt bleibt.


ISP Adapter Angeschlossen wird der Adapter dann an den parallelen Druckerport des PCs, wofür ggf. noch ein Verlängerungskabel sinnvoll ist.

Verfügt Ihr Rechner aus Geiz-ist-geil-Gründen nicht mehr über einen Parallelport, können Sie diesen preiswert nachrüsten: 1x Parallel & 2x Seriell - PCI Karte. Auch serielle Anschlüsse werden Sie sicherlich bei späteren Experimenten mit einem µC benötigen und hier handelt es sich um echte RS232 Ports - wesentlich zuverlässiger und streßfreier als jeder USB-Konverter.


Die Software

Es artet in Glaubenskriegen aus, wenn man eine Empfehlung für eine bestimmte Programmiersprache gibt. Jeder hat seinen Favoriten. Ich bevorzuge C. Das gibt's kostenlos und ist elegant. Hören Sie nicht auf die Assembler-Jünger, die meinen, daß man nur in Assembler einen MC ordentlich programmieren kann oder nur so wirklich lernen kann, wie ein MC intern tickt - das interessiert eigentlich keinen mehr heutzutage und auch ohne dieses Wissen kann man einen MC gescheit nutzen, programmieren und verstehen. Diese Einstellung zur Notwendigkeit von Assemblerkenntnissen ist antiquiert und würden die Anhänger nicht Ihr Gesicht vor sich und denen verlieren, denen sie so oft Assembler angepriesen haben, täten sie es sich auch eingestehen. Wer mit Assembler glücklich wird, soll es werden. Für Neueinsteiger ist das nichts - oder meinen Sie, nur wer einen Motor zerlegen und reparieren kann, ist fähig Auto zu fahren? Sie können einen MC in vielen Hochsprachen programmieren: C, Basic, Pascal usw. Es ist völlig egal, womit Sie anfangen, der Code wird auf dem Prozessor annährend gleich schnell ausgeführt und erst wenn es um größere Projekte geht, treten die Unterschiede deutlicher hervor. Haben Sie erst einmal eine Sprache verstanden, können Sie später immer noch wechseln, denn das Grundprinzip beim Programmieren ändert sich nicht. Weil es so einfach ist, wird hier BASCOM-AVR genutzt. Die Demoversion kann bis zu 4 KB Code generieren, also die Hälfte eines ATmega8 füllen. Das genügt für die ersten Schritte.

  • Laden Sie das Demopaket von BASCOM-AVR herunter und installieren Sie es wie gewohnt.
  • Laden Sie die zwei Demoanwendungen für diesen Einstiegsworkshop herunter und entpacken Sie die Dateien in einen neuen Unterordner des BASCOM-AVR Installationsordners.
  • Starten Sie BASCOM-AVR
  • Wählen Sie Options/Programmer und stellen Sie beim Listenfeld Programmer STK/200/STK300 Programmer ein. Dies ist nur einmalig notwendig. OK. BASCOM-AVR

Der erste Test

  • Verbinden Sie die Spannungsversorgung mit dem Mikrocontrolleraufbau.
  • Verbinden Sie den PC über den ISP-Adapter mit dem ISP Anschluß am Mikrocontrolleraufbau
  • Starten Sie ggf. BASCOM-AVR.
  • Wählen Sie File/Open und öffnen Sie die Datei led1.bas aus dem gleichnamigen Verzeichnis. BASCOM-AVR
  • Wählen Sie Program/Compile. Der Compiler sollte fehlerfrei durchlaufen. Fehlerausgaben werden ansonsten am unteren Fensterrand aufgelistet.
  • Wählen Sie Program/Send to chip/Program.
  • Im neuen Fenster muß im Listenfeld Chip der Eintrag ATmega8 stehen, wenn Ihr Aufbau korrekt erkannt wurde. BASCOM-AVR

  • Rufen Sie im Programmierfenster den Menüpunkt Chip/Autoprogram auf. Das Programm wird nun in den Controller übertragen.
  • Die einfache ISP-Schaltung sorgt dafür, daß die Reset-Leitung permanent aktiv ist. Deshalb müssen Sie den ISP-Adapter vom Mikrocontrolleraufbau abziehen, damit das Programm ausgeführt wird.
  • Das Programm sorgt dafür, daß die LED am µC endlos blinkt. Sie ist jeweils eine halbe Sekunde aus und eine halbe Sekunde an.
  • Herzlichen Glückwunsch!

LED + Taster

Nun können Sie auch gleich das zweite Programm ausprobieren und so den Taster in die Bedienung einbinden:
  • Verbinden Sie die Spannungsversorgung mit dem Mikrocontrolleraufbau.
  • Verbinden Sie den PC über den ISP-Adapter mit dem ISP Anschluß am Mikrocontrolleraufbau
  • Starten Sie ggf. BASCOM-AVR.
  • Wählen Sie File/Open und öffnen Sie die Datei taster.bas aus dem gleichnamigen Verzeichnis.
  • Wählen Sie Program/Compile. Der Compiler sollte fehlerfrei durchlaufen. Fehlerausgaben werden ansonsten am unteren Fensterrand aufgelistet.
  • Wählen Sie Program/Send to chip/Program.
  • Rufen Sie im Programmierfenster den Menüpunkt Chip/Autoprogram auf. Das Programm wird nun in den Controller übertragen.
  • Ziehen Sie den ISP-Adapter vom Mikrocontrolleraufbau ab, damit das Programm ausgeführt wird.
  • Das Programm sorgt dafür, daß die LED am µC jedesmal zehnmal blinkt, sobald Sie den Taster gedrückt haben.

Abschluß

Hiermit endet der kleine Workshop. Sie haben nun erfolgreich einen Mikrocontroller aufgebaut und programmiert. Damit haben Sie einen Einblick bekommen, wie einfach das geht und hoffentlich haben Sie jetzt Appetit auf mehr. Auch mit diesem einfachen Aufbau können Sie noch eine Reihe weiterer Experimente starten. Vielleicht wollen Sie aber nun auch ein konkretes Projekt angehen. Dann hilft Ihnen vielleicht mein einfaches I/O-Board oder eins der bereits oben angesprochenen Experimentierboards. Ein typisches Anwendungsgebiet für MCs sind kleine Roboter. Wie wäre es mit dem Asuro?

Wollen Sie Ihr Wissen nun vertiefen, empfehle ich Ihnen mein Buch zum Thema: AVR - Hardware und C-Programmierung in der Praxis.

Eine kleine Sammlung interessanter Webseiten: