AVR Tutorial für C Programmierer
Dieses AVR Tutorial führt Schritt für Schritt bis zum ersten funktionierenden C Programm auf einem AVR Mikrocontroller.
Einleitung |
|
Ein C Programm auf einem AVR Controller laufen zu lassen ist nicht schwierig. Wer sich alles benötigte Material besorgt hat, bringt sein erstes Programm innerhalb eines Abends zum laufen. Dieses Tutorial hilft dabei, den kürzesten Weg zum ersten, laufenden Programm schnell und problemlos zurückzulegen. Wir beginnen mit der benötigten Hardware, anschliessend installieren wir das AVR Studio und den AVR GCC Compiler (beides kostenlos). Wenn das geschafft ist, besorgen wir uns die wichtigsten Datenblätter. Und zum Schuss schreiben wir unser erstes kleines Programm und lassen es auf dem Controller laufen. |
|
Weiterführende Literatur: |
|
Wer nach dem durcharbeiten dieses Tutorials noch tiefer ins Detail gehen will oder wer weitere Anleitungen und Anregungen zur Arbeit mit dem ATmega Mikrocontroller sucht, dem empfehle ich diese beiden Bücher: |
|
Die Bilder in diesem Tutorial können durch Anklicken vergrössert betrachtet werden. |
|
Schritt 1: Benötigtes Material
Bevor wir beginen, sollten folgende Dinge besorgt werden: |
|
Computer
Natürlich benötigen wir einen Computer um unseren AVR zu programmieren. Es muss keine leistungsstarke
Maschine sein. Ich persönlich habe eines meiner älteren Laptops mit Windows XP zum reinen programmier
Computer gemacht. Es ist von Vorteil, wenn der computer eine serielle Schnittstelle hat. Bei neueren
Geräten und Notebooks sucht man diese heute vergebens. Dieses AVR Tutorial C ist für das AVR
Programmierboard STK500 geschrieben und um dieses zu betreiben ist die seielle Schnittstelle unerlässlich.
Wenn der Computer nicht über eine serielle Schnittstelle verfügt, wird ein USB zu RS232 Adapter benötigt.
|
USB zu RS232 Adapter Wenn der Computer über keine serielle Schnittstelle verfügt, muss ein USB zu RS232 Adapter verwendet werden, um das Programm auf den AVR Mikrocontroller zu laden. Ich habe gute Erfahrungen mit dem Adapter UC232A vom Hersteller Aten gemacht. |
AVR Programmierboard STK500 Dieses C Tutorial ist für das AVR Programmierrboard STK500 geschrieben. Dieses board ist nicht die günstigste Lösung, aber da es vom Prozessorhersteller selber stammt, sind mit diesem Board die wenigsten Probleme zu erwarten. Das STK500 funktioniert einwandfrei mit dem AVR-Studio (der Programmiersoftware) und die Kompatiblität zu den AVR- Mikrocontrollern ist garantiert. Ein RS232 Kabel wird mit dem Board mitgeliefert. Im Internet gibt es diverse Anleitungen zum Bau eigener Programmieradapter. Dies ist ohne Zweifel güstiger, aber das fertig aufgebaute, professionelle STK500 führt sicher schneller zum Ziel. Das Board ist bei den meisten Elektronikhändlern, die auch AVR Mikrocontroller verkaufen, erhältlich. |
Spannungsversorgung Das STK 500 wird leider ohne Netzteil geliefert. Beigelegt ist nur ein Kabel mit dem Stecker für die Speisebuchse und zwei blanken Enden. Es wird deshalb ein 12V Netzadapter benötigt. Noch besser ist ein Labornetzgerät. |
AVR Mikrocontroller ATmega8 Ich schreibe dieses Tutorial für den ATmega8. Genau so gut, könnte man es für einen anderen Typ schreiben, denn so etwas wie "den besten AVR Mikrocontroller" gibt es nicht. Jeder Controller hat seine Eigenschaften, die ihn für bestimmte Anwendungen brauchbar machen und für andere nicht. Der ATmega8 ist ein universeller Controller, der die wichtigsten Grundfunktionen bietet. Laut Umfragen ist er im Hobbybereicht der am meisten verwendete AVR Mikrocontroller und in jedem Elektronikforum ist er immer wieder ein Thema. Es ist aber immer gut, ein paar Ersatzcontoroller in der Schublade zu haben. Am besten bestellt man sich für den Anfang drei bis fünf Stück. Jeder Programmierer kommt irgendwann an den Punkt, wo er testen will, ob sein Programm fehlerhaft, oder sein Controller defekt ist. |
|
Weitere interessante AVR Hardware: |
|
Folgende Hardware wird für dieses Tutorial nicht benötigt. Für den Entwickler von AVR-Hardware ist sie aber allemal interessant und nützlich: |
Schritt 2: Benötigte Software downloaden und installieren
|
|
AVR Studio
Auf der Website von Atmel kannst du das "AVR Studio 4" herunterladen. Eigentlich ist das "AVR Studio 4" durch die neuere Software "AVR Studio 5" und später durch das "ATMEL Studio 6"
abgelöst worden. Der Link zum "AVR Studio 4" ist gut versteckt und man findet es am besten über die Suchfunktion der Website. Ich empfehle AVR Studio 4 aus guten Gründen:
|
|
Version 6 ist für das STK-600 Board optimiert, welches viel teurer ist, als das STK-500.
|
AVR Toolchain
Die AVR Toolchain ist notwendig, damit das AVR Studio den C Code compillieren kann. Sie kann kostelos von der Atmel Website heruntergealden werden:
ATMEL AVR Toolchain.
|
ATmega8 Datenblatt
Wenn du in Google "ATmega8" eingebst, kommt das Datenblatt üblicherweise an oberster Stelle. Ansonsten ist es auf der Website von
Atmel erhältlich.
|
Schritt 3: STK-500 einrichten
|
|
Wir richten jetzt das STK500 für unsere Zwecke ein.
|
|
Verbinde mit dem sechspoligen Programmerkabel den grünen Sockel "SPROG2" bit dem "ISP6PIN" Sockel.
|
|
Setze die Jumper
|
|
Verbinde mit dem RS232 Kabel das Board mit de Computer. Verwende den Sockel "RS232 CTRL" und nicht den "RS232 SPARE"
|
Schritt 4: Neues Projekt im AVR Studio eröffnen
|
|
Nach dem Start öffnet AVR Studio das Wilkommensfenster. Für ein neues Projekt betätigt man die Schaltfläche New Project .
|
|
Im daraf folgenden Dialog führt man folgende Schritte aus:
|
|
Es erscheint die Programmierumgebung. Links befindet sich der Projektexplorer. Klicke rechts auf den Projektnamen in der obersten Ebene und wähle aus dem Dropdownmeü
Edit Configuration Options.
|
|
Es erscheint das Fenster mit den Projektkonfigurationen.
|
|
Schritt 5: C-Code in neues C-File einfügen.
|
|
Wir erstellen ein neues C-File. Mit einem Rechtsklick auf den Ordner Source Files erscheint ein Menü in welchem du Create new Source File anwählst.
|
|
Gib den Code aus dem Bild in die Datei ein. Es handelt sich dabei um unser Testprogramm, das einen Schalter einliest und seinen Zustand auf einer LED ausgibt.
Du kannst den Code auch aus dem folgenden Codefenster kopieren.
|
#include <avr/io.h>
int main(void)
{
DDRC = 0x01;
for(;;)
{
if(PIND & 0x01)
PORTC |= 0x01;
else
PORTC &= ~0x01;
}
return 0;
}
Schritt 6: Kompillieren und Fehler beheben
|
|
Anschliessend klickst du auf die Build Schaltfläche und dein C Code wird Kompilliert.
|
|
Im Berichtfenster am unteren Bildschirmrand kannst du sehen, ob die
Kompillierung erfolgreich war. Wenn nicht kannst du im Bericht auf die Error Zeile klicken und AVR Studio zeigt dir an, aur welcher Code Zeile ein Fehler erkannt wurde.
|
|
Schritt 7: Verbindung zum STK500 herstellen und Programm downloaden
|
|
Klicke auf die Connect Schaltfläche.
|
|
Es erscheint der Select AVR Programmer Dialog.
|
|
Es erscheint STK500 ISP Mode with ATmega8 Fenster
|
|
|
|
Schritt 8: Interfacekabel verbinden
|
|
Verbinde die LED's des STK500 mit Port C und die Taster mit Port D. Benutze dazu die beiden Flachbandkabel, wie auf de Bild.
|
|
Schritt 9: Programm testen
|
|
Das Programm liest den Taster SW0 ein und gibt seinen Zustand an die LED LED0 weiter.
|
|
|