AVR-Programmierung

Viele Einsteiger fragen sich: "Wie bekommt man eigentlich die Software in den Mikrocontroller hinein?" Auf dieser Seite möchte ich zeigen, dass das gar nicht so schwierig ist und hierfür auch keine speziellen Kenntnisse erforderlich sind. Mit einem preiswerten USB-Programmiergerät sowie der kostenlosen Software AVR Studio 4 können die AVR Mikrocontroller aller Projekte dieser Seite programmiert werden. Am Beispiel des Projektes Wohnraumuhr wird demonstriert, wie die Hard- und Software unter Windows richtig konfiguriert und bedient wird.

Letzte Bearbeitung: 08.08.2010

Downloads und Links

Bezugsquelle für das USB-Programmiergerät mySmartUSB light shop.myavr.de/index.php?sp=article.sp.php&artID=200006
Treiber für das USB-Programmiergerät mySmartUSB light shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl46
Konfigurationsprogramm mySmartUSB light - SupportBox shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl197
Programmier-Software AVR-Studio 4 www.atmel.com/dyn/products/tools_card_v2.asp?tool_id=2725
Stückliste mit den Bauteilen für das Adapterkabel auf 5-poligen ISP avr-prog-stkl.htm

Inhaltsverzeichnis

Allgemeines Allgemeine Informationen über die Programmierung von Mikrocontrollern
Hardware Installation des Programmiergerätes mySmartUSB light
Software Installation und Konfiguration der Software mySmartUSB light - SupportBox und AVR-Studio 4
Programmieren Programmieren eines Mikrocontrollers am Beispiel der Wohnraumuhr
Fuse-Bits Setzen der Fuse-Bits am Beispiel der Wohnraumuhr
Andere Programmiergeräte Weitere Programmiergeräte und Programmieradapter für AVR-Mikrocontroller

Allgemeines

Der Begriff Programmieren wird im Zusammenhang mit Mikrocontrollern für 2 verschiedene Dinge verwendet, was oft zu Missverständnissen führt. Zum einen beschreibt dieser Begriff die Tätigkeit, ein Programm für einen Mikrocontroller zu entwickeln und zum anderen beschreibt er den Vorgang, ein fertig entwickeltes Programm in den Speicher eines Mikrocontrollers zu übertragen. Auf dieser Seite soll es um letzteres gehen, d.h. ich möchte am Beispiel eines Projektes zeigen, wie man ein Programm in den Mikrocontroller überträgt und das Projekt damit zum Leben erweckt. Hierfür sind übrigens keine speziellen Kenntnisse über Mikrocontroller und Programmiersprachen erforderlich.

Bis auf eine Ausnahme werden in meinen Projekten Mikrocontroller aus der AVR-Produktreihe der Firma ATMEL verwendet. Ein großer Vorteil dieser Controller ist, dass sie über eine relativ einfache Schnittstelle programmiert werden können. Diese besteht aus 4 Leitungen (und einer Masseleitung), über die ein Programm seriell in den Speicher des Mikrocontrollers übertragen werden kann. Der Controller kann bei dieser Prozedur in der Schaltung verbleiben und muss nicht ausgebaut werden. Hier hat sich der Begriff ISP (In System Programming) durchgesetzt und alle Projekte auf meiner Seite können über diese ISP-Schnittstelle programmiert werden. ISP bietet aber noch mehr: Es können neben dem Programm auch Daten (z.B. mit Voreinstellungen) im Controller abgelegt werden und es besteht die Möglichkeit, den Controller über so genannte Fuse-Bits zu konfigurieren.

Folgende Begriffe werden im Zusammenhang mit der Programmierung immer wieder auftauchen, deshalb möchte ich sie kurz erläutern:

Begriff Beschreibung
Flash-Speicher In diesem Speicher wird das Programm für den Mikrocontroller abgelegt. Wird der Controller eingeschaltet, dann beginnt er mit dem Lesen des Flash-Speichers bei Adresse 0 und interpretiert diese Informationen als Befehle. Der Flash-Speicher muss also in jedem Fall programmiert werden, damit der Controller überhaupt arbeiten kann. Zu jedem Mikrocontroller-Projekt gehört eine Datei projektname.hex - diese enthält immer das Programm für den Flash-Speicher des Controllers.
EEPROM-Speicher Dieser Speicher ist dafür gedacht, Daten aller Art aufzubewahren (z.B. Einstellungen oder vom Benutzer eingegebene Daten). Bei einigen älteren Projekten ist es erforderlich, Daten in den EEPROM-Speicher zu programmieren. Dies erkennt man daran, dass dem Projekt eine Datei projektname.eep beiliegt. Fehlt diese Datei, dann braucht man sich nicht um den EEPROM-Speicher zu kümmern.
Fuse-Bits Über diese Bits werden grundsätzliche Funktionen des Controller eingestellt: Taktquelle, Start-Bedingungen, Debug-Funktionen, Bootloader, Speicherschutz und anderes. Die Fuse-Bits können leider nicht als Datei in den Controller geladen werden. Sie müssen zunächst in einer Eingabe-Maske gesetzt bzw. gelöscht und anschließend an den Controller gesendet werden. Bei allen Projekten dieser Seite zeigt ein Bild die richtigen Einstellungen, außerdem befindet sich eine Datei projektname-fusebits.gif im Download-Paket jedes Projektes.

Hardware

Ich beschäftige mich inzwischen seit vielen Jahren mit AVR-Mikrocontrollern und in dieser Zeit habe ich verschiedene Programmiergeräte oder Programmieradapter benutzt und getestet. Lange Zeit war ein einfacher, selbst gebauter Adapter für die parallele oder serielle Schnittstelle mein Favorit. Aber die Technik entwickelt sich weiter und der USB-Anschluss verdrängt allmählich die parallelen und seriellen Anschlüsse (LPT und COM) am PC. Aus diesem Grund ist es heute sinnvoll, ein Programmiergerät mit USB-Anschluss zu verwenden.

Gute Erfahrungen habe ich mit dem Programmiergerät mySmartUSB light gemacht. Dieses kann man bei shop.myavr.de/index.php?sp=article.sp.php&artID=200006 zum Preis von 14,95€ bestellen (Stand 08/2010). Neben dem abgebildeten Programmiergerät bekommt man noch ein 6-poliges Programmierkabel und eine gedruckte Anleitung mit Hinweisen zur Treiber-Installation und weiteren Informationen.

Auf der eben genannten Seite befindet sich auch ein Link zum Treiber-Download (shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl46). Wichtig: Nach dem Download muss zunächst der Treiber installiert werden und erst dann darf man das Programmiergerät an den PC anschließen. Die Treiber-Installation kann einige Minuten in Anspruch nehmen und erfolgt in mehreren Schritten, dabei ist immer mal ein Mausklick zur Fortsetzung erforderlich. Wenn das geschafft ist, kann das Programmiergerät angeschlossen werden und ist dann nach kurzer Zeit betriebsbereit. Am Programmiergerät muss dann in der Nähe des USB-Anschlusses eine blaue LED aufleuchten, wahrscheinlich leuchtet außerdem noch die LED 5V auf. Nach der Installation muss in der Systemsteuerung (Geräte-Manager) bei den Anschlüssen ein Silicon Labs CP210x USB to UART Bridge (COMxx) hinzugekommen sein. Wichtig für die weitere Arbeit ist der in Klammern stehende COM-Port und deshalb sollte dieser notiert werden.

Im Prinzip ist das Programmiergerät damit einsatzbereit. Über das beiliegende Kabel, welches dem 6-poligen ISP-Standard von ATMEL entspricht, kann man das Programmiergerät mit dem ISP-Anschluss eines Projektes verbinden. Leider passt dieses Kabel an keines meiner Projekte und das hat folgenden Grund: Als ich mit der AVR-Programmierung anfing, benutzte ich einen selbst gebauten Programmier-Adapter und wählte ein eigenes System für den Steckverbinder und die Anschlussbelegung. Bei meinem System kommen einreihige IC-Sockelleisten zum Einsatz, die man ineinander stecken und somit sowohl als Buchse auf der Platine als auch als Stecker für das Programmierkabel verwenden kann. Dieses System hat sich bei mir bewährt und so benutze ich dieses auch heute noch. Der Nachteil ist, dass man noch ein Adapter-Kabel bauen muss.

Die nebenstehende Schaltung zeigt, wie das Adapter-Kabel verdrahtet werden muss. Mit einem Stück 5-poligen Flachbandkabel werden ein 6-poliger Wannenstecker und eine 5-polige IC-Sockelleiste verbunden. In den Wannenstecker wird später das Kabel eingesteckt, welches dem Programmiergerät beiliegt und der 5-polige Stecker kommt später in das entsprechende Gegenstück am Projekt. Der Anschluss VCC bleibt hier ungenutzt. Diese Stückliste enthält die benötigten Bauteile.

So sieht das Adapter-Kabel in der Realität aus. Bei einem Stück Flachbandkabel werden an beiden Enden die Adern getrennt und abisoliert. Anschließend wird der Wannenstecker und die IC-Sockelleiste angelötet. Bei der Sockelleiste muss man sehr vorsichtig löten, sonst können sich die Plastikteile verformen. Falls man farbiges Flachbandkabel so wie im Bild verwendet, dann sollte man eine markante Farbe für die Masseleitung wählen (hier schwarz). Beim üblichen grauen Flachbandkabel wählt man die rote Ader als Masseleitung.

Damit die Kabel an den Lötstellen nicht abbrechen, habe ich die kritischen Stellen mit reichlich Zweikomponentenkleber gesichert. Die Klebestelle am 5-poligen ISP-Stecker ermöglicht außerdem ein gutes Greifen beim Einstecken und Lösen der Verbindung. Übrigens: Die Länge des Adapter-Kabels sollte 10cm nicht überschreiten. Muss eine größere Entfernung zwischen PC und Projekt überwunden werden, dann sollte man ein USB-Verlängerungskabel zwischen PC und Programmiergerät stecken.

Software

Nachdem nun die Hardware einsatzbereit ist, muss noch etwas Software installiert werden. Für die Arbeit mit dem mySmartUSB light sind 2 Programme erforderlich:

  1. mySmartUSB light - SupportBox - Dieses kleine Programm wird benötigt, um die ISP-Datenleitungen des Programmiergerätes und die Stromversorgung auf 5V oder 3,3V umzustellen. Außerdem kann damit ein Software-Update des Programmiergerätes durchgeführt werden.
  2. AVR-Studio 4 - Dieses mächtige Werkzeug ermöglicht ein Entwickeln und Testen von Programmen und letztlich auch das Programmieren von Mikrocontrollern.

Vom Hersteller des mySmartUSB light gibt es ebenfalls eine recht gute Programmier-Software: myAVR ProgTool. Bei dieser Software ist allerdings die Programmierung der Fuse-Bits etwas gewöhnungsbedürftig, deshalb empfehle ich das AVR-Studio 4 als Programmier-Software.

Software mySmartUSB light - SupportBox

Beginnen wir mit dem einfacheren Programm: Nach dem Download der mySmartUSB light - SupportBox wird das ZIP-Archiv einfach entpackt und der Inhalt in ein beliebiges Verzeichnis kopiert. Eine Installation ist nicht erforderlich, das Programm kann direkt gestartet werden.

Das Programm findet normalerweise automatisch den richtigen COM-Port und das angeschlossene Programmiergerät und zeigt dies im oberen Auswahlfeld an. Im großen Feld darunter wird zunächst eine Info-Seite angezeigt. Nach dem Klick auf Konfiguration erscheint das nebenstehende Bild, wobei im Auslieferungszustand die Option Stromversorgung beim Brennen auf aktiv gesetzt ist.

Über die Einstellung Versorgungsspannung wird der Programmieranschluss auf die Spannung des angeschlossenen Projektes eingestellt. Hier wird nicht nur die Ausgangsspannung zur Versorgung des Projektes geändert, sondern auch die Logikpegel auf den Programmierleitungen. Diese Einstellung muss unbedingt beachtet werden, auch wenn das angeschlossene Projekt nicht vom Programmiergerät versorgt wird. Bis auf den Akku-Alarm für Modell-Helikopter arbeiten alle Projekte auf meiner Seite mit 5V. Beim Akku-Alarm sind 3V einzustellen.

Die Einstellung Stromversorgung beim Brennen legt fest, ob das Programmiergerät das angeschlossene Projekt während des Programmiervorgangs mit Strom versorgen soll oder nicht. Alle Projekte auf meiner Seite haben eine eigene Stromversorgung und sind nicht für eine Versorgung über das Programmiergerät geeignet. Aus diesem Grund empfehle ich die dargestellte Einstellung Stromversorgung beim Brennen - inaktiv.

Über die beiden Buttons Power On und Power Off lässt sich die Versorgungsspannung zu Testzwecken ein- und ausschalten. Diese Funktion wird hier nicht benötigt.

Über die Option Firmware lässt sich die Firmware des Programmiergerätes updaten oder durch eine alternative Firmware ersetzen. Es empfiehlt sich, die bereits installierte STK500-Firmware zu verwenden, so dass diese Option vorerst nicht benötigt wird.

Zum Schluss noch ein wichtiger Hinweis: Die letzte Einstellungen der Versorgungsspannung und der Stromversorgung beim Brennen wird im Programmgerät gespeichert, so dass man die mySmartUSB light - SupportBox nur dann benötigt, wenn diese Einstellungen geändert werden müssen.

Software AVR-Studio 4

Für den eigentlichen Programmiervorgang wird noch weitere Software benötigt und hier hat sich das kostenlose Programm AVR-Studio 4.xx der Firma ATMEL recht gut bewährt. Es ist zwar ein recht großer Brocken von über 100MB, dafür bekommt man aber ein komplettes Entwicklungspaket zum Erstellen und Testen von Programmen für AVR-Mikrocontroller und außerdem ein komfortables Programmer-Modul zum Übertragen der Programme in den Mikrocontroller.

Auf dieser Seite www.atmel.com/dyn/products/tools_card_v2.asp?tool_id=2725 kann man die Software AVR-Studio 4.xx laden, vorher ist allerdings noch eine Registrierung erforderlich. Oft erscheinen später noch Updates - so genannte Service Packs. Dies erkennt man daran, dass noch weitere Pakete wie z.B. AVR-Studio 4.xx SP1 zum Download angeboten werden. In diesem Fall sollte man zusätzlich noch das letzte Service Pack laden. Ein Service Pack allein funktioniert allerdings nicht, es verweigert die Installation, wenn das Hauptprogramm fehlt oder dieses nicht aktuell ist.

Nach dem Download wird zuerst das AVR-Studio 4.xx installiert. Falls noch ein Service Pack geladen wurde, dann sollte dieses anschließend ebenfalls installiert werden. Wenn das erledigt ist, kann man das AVR-Studio 4 starten und das sieht dann ungefähr so aus:

Hier sind viele Symbolleisten und auch einige Statusfenster zu sehen. Wir wollen uns aber nur auf die beiden folgenden Symbole bzw. Menü-Optionen konzentrieren:

  Menü-Option Beschreibung
 Tools - Program AVR - Connect Über dieses Symbol wird dem AVR-Studio das verwendete Programmiergerät und der genutzte Port mitgeteilt.
 Tools - Program AVR - Auto Connect  Mit diesem Symbol wird eine Verbindung mit dem zuletzt verwendeten Programmiergerät aufgebaut.

Falls unserem Programmiergerät bei der Installation ein COM-Port über COM4 zugeordnet wurde, dann muss einmalig noch eine weitere Menü-Option geändert werden:

Über Tools - Options... kann das nebenstehende Fenster aufgerufen werden. Hier muss die Einstellung ganz unten Number of COM-ports to try geändert werden. Wurde beispielsweise unserem Programmiergerät bei der Installation COM12 zugeordnet, dann tragen wir in das Eingabefeld 12 ein.

Da das AVR Studio neu installiert wurde, kann es natürlich unser Programmiergerät noch nicht kennen. Also sollten wir dieses jetzt anschließen, einige Sekunden warten und dann auf dieses Symbol klicken bzw. die Menü-Option Tools - Program AVR - Connect aufrufen. Danach erscheint folgendes Fenster:

Hier wird jetzt im linken Bereich Platform die Option STK500 ausgewählt. Zwar benutzen wir hier kein STK500, aber unser Programmiergerät spricht sozusagen die gleiche Sprache. Anschließend muss auf der rechten Seite im Bereich Port der COM-Port ausgewählt werden, den wir uns bei der Installation des Programmiergerätes im Abschnitt Hardware gemerkt oder notiert haben. Bei meinem Programmiergerät ist das der Port COM7. Im Zweifelsfall kann man auch die Auswahl Auto versuchen.

Sind alle Einstellungen getätigt, dann wird mit einem Klick auf Connect... die Verbindung zum Programmiergerät hergestellt.

Wenn sich das nebenstehende Bild zeigt, dann wurde erfolgreich eine Verbindung zwischen dem AVR-Studio und dem Programmiergerät hergestellt.

Damit sind alle Komponenten fertig konfiguriert und alle Voraussetzungen zum Programmieren von AVR-Mikrocontrollern erfüllt. Die gesamte Prozedur bis hierher ist übrigens nur einmal erforderlich.

Programmieren

Dieser Abschnitt setzt voraus, dass die erforderliche Hard- und Software eingerichtet und konfiguriert ist. Wenn dies der Fall ist, dann wird zunächst das Programmiergerät an einen freien USB-Anschluss gesteckt und anschließend das AVR-Studio gestartet. Mit einem Klick auf das Symbol oder durch Auswahl der Menü-Option Tools - Program AVR - Auto Connect startet das Programmer-Modul des AVR-Studio.

Jetzt wird das Programmierkabel an den ISP-Anschluss des Projektes gesteckt und danach die Stromversorgung des Projektes eingeschaltet. Als Testobjekt für die weitere Beschreibung habe ich hier die Wohnraumuhr gewählt, andere Projekte können nach dem gleichen Muster programmiert werden.

Vor dem Programmiervorgang muss zunächst der richtige Controller-Typ ausgewählt werden, dies erfolgt auf der Seite Main. Die Wohnraumuhr arbeitet mit einem ATmega8535, also wird im Feld Device and Signature Bytes der Controller ATmega8535 ausgewählt.

Zur Kontrolle empfehle ich einen Klick auf den Button Read Signature. Dabei passiert folgendes: Das Programmer-Modul liest aus dem angeschlossenen Mikrocontroller die so genannten Signatur-Bytes aus und vergleicht diese mit dem ausgewählten Controller-Typ. Wenn das Ergebnis so aussieht wie im nebenstehenden Bild, dann kann man sicher sein, dass die Kommunikation mit dem Controller funktioniert und außerdem der richtige Controller ausgewählt wurde.

Jetzt ist ein guter Zeitpunkt, um die benötigten Dateien für den Mikrocontroller zu downloaden und zu entpacken. Im Software-Paket der Wohnraumuhr befinden sich insgesamt 4 Dateien:

Datei Beschreibung
wohnuhr.asm Diese Datei enthält den Quelltext für die Wohnraumuhr-Software und wird hier nicht benötigt.
wohnuhr.hex Diese Datei enthält das Programm für den Mikrocontroller, diese muss in den Flash-Speicher programmiert werden.
wohnuhr.eep Diese Datei enthält Daten für die Grundeinstellung der Wohnraumuhr, diese muss in den EEPROM-Speicher programmiert werden.
wohnuhr-fusebits.gif Dieses Bild zeigt die richtige Einstellung der Fuse-Bits, diese werden im nächsten Abschnitt behandelt.

Nun geht es endlich zur Sache. Zunächst wird auf die Seite Program gewechselt. Hier sind mehrere Bereiche zu sehen:

Device: Hier empfehle ich die Einstellungen wie im dargestellten Bild. Diese bewirken ein automatisches Löschen des Flash-Speichers vor dem Programmieren sowie ein automatisches Lesen des Speichers nach jedem Programmiervorgang zur Kontrolle.

Flash: Hier wird der Dateiname der zu programmierenden HEX-Datei eingegeben bzw. über den Button rechts neben dem Feld ausgewählt. In diesem Beispiel ist das die Datei wohnuhr.hex. Mit einem Klick auf den Button Program wird der Programmiervorgang gestartet, der im Fall der Wohnraumuhr ungefähr 4s dauert. In dieser Zeit wird der Flash-Speicher gelöscht, mit den Daten der HEX-Datei beschrieben und anschließend nochmals zum Vergleich gelesen. Im unteren Bereich des Programmer-Fensters kann man den Ablauf verfolgen. Das nebenstehende Bild zeigt den Zustand nach dem erfolgreichen Programmiervorgang des Flash-Speichers.

EEPROM: Hier wird der Dateiname der zu programmierenden EEP-Datei eingegeben bzw. über den Button rechts neben dem Feld ausgewählt. In diesem Beispiel ist das die Datei wohnuhr.eep. Auch hier wird mit einem Klick auf den Button Program der Programmiervorgang gestartet, dieser dauert bei der Wohnraumuhr ungefähr 2s.

Anmerkung: In der Software des Programmiergerätes (Version 1.07.1770) scheint noch ein kleiner Fehler zu stecken. Beim automatischen Vergleich nach dem Schreiben der EEPROM-Datei kommt eine Fehlermeldung. Die Daten werden aber korrekt geschrieben, was man mit einem manuellen Vergleich über den Button Verify prüfen kann. Der Fehler scheint nur beim ATmega8535 aufzutreten, bei anderen Controllern klappte bisher alles fehlerfrei.

Damit ist der Flash-Speicher des Mikrocontrollers mit dem Programm und der EEPROM-Speicher mit Daten gefüllt und der Controller (fast) einsatzbereit. Er muss jetzt noch konfiguriert werden und das wird im nächsten Abschnitt beschrieben.

An dieser Stelle nochmals der Hinweis, dass der Bereich EEPROM nur dann bedient werden muss, wenn dem Projekt eine EEP-Datei beiliegt. Bei Projekten ohne EEP-Datei muss nur der Flash-Speicher programmiert werden. Auch bei einem Update der Software eines bestehenden Projektes wird immer nur der Flash-Speicher neu programmiert.

Fuse-Bits

Ich gehe an dieser Stelle davon aus, dass nach dem erfolgreichen Programmiervorgang im vorherigen Abschnitt die Verbindung zwischen AVR-Studio und Projekt noch besteht. Anderenfalls sollte jetzt, so wie im Abschnitt Programmieren beschrieben, eine Verbindung zum Projekt hergestellt werden. Bitte nicht vergessen, auf der Seite Main den richtigen Controller auszuwählen (in diesem Beispiel ATmega8535) und die Einstellung mit Read Signature zu überprüfen.

Alle aktuellen AVR-Mikrocontroller können bzw. müssen sogar über die so genannten Fuse-Bits konfiguriert werden. Die Fuse-Bits bestimmen z.B. die Taktversorgung des Controllers, das Verhalten bei Unterspannung oder die Speicheraufteilung bei Verwendung eines Bootloaders. Weiterhin können damit Debug-Funktionen aktiviert und einige weitere mehr oder weniger wichtige Einstellungen vorgenommen werden. Für den Nachbau meiner Projekte ist es nicht notwendig, die Funktion der einzelnen Fuse-Bits zu kennen. Und damit es noch einfacher wird, gibt es bei jedem Projekt ein Bild, welches die richtigen Einstellungen zeigt. Diese müssen praktisch nur 1:1 in das Eingabefenster übertragen werden.

Aber Vorsicht: Die Einstellung der Fuse-Bits muss sehr sorgfältig vorgenommen werden. Eine falsche Einstellung kann bewirken, dass der Controller nicht mehr arbeitet und auch nicht mehr mit dem Programmiergerät kommuniziert! Der Controller ist in einem solchen Fall zwar nicht kaputt, kann aber leider nur mit Spezialausrüstung wiederbelebt werden.

Zum Einstellen der Fuse-Bits wird auf die Seite Fuses gewechselt, dabei erfolgt automatisch das Auslesen der aktuellen Fuse-Bit-Einstellungen aus dem Controller.

Das nebenstehende Bild ist in der Beschreibung des Projektes Wohnraumuhr im Abschnitt Software dargestellt und außerdem als wohnuhr-fusebits.gif im Download-Paket der Wohnraumuhr-Software enthalten. Es zeigt die erforderliche Fuse-Bit-Einstellung für die Wohnraumuhr.

Sind alle Einstellungen wie im Bild getätigt, was man übrigens gut durch den Vergleich der Werte HIGH und LOW (bei einigen Controllern zusätzlich EXTENDED) überprüfen kann, dann wird durch einen Klick auf den Button Program die neue Einstellung in den Controller übertragen. Auch hier sollte man den Status-Bereich im Auge behalten und wenn alles so wie im Bild fehlerfrei durchläuft, ist auch die Fuse-Bit-Einstellung geschafft.

Damit ist der Controller fertig und einsatzbereit.

Die Einstellung der Fuse-Bits bleibt übrigens dauerhaft erhalten und zwar solange, bis sie durch eine neue Einstellung ersetzt wird. Falls also ein Update für ein bestehendes Projekt zur Verfügung steht, dann braucht man sich nicht um die Fuse-Bits zu kümmern und es wird nur der Inhalt des Flash-Speichers neu programmiert.

Nach dem Abschluss aller Programmiertätigkeiten wird zunächst die Stromversorgung des Projektes abgeschaltet und anschließend das Programmierkabel vom ISP-Anschluss des Projektes abgezogen. Danach kann das AVR-Studio beendet und zum Schluss das Programmiergerät vom PC abgezogen werden.

Andere Programmiergeräte

Es gibt noch eine ganze Reihe weiterer Programmiergeräte für AVR-Mikrocontroller. So bietet natürlich die Herstellerfirma ATMEL selbst verschiedene Geräte an, die zum Teil enorm leistungsfähig sind und dadurch auch ihren Preis haben. Als Beispiele sollen hier der Klassiker STK500 (ca. 85€) und das aktuellere Modell AVR Dragon (ca. 60€) genannt werden. Dann gibt es verschiedene preiswerte Entwicklungen von Firmen und Bastlern, von denen ich 2 vorstellen möchte:

Diamex DX-ISP

Dieses Programmiergerät wird über USB mit dem PC verbunden und kommuniziert über das STK500v2 Protokoll mit dem AVR-Studio. Es ist bei www.srt-versand.de unter der Artikelnummer 5050112 erhältlich und kostete bei der Erstellung des Textes 17,90€. Dieses Programmiergerät ist von der Technik und der Funktionalität mit dem mySmartUSB light vergleichbar.

USBprog

USBprog ist ein weiteres interessantes USB-Programmiergerät, welches in der Zeitschrift Elektor vorgestellt wurde. Es kann mit verschiedener Firmware geladen und somit für unterschiedliche Zwecke genutzt werden - die Programmierung von AVRs ist nur eine Anwendung davon. USBprog kann bei www.embedded-projects.net/index.php?page_id=135 als Bausatz für einen Preis ab 34€ bestellt werden.

Einfache Programmier-Adapter

Weiterhin gibt es noch ganz einfache Programmieradapter, die man mit wenig Aufwand selbst bauen kann. Diese werden an einen parallelen (LPT) oder seriellen Port (COM) an den PC angeschlossen und erfordern eine spezielle Programmier-Software. Ich habe selbst über einen längeren Zeitraum mit solchen Adaptern gearbeitet und diese hier auch dokumentiert. Die Technik entwickelt sich aber weiter und so wird es immer schwieriger, einen PC mit einem LPT oder COM-Anschluss zu finden. Außerdem arbeiten diese einfachen Adapter am Rande der Spezifikationen und führen oft zu Problemen. Wer sich dennoch für so einen einfachen Programmier-Adapter interessiert, der findet auf der alten Seite AVR-Programmierung alle Informationen.


Allgemeines - Projekt-Überblick - Links, Software - Neuigkeiten - "Klassiker" - Galerie - Impressum
AVR-Programmierung - AVR-Bootloader - Multifunktionsuhr - Tischuhr - Wohnraumuhr - Wecker - Zahnputzuhr - BigBen-Türgong - Fahrtregler - EPROM-Programmiergerät - Temperaturmesssystem - USB-RS232 Interface - Kleine Projekte