ebps.de.vu > Schaltungen > AVR > AVR-Einsteigerkurs

Microcontroller-Kurs für Einsteiger

Hinweis: Diese Einführung ist mitlerweile leider schon etwas veraltet, es kann also durchaus vorkommen, dass ein erwähnter Controller bereits abgekündigt ist. Es sollte sich aber problemlos ein Ersatz finden lassen (z.B. Tiny2313 statt 90S2313).

1. Einführung

Dieser Kurs ist für alle gedacht, die sich gerne mit Microcontrollern beschäftigen möchten, sich bisher allerdings noch nicht "getraut" hben, damit anzufangen. Er beschäftigt sich mit den AVRs von Atmel, die klein, günstig und leicht zu beschaffen sind. Die Programmierung erfolgt in der Sprache Assembler, die Taktfrequenz kann z.B. bei dem AVR AT90S2313 bis zu 10 MHz betragen, was für fast alle Projekte mehr als genug ist (Problematisch könnte es z.B. bei Videosignalerzeugung werden).

2. Assembler

Zu allererst sollte man sich mit der Programmiersprache Assembler vertraut machen. Assembler ist eine Programmiersprache, die 1:1 in Maschinenbefehle übersetzt wird (das macht der Assembler), deshalb ist sie für jeden Controller anders. Zum Glück sind die Befehle und Funktionen für die veqrschiedenen AVRs weitgehend gleich. Da es den Rahmen dieser Website sprengen würde, hier einen kompletten Assemblerkurs zu schreiben, können Sie auf ein gutes Tutorial für AVR-Assembler zurückgreifen, das Sie unter http://www.avr-asm-tutorial.net/avr_de/ finden. Sie finden dort auch Befehlsübersichten und ein paar Beispielprogramme. Außerdem bietet Atmel eine Liste aller Assemblerbefehle für die AVR-Serie an: AVR Assembler User Guide.

3. Die Hardware

Einen Microcontroller kann man nun nicht einfach in den Computer stecken. Dafür braucht man einen Adapter, der seriell oder parallel angeschlossen wird, einen Programmer. Ein für den Anfang ausreichendes Modell ist der Sercon2-Mini. Welche Pins MOSI, MISO, SCK, GND und RESET sind, können Sie im umfangreichen Datenblatt nachlesen, in dem übrigens auch alle Register und Ports des Controllers kurz besprochen werden. Der Nachteil dieser Datenblätter ist, dass sie nur in englischer Sprache verfügbar sind. Für eine Anschlussbelegung ist das aber völlig ausreichend. Ich empfehle Ihnen dringend, für jeden Controller, mit dem Sie arbeiten möchten, vor dem Kauf das Datenblatt herunterzuladen. Die Datenblätter finden Sie auf der Datenblattseite von Atmel.

[Foto]
640
Mein erster Aufbau des Sercon2-Mini
[Foto]
640
Ein sehr kleiner Sercon2-Mini für In-System-Programming (die Steckerbelegung für den ISP-Anschluss habe ich selbst verzapft, weil mir die zweireihigen Vorschläge von Atmel nicht gefielen)

4. Die Software

Damit der Programmer auch weiß, was er denn in den Controller programmieren soll, braucht man noch etwas Software. Das wäre als erstes ein Editor, in dem man das Assemblerprogramm schreibt. Der Windows-Editor ist dafür vollkommen ausreichend. Das im Editor erstellte Programm muss nun assembliert werden, dafür benötigt man einen Assembler. Atmel bietet einen Assembler mit integriertem Editor für die AVRs an.
Zu guter Letzt braucht man dann noch eine Programmiersoftware, die natürlich zum Programmer passen muss. Für die Sercon-Programmer kann man entweder AT-Prog vom Autor der Schaltungen verwenden, oder aber meinen AVR ISP Programmer, der allerdings nur mit recht wenigen AVRs funktioniert. Zum Schluss noch ein Tipp für die Dateiendungen: die Assemblerprogramme werden mit dem Editor nicht als TXT abgespeichert, sondern als ASM. Nach dem Assemblieren werden Dateien mit der Endung HEX erzeugt, da diese nur aus Hexadezimalzahlen bestehen. Die Programmiersoftware liest diese Zahlen aus und sendet sie an den Programmer.
Etwas bequemer geht alles mit dem AVR Studio von Atmel: in diesem Programm kann man das Assemlerprogramm editieren, assemblieren und sogar simulieren! Eine Programmersoftware ist ebenfalls enthalten, allerdings passt sie nicht zum Sercon2-Mini.

5. Übersicht über einige AVRs

Diese Liste zeigt die Eigenschaften einiger weniger AVRs und erhebt auf gar keinen Fall einen Anspruch auf Vollständigkeit. Bei Atmel gibt es eine vollständige Liste aller AVRs, die noch produziert werden. Ein Klick auf die Typennummer führt zur Produktseite bei Reichelt.

AVR I/Os Flash SRAM Pins Sonstiges
ATTiny11 5 (6) 1K - 8 kein ISP (passender Programmer), billig!
ATTiny15 5 (6) 1K - 8 für kleinere Anwendungen
AT90S2313 15 2K 128 20 Der Standard-AVR. Sollte man immer vorrätig haben. Wird vom ATTiny2313 abgelöst.
ATTiny2313 15 2K 128 20 Voll kompatibel zum AT90S2313, um einen externen Quarz zu benutzen muss allerdings erst eine Fuse umprogrammiert werden. Mehr Infos: Replacing AT90S2313 by ATtiny2313
ATMega8 bis zu 23 8K 1K 28 (schmales Gehäuse!) Kann sich selbst programmieren, sehr viele Features (siehe Datenblatt mit über 300 Seiten!)

Die Links führen zu Reichelt. Es gibt meistens auch noch anderere Versionen des Controllers (z.B. SMD oder höhere Taktfrequenz), hier sind die günstigsten DIP-Versionen verlinkt.