In letzter Zeit werde ich immer häufiger gefragt, wie ich mit der Programmierung von Mikrocontrollern (kurz µC) angefangen habe. Wie fängt man am Einfachsten an? Was brauche ich? Ist so etwas teuer? Das möchte ich hier ein wenig erläutern und vielleicht noch ein paar Basisbegriffe erklären.
Über diese 8-Bit Mikrocontroller kann man entweder sehr wenig oder wahnsinnig viel schreiben. Sie sind klein, günstig und können viele verschiedene Aufgaben erledigen. Es gibt sie mit 8, 20, 28, 40 und sogar noch mehr Anschlüssen. Je nach Aufgabengebiet setzt man einen kleinen oder einen größeren AVR-µC ein. Mit der Anzahl an Pins steigt natürlich auch der Preis. Ein ATmega8 hat 28 Pins und man bekommt ihn schon für weniger als 2 Euro zu kaufen. Ein ATmega16 hat 40 Pins und ist für weniger als 3 Euro zu bekommen. Der günstige Preis und die einfache Programmierbarkeit sind mit unter Gründe, weshalb die AVR-Mikrocontroller auch für Hobby-Elektroniker so interessant sind.
Zum Anfangen hatte ich ein gutes Buch! Und zwar das AVR - Mikrocontroller Lehrbuch von Roland Walter.
Informationen über dieses Buch findet man unter dieser Adresse: http://www.rowalt.de/mc/avr/avrbuch/index.htm
Roland erklärt anhand des feinen und sehr günstigen 8-Bit RISC ATmega8-Controllers von Atmel, alles was man für den Einstieg wissen muss. Das Schöne dabei ist, dass Roland Hilfe zur Selbsthilfe gibt. Er stellt nicht nur irgend eine Behauptung in die Luft, sondern erklärt auch meistens, woher diese Information stammt und warum er etwas genau so und nicht anders macht.
Um die Beispiele auch gleich praktisch ausprobieren zu können -- und das ist bei dieser Materie wirklich wichtig -- hat er ein Experimentierboard entwickelt, dessen Bauteile und Platine man bei Segor electronic bestellen kann. Dieses Experimentierboard ist wirklich gut durchdacht. Das merkt man erst, wenn man das Buch liest. Ich empfehle wirklich jedem, sich dieses Experimentierboard zu bestellen und die Beispiele aus dem Buch damit auszuprobieren und eigene Experimente damit zu machen.
Um ein fertiges Programm vom Computer zum Mikrocontroller übertragen zu können, braucht man einen Programmer. Das ist ein Gerät oder Kabel mit ein paar Bauteilen dran, mit dem man den µC mit dem Computer verbindet. Er erklärt, wie man mit ein paar Widerständen und ein paar Dioden einen Stecker erstellt, mit dem man den µC an den Parallelport des Computers anschließen kann. Nur leider gibt es dabei immer wieder Probleme. Er weist natürlich im Buch darauf hin und ich muss sagen, dass ich diese Probleme selber hatte. Kurz: Man kann nicht mehr so einfach wie es mal mit Windows 95 war, mit einem Programm direkt auf den Parallelport zugreifen. Inzwischen unterbindet Windows den direkten Zugriff und man kann das nur übergehen, indem man einen Treiber installiert. Leider gibt es verschiedene Treiber dafür und diese werden kaum gepflegt. Ich habe den Parallelport-Programmer mit zwei Computern ausprobiert. Auf meinem älteren Computer funktioniert er und auf meinem neuen Computer nicht. :-|
Nachtrag: Als Alternative für Parallelports mit niedriger Spannung habe ich inzwischen einen STK200-kompatiblen Programmer gefunden.
Ich empfehle den mySmartUSB-Programmer, weil ich damit noch keine Schwierigkeiten hatte und er so vielseitig ist. Man kann damit die wichtigsten AVR-Mikrocontroller programmieren und ihn als I²C- oder RS232-Converter einsetzen. Dieser Programmer lässt sich direkt aus Bascom heraus verwenden. Damit Bascom diesen Programmer verwendet, muss man nur in den Bascom-Einstellungen den "AVR ISP Programmer" auswählen und den zugehörigen COM-Port einstellen. Das ist zwar nicht sonderlich schnell -- aber es funktioniert. Und das ist für einen Anfänger das Wichtigste. Wenn mal alles läuft, dann kann man den Programmer über ein externes Programm (z.B. avrdude) ansprechen. Dann ist ein ATmega8 in zwei bis drei Sekunden programmiert.
Später habe ich mir noch den AVR-Dragon-Programmer zugelegt -- als Ergänzung zum mySmartUSB. Aber der mySmartUSB reicht für den Anfang vollkommen aus.
Weitere Informationen findest du im Kapitel Kleiner Bascom-AVR Kurs - Programmer.
Bascom-AVR ist ein Programm mit dem man Programme für AVR-Mikrocontroller schreiben kann. Die Programme werden in BASIC geschrieben und von Bascom in Maschinensprache umgewandelt (kompiliert). Es bietet schon fertige Routinen um z.B. per UART (z.B. RS-232) eine Verbindung zu einem Computer oder zu anderen Mikrocontrollern aufzunehmen. Weiters sind High-Level-Routinen für Analog-Digital-Wandlung, zum Entprellen von angeschlossenen Tastern, für I²C, für SPI und zum Auslesen von Tastenfeldern (bis 4x4) mit an Board. Man kann damit Daten auf LCDs anzeigen. Und kleine Programme kann man sogar testen, bevor man diese zum µC überträgt.
Bascom ist nicht kostenlos. Aber mit der Demo-Version kann man Programme bis zu einer Größe von 4 kB schreiben. Und das ist gar nicht so wenig wie man glauben könnte. Ein ATmega8 hat einen 8 kB großen Flash-Speicher. Und wenn es wirklich so weit ist, und man Programme erstellt die größer als 4 kB sind, dann hat man schon so viel gelernt, dass die 79 Euro für Bascom sicher kein raus geschmissenes Geld sind.
Das "ATMEL Evaluations-Board Version 2.0" von Pollin, scheint trotz des geringen Preises ein recht brauchbares Teil zu sein. Zusammen mit dem "Streifen-/Punktrasterplatinen-Adapter", kann man seine Experimente auf andere ATmega- und ATtiny-Controller ausweiten und mit Steckbrett-Schaltungen verbinden. Mit dem zusätzlichen ATMEL Addon-Board von Pollin ist man dann schon recht gut ausgerüstet. :-)
Von mir vorgenommene Änderungen am Evaluationsboard und an der Adapterplatine:
Für einfache Testaufbauten, habe ich mir ein Steckbrett (Breadboard) zugelegt. So ein Steckbrett ist eine wunderbare Sache und bei Conrad oder Reichelt (billiger) zu bekommen.
Damit es so richtig Spaß macht, braucht man noch ein LCD. Diese gibt es bei Pollin (Suchergebnis "lcd display") ziemlich günstig.
Inzwischen gibt es auch den Kleinen Bascom-AVR Kurs, den ich für den Einstieg in die Mikrocontrollerprogrammierung wärmstens :-) empfehlen kann. Ja, Eigenlob -- ich weiß. :D
Ich programmiere Progressive Web Applications, Mobile Apps, Desktop-Programme und noch vieles mehr. Falls es dich interessiert, findest du mehr Informationen darüber auf meiner Business-Website.