Forum: Compiler & IDEs avrdude: keine verbindung zu JTAGICE mkII (win2k)


von haube (Gast)


Lesenswert?

hallo  möchte avrdude ( aus letzer winAvr-version)  mit einem JTAG -ICE 
mkII  verwenden ...     mit AVR Studio klappt das flashen .

aber avrdude findet den programmer nicht am USB - port !! Warum ?

also komme erstmal nicht in diesen terminal-Mode.


ich benutze hier windows 2000



__  bekanntes problem ?

von haube (Gast)


Lesenswert?

CMD_ausgabe:
1
C:\Progrg\AVRTools\JTAGICEmkII>avrdude -c jtagmkII -p m2561 -P usb:xx -v
2
3
avrdude: Version 5.6cvs, compiled on Nov 10 2008 at 17:15:38
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
6
         System wide configuration file is "C:\Progrg\WinAVR20081205\bin\avrdude.conf"
7
8
         Using Port                    : usb:xx
9
         Using Programmer              : jtagmkII
10
avrdude: usbdev_open(): did not find any (matching) USB device "usb:xx"

im geräte-manager ist  der eintarg JTAGICE mkII  in der kategorie 
"Jungo"

Treiber : JUNGO LTD.  version : 7.0.1.0

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


Lesenswert?

Nun ja, ein JTAG ICE mkII mit der Seriennummer xx hast du ja
vermutlich auch nicht. ;-)

Der Trick mit dem xx ist nur sinnvoll in Zusammenhang mit der Option
-v: durch das xx ist sicher gestellt, dass es garantiert kein einziges
JTAG ICE gibt, das wirklich auf diese Seriennummer passt (wie du
gerade gesehen hast :), und die Option -v erreicht (unter anderem),
dass die Seriennummern aller gefundenen JTAG ICEs mit ausgegeben
werden.  Dadurch kommt man an die Nummer ran, ohne auf das Etikett
gucken zu müssen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Du musst den Jungo Treiber (bei AVR Studio dabei) mit dem LibUSB Treiber 
(bei WinAVR dabei) ersetzen.

von 900ss (900ss)


Lesenswert?

Du kannst den LibUsb-Filter Treiber verwenden. Mit dem ist es möglich, 
auf den vorhandenen Jungo-Treiber von ATMEL aufzusetzen. Ansonsten geht 
nichts mehr mit AVR-Studio wenn man es mal kurz nutzen möchte.
Die bekommst du beim libusb-win32-Projekt auf http://sf.net/

900ss

von Simon K. (simon) Benutzerseite


Lesenswert?

900ss D. wrote:
> Du kannst den LibUsb-Filter Treiber verwenden. Mit dem ist es möglich,
> auf den vorhandenen Jungo-Treiber von ATMEL aufzusetzen. Ansonsten geht
> nichts mehr mit AVR-Studio wenn man es mal kurz nutzen möchte.
> Die bekommst du beim libusb-win32-Projekt auf http://sf.net/
>
> 900ss

Interessant, das kannte ich noch gar nicht. Werde ich demnächst auch mal 
machen. Sehe ich das richtig, dass der Jungo Treiber dann drauf bleibt, 
aber durch den LibUSB Treiberfilter mit dem gleichen Treiber auch per 
AVRDude programmiert werden kann?

PS: Hier steht wie es geht: 
http://libusb-win32.sourceforge.net/#downloads

von 900ss (900ss)


Lesenswert?

Simon K. wrote:

> machen. Sehe ich das richtig, dass der Jungo Treiber dann drauf bleibt,
> aber durch den LibUSB Treiberfilter mit dem gleichen Treiber auch per
> AVRDude programmiert werden kann?

Ja, so die Idee dahinter. Es funktioniert auch so, allerdings hatte ich 
auf meinem Mac Mini mit Windows drauf ein Problem, deshalb konnte ich es 
nicht am Ende doch nicht nutzen. Auf meinem "neuen" Rechner habe ich es 
noch garnicht probiert. Nutze mit den WinAVR-Tools die serielle 
Schnittstelle (habe JTAG ICE MkII). War bisher zu faul umzustellen :-)

von haube (Gast)


Lesenswert?

hallo.

hab ich gemacht mit dem treiber,  ohne diesen Filter -

jetzt sagt der :



T:\Programming\XessPlusBoot2561>avrdude -c jtagmkII -p m2561 -P 
usb:54:4D -v

avrdude: Version 5.6cvs, compiled on Nov 10 2008 at 17:15:38
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is 
"C:\Progrg\WinAVR20081205\bin\avrdude.conf"

         Using Port                    : usb:54:4D
         Using Programmer              : jtagmkII
avrdude: usbdev_open(): Found JTAGICE mkII, serno: 00B000005A4D
avrdude: usbdev_open(): did not find any (matching) USB device 
"usb:544D"

T:\Programming\XessPlusBoot2561>avrdude -c jtagmkII -p m2561 -P usb -t
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: usbdev_send(): wrote 0 out of 11 bytes, err = usb_reap: reaping 
request failed, win error: Der E/A-Vorgang wurde wegen eines Threadendes 
oder einer Anwendungsanforderung abgebrochen.

avrdude: jtagmkII_send(): failed to send command to serial port

T:\Programming\XessPlusBoot2561>avrdude -c jtagmkII -p m2561 -P 
usb:54:4D -t
avrdude: usbdev_open(): did not find any (matching) USB device 
"usb:544D"


also geht immernoch nicht!  jemand ahnung warum nicht !?

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


Lesenswert?

haube wrote:

> avrdude: usbdev_open(): Found JTAGICE mkII, serno: 00B000005A4D

Da steht 5A4D, du schreibst aber 544D.  Das ist nicht dasselbe...

> avrdude: jtagmkII_getsync(): sign-on command: status -1

Kannst du mal statt einem -v vier -vs schreiben (also -v -v -v -v
oder -vvvv)?  Ich fürchte aber, dass das irgendwie am Zusammenspiel
von libusb-win32 mit dem Betriebssystem liegt.

von haube (Gast)


Lesenswert?

T:\Programming\XessPlusBoot2561>avrdude -c jtagmkII -p m2561 -P 
usb:5A:4D -vvvv

avrdude: Version 5.6cvs, compiled on Nov 10 2008 at 17:15:38
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is 
"C:\Progrg\WinAVR20081205\bin\avrdude.conf"

         Using Port                    : usb:5A:4D
         Using Programmer              : jtagmkII
avrdude: jtagmkII_open()
avrdude: usbdev_open(): Found JTAGICE mkII, serno: 00B000005A4D
avrdude: usbdev_open(): using read endpoint 0x82
avrdude: jtagmkII_getsync()
avrdude: jtagmkII_getsync(): Sending sign-on command:
avrdude: jtagmkII_send(): sending zd bytes
avrdude: Sent: . [1b] . [00] . [00] . [01] . [00] . [00] . [00] . [0e] . 
[01] . [f3] . [97]
avrdude: jtagmkII_recv():
avrdude: usb_fill_buf(): usb_bulk_read() error usb_reap: reaping request 
failed, win error: Der E/A-Vorgang wurde wegen eines Threadendes oder 
einer Anwendungsanforderung abgebrochen.

avrdude: jtagmkII_recv(): Timeout receiving packet
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: jtagmkII_getsync(): Sending sign-on command:
avrdude: jtagmkII_send(): sending zd bytes
avrdude: Sent: . [1b] . [00] . [00] . [01] . [00] . [00] . [00] . [0e] . 
[01] . [f3] . [97]
avrdude: jtagmkII_recv():
avrdude: usb_fill_buf(): usb_bulk_read() error usb_reap: timeout error
avrdude: jtagmkII_recv(): Timeout receiving packet
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: jtagmkII_getsync(): Sending sign-on command:
avrdude: jtagmkII_send(): sending zd bytes
avrdude: Sent: . [1b] . [00] . [00] . [01] . [00] . [00] . [00] . [0e] . 
[01] . [f3] . [97]
avrdude: jtagmkII_recv():
avrdude: usb_fill_buf(): usb_bulk_read() error usb_reap: timeout error
avrdude: jtagmkII_recv(): Timeout receiving packet
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: jtagmkII_getsync(): Sending sign-on command:
avrdude: jtagmkII_send(): sending zd bytes
avrdude: Sent: . [1b] . [00] . [00] . [01] . [00] . [00] . [00] . [0e] . 
[01] . [f3] . [97]
avrdude: jtagmkII_recv():
avrdude: usb_fill_buf(): usb_bulk_read() error usb_reap: timeout error
avrdude: jtagmkII_recv(): Timeout receiving packet
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: jtagmkII_getsync(): Sending sign-on command:
avrdude: jtagmkII_send(): sending zd bytes
avrdude: Sent: . [1b] . [00] . [00] . [01] . [00] . [00] . [00] . [0e] . 
[01] . [f3] . [97]
avrdude: jtagmkII_recv():
avrdude: usb_fill_buf(): usb_bulk_read() error usb_reap: reaping request 
failed, win error: Der E/A-Vorgang wurde wegen eines Threadendes oder 
einer Anwendungsanforderung abgebrochen.

avrdude: jtagmkII_recv(): Timeout receiving packet
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: jtagmkII_getsync(): Sending sign-on command:
avrdude: jtagmkII_send(): sending zd bytes
avrdude: usbdev_send(): wrote 0 out of 11 bytes, err = usb_reap: reaping 
request failed, win error: Der E/A-Vorgang wurde wegen eines Threadendes 
oder einer Anwendungsanforderung abgebrochen.

avrdude: jtagmkII_send(): failed to send command to serial port



ich hoffe es hilft euch mir zu  helfen !

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


Lesenswert?

haube wrote:

> avrdude: usb_fill_buf(): usb_bulk_read() error usb_reap: reaping request
> failed, win error: Der E/A-Vorgang wurde wegen eines Threadendes oder
> einer Anwendungsanforderung abgebrochen.

Keine Ahnung, was Windows einem damit sagen will.  Vermutlich wirst
du als mit einer deutschen Windowsversion geplagter Nutzer nichtmal
rausfinden, wie die originale englische Fehlermeldung dazu heißt,
damit da damit via Gugel oder MS knowledge database irgendwas
Vernünftiges raus bekommst.

Das Einzige, was ich dir dazu sagen kann, ist dass der Fehler weit
unterhalb dessen liegt, was AVRDUDE selbst hier macht.  Entweder
ist es ein Problem des Betriebssystems, mit der Hardware zu reden
oder des libusb-Treibers, mit dem Betriebssystem zu reden.

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


Lesenswert?

p.s.: Gugel schmeißt ein paar Hits raus bei der Suche nach

usb_bulk_read() error usb_reap: reaping request failed

Scheint also irgendwie ein nicht allzu seltenes Problem zu sein.

von 900ss (900ss)


Lesenswert?

usb_bulk_read() Fehler hatte ich auch zwischendurch mal mit der LibUSB 
bei meinem MAC unter Windows. Hat dann wohl nicht nur an dem MAC 
gelegen.
Der Jungotreiber mit AVR-Studio läuft absolut problemlos.

Irgendwie hakt es wohl in der LibUSB oder der USB-Anbindung in 
AVRDUD/AVaRICE, wenn man Windows nutzt.
Also doch die serielle Schnittstelle, wenn man einen MkII hat.

Räusper Vielleicht kann man die USB-Anbindung unter Cygwin (Windows) 
direkt auf den Jungotreiber vom AVR-Studio aufsetzen? Dann wäre man aber 
nicht mehr unabhängig vom AVR-Studio. Es sei denn, man kann dessen 
Jungo-Treiber separat installieren.

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


Lesenswert?

Der Jungotreiber hat nun auch nicht gerade den besten Ruf.

Wenn die libusb-win32 Bugs hat, dann sollte man sie reparieren (lassen),
statt nach Würgarounds zu suchen.  Das kann ich aber nicht tun -- ich
habe kein Windows und will auch keins haben.

von 900ss (900ss)


Lesenswert?

Jörg Wunsch wrote:
> Der Jungotreiber hat nun auch nicht gerade den besten Ruf.

Ich kenne bisher keinen, der darüber nörgelt.
Ich habe selber schon mit dem Ding entwickelt. Absolut problemlos. 
Immer, wenn er mir von anderen Produkten unterkam, kein Problem. Allen 
Entwicklern, denen ich begegnet bin, die das Teil nutzten, waren sehr 
zufrieden. Er wird sogar in einer Kommunikationsstrecke zu einem 
Satelliten eingesetzt. Allerdings unter Linux :-) Hängt direkt in der 
Kommandostrecke. Wenn der nicht laufen würde, dann wäre das schon sehr 
schlecht und er würde schnell ersetzt. 3-12 Minuten 
Kommunikationsfenster, da hat man nicht viel Zeit zum Fehlersuchen oder 
neu aufsetzen (booten) :-)

> Wenn die libusb-win32 Bugs hat, dann sollte man sie reparieren (lassen),
> statt nach Würgarounds zu suchen.

Stimmt im Prinzip, obwohl es kein Würgaround wäre. Eine gleichwertige 
Alternative eher. Aber der Fehler ist so alt und der Entwickler von 
LibUSB wird das, warum auch immer, nicht mehr beheben (schätze ich). Und 
USB ist nun nicht irgendein Thema, in das man sich mal eben an einem 
Abend so einarbeitet. Vielleicht der Shopbetreiber hier aus dem Forum, 
der hat glaube ich seine Diplomarbeit mit USB gemacht :-)

> Das kann ich aber nicht tun -- ich
> habe kein Windows und will auch keins haben.

[OT]
Ich auch kein Linux (oder BSD) :-) Viele professionelle Linuxnutzer 
haben mir gesagt, Linux sei benutzerunfreundlich (empfinde ich auch so). 
Ich NUTZE Computer aber. Was soll ich dann mit Linux?
Nun ja, Linux ist sicher nicht schlecht, wenn man alle kryptischen 
Kommandozeilenbefehle kennt und auch alle Dateien und Bedeutungen der 
ASCII-Konfigurationsdateien. Ist mir aber zu mühselig. Der Apfel mit 
OS-X wäre evtl. eine Alternative. Aber auch dort muß ich mir meine 
Werkzeuge erst oft aufwendig selber konfigurieren und kompilieren oder 
was weiß ich. Nein danke. Ich weiß, bei Problemen kann man viele Leute 
fragen (Netz), aber auch das überzeugt mich nicht. So genug gefaselt :-)
[/OT]

Schönen Tag noch, muß jetzt ins Büro :-/
900ss

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


Lesenswert?

900ss D. wrote:

>> Der Jungotreiber hat nun auch nicht gerade den besten Ruf.
>
> Ich kenne bisher keinen, der darüber nörgelt.

Zitat habe ich gerade nicht zur Hand (ist zu lange her, kann mich
daher nicht mehr genau erinnern), aber Beschwerden darüber auch
und gerade im Zusammenhang mit AVR Studio habe ich auf jeden Fall
mehr als eine gelesen.

> Er wird sogar in einer Kommunikationsstrecke zu einem
> Satelliten eingesetzt. Allerdings unter Linux :-)

Wenn unter Linux, ist es wohl sowieso ein komplett anderer Treiber,
denn die OS-Seite da ist weitgehend anders strukturiert.  Aller-
dings ist mir da gar nicht klar, warum man sowas wie den Jungo-
Treiber überhaupt erst braucht.  Ich hätte erwartet, dass das OS
mit hinreichend viel Treiber bereits daher kommt, als dass man
eine Applikation da drauf aufsetzen kann.  Stecke aber bei Linux
nicht so tief drin.

> Stimmt im Prinzip, obwohl es kein Würgaround wäre. Eine gleichwertige
> Alternative eher. Aber der Fehler ist so alt und der Entwickler von
> LibUSB wird das, warum auch immer, nicht mehr beheben (schätze ich).

Warum nicht?  Wenn, dann höchstens, weil er es nicht nachvollziehen
kann, da das Problem halt nur unter bestimmten Konstellationen
auftritt.

Was gegen deine Theorie spricht ist, dass es eine deutlich größere
Zahl der Fälle gibt, in denen auch die Win32-Portierung der libusb
gut funktioniert.

> Und
> USB ist nun nicht irgendein Thema, in das man sich mal eben an einem
> Abend so einarbeitet.

Die Abende einer Woche genügen dafür, wenn man den nötigen Willen
hat, sich die Grundlagen dafür entweder in der USB-Spec anzusehen
oder aber irgendwo im Internet anzulesen.

> [OT]

> Ich NUTZE Computer aber. Was soll ich dann mit Linux?

Gleiches Argument von mir: ich möchte meine Computer auch einfach
nutzen, und nicht alle nasenlang administrieren (virenchecken,
securityupgraden, ...), genau aus diesem Grunde habe ich kein Windows.

von Ronny T. (ronnytreinat)


Lesenswert?

Hallo,
gibt es zum eingangs geschilderten Problem miitlerweile eine Lösung?

Ich benutze:
- "frisches" Win2k SP4
- avrdude v5.10
- libusb-win32 v1.2.1.0
- AVR Dargon mit Target ATmega128 angeschlossen über JTAG
- "noch" kein Jungo- und kein Filter-Treiber installiert

--8<-----------------------
1
D:\Programme\WinAVR-20100110\bin>avrdude -vvvv -p ATMEGA128 -c dragon_jtag -P usb -U lfuse:r:"C:\install\AVRdude\fuse_bits.raw":r
2
3
 trying to connect to device...
4
5
avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23
6
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
7
         Copyright (c) 2007-2009 Joerg Wunsch
8
9
         System wide configuration file is "D:\Programme\WinAVR-20100110\bin\avrdude.conf"
10
11
         Using Port                    : usb
12
         Using Programmer              : dragon_jtag
13
avrdude: jtagmkII_dragon_open()
14
avrdude: usbdev_open(): Found AVRDRAGON, serno: 00A20000126D
15
avrdude: usbdev_open(): using read endpoint 0x82
16
avrdude: usbdev_drain(): flushed 36 characters
17
avrdude: jtagmkII_getsync()
18
avrdude: jtagmkII_getsync(): Sending sign-on command:
19
avrdude: jtagmkII_send(): sending 1 bytes
20
avrdude: Sent: . [1b] . [00] . [00] . [01] . [00] . [00] . [00] . [0e] . [01] . [f3] . [97]
21
avrdude: jtagmkII_recv():
22
avrdude: usb_fill_buf(): usb_bulk_read() error usb_reap: reaping request failed,
23
 win error: Der E/A-Vorgang wurde wegen eines Threadendes oder einer Anwendungsanforderung abgebrochen.
24
25
avrdude: jtagmkII_recv(): Timeout receiving packet
26
avrdude: jtagmkII_getsync(): sign-on command: status -1
27
avrdude: jtagmkII_getsync(): Sending sign-on command:
28
avrdude: jtagmkII_send(): sending 1 bytes
29
avrdude: usbdev_send(): wrote 0 out of 11 bytes, err = usb_reap: reaping request failed,
30
 win error: Der E/A-Vorgang wurde wegen eines Threadendes oder einer Anwendungsanforderung abgebrochen.
31
32
avrdude: jtagmkII_send(): failed to send command to serial port
-->8-----------------------

...oder sollte ich Umsteigen auf einen 'klassisch' seriell angebundenen 
Programmer?

Vielen Dank vorab!

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


Lesenswert?

Ronny Treinat schrieb:
> - "noch" kein Jungo- und kein Filter-Treiber installiert

Und worüber sollte dann deiner Meinung nach die libusb den Weg zum
USB-Device finden?

Irgendeinen dieser beiden Treiber musst du schon installieren,
entweder einen "native" (wie es WinAVR tut), oder den Jungo-Treiber
und von libusb-win32-Seite den Filtertreiber da drauf.

von Ronny T. (ronnytreinat)


Lesenswert?

Hallo,
erst einmal vielen Dank für die schnelle Antwort.

> - "noch" kein Jungo- und kein Filter-Treiber installiert
>> .. oder den Jungo-Treiber und von libusb-win32-Seite den Filtertreiber da drauf

OK, habe ich gemacht - auch wenn ich das auf mein Leidensweg immer 
wieder probiert habe. Aber das möchte ich nicht zum Inhalt dieses Forums 
machen.

Ich kann nun feststellen, dass der Zugriff mit avrdude zunächst immer 
noch fehl schägt:
1
avrdude -p m128 -c dragon_jtag -P usb -U lfuse:r:"C:\install\AVRdude\fuse_bits.raw":r
2
avrdude: jtagmkII_getsync(): sign-on command: status -1
3
avrdude: usbdev_send(): wrote 36 out of 11 bytes, err = usb_reap: reaping request failed,
4
 win error: Der E/A-Vorgang wurde wegen eines Threadendes oder einer Anwendungsanforderung abgebrochen.

Mit dem Einschalten der Debug-Ausgaben funktioniert's dann jedoch.
1
avrdude -vvvv -p m128 -c dragon_jtag -P usb -U lfuse:r:"C:\install\AVRdude\fuse_bits.raw":r
Dabei muss ich mindesten '-vvv' angeben. Auch das Umlenken in eine Datei 
verlangsamt wohl den Zugriff auf USB.
1
avrdude -vv -p m128 -c dragon_jtag -P usb -U lfuse:r:"C:\install\AVRdude\fuse_bits.raw":r 2>log

Das Verhalten ist schon eigenartig - auch wenn ich mit dem Workaround 
zunächst leben kann.

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


Lesenswert?

Sehr seltsam.  Ich würde dir ja empfehlen, dich damit mal an die
Entwickler von libusb-win32 zu wenden.  AVRDUDE ist ja hier auch nur
Konsument, offensichtlich geht da zwischen der Bibliothek und dem
Windows-Treiber irgendwas verquer, wenn die Frequenz der Aufrufe zu
hoch wird.

Interessant wäre dabei vielleicht noch, ob das nur mit dem Filtertreiber
passiert oder ob das auch mit einem "native" libusb-win32-Treiber
passieren würde, wie ihn beispielsweise WinAVR mitliefert (dann ohne
Jungo-Treiber).  Könnte ja sein, dass die Filter-Schnittstelle da
irgendwie der springende Punkt ist (die ist, soweit ich das verstanden
habe, Teil des normalen Windows-API).

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.