|
|
AVRDUDE
[Bearbeiten] BeschreibungAVRDUDE (http://www.nongnu.org/avrdude/) ist eine Programmiersoftware für Atmel AVR Controller. Funktionen unter Anderem:
AVRDUDE kann das STK500 (auch mit Firmware 2.x als stk500v2), das Atmel AVRISP (auch mit Firmware 2.x als avrispv2 o.ä.), das Atmel AVRISP MKII (USB Ansteuerung mittels lib-usb bzw. lib-usb-W32), AVR910-kompatible Programmierer, den AVR Butterfly/AVR109-kompatible Bootloader, STK200-Programmierdongles und verschiedene andere Parallelport-Adapter sowie "serielle Statusportprogrammierer" (Siprog) ansteuern. Auch das Atmel JTAGICE (oder Nachbauten wie Bootice oder Evertool), Atmel JTAGICE-MKII und der AVR Dragon können als Programmierhardware genutzt werden. Das Programm ist unter MS-Windows (Cygwin nicht erforderlich), Linux, BSD, Solaris und Mac OS X lauffähig. Die Version für MS-Windows ist im WinAVR-Paket enthalten. Der Quellcode ist frei verfügbar (Lizenz beachten). Da alle AVRDUDE-Funktionen über Kommandozeilenparamter gesteuert werden können, eignet es sich gut zur Integration in Makefiles. Beispiele finden sich in der Makefile-Vorlage von WinAVR und Mfile. Die gesamte Konfiguration liegt in einer Textdatei (avrdude.conf), so dass sich bei Bedarf ein beliebiger neuer Parallelport-Programmierdongle oder auch ein noch nicht unterstützter AVR-Controller ergänzen lassen. Die Syntax für die Definition eines AVR-Controllers lehnt sich an die Datenblatt-Tabelle für die serielle Programmierung an, so dass man praktisch nur das Datenblatt "intelligent" abtippen muss. Für die Ansteuerung von Parallelport-Adaptern unter MS-Windows NT/2000/XP wird ein spezieller Porttreiber (giveio) mitgeliefert. Bei der Installation von WinAVR wird giveio bereits mitinstalliert. Programmer mit üblicher serieller Schnittstelle (RS232) benötigen keine zusätzliche Software oder Treiber zum Betrieb mit AVRDUDE. Für Hardware mit USB-Anschluss muss die lib-usb bzw. lib-usb-win32 installiert sein. [Bearbeiten] GUIsBei WinAVR wird die grafische Oberfläche avrdude-gui.exe mitgeliefert. Für Windows, Linux und andere Betriebssysteme gibt zwei weitere GUIs: den in Java geschriebene AVR Burn-O-Mat und den avrburner. GUIs vereinfachen vor allem Programmieren der Fuses. [Bearbeiten] Kurzanleitung für Linux und STK200Dazu muss erst ein Hardware-Link auf die Printerport-Treiber eingerichtet werden: su mknod /dev/parport0 c 99 0 chmod a+rw /dev/parport0 avrdude -p m8535 -c stk200 -e -U qqtraff.hex Siehe auch : [Bearbeiten] Tipps + Tricks[Bearbeiten] Parallelport-Programmer an aktuellen PCsAktuelle PCs sind einfach zu schnell mit dem Bitgewackel an der parallelen Schnittstelle, vor allem für AVRs, die noch mit den 1 MHz im Auslieferungszustand laufen (maximal zulässiger ISP-Takt < 250 kHz). Neuere Versionen von avrdude unterstützen zu diesem Zweck eine Option -i <N>, wobei <N> die Anzahl der Mikrosekunden bezeichnet, die beim Bitwackeln zusätzlich zu warten ist. Einfach mal mit -i 10 anfangen und dann entweder die Fuses auf die Ziel-Taktfrequenz umstellen (falls diese wesentlich höher sein wird als die 1 MHz), oder sukkzessive mit kleineren Werten testen (Forenbeitrag von Jörg). Unter WinXPsp2 auf einem Thinkpad T40 lies sich die "avrdude: AVR device not responding"-Meldung beheben durch Ändern von Gerätemanager-->Ltp1-->Eigenschaften-->Anschlusseinstellungen-->Interrupt-nie-verwenden in "Jeden dem Anschluss zugewiesenem Interrupt verwenden". [Bearbeiten] USB ProgrammerEin Selbstbau USB-Programmer ist unter http://www.rototron.info zu finden. Er läuft auch unter VISTA und benötigt mit der neuesten AVRDUDE Version keinen Treiber, da er im HID-Modus betrieben wird. [Bearbeiten] libusb0.dll wird bei WinAvr 20070525 nicht gefundenForenbeitrag von Paul: Habe leider noch etwas zu bemängeln, und zwar meckerte avrdude, dass es die "libusb0.dll" nicht fand. Musste dann erst noch manuell den Pfad c:\winavr\utils\libusb\bin in die autoxecec.bat eintragen. Siehe auch Diskussion bei www.avrfreaks.net [Bearbeiten] Aufruf unter Linux als user (non-root)Unter Linux kann häufig avrdude nur als user 'root' auf des USB programmer zugreifen. Als normaler User bekommt man eine Fehlermeldung wie: #avrdude -c usbtiny -p m8 avrdude: error: usbtiny_transmit: error sending control message: Operation not permitted Dies liegt daran, daß die device-nodes, die beim Einstecken des USB-Programmers von udev angelegt werden, root zugeordnet sind. Man kann dies ändern, indem man udev-Regeln für die verwendeten Programmer anlegt. Unter Debian muß man dazu nur eine neue Datei, z. B. 015_usbprog.rules unter /etc/udev/rules.d anlegen, z. B. mit folgenden Inhalt: # Atmel AVR ISP mkII
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", GROUP="users", MODE="0660"
# usbprog bootloader
ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c62", GROUP="users", MODE="0660"
# USBasp programmer
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="users", MODE="0660"
# USBtiny programmer
ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c9f", GROUP="users", MODE="0660"
Hiermit werden der AVR ISP mkII, der usbprog Bootloader, USBasp und USBtiny bekannt gemacht, so daß alle User in der Grupp "users" darauf zugreifen können. Für weitere Programmer muß man entsprechende Zeile (mit ATTRS...) anlegen und die passenden Vendor und Product IDs eintragen. [Bearbeiten] Anzeige unterstützter AVRsWie die anderen Atmels bei avrdude heißen zeigt: avrdude -? avrdude -p ? [Bearbeiten] Anschluss an COM10 und höher (Windows)Wenn AVRDUDE unter Windows an COM10 und höher betrieben werden soll, ist eine andere Schreibweise für die Schnittstelle in der Kommandozeile nötig. Beispiel: avrdude -c stk500v2 -p m16 -P \\.\com13 -uF -vvvv 2> logfile.txt In diesem Beispiel wird statt der gewohnten Schreibweise com13 die spezielle Schreibweise \\.\com13 verwendet und es wird mit -vvvv 2> logfile.txt eine ausführliche Debugausgabe für Fragen im Forum erzeugt. Näheres hierzu in der Forumsdiskussion. [Bearbeiten] AVRISPmkII + AVRDUDE + Window Vista (32)http://www.mikrocontroller.net/topic/126594#1157327 [Bearbeiten] "avrdude was compiled without usb support"Offenbar enthielt WinAVR-20100110 zunächst fälschlicherweise eine AVRDUDE Version ohne USB Support [1]. Abhilfe: WinAVR deinstallieren, gleiches Release (WinAVR-20100110) nocheinmal herunterladen und installieren (mindestens seit Anfang März 2010 enthält dieses Release avrdude in der Version 5.10 und bringt USB-Support mit). [Bearbeiten] Weblinks
|