Startseite

AVR Programmier-Tools

Um AVR Mikrocontroller zu programmieren, brauchst du im Prinzip nur drei Dinge:

Als Toolchain bietet Microchip das MPLAB XC8 Compiler Paket an, welches eine beschränkte Version des eigentlich freien avr-gcc in Version 5.4.0 enthält. Folgende Optimierungen hat Microchip darin gesperrt, um sie für viel Geld als "PRO" Version zu lizensieren: -O2, -O3, -Os, -flto, -fwhole-program, -fuse-linker-plugin. Außerdem fehlt bei der XC8 Toolchain das "make" Kommando. Mir fällt kein plausibles Argument ein, mit dem man diese Toolchain empfehlen könnte.

Die Hello World Vorlage enthält zeigt, wie man unabhängig von einer Entwicklungsumgebung (IDE) ein Projekt mit Makefile erstellt und benutzt.

Die AVR C Bibliothek aus der GNU Toolchain ist hier dokumentiert. Zur Berechnung und Kontrolle von Fuses verwende ich den Engbedded Fuse Calculator online.

Linux

Alle gängigen Linux Distributionen stellen die nötige Software über ihren Paketmanager bereit. Bei Debian und Ubuntu heißen die Pakete: make, avr-libc, gcc-avr und avrdude.

Wer unbedingt die neueste GNU Toolchain benutzen will, findet sie auf der Webseite von Zak, wobei diese nicht immer eine gute Wahl sind. Die älteren Versionen erzeugen oft effizienteren Code und sind gründlicher getestet.

Zum manuellen Testen von serieller Kommunikation empfehle ich das Hammer Terminal (hterm) oder Cutecom. Für Netzwerk-Verbindungen sind hingegen Netcat (nc), curl und Wireshark gut.

Windows

Die GNU Toolchain wurde von Linux nach Windows portiert. Du hast die Wahl zwischen:

Falls Avrdude in deiner Toolchain fehlt oder zu alt ist, verwende diesen download. Die beiden Dateien in dem ZIP Archiv kannst du einfach in das bin Verzeichnis deiner Toolchain kopieren.

Zum manuellen Testen von serieller Kommunikation empfehle ich das Hammer Terminal (hterm) oder Putty. Für Netzwerk-Verbindungen sind hingegen Netcat, curl und Wireshark gut.

Als Texteditor empfehle ich unter Windows das Notepad++ oder Editpad Lite. Das Programmer Notepad aus dem WinAVR Paket ist auch nicht schlecht.

Prolific PL2303 unter Windows

Der PL2303 Chip wird in vielen USB-UART Adaptern verwendet. Der aktuelle Windows Treiber funktioniert leider nicht mit alten und gefälschten PL2303 Chips. Abhilfe schafft die Installation des älteren Treibers v3.4.25.218 oder v3.3.2.105.

Wenn Windows jetzt trotzdem den neueren Treiber lädt, hat man zwei Möglichkeiten:

1) Den neueren Treiber entfernen
Dazu geht man im Gerätemanager mit der rechten Mastaste auf den Prolific Adapter und wählt "Gerät Deinstallieren". Im nächsten Dialog soll "Treibersoftware für dieses Gerät löschen" aktiviert sein. Anschließend den USB Stecker ziehen und wieder einstecken. Windows wird danach den verbleibenden alten Treiber laden.

2) Den richtigen (alten) Treiber zuweisen
Dazu geht man im Gerätemanager mit der rechten Mastaste auf den Prolific Adapter und wählt "Treiber aktualisieren". Im nächsten Dialog soll Windows den PC nach verfügbaren Treibern durchsuchen (Aus einer Liste von Gerätetreibern auf dem Computer wählen). Dort wählst du dann nicht den aktuellen Treiber aus, sondern den älteren mit Version 3.4.25.218 oder 3.3.2.105.

Dies muss man nach jedem Windows Upgrade wiederholen, sowie nach jedem Umstecken an einen anderen USB Anschluss.

Nachtrag: Inzwischen soll es wohl möglich sein, Treiber von automatischen Upgrades auszuschließen, siehe Anleitung auf giga.de.

CH340 und CH341 unter Windows

Viele Arduino Nachbauten enthalten den chinesischen USB-UART Chip vom Typ CH340 oder CH341. Den Treiber dazu findest du auf der Webseite des Herstellers.

Integrierte Entwicklungsumgebungen

Für mittlere bis große Projekte eignen sich integrierte Entwicklungsumgebungen (kurz IDE) besser, als simple Text-Editoren. Die automatische Eingabe-Ergänzung, das Springen zwischen Dateien und das Suchen und Umbenennen von Symbolen geht damit viel komfortabler.

Wenn du einen In-Circuit Debugger von Atmel/Microchip verwenden möchtest, musst du die MPLAB X IDE oder das ältere Microchip Studio benutzen. Ansonsten empfehle ich Qt Creator in Kombination mit Makefiles.

Microchip MPLAB X

Diese Entwicklungsumgebung ist schon länger für die Programmierung von Mikrocontrollern von Microchip bekannt. Nachdem die Firma Atmel aufkaufte, hat sie die IDE entsprechend angepasst, so dass nun auch AVR Mikrocontroller unterstützt werden. Die IDE enthält einen Simulator für viele AVR Modelle, so dass man deren Programmierung ohne Mikrocontroller ein bisschen üben kann.

MPLAB X 6.05 basiert auf Netbeans und ist für Windows (ab Version 7), Linux und Mac OS verfügbar. Du brauchst einen PC mit mindestens 4 GB RAM und 6 GB freiem Speicherplatz. Die Toolchain muss separat installiert werden. Trotz ihrer Größe läuft diese IDE deutlich flotter, als das Atmel Studio.

Ich habe MPLAB X bisher nur kurz angetestet. Offenbar ist es nicht vorgesehen, bestehende Projekte mit Makefile zu importieren. Die IDE generiert immer ihr eigenes Makefile, das zwar an der Kommandozeile nutzbar ist, aber MPLAB X muss dennoch installiert sein. Abgesehen davon konnte ich meine bestehenden Quelltexte problemlos in ein leeres Projekt hinein kopieren und compilieren.

Die Anzeige der emulierten Register vom Simulator wurde im Menü Window/Debugging/ I/O View versteckt.

Wer ältere Entwicklungsumgebungen von Atmel gewöhnt ist, wird womöglich die Unterstützung seines Programmieradapters vermissen. Zum Debuggen empfiehlt sich der preisgünstige MPLAB Snap. Ansonsten kann man natürlich auch externe Software benutzen, um die *.hex Datei in den Mikrocontroller zu übertragen.

Microchip Studio for AVR and SAM devices

Das Microchip Studio for AVR and SAM devices (ehemals Atmel Studio 7) ist ebenfalls sehr groß und erfordert einen besonders leistungsstarken Computer mit Windows 7 (oder neuer) und 6 GB Speicherplatz. Ich empfehle mindestens 8 GB RAM und eine SSD, sonst läuft es quälend langsam. Das Microchip Studio basiert auf Microsoft Visual Studio. Die IDE enthält einen Simulator für viele AVR Modelle, so dass man deren Programmierung auch ohne Mikrocontroller ein bisschen üben kann.

Der Installer sorgt automatisch für die installation der beschränkten XC8 Toolchain, man kann aber auch andere GNU Toolchains verwenden. Die optionale Komponente "Advanced Software Framework" wird normalerweise nicht benötigt, es sei denn man möchte die fertigen Programmbeispiele oder Libraries von Atmel verwenden.

Beim Microchip Studio ist es nicht vorgesehen, bestehende Projekte mit Makefile zu übernehmen. Du kannst aber ein neues Projekt anlegen und deine Quelltexte dann hinein kopieren. Im Solution Explorer (rechts oben) musst du alle Quelltext-Dateien hinzufügen, damit sie compiliert werden.

Wenn dein Projekt ein Makefile hat, klicke mit der rechten Maustaste auf den Projektnamen (die Zeile mit dem orangenem Symbol) und dann auf Properties. Aktiviere die Checkbox "Use External Makefile" und gebe darunter den Pfad zum Makefile ein.

Der Installer richtet im Startmenü den "Microchip Studio Command Prompt" ein, das ist eine cmd Shell, wo alle nötigen Umgebungsvariablen richtig gesetzt sind. In dieser Shell kann man Makefile-basierte Projekte mit dem make Befehl compilieren.

Qt Creator

Qt Creator ist eine kostenlose IDE für C/C++ Projekte mit speziellen Features für das Qt Framework. Qt Creator hat von allen hier genannten IDEs die beste Quelltext-Analyse, was das Erkennen von potentiellen Fehlern betrifft. Qt Creator gibt es für Linux, Windows und Mac OS. Die IDE ist in C++ geschrieben, und läuft daher auf jedem Computer flott.

Du kannst dass bestehende Projekt über das Menü "Datei/Neu/Projekt importieren/Import eines existierenden Projekts" importieren. In der Datei "ProjektName.files" kannst du angeben, welche Dateien du in Qt Creator bearbeiten willst.

In der Datei "ProjektName.includes" gibst du alle Verzeichnisse an, wo die Header Dateien der C-Bibliotheken gesucht werden sollen. Zum Beispiel:

/usr/lib/avr/include

Definiere in der Datei "ProjektName.config" ein Makro mit dem Typ des Mikrocontrollers. Die richtige Schreibweise findest du in der Datei avr/io.h. Zum Beispiel:

#define __AVR_ATtiny2313__

Zum Compilieren rufst du "make" im Terminalfenster auf.

NetBeans

NetBeans war primär für Java Anwendungen gedacht, hat aber auch einen guten C/C++ Editor als Plugin. Du musst vorher eine Java Runtime installieren. Im Menü Tools/Plugins kannst du das C/C++ Plugins nachinstallieren. Konfiguriere es so: Dieses Bildschirmfoto zeigt die richtigen Einstellungen für Linux:

Anschließend kannst du das Mikrocontroller-Projekt über das Datei Menü von NetBeans öffnen:

Damit NetBeans die SFR Register (zum Beispiel PORTB) erkennt,

Ich habe diese Anleitung gefunden, wo erklärt wird, wie man den Editor von NetBeans benutzt.

Zum Compilieren rufst du "make" im Terminalfenster auf.

Eclipse

Eclipse war ebenfalls ursprünglich eine Entwicklungsumgebung für Java, unterstützt nun jedoch viele andere Sprachen. Eclipse fällt durch extrem viele Einstellmöglichkeiten und Plugins auf. Die Einarbeitungszeit ist deutlich länger, als bei den anderen Alternativen. Du musst vorher eine Java Runtime installieren.

Downloade die Eclipse IDE für C/C++ Entwickler oder installiere das C/C++ Plugin in eine bereits vorhandene Eclipse IDE. Importiere das Projekt über das Menü File/New/Makefile Projekt With Existing Code.

Klicke dann mit der Rechten Maustaste auf den Namen des soeben importierten Projektes, und dann auf Properties.

Zum Compilieren rufst du "make" im Terminalfenster auf.

Visual Studio Code

Visual Studio Code (vscode) ist eine kostenlose Entwicklungsumgebung von Microsoft. In vielen Linux Distributionen ist sie als optionales Paket enthalten. Zum Compilieren rufst du "make" im Terminalfenster auf.

AVR Studio

Das alte AVR Studio 4.19 zeichnet sich durch eine schlichte Bedienoberfläche mit geringer Codegröße aus. Selbst auf uralten Computern läuft flott. Es enthält einen Assembler und Simulatoren für viele AVR Modelle, so dass man deren Programmierung auch ohne Mikrocontroller ein bisschen üben kann.

AVR Studio 4.19 läuft zuverlässig unter Windows XP und Windows 7 mit weniger als 1 GB RAM. Wer kein geeignetes Betriebssystem hat, kann es in einer virtuellen Maschine laufen lassen (z.B. mit VirtualBox). Für die Programmierung in C oder C++ muss zusätzlich WinAVR 2010 installiert werden. Alternativ eignet sich die neuere Prebuilt Windows Toolchain 5.3.0, allerdings funktioniert damit der Debugger nicht.

In den Projekteinstellungen unter "Custom Options" musst du den Pfad zu avr-gcc.exe und make.exe angeben:

Wenn dein Projekt ein Makefile hat, stelle das weiter oben im Abschnitt "General" ein.

Im AVR Studio ist ein Programm zum Bedienen einiger Programmieradapter eingebettet. Der dazu mitgelieferte (Jungo) USB Treiber lässt sich ab Windows 8 allerdings nur mit deaktivierter "Treibersignatur" installieren. Folge dazu dieser Anleitung. Oder benutze ein anderes externes Programm.

Ich bedanke mich bei Atmel für die besondere Genehmigung, das AVR Studio hier zum Download anzubieten.