Servus!
Ich stand schon des Öfteren vor dem Problem, jemandem, der sich nicht
mit µCs auskennt, eine einfache Möglichkeit zu bieten, die Firmware
eines AVR µCs upzudaten.
Klarerweise kann ich somit auch nicht voraussetzen, dass eine komplette
AVR-Toolchain inklusive AVRDUDE oder gar das Atmel® / AVR Studio oder
auch Java installiert ist.
Außerdem wollte ich nicht, dass es viele sichtbare
Einstellmöglichkeiten, wie z.B. beim AVR8 Burn-o-mat für den
Anwender geben soll, wenn man lediglich ein Firmwareupdate machen, aber
keine Fuses beliebig ändern will.
Herausgekommen ist dabei eine .bat-Datei, welche die verfügbaren
COM-Ports auflistet und auswählen lässt, welcher zu verwenden ist.
Beispielsweise verwende ich hier einen USB<->Seriell FTDI FT232 Adapter
mit einem "Arduino Pro Mini 328", (welcher auf eBay zum Teil
günstiger inkl. Versand erhältlich ist, als der nackte IC). Dieser hat
ja bereits einen von AVRDUDE direkt als "programmer" an einer
seriellen Schnittstelle unterstützten Bootloader. Durch Anpassen des
avrdude-Aufrufs kann jeder beliebige andere Programmer verwendet werden.
Für die Arduino-Serie gibt es hier eine schöne Auflistung der für das
jeweilige Modell notwendigen Einstellungen.
https://github.com/watterott/KnowledgeBase/wiki/Arduino
Somit braucht man bei auch Verwendung dieser Hardware keine Arduino IDE,
sondern lediglich AVRDUDE und gegebenenfalls den manuell
installierten FTDI-Driver. http://www.ftdichip.com/Drivers/VCP.htm
Es wird angenommen, dass das .hex (oder ggf. .eep)-File mit beliebigem
Namen im Unterordner default liegt, was ja bei AVR Studio der Fall ist,
ansonsten wird einfach das File im aktuellen Ordner geflasht.
Per Doppelklick starten, mit x im Fenster oder Strg+C, J, Enter beenden,
ansonsten nächstes zu Programmierende Board anstecken & nahezu beliebige
Taste drücken. ;)
Falls ihr den noch nicht kennt würde ich euch den
AVR-Bootloader mit Verschlüsselung von Hagen Re empfehlen, welcher
viele Vorteile gegenüber dem vorprogrammierten "Optiboot" hat. Die kurze
Einarbeitung zahlt sich echt aus! (Dieser lässt sich auch in die
Kommandozeile einbauen, wobei er ja ohnehin schon eine super GUI hat,
die mein Batch-File nahezu obsolet macht.)
Ich würde mich wirklich sehr freuen, wenn jemand diese Funktionalität
auf Linux, z.B. ein Shell-Script portieren könnte!
Schöne Grüße & einfaches Firmware updaten,
Daniel A. Maierhofer