26. Datengarten im Chaos Computerclub Berlin:
Mikrocontroller finden sich heutztage in nahezu allen kleineren und größeren Elektrogeräten. Tatsächlich handelt es sich bei einem Mikrocontroller um einen winzigen Computer auf nur einem einzigen Chip. Wir wollen diese Mikrocontroller hier einmal näher ansehen...
Was sind AVR Controller?:
Es gibt eine Vielzahl an Mikrocontrollern. Bei Hobbyisten sehr beliebt sind die AVR-Controller von Atmel. Diese Controller sind auf Grund ihrer Architektur für Anfänger sehr gut geeignet. Ein AVR verfügt über 32 Allzweck-Register, das ist so viel das man unter Assembler Register wie Variablen in Hochsprachen verwenden kann. Hinzu kommt die von Typ zu Typ verschiedene, teilweise üppige Ausstattung mit seriellen Schnittstellen, AD-Wandlern und steuerbaren Pins. Ein weiterer Vorteil ist das man für den Programmiervorgang kein teures Programmiergerät benötigt. Programmierkabel kann man sich aus Cent-Bauteilen einfach selber basteln. Hinzu kommt das es für AVR sehr viele freie Entwicklungstools gibt, auch die von Atmel herausgegeben Datenblätter sind vorbildlich.
Wie baue ich mir ein Programmiergerät?:
Der erste Schritt beim Einstieg in die AVR-Welt ist der Bau eines Programmiergerätes. Die einfachen Selbstbauschaltungen arbeiten meist mit der Parallelen, oder mit der seriellen Schnittstelle. Für welche Schnittstelle man sich entscheidet ist Geschmackssache. Problematisch wird es wenn man an seinem Computer weder eine parallele, noch eine serielle Schnittstelle hat. In einem solchen Fall kann man sich einen USB-zu-Seriell Adapter im Elektronikhandel kaufen und dann einfach einen seriellen Programmieradapter verwenden. Die zum programmieren verwendete Software ist ebenfalls Geschmackssache. Unter Windows verwendet man in der Regel das Programm PonyProg von Lancos, während unter Linux eher Tools wie Avrdude oder UISP verwendet werden.
Links zu Programmern und Programmiersoftware:
http://www.lancos.com/
- PonyProg
http://www.nongnu.org/avrdude/
- AvrDude
http://www.nongnu.org/uisp/
- UISP
http://rumil.de/hardware/avrisp.html
- Parellelport Programmer
http://mikrocontroller.cco-ev.de/de/isp.php
- Serieller Programmer
Wie programmiere ich?:
Mikrocontroller sind Minicomputer, sie werden wie große Computer auch in einer für Menschen verständliche Programmiersprache programmiert. Es gibt im Grunde zwei Wege: Entweder man programmiert in einer Hochsprache (z.B.: C) oder man programmiert Hardwarenah in Assembler. Für welchen Weg man sich entscheidet ist Geschmackssache. Der Reiz bei Assembler liegt wohl darin das man die totale Kontrolle über die CPU hat, die Programmierung dafür aber zwar nicht schwerer aber etwas aufwendiger wird. Eine Hochsprache hingegen hat den Vorteil das man sehr komfortabel programmieren kann ohne sich großartig Gedanken über die Vorgänge in der CPU zu machen. Für AVR gibt es einen GCC C-Compiler, der unter Linux und Windows läuft. Als Assembler kann man unter Windows das von Atmel angebotene AVR-Studio oder den freien TAVRASM Assembler verwenden. TAVRASM gibt es für DOS und für Linux.
Links zu Compilern und Assemblern:
http://winavr.sourceforge.net/
- WinAVR C-Compiler für Windows
http://www.tavrasm.org/
- TAVRASM Assembler für Linux und DOS
http://www.atmel.com/
- AVRStudio für Windows
Anleitungen und Tutorials:
Im Netz gibt es eine Vielzahl von sehr guten Tutorials zum Thema AVR. Bei
http://www.mikrocontroller.net/ findet man ein sehr gutes AVR-Tutorial, Sowie ein Tutorial zur Verwendung des AVR-GCC Compilers. Wer aber lieber eine gedruckte Anleitung bevorzugt, dem empfehle ich das AVR Microcontroller Lehrbuch von Roland Walter. Aber auch die Seite
http://www.avrfreaks.net/ (Englisch) bietet viele Informationen für einen erfolgreichen Einstieg.
Materialien:
Wir haben hier sämtliche Materialen vom Datengarten zum Download bereitgestellt. Das Paket enthält die Vortragsfolien und den Laufzettel mit der Materialliste und den Schaltplänen für unser Einstiegsprojekt.
Material Download: