Dies ist eine alte Version des Dokuments!
USBASP
Zur In-System-Programmierung (ISP) der AVR Mikrocontroller hatte ich früher den STK200-Dongle von Kanda am Parallelport genutzt. http://www.mikrocontroller.net/articles/AVR_In_System_Programmieradapter
STK200-Dongle von Kanda
Dieser AVR-Progammieradapter (Bj 1998) wird am Parallelport angeschlossen. Er enthält lediglich einen 74HC244-Treiber-IC, die Programmierlogik übernimmt vollständig der PC. s.a. http://www.mikrocontroller.net/articles/STK200.
Achtung: Das Kabel ist KEIN 1:1-Kabel, sondern geht über Kreuz. Es ist nur für STK200-Dongle von Kanda gedacht.
Software
Der STK200-Progammieradapter wird von vielen Tools unterstützt.
Ins AVR-Studio integriert ist die Software AVRISP von Kanda. Früher nur käuflich erhältlich, gibt es die aktuellste Version V5 nun kostenlos bei Kanda → http://www.kanda.com/avr-isp-software.html.
AVRISP muss unter Windows XP/7 mit Admin-Rechten gestartet werden, ansonsten gibt es keinen Zugriff auf den LPT-Port. Außerdem funktioniert sie nicht unter 64-Bit-Windows!
Eine weitere Software, die den STK200-Programmieradapter untertützt, ist AVRDUDE. Download http://download.savannah.gnu.org/releases/avrdude/. Aktuell f. Windows ist derzeit avrdude-5.11-Patch7610-win32.zip, diese Version enthält auch den GIVEIO-Treiber. Dieser Treiber muss für den STK200-Progammieradapter installiert werden. Das erledigt ein Aufruf von giveio\install_giveio.bat.
Bei AVRDUDE wird der STK200-Progammieradapter mit
avrdude -c stk200
ausgewählt.
USBASP
USBASP ist ein Opensource-Projekt von http://www.fischl.de/usbasp/.
Bei ebay gibt es für wenig Euro USBASP-kompatible Programmierer. Ich hatte mir eine Version namens „USBASP V2.0 Lcsoft Studio“ gekauft. Bei Protostack findet man ein komplettes Userguide mit allen benötigten Unterlagen zu diesem Programmer http://www.protostack.com/download/Users%20Guide%20(AC-PG-USBASP-UG-V2.0).pdf.
Achtung: beim beiliegenden Kabel ist rot NICHT Pin1 zugeordnet. Ich habe das für mich korrigiert (Pfostenbuchsen abmontieren und gedreht wieder aufbringen, so dass Pin1 - das kleine Dreieck - am roten Kabel anliegt). Außerdem habe ich zusätzlich eine 6-polige Pfostenbuchse mit aufs Kabel gebracht. Damit können 6-Pin-ISP-Geräte verbunden werden, wie z.B. Arduino oder Euzebox.
Kabel 6pol. Buchse rot 1 -->4 9<-- 1 MISO 2 ----------------- 2 VCC 3 (frei) 7<-- 3 SCK 4 (frei) 1<-- 4 MOSI 5 ----------------- 5 RESET 6 (frei) 10<-- 6 GROUND 7 -->3 8 (frei) 9 -->1 10 -->6
Unterlagen
s. http://www.protostack.com/accessories/usbasp-avr-Programmer
aktuelle Downloads
s. http://www.protostack.com/index.php?main_page=library
User Guide : http://www.protostack.com/download/Users%20Guide%20(AC-PG-USBASP-UG-V2.0).pdf
Treiber : http://www.protostack.com/download/USBasp-win-driver-x86-x64-ia64-v1.2.5.zip
Der USB-Treiber muss zuerst installiert werden. Im User Guide ist dies ausführlich beschrieben und bebildert. Mit libusb_0.1.12.1\testlibusb-win.exe kann geprüft werden, ob der Treiber richtig installiert ist und der USBASP erkannt wird.
Jumper
Ich habe die beiden Jumper JP2 und JP3 nachgerüstet.
JP1 wird nur zum Programmieren des Atmel ATmega8 auf dem USB Atmel SPI Programmieradapters benötigt. Standard: Offen
JP2 wählt die Geschwindigkeit zum Programmieren der Zielhardware aus. Offen (Standard): maximale Geschwindigkeit / Geschlossen: geringe Geschwindigkeit.
Mit JP3 kann die Zielhardware über den USB Port mit Strom versorgt werden (nicht empfohlen). Entweder 5V oder 3.3V, Standard: Offen
Firmware-Update
Khazama(AVRDUDE) gab original immer die Warnung „Error Setting USBASP ISP Clock.“ aus. Abhilfe schafft ein Flashen des USBASP mit der aktuellsten Software und passenden Fuses.
zum Update der Firmware braucht man einen weiteren ISP-Programmierer! Dann JP2 (+JP1) stecken, und flashen, z.B. mit Makefile aus usbasp.2011-05-28.tar.gz. in bin\firmware\Makefile den Programmieradapter einstellen, bei mir STK200.
Programmieren der Firmware des USBASP mittels STK200-Dongle von Kanda:
avrdude -c stk200 -p atmega8 -B 200 -U hfuse:w:0xC9:m -U lfuse:w:0xEF:m avrdude -c stk200 -p atmega8 -B 1 -U flash:w:usbasp.atmega8.2011-05-28.hex
Hinweise
s.a. http://www.ulrichradig.de/home/index.php/avr/usb-avr-prog
Anfängerfehler: target doesn't answer. 1
Hier musste JP3 gesteckt werden (bzw. in der Software ein niedrigerer Takt ausgewählt werden), damit überhaupt eine Kommunikation mit dem tiny2313 auf dem Pollin-Spiel zustande kam. Der tiny2313 nutzt in dieser Applikation den internen Taktgenerator, das ist für die schnelle Kommunktion vis USBASP einfach zu langsam gewesen.
Software
AVRDUDE unterstützt natürlich auch USBASP. Download unter http://download.savannah.gnu.org/releases/avrdude/. Aktuell f. Windows ist derzeit avrdude-5.11-Patch7610-win32.zip.
grafische Oberfläche f. AVRDUDE z.B. Khazama AVR Programmieradapter http://www.khazama.com/project/Programmieradapter/
Auch myAVR_ProgTool von http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl112 unterstützt alle AVRDUDE-Programmieradapter.
Beispiel
;------------------------------------------------------------------------------ ; Fehler target doesn't answer. 1 ; Lösung: Takt verringern, entweder mit JP3 oder per Software mit -B20 ;------------------------------------------------------------------------------ d:\temp\avr>avrdude.exe -c usbasp -p attiny2313 avrdude.exe: error: programm enable: target doesn't answer. 1 avrdude.exe: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude.exe done. Thank you. d:\temp\avr>avrdude.exe -c usbasp -p attiny2313 -B20 avrdude.exe: set SCK frequency to 32000 Hz avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude.exe: Device signature = 0x1e910a avrdude.exe: safemode: Fuses OK avrdude.exe done. Thank you.
Ändern von USBASP auf USB AVR Lab
s. http://www.loetlabor.org/USBasp, Abschnitt AVR ISP mit AVRStudio
zu Sourcen lies http://www.mikrocontroller.net/topic/234004