Hallo,
ich habe mir einen USBasp besorgt, möchte nun aber die AVRISP MKII
Firmware darauf installieren, damit ich AVR Studio benutzen kann.
Ich nutze Windows 7 64Bit und scheitere an der Treiberinstallation.
Mit dem USB AVR Lab Tool kann man ja die neue Firmware flashen, nun
zeigt es mir aber an, meine Treiber seien nicht signiert, das Gerät ist
aber wohl erkannt worden (im Gerätemanager steht auch der USBasp unter
"Ports"). Ich habe die Treiber im Programmordner vom USB AVR Lab Tool
mit dem "Digital Signature Enforcement Overrider" bearbeitet, bin in den
"Testmodus" gewechselt und habe dann die Treiber installiert. Die
Installation klappt soweit, nur meldet mir, wie gesagt, das USB AVR Lab
Tool die nicht signierten Treiber und hat keinen Zugriff auf das Gerät.
Was kann ich noch tun?
Danke im Voraus,
Adrian
Habe ich jetzt mal alles abgearbeitet, bei Klick auf den Menüeintrag
erscheint nur:
"avrdude.exe: error: could not find USB device "USBasp" with vid=0x16c0
pid=0x5dc"
Der Treiber scheint noch nicht zu laufen..
Edit: Der Treiber läuft, ich bekomme jetzt diese Meldung, wenn ich den
usbasp an einen atmega8 anschließe:
1
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
2
avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
9
avrdude.exe: reading input file "Debug\.hex"
10
avrdude.exe: error opening Debug\.hex: No such file or directory
11
avrdude.exe: input file Debug\.hex auto detected as invalid format
12
avrdude.exe: can't open input file Debug\.hex: No such file or directory
13
avrdude.exe: write to file 'Debug\.hex' failed
14
15
avrdude.exe: safemode: Fuses OK
16
17
avrdude.exe done. Thank you.
Ich nehme mal an, weil ich noch gar kein Programm zu übertragen ist,
kommen die Meldungen nach dem zweiten "cannot set sck period".
Sollte ich mich daran stören, dass ich ein firmware-update machen soll,
wenn ja, wie mache ich das? brauche ich dazu einen zweiten programmer?
ich hätte noch ein arduino uno board hier.
Adrian Figueroa schrieb:> avrdude.exe: warning: cannot set sck period. please check for usbasp> firmware update.
Das liegt daran, dass die Firmware deines USBasp veraltet ist. Das ist
normalerweise bei denen der Fall, die aus China per ebay verklopft
werden.
> Ich nehme mal an, weil ich noch gar kein Programm zu übertragen ist,> kommen die Meldungen nach dem zweiten "cannot set sck period".
Wie sieht denn die Kommandozeile aus? Vielleicht ist da ein Fehler
drin...
> Sollte ich mich daran stören, dass ich ein firmware-update machen soll,> wenn ja, wie mache ich das? brauche ich dazu einen zweiten programmer?> ich hätte noch ein arduino uno board hier.
Manche AVR kannst du nur dann flashen, wenn die
Programmiergeschwindigkeit runtergesetzt wurde. Das liegt daran, dass
die Programmiergeschwindigkeit deutlich kleiner sein muss als der
jeweils intern eingestellte CPU-Takt des AVR (ich glaub maximal 1/4).
Manche ältere USBasp haben dazu einen Jumper (nicht alle), neuere machen
das über die Option "-B".
Ein Update empfiehlt sich aber auf alle Fälle. Und ja, du brauchst dazu
einen zweiten Programmer. Oder du besorgst dir dann gleich einen mit
aktueller Firmware.
Adrian Figueroa schrieb:> ich habe mir einen USBasp besorgt, möchte nun aber die AVRISP MKII> Firmware darauf installieren, damit ich AVR Studio benutzen kann.> Ich nutze Windows 7 64Bit und scheitere an der Treiberinstallation.
Diese Kombination funktioniert definitiv nicht. Die AVRispmkii firmware
funktioniert nur bis Windows XP[1].
> Ich habe die Treiber im Programmordner vom USB AVR Lab Tool> mit dem "Digital Signature Enforcement Overrider" bearbeitet, bin in den> "Testmodus" gewechselt und habe dann die Treiber installiert.
Das ist für aktuelle libusb-treiber nicht mehr notwendig. Erstelle dir
einfach mit dem inf-wizard[2] ein neues Treiberpaket, welches signiert
ist.
PS. Den "Digital Signature Enforcement Overrider" nimmt man schon lange
nicht mehr. Das aktuelle Mittel der Wahl ist Ready-Driver Plus [3].
Gruß Oliver
[1] http://www.ullihome.de/wiki/USBAVRLab/Firmwares/AVRISPmkII
(ganz unten)
[2]
http://www.lpclinux.com/Blogs/Installing_DFU-UTIL_package_on_Windows_host
(Schritte 1,3,4,5 wobei LPC313x-DFU => usbasp)
[3] http://www.citadelindustries.net/rdp.php
> Das liegt daran, dass die Firmware deines USBasp veraltet ist. Das ist> normalerweise bei denen der Fall, die aus China per ebay verklopft> werden.
Es war amazon aber gut, dann ist die firmware wohl zu alt..
> Wie sieht denn die Kommandozeile aus? Vielleicht ist da ein Fehler> drin...
Ich bin mir nicht sicher, meine sieht so aus, wenn die gemeint ist:
-e -P usb -c USBasp -p ATmega8 -e -U
flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":a
Im Debug Ordner liegt keine hex Datei, die er übertragen könnte, Atmel
Studio erzeugt keine, vielleicht mache ich also einfach etwas falsch
damit, ich weiß noch nicht, wie es zu bedienen ist und wollte gerade
erst einsteigen.
> Ein Update empfiehlt sich aber auf alle Fälle. Und ja, du brauchst dazu> einen zweiten Programmer. Oder du besorgst dir dann gleich einen mit> aktueller Firmware.
Kann ich den Arduino dafür nehmen? Den kann avrdude ja auch ansprechen..
> Das ist für aktuelle libusb-treiber nicht mehr notwendig. Erstelle dir> einfach mit dem inf-wizard[2] ein neues Treiberpaket, welches signiert> ist.> PS. Den "Digital Signature Enforcement Overrider" nimmt man schon lange> nicht mehr. Das aktuelle Mittel der Wahl ist Ready-Driver Plus [3].
Ah dann habe ich wohl ziemlich alte Beiträge gelesen ;)
Adrian Figueroa schrieb:> was gibt es denn für gute bezugsquellen für avr programmer, speziell den> usbasp? Ich habe da recht wenig gefunden.
Normal müsstest du auch mit dem Arduino einen anderen Programmer flashen
können. Ich habe irgendwo schon mal eine Anleitung gesehen.
USBasp gibt es haufenweise, probiere einfach eine Suchmaschine deiner
Wahl!
Wenn über den Firmwarestand nichts angegeben ist, am besten vorher den
Verkäufer fragen. Du brauchst mindestens die Version von Mai 2011.
Von einem Laden weiß ich, dass er damit wirbt, die neueste Firmware
drauf zu haben:
https://guloshop.de/shop/Mikrocontroller-Programmierung/guloprog-der-Programmer-von-guloshop-de::70.html
Das ist aber bestimmt nicht der einzige... Wie schon gesagt, am besten
vorher fragen.
Ich habe mich mal ein bisschen mit der Arduino ISP geschichte befasst.
Es scheint wirklich möglich zu sein.
1.) Ich habe die Fuses entsprechend den Vorgaben (lfuse 0xEF und hfuse
0xC9) gesetzt, nachdem ich auf das Arduino Board "Arduino ISP"
geschrieben habe, den Jumper auf meinem Stick (J2) gesetzt habe und
alles verbunden. Das Schreiben hat einwandfrei geklappt, hier habe ich
mal einen Auszug von avrdude nach dem Auslesen des atmega8 auf dem
usbasp:
Auch sehr gut. Wenn ich jetzt den Jumper wieder aufmache und den Stick
an ein Board zum Programmieren anschließe kommt im Atmel Studio nur:
1
avrdude.exe: error: programm enable: target doesn't answer. 1
2
avrdude.exe: initialization failed, rc=-1
3
Double check connections and try again, or use -F to override
4
this check.
Liegt das jetzt am Stick oder am zu programmierenden Board? Braucht das
Board seine eigene Versorgungsspannung, oder bezieht es die aus dem
USBasp? Im moment ist die Versorgung nicht angeschlossen.
Adrian
Adrian Figueroa schrieb:> Edit: Der Treiber läuft, ich bekomme jetzt diese Meldung, wenn ich den> usbasp an einen atmega8 anschließe:
1
> avrdude.exe: warning: cannot set sck period. please check for usbasp
2
> firmware update.
Die Firmware auf den USBASP ist veraltet und erlaubt noch nicht, die
SPI-Geschwindigkeit per Kommandozeile zu setzen. Das bedeutet, du kannst
damit keine Targets programmieren, die mit sehr langsamem Takt laufen.
IIRC ist der Default für diese alte FW-Version 250kHz SPI-Takt, was ein
Target mit mindestens 1MHz Takt erfordert.
1
> avrdude.exe: AVR device initialized and ready to accept instructions
2
> avrdude.exe: Device signature = 0x1e9307
3
> avrdude.exe: erasing chip
Das sieht doch alles gut aus.
1
> avrdude.exe: reading input file "Debug\.hex"
2
> avrdude.exe: error opening Debug\.hex: No such file or directory
3
> avrdude.exe: input file Debug\.hex auto detected as invalid format
4
> avrdude.exe: can't open input file Debug\.hex: No such file or directory
5
> avrdude.exe: write to file 'Debug\.hex' failed
> Ich nehme mal an, weil ich noch gar kein Programm zu übertragen ist,> kommen die Meldungen nach dem zweiten "cannot set sck period".
Ja. Die Kannst du ignorieren. Wenn du den USBASP wirklich testen willst,
kannst du versuchen, ein "Hello World" Programm zu flashen. Oder du
startest avrdude im interaktiven Modus (Option -t) und versuchst dann,
Flash, EEPROM und Fuses zu lesen. Wenn Lesen geht, geht Schreiben zu
99.9% auch.
> Sollte ich mich daran stören, dass ich ein firmware-update machen soll,
IMHO ja.
> wenn ja, wie mache ich das? brauche ich dazu einen zweiten programmer?> ich hätte noch ein arduino uno board hier.
Dazu reicht ein zweiter ATmega8, eine 28-polige Fassung, ein 8-16MHz
Quarz oder Resonator und die üblichen Abblock- bzw. Quarz-Kondensatoren.
Damit baust du die Mindestbeschaltung für einen ATmega8 mit externem
Quarz auf und verbindest das mit deinem USBASP. Dann besorgst du die
aktuelle Firmware und flashst sie auf einen zweiten ATmega8. Nicht
vergessen, die Fuses mit zu setzen! Dann einfach mit dem ATmega8 im
USBASP tauschen.
So mache ich meine Firmware-Updates für den USBASP und das funktioniert
ganz problemlos.
XL