Forum: Mikrocontroller und Digitale Elektronik Fehlermeldung avrdude und usbasp


von R. F. (rfr)


Lesenswert?

n'Abend...
Folgende Ausgabe meldet mein dude mit usbasp und einem nano:
-----------------------------8<--------------8<---------snip!
avrdude: Version 5.11.1, compiled on Oct 18 2011 at 21:41:15
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/RFr/.avrduderc"
         User configuration file does not exist or is not a regular 
file, skipping

         Using Port                    : /dev/usb
         Using Programmer              : usbasp
         Overriding Baud Rate          : 57600
avrdude: Warning: cannot query manufacturer for device: error sending 
control message: Operation not permitted
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 
pid=0x5dc

avrdude done.  Thank you.

RFr@LinuxMaster:~/Applikationen$ avrdude -c usbasp -p m328p -u -U 
flash:w:ff_mega.hex
avrdude: Warning: cannot query manufacturer for device: error sending 
control message: Operation not permitted
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 
pid=0x5dc

avrdude done.  Thank you.
---------------8<------------------8<----------------------snap!

Ich weiss nicht, was ich machen soll, um diese Meldung abzustellen.

Kann mir jemand helfen?

Gruss

Robert

von Axel S. (a-za-z0-9)


Lesenswert?

R. Freitag schrieb:
> avrdude: error: could not find USB device "USBasp" with vid=0x16c0
> pid=0x5dc

Es wurde kein USB-gerät mit der VID/PID von usbasp gefunden. Entweder 
steckt es nicht am USB oder es wurde nicht erkannt.

> Ich weiss nicht, was ich machen soll, um diese Meldung abzustellen.

Wird der usbasp denn von lsusb gefunden?
1
~ $lsusb 
2
...
3
Bus 001 Device 006: ID 16c0:05dc Van Ooijen Technische Informatica ...
4
shared ID for use with libusb

Wobei nicht der Text entscheidend ist, sondern die USB ID 16c0:05dc


XL

von R. F. (rfr)


Lesenswert?

lsusb gibt aus:


RFr@LinuxMaster:~/Applikationen$ lsusb
Bus 002 Device 003: ID 18e3:9102 Fitipower Integrated Technology Inc 
Multi Card Reader
Bus 003 Device 002: ID 046d:c077 Logitech, Inc.
Bus 003 Device 005: ID 16c0:05dc Van Ooijen Technische Informatica 
shared ID for use with libusb
Bus 004 Device 002: ID 03f0:0605 Hewlett-Packard ScanJet 2200c
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Es ist also drin und wurde gefunden.

Gruss

Robert

von Stefan F. (Gast)


Lesenswert?

Führe avrdude mal als root user aus (unter Ubuntu mit sudo).

von R. F. (rfr)


Lesenswert?

Ergebnis:



root@LinuxMaster:~# avrdude -c usbasp -P /dev/usb -p m328p -u -U 
flash:w:ff_mega.hex

avrdude: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

von g457 (Gast)


Lesenswert?

> # avrdude -c usbasp -P /dev/usb -p m328p -u -U flash:w:ff_mega.hex
                         ^^^^^^^^
Gibts das bei Dir? Normalerweise(tm) heisst das doch einfach nur '-P 
usb'

von R. F. (rfr)


Lesenswert?

Geändert. Ergebnis:




root@LinuxMaster:/home/RFr/Applikationen/ff5.0/avr/hex# avrdude -c 
usbasp -u -p m328p -P usb -U flash:w:ff_mega.hex

avrdude: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.01s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be 
performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude: reading input file "ff_mega.hex"
avrdude: input file ff_mega.hex auto detected as Intel Hex
avrdude: ERROR: address 0x3de10 out of range at line 2 of ff_mega.hex
avrdude: read from file 'ff_mega.hex' failed

avrdude done.  Thank you.


Man beachte, dass sich die Meldung geändert hat.

von g457 (Gast)


Lesenswert?

> Man beachte, dass sich die Meldung geändert hat.

Ja, nämlich auf

> avrdude: ERROR: address 0x3de10 out of range at line 2 of ff_mega.hex
> avrdude: read from file 'ff_mega.hex' failed

Falsches format?

von R. F. (rfr)


Lesenswert?

Welches Format ist falsch?

von holger (Gast)


Lesenswert?

>Welches Format ist falsch?

Das Format deiner HEX Datei. Poste die mal.

von R. F. (rfr)


Angehängte Dateien:

Lesenswert?

na wegen mir,

sie ist eine Datei von Flash forth (beim Googlen bitte beachten, dass ff 
für 'Freiwillige Feuerwehr' verwendet wird.).

Die Datei soll auf einen nano. Das ging bisher auch, aber der neue 
Programmer klemmt irgendwie, oder was anderes.

Grüsse.

von holger (Gast)


Lesenswert?

Wo auch immer du diese HEX Datei her hast:

Sie ist nicht für einen ATMEGA.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

R. Freitag schrieb:
> Using Port                    : /dev/usb

Falsch.
1
-P usb

benutzen (ohne „/dev“!).

Den USB kann man nicht einfach über irgendein Gerät in /dev zugreifen,
sondern man muss mit der libusb den Bus sequenziell absuchen, bis man
sein passendes Gerät gefunden hat.  Das wird durch das „-P usb“
bewirkt.  (Wie dann der Zugriff über irgendwas in /dev erfolgt, das
abstrahiert die libusb ohnehin, sodass es die Details des jeweiligen
OS versteckt.)

Zumindest in aktuellen AVRDUDE-Versionen ist die Benutzung des USB
für USBasp passend voreingestellt, sodass du die -P-Option komplett
sparen kannst.  Deine Version ist schon etwas, hüstel, angestaubt …

von Bernd K. (prof7bit)


Lesenswert?

R. Freitag schrieb:
> Ergebnis:
>
> root@LinuxMaster

Ok, das geht also als root. Nun tue folgendes:


* erzeuge eine neue leere Datei /etc/udev/rules.d/usbasp.rules
* fülle sie mit folgendem Inhalt (eine Zeile):
1
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE="0666"

Danach wirds ohne root gehen (möglicherweise vorher einmal abstöpseln 
und anstöpseln, bin mir nicht sicher, evtl sogar Neustart, glaub aber 
eher nicht).


Bezüglich der Warnung über "unable to set SCK-period" kannst Du statt 
der existierenden modifizierten Chinesen-Firmware die orginale 
Fischl-Firmware auf den China-Programmer flashen (wenn Du noch einen 
zweiten ISP übrig hast), dannach ist die Warnung weg und Du kannst in 
avrdude die -B Option verwenden. Du kannst es aber auch so lassen, dann 
versucht der Programmer selbst die richtige SCK Taktrate zu finden und 
die -B option wird ignoriert (und avrdude meckert kurz), geht meistens, 
soll aber auch schonmal Probleme gemacht haben.

Die andere Fehlermeldung besagt daß Du das falsche hex file erwischt 
hast, wahrscheinlich hast Du es verwechselt.

von R. F. (rfr)


Lesenswert?

holger schrieb:
> Wo auch immer du diese HEX Datei her hast:
>
> Sie ist nicht für einen ATMEGA.

woher nimmst du diese Erkenntnis?

Gruss

Robert

Datei entnehmend aus sourceforge.net

von holger (Gast)


Lesenswert?

>> Wo auch immer du diese HEX Datei her hast:
>>
>> Sie ist nicht für einen ATMEGA.

Naja, sie ist nicht für einen ATMega328.

>woher nimmst du diese Erkenntnis?

Die Adressen in der Hex-Datei zeigen auf Speicherbereiche die
dein kleiner ATMega328 nun mal nicht hat.

von holger (Gast)


Lesenswert?

>Naja, sie ist nicht für einen ATMega328.

Für den musst du ff_uno.hex nehmen;)

von R. F. (rfr)


Lesenswert?

Hurra.

Er tuts jetzt.

Vielen Dank.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.