ATmega32 Bootloader und Arduino IDE 1.0.5

Arduino IDE mit ATmega32 verwenden und eigene Bootloader erstellen

Arduino Tutorial

Die Arduino Familie arbeitet mit einer auf AVR-GCC aufgesetzten Entwicklungsumgebung. Dabei wird einem jegliche Arbeit mit Registern abgenommen. Vor allem für Einsteiger, oder für diejenigen die nur sporadisch Mikrocontroller programmieren, ist das eine enorme Erleichterung. Außerdem bleiben die bekannten AVR-GCC Befehle weiterhin nutzbar.
Leider unterstützt die IDE natürlich nur die auf den eigenen Boards verbauten Controller. Deshalb war ich auf der Suche nach einer Lösung für den ATmega32, den ich am meisten verwende. Für die Umsetzung war die Anleitung dann doch etwas knapp, deshalb fasse ich die wichtigen Schritte hier nochmal zusammen.

Die nötigen Änderungen für die Arduino IDE findet man auf der Seite in einem zip-Archiv „rtavr.zip“ zum downloaden. Der Inhalt aus dem entpackten Ordner muss nach „arduino-1.0.5\hardware\arduino\“ kopiert werden.

Die Datei „arduino-1.0.5\hardware\arduino\boards.txt“ sollte gesichert werden, wenn die Standard Boards erhalten bleiben sollen. Der Inhalt muss dann an die Datei aus dem „rtavr.zip“ angehängt werden.
In dieser Datei kann in der Zeile
atmega32.build.f_cpu=16000000L“ die Taktrate
und in der Zeile
„atmega32.upload.speed=19200“ die Bootloader Upload Geschwindigkeit
für den ATmega32 eingestellt werden. Diese Werte müssen natürlich zum CPU und Bootloader passen.

Der nötige Bootloader ist ebenfalls als zip „atmegaboot-32.zip“ auf der Seite zu finden. Soll die Upload Geschwindigkeit geändert werden, kann diese im Source Code in der Datei „ATmegaBOOT_168.c“ angepasst werden.
#define BAUD_RATE   19200

Die Taktrate kann in der „Makefile“ angepasst werden.
atmega32: AVR_FREQ = 16000000L

Zum kompilieren wird WinAVR benötigt. Dann einfach über die Kommandozeile in das Verzeichnis wechseln in dem die Bootloader Dateien entpackt wurden. Kompiliert wird mit dem Befehl: „make atmega32„. Die erzeugte Datei kann dann per ISP auf den Controller geflasht werden. Wenn der Bootloader mit Arduino geflasht werden soll müssen eventuell noch die Fusebits in den Dateien angepasst werden. Außerdem muss die erzeugte Datei mit unverändertem Namen nach „arduino-1.0.5\hardware\arduino\bootloaders\stk500\“ kopiert werden.

Ich habe das Flashen mit Bascom gemacht und die Fusebits dort manuell eingestellt, deshalb kann ich den Vorgang für Arduino nicht genauer beschreiben.
Die Bootloader size beträgt 1024.

Wenn der Bootloader übertragen ist kann der Controller mit Arduino genutzt werden. Dafür wird in der IDE „Atmega32 board“ und der entsprechende Serielle Port eingestellt werden. Beim übertragen muss sobald das Kompilieren beendet ist und „uploaden….“ erscheint der Controller resettet werden.

2 Antworten auf ATmega32 Bootloader und Arduino IDE 1.0.5

  1. Paul Fay Artikelautor

    Die genannte Library habe ich noch nicht benutzt. Nach kurzer Analyse arbeitet sie nur mit „millis()“ als Zeitvergleich. Ich sehe auf den ersten Blick zumindest nichts was nicht funktionieren könnte.

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert