AVR-Tutorial: Equipment

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

AVR-Tutorial - Benötigte Ausrüstung

Hardware

Ein Mikrocontroller alleine ist noch zu nichts nützlich.

Damit man etwas damit anfangen kann, braucht man eine Schaltung in die der Controller eingesetzt wird. Dazu werden bei Elektronikhändlern Platinen angeboten, die alles nötige (Taster, LEDs, Steckverbinder...) enthalten, wie z.B. das STK500.

stk500.jpg

Das STK500 kostet ca. 100 Euro. Wer nicht so viel ausgeben möchte, der kann auch selber eine Schaltung aufbauen, die das Programmieren von AVR-Mikrocontrollern ermöglicht. So kompliziert wie das STK500 wird es nicht, es reichen eine Hand voll Bauteile.

Der Mikrocontroller

Die folgende Schaltung baut man am besten auf einem Breadboard (Steckbrett) auf. Solche Breadboards gibt's z.B. bei ELV oder Conrad.

Mega8 Schaltung.gif

Über den Takteingang XTAL1 ist der Mikrocontroller mit dem Quarzoszillator verbunden, der den benötigten Takt von 4 MHz liefert (siehe unten). Achtung: die Pins werden, wenn man den Oszillator mit der Schrift nach oben vor sich liegen hat, von unten links aus abgezählt. Unten links ist Pin 1, unten rechts Pin 7, oben rechts Pin 8 und oben links Pin 14 (natürlich hat der Oszillator nur 4 Pins, die Nummerierung kommt daher, dass bei einem normalen IC dieser Größe an den gleichen Positionen die Pins Nr. 1, 7, 8 und 14 wären).

PD0-PD7 und PB0-PB5 sind die IO-Ports des Mikrocontrollers. Hier können Bauteile wie LEDs, Taster oder LCDs angeschlossen werden. Der Port C (PC0-PC5) spielt beim Atmega8/AT90S4433 eine Sonderrolle: mit diesem Port können Analog-Spannungen gemessen werden. Aber dazu später mehr! An Pin 17-19 ist die Stiftleiste zur Verbindung mit dem ISP-Programmer angeschlossen, über den der AVR vom PC programmiert wird. Die Resetschaltung, bestehend aus R1 und C1 sorgt dafür, dass der Reseteingang des Controllers standardmäßig auf Vcc=5V liegt. Zum Programmieren zieht der ISP-Adapter die Resetleitung auf Masse (GND), die Programmausführung wird dadurch unterbrochen und der interne Speicher des Controllers kann neu programmiert werden. Zwischen Vcc und GND kommt noch ein 100nF Keramik- oder Folienkondensator, um Störungen in der Versorgungsspannung zu unterdrücken.

Hier die Liste der benötigten Bauteile:

  • R1 Widerstand 10 kOhm
  • C1 Keramikkondensator 47 nF
  • C2 Keramik- oder Folienkondensator 100 nF
  • Stiftleiste 6-polig
  • Mikrocontroller ATmega8 oder AT90S4433 (kann auf http://shop.mikrocontroller.net/ bestellt werden)
  • Quarzoszillator 4 MHz

Fertig aufgebaut könnte das etwa so aussehen:

breadboard.jpg

Beim Breadboard ist darauf zu achten, dass man die parallel laufenden Schienen für GND (blau) und Vcc (rot) jeweils mit Drähten verbindet (nicht Vcc und GND miteinander!).

Eine Zusammenstellung der der benötigten Bauteile befindet sich in der Bestellliste.

Ergänzende Hinweise zur Taktversorgung

Ein Mikrocontroller benötigt, wie jeder Computer, eine Taktversorgung. Der Takt ist notwendig, um die internen Abläufe im Prozessor in einer geordneten Reigenfolge ausführen zu können. Die Frequenz des Taktes bestimmt im wesentlichen wie schnell ein Computer arbeitet.

Bei einem ATMega8 gibt es 2 Möglichkeiten zur Taktversorgung

  • interner Takt
  • externer Takt

interner Takt

Dies ist der Auslieferungszustand bei einem Mega8. Dabei wird der Takt von einem internen Schwingkreis geliefert.

Vorteil: keine externe Beschaltung notwendig. Die Pins, an denen ansonsten ein Quarz oder ein Quarzoszillator angeschlossen wird, sind daher als normale Portpins für Ein/Ausgaben verwendbar.

Nachteil: Der Schwingkreis ist nicht sehr genau. Bei Temperaturänderungen verändert er seine Frequenz. Nur 4 Frequenzen (1MHz, 2MHz, 4MHz und 8MHz) sind realisierbar. Es gibt zwar die Möglichkeit, die interne Frequenz in Grenzen noch zu verändern, dies ist aber aufwändig und erfordert mindestens einen Frequenzzähler, wenn man eine bestimmte Frequenz erreichen will.

externer Takt

Auch hier gibt es wieder 2 Möglichkeiten

  • Quarz
  • Quarzoszillator

Vorteil: Die Taktfrequenz ist so stabil, wie es der Quarz bzw. der Oszillator vorgibt. Und das ist wesentlich genauer als der interne Oszillator. Kein Abgleich notwendig, wenn eine bestimmte Frequenz erreicht werden soll, solange as einen Quarz bzw. Oszillator in dieser Frequenz gibt.

Nachteil: Die Pins an denen der Quarz bzw. der Oszillator angeschlossen wird, sind nicht mehr als I/O Pins nutzbar.

Spätestens dann, wenn eine RS232-Verbindung zu einem anderen Computer aufgebaut werden soll, ist eine exakte Taktversorgung einer der Schlüssel um diese Verbindung auch stabil halten zu können. Aus diesem Grund wird in diesem Tutorial von vorne herein mit einem externen Takt gearbeitet. Es spielt dabei keine Rolle ob dafür ein Quarzoszillator oder ein Quarz benutzt wird.

Quarz statt Quarzoszillator

Wird anstelle eines Quarzoszillators eine Quarz eingesetzt, so sieht die Anbindung des Quarzes so aus.

Mega8 quarz.gif

Die beiden Kondensatoren C3 und C4 sind zum Betrieb des Quarzes notwendig. Ihre Größe ist abhängig von den Daten des Quarzes. 22pF sind ein Wert, der bei den meisten Quarzen funktionieren sollte.

Stromversorgung

Die Versorgungsspannung Vcc beträgt 5V und kann z.B. mit folgender Schaltung erzeugt werden:

V Regler.gif

  • IC1: 5V-Spannungsregler 7805
  • C1: Elko 10µF (Polung beachten!)
  • C2,C3: 2x Kondensator 100nF (kein Elektrolyt)
  • D1: Diode 1N4001

An den Eingang (+ und - im Schaltplan) wird ein Steckernetzteil mit einer Spannung von 9 - 12V angeschlossen.

Der ISP-Programmierer

Dann braucht man nur noch den ISP-Programmieradapter, über den man die Programme vom PC in den Controller übertragen kann. Eine Bauanleitung gibt es u.a. auf http://rumil.de/hardware/avrisp.html (allerdings sollte man statt dem im Schaltplan angegebenen 74HC244 einen 74HCT244 nehmen).

Einen fertigen ISP-Programmer gibt es für 15,90 Euro auf http://shop.mikrocontroller.net/.

Den ISP-Adapter schließt man an den Parallelport an und verbindet ihn mit der Stiftleiste SV1 über ein 6-adriges Kabel (siehe Schaltplan).

So sieht die Anordnung also aus:

mikrocontroller.gif

Sonstiges

Für die anderen Teile des Tutorials sollte man sich noch die folgenden Bauteile besorgen:


Teil 2 (I/O-Grundlagen)

  • 5 LEDs 5mm
  • 5 Taster
  • 5 Widerstände 1k
  • 5 Widerstände 10k

Teil 4 (LCD-Display)

  • 1 Potentiometer 10k
  • 1 HD44780-kompatibles LCD, z.B. 4x20 oder 2x16 Zeichen

Teil 6 (Der UART)

  • 1 Pegelwandler MAX232 oder MAX202
  • 5 Elektrolytkondensatoren 22µF
  • 1 9-polige SUBD-Buchse (female)
  • 1 dazu passendes Modem(nicht Nullmodem!)-Kabel

Für andere, öfter benötigte, Bauteile, die man als angehender µC Bastler auch des öfteren mal benötigt, empfiehlt sich ein Blick in die Liste der Standardbauelemente bzw. in die Grundausstattung

Software

In diesem Tutorial wird nur auf die Programmierung in Assembler eingegangen, da Assembler für das Verständnis der Hardware am besten geeignet ist.

Assembler

Zuerst braucht man einen Assembler, der in Assemblersprache geschriebene Programme in Maschinencode übersetzt. Windows-User können das AVR-Studio von Atmel verwenden, das neben dem Assembler auch einen Simulator enthält, mit dem sich die Programme vor der Übertragung in den Controller testen lassen; für Linux gibt es tavrasm, avra und gavrasm.

Um die vom Assembler erzeugte ".hex"-Datei über den ISP-Adapter in den Mikrocontroller zu programmieren, kann man unter Windows z.B. das Programm yaap verwenden, für Linux gibt es uisp.

C

Wer in C programmieren möchte, kann den kostenlosen GNU-C-Compiler AVR-GCC ("WinAVR") ausprobieren. Dieser C-Compiler kann auch in das für Assembler-Programmierung notwendige AVR-Studio integriert werden. In der Artikelsammlung gibt es ein umfangreiches Tutorial zu diesem Compiler; Fragen dazu stellt man am besten hier im GCC-Forum.

Pascal

Wer in Pascal programmieren möchte, kann AVRPascal ausprobieren. Dieser Pascalcompiler ist kostenfrei bis 4kb Code und bietet viele ausgereifte Bibliotheken. E-LAB.

Basic

Auch Basic-Fans kommen nicht zu kurz, für die gibt es z.B. Bascom AVR ($69, Demo verfügbar).

Literatur

Bevor man anfängt, sollte man sich die folgenden PDF-Dateien runterladen:

Betrachten kann man PDF-Dateien mit dem Acrobat Reader von Adobe.