www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR flashen mit Dragon & Linux geht nicht


Autor: Hegy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

warum kann ich mit dem Dragon keine AVR flashen auf einem STK500v2-Board 
flashen? Verbindung zum Dragon steht, Meldung von avrdude:

> avrdude -p m48 -c dragon_isp -P usb -e -U flash:w:file.hex
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: jtagmkII_getsync(): sign-on command: status -1
.....

Liegt es an meinem 2.4.30 Kernel? Oder ist es die Verbindung vom Dragon 
zum STK500? Verbunden ist die 6polige Stiftleiste namens ISP auf dem 
Dragon mit dem 6poligen Stiftleiste SPROG2 (grün) auf dem STK500.

Nach Anschluß übrigens des Dragons sind die grüne und rote LED an, nach 
dem avrdude das erste Mal versucht hat zu flashen, ist die rote LED aus 
und bleibt auch aus, die grüne geht ca. alle 5 Sek. kurz aus.

Hegy

Autor: SiO2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast noch nen 2.4er Kernel? Ungewoehnlich, aber versuch doch mal ne 
Livecd mit nem 2.6er und dann weisst du obs daran liegt. zwischen 2.4 
und 2.6 sind schon einige Welten.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schalt mal -vvvv ein.

Hast du den RESET-Jumper des STK500 entfernt?  Kann sein, dass mit
aktivem Treiber am RESET der Dragon keine Chance hat, die
Initialisierung durchzuziehen.

Dumme Frage, warum überhaupt den Dragon benutzen, wenn du doch
einen STK500 hast?  Da kannste doch gleich den STK selbst nehmen...

An der Kernelversion liegt das sicher nicht, die USB-Kommunikation
selbst funktioniert ja offensichtlich.

Autor: Elmar Haneke (elmar69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> warum kann ich mit dem Dragon keine AVR flashen auf einem STK500v2-Board
> flashen? Verbindung zum Dragon steht, Meldung von avrdude:

Soll der Steuer-Controller des STK500 umprogrammiert werden oder 
möchtest Du einen der Sockel auf dem STK500 zur Programmierung eines 
anderen AVR verwenden?

Letzteres ist vermutlich Unsinn, da das STK500 ja selbst ein 
Programmiergerät ist.

Autor: Norgan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So unsinnig ist es nicht einen Dragon mit einem STK500 zu verwenden.Der 
Dragon hat ein USB-Interface, das STK500 nicht.

Bezüglich der Dragon-LEDs: Leider hatte Atmel die hirnrissige Idee die 
Dragon-Dokumentation nur als Hilfedatei in das AVRStudio zu packen. 
Entweder hat man als Linux-Nutzer doch noch irgendwo ein Windows um 
AVRStudio zu installieren und die Dokumentation zu bekommen, oder man 
hofft auf einen Glückstreffer mit Google.

Autor: Hegy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Norgan:
Mit USB oder Serieller Schnitte hast du vollkommen recht, aber das war 
der Grund nicht. Vielmehr ist es die Tatsache, daß, wie ich in einem 
anderen [Thread]Beitrag "STK500 ISP-Freq. verstellt sich von selbst" 
geschrieben habe, daß ich mit der ISP-Frequenz oder was auch immer ab 
und wann Probleme habe und dann nicht mehr flashen kann. Daher dachte 
ich über den Drachen wird es schon gehen. Zu der Hilfedatei: Es gibt für 
Linux auch Programme, die die compilierten HTML (chm) anzeigen können. 
Ich weiß gerade nicht, wie es heißt, kann aber @home mal nachkukken.

@Jörg W.
Mit -vvvv werde ich es mal versuchen, WENN ich nachgesehen habe, ob der 
RST-Jumper gezogen ist. Ich meine nicht, da ich bisher eigentlich nur 
die Jumper für Quarzgeschichten geändert habe, sind galubich 2 oder 3 
Stück.
Aber erst nachher, wenn ich mal zuhause bin. Zu deiner "dummen Frage", 
siehe Link oben. Auch ein Problem, was ich nicht verstehe.

Autor: Hegy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Endlich @home, die Lage mal gecheckt, was es mit dem Dragon und dem 
STK500 auf de Hacken hat. Resultat: RESET-Jumper gezogen, avrdude 
aufgerufen mit -vvvv, Ergebnis:

> avrdude -p ATMEGA48 -c dragon_isp -P usb -t -vvvv
avrdude: Version 5.4, compiled on Jul 14 2007 at 23:16:29
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

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

         Using Port            : usb
         Using Programmer      : dragon_isp
avrdude: stk500v2_dragon_isp_open()
avrdude: usbdev_open(): Found AVRDRAGON, serno: 00A2000032F1
avrdude: jtagmkII_getsync()
avrdude: jtagmkII_getsync(): Sending sign-on command:
avrdude: jtagmkII_send(): sending 1 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 error reading from bulk 
avrdude: jtagmkII_recv(): Timeout receiving packet
avrdude: jtagmkII_getsync(): sign-on command: status -1

Womit bewiesen wäre, daß es am RESET-Jumper nicht liegt. Der Block 
wiederholt sich übrignens immer wieder.

Autor: Hegy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe heute mal wieder weitergeforscht, was es mit dem Dragon, dem STK500 
und avrdude auf de Hakken hat, warum es nicht gehen will.

Es geht mit einem Umweg, aber auch nur einmal. Dann Umweg wieder von 
vorne. Es ist übrigens ein Zufallsfund gewesen.

Ich habe mir avarice 2.7 gezogen, übersetzt, Dragon ans STK 
angeschlossen und dann das Kommando abgefeuert.

> avarice -gjusb -B250 -vf irgendeineDatei.pdf
Ok, PDF's vergleichen geht zwar nicht, ist auch nur ein Dummy Befehl, 
die gesamte Zeile. Bevor ich das Kommando abschieße, leuchtet am Dragon 
die rote und grüne LED. Nachdem avarice durch ist, übrigens mit 
Fehlermeldung und fehlendem Parameter -P <dev>, ist die rote LED aus und 
nur noch die grüne ist an.
Die Fehlermeldung von avarice:
AVaRICE version 2.7, Feb 21 2008 23:00:06

JTAG config starting.
Found a device: AVRDRAGON
Serial number:  00:a2:00:00:32:f1
Reported JTAG device ID: 0xFFFF
No configuration available for device ID: ffff
So, das war der Umweg, jetzt kommt avrdude ins Spiel und flasht mir über 
USB/Dragon die SW, was erstaunlicherweise geht.
>avrdude -p m168 -P usb -c dragon_isp -v -U flash:w:Datei.hex

(s. Log-Datei im Anhang)

Warum das nur so geht, verstehe ich überhaupt nicht.
Ich habe das deswegen gemacht, weil mal wieder die ISP-Frequenz auf dem 
STK irgendwo da steht, wo kein Mensch die braucht. Das flashen des 1,5kB 
Files dauerte über 20 Sek., das anschließende Vergleichen irgendwo zw. 
40 und 60 Sekunden. Nachdem ich avarice/avrdude via USB benutzt habe, 
kann ich per seriell jetzt wieder etwas schneller flashen/vergleichen, 
dauert jeweils ca. 4 Sekunden.

Wenn ich übrignes bei avarice ein Device angebe (Parameter "-P 
atmega168"), dann geht das nicht, dann sieht auch die Fehlermeldung 
anders aus, nämlich
AVaRICE version 2.7, Feb 21 2008 23:00:06

JTAG config starting.
Found a device: AVRDRAGON
Serial number:  00:a2:00:00:32:f1
Reported JTAG device ID: 0xFFFF
Configured for device ID: 0x9406 atmega168 -- FORCED with atmega168
JTAG config complete.
JTAG ICE: Cannot synchronise

Es gibt auch Meldungen dazu:
Feb 22 01:14:59 camelita kernel: usb_control/bulk_msg: timeout
Feb 22 01:14:59 camelita kernel: usbdevfs: USBDEVFS_BULK failed dev 33 ep 0x82 len 64 ret -110
Feb 22 01:19:52 camelita kernel: usb.c: USB disconnect on device 00:10.1-1 address 33 [Dragon abgestöpselt]
Feb 22 01:20:16 camelita kernel: hub.c: new USB device 00:10.1-1, assigned address 34 [Dragon wieder angestöpselt]
Feb 22 01:20:16 camelita kernel: usb.c: USB device 34 (vend/prod 0x3eb/0x2107) is not claimed by any active driver.

Feb 22 01:20:17 camelita usbmgr[621]: vendor:0x3eb product:0x2107
Feb 22 01:20:17 camelita usbmgr[621]: class:0xff subclass:0x0 protocol:0x0
Feb 22 01:20:17 camelita usbmgr[621]: USB device isn't matched the configuration

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das riecht alles fürchterlich nach USB-Problemen in deinem System,
insbesondere sowas:

avrdude: usb_fill_buf(): usb_bulk_read() error error reading from bulk

Dein zwischendurch angeschobenes AVaRICE macht ja nur einen kurzen
Smalltalk auf dem USB, da es anschließend feststellt, dass es keine
JTAG-Kommunikation mit dem Target zu Stande bekommt (was angesichts
des ATmega168 nicht verwunderlich ist).

Leider ist USB mittlerweile an Schrottigkeit praktisch das absolut
letzte, was auf dem PC-Markt verscherbelt wird.  Das wird wohl alles
nach der Prämisse gebaut: Hauptsache, es ist billig.  Wir haben in
der Firma auch USB-Hubs, die hin und wieder einen ,,Reboot'' benötigen,
weil die Kommunikation darüber nur noch so halb, aber nicht mehr
richtig funktioniert.

Versuch mal, ob du in diesem Bereich was umbauen kannst an deinem
Setup (Hub weglassen, Hub ersetzen etc.).

Der CHM-Viewer für Unix heißt übrigens xchm.  Dafür, dass die
Dokumentation für ihre Produkte nur unter Windows verfügbar ist, habe
ich bei Atmel schon vor einiger Zeit ein Ticket aufgemacht.  Das
Minimum, was sie tun könnten wäre, die CHM-Dateien wenigstens noch
irgendwo zu veröffentlichen.

Autor: Hegy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine USB-Hardware scheint zu funktionieren, mit Windohs 2000 kann ich 
ohne Probleme mit dem Dragon rumkacheln, auch flashen geht. Ich vermute 
mal, daß es evtl. mit meiner SW zu tun haben könnte. Ich verwende Linux 
mit Kernel 2.4.30, really outdated, ok. Auf ein Update auf die 2.6er 
Serie habe ich mich noch nicht so richtig drangetraut, generell liegt 
das letzte Update über ein Jahr zurück. Aber da hat sich ja einiges in 
sachen USB geändert, z.B. ist udev reingekommen. Bei mir rödelt 
usb_uhci, und ehci_hcd. Angestöpselt habe ich den Dragon direkt am PC 
"Hinterausgang" (Motherboard), auf dem Motherboard sitzt natürlich ein 
Hub, somit habe ich 6 USB-Anschlüsse.
Und das sind meine USB betreffende Boot-Meldungen, übrigens war der 
Drache dabei angestöpselt:
usb-uhci.c: $Revision: 1.275 $ time 02:27:24 Apr  9 2005
usb-uhci.c: High bandwidth mode enabled
usb-uhci.c: USB UHCI at I/O 0xd800, IRQ 10
usb-uhci.c: Detected 2 ports
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
usb-uhci.c: USB UHCI at I/O 0xd400, IRQ 5
usb-uhci.c: Detected 2 ports
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 2 ports detected
usb-uhci.c: USB UHCI at I/O 0xd000, IRQ 11
usb-uhci.c: Detected 2 ports
usb.c: new USB bus registered, assigned bus number 3
hub.c: USB hub found
hub.c: 2 ports detected
usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
ehci_hcd 00:10.3: VIA Technologies, Inc. USB 2.0
ehci_hcd 00:10.3: irq 10, pci mem e0c84c00
usb.c: new USB bus registered, assigned bus number 4
ehci_hcd 00:10.3: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29/2.4
hub.c: USB hub found
hub.c: 6 ports detected
hub.c: connect-debounce failed, port 1 disabled
usbdevfs: remount parameter error
hub.c: new USB device 00:10.1-1, assigned address 2
usb.c: USB device 2 (vend/prod 0x3eb/0x2107) is not claimed by any active driver.

Ich habe deswegen Windohs mal gebooted, damit ich die ISP-Frequenz auf 
dem STK mal wieder richtig drehen kann. Die stand auf 14,07kHz, jetzt 
steht sie wieder auf 460kHz oder sowas. Dabei habe ich mir den 
Datenverkehr auf der seriellen Schnitte mit aufgezeichnet 
(Registry-Hack, s. Atmel App-Note AVR068 oder so, STK500 Communication 
Protocol) und werde das mal in C reinhacken und mir ein Tool bauen, 
welches die ISP-Frequenz wieder richtig biegt. Alternativ könnte ich 
auch den Quellcode von avrdude ergänzen/vergewaltigen oder auch avarice, 
mal sehen, welcher einfacher zu durchblicken ist.

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alter Schwede was is denn das fuer ne olle Kiste? :D Mal Software 
aktualisieren dann klappt das auch...

Autor: Hegy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woran siehst du das, wie alt das alles ist?

Ok, den Pezeh habe ich vor 5 Jahren gekauft aus Einzelteilen (1,6Ghz, 
512 MB RAM, 80GB Platte usw.) und damals Debian Sarge draufgepackt, vor 
einiger Zeit umgestiegen auf Debian Etch und das war es bis heute.

Autor: Andreas B. (bitverdreher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael.G: FULL ACK

>Woran siehst du das, wie alt das alles ist?
Das sieht man an der eingesetzten Software:
Kernel 2.4.30. Wir sind mittlerweile bei 2.6.25. Bei der USB 
Unterstützung hat sich zwischenzeitlich erhebliches getan.

Gruss
Andy

Autor: Hegy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 2.4er Kernelreihe wird dennoch weiter geupdated, auch in Sachen USB. 
Vllt sollte ich auf 2.4.36 upgraden, kukkense mal den hier:

ftp://ftp.eu.kernel.org/pub/linux/kernel/v2.4/LATEST-IS-2.4.36.1
02/16/08   13:21:00

Gerade mal 8 Tage alt.

Aber mit 2.6 lt. ChangeLog hat sich da einiges getan, habe mal die div. 
Changelogs nach dem Begriff USB durchsucht.

An die 2.6er Kerneljuhser: Geht das bei euch mit dem Dragon?

Autor: Olaf Dreyer (Firma: O.D.I.S.) (dreyero)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Ihr Alle,

habe zwei Gentoo Systeme am laufen (kernel 2.6.23 und 2.6.24).
Hatte die gleichen Fehlermeldungen bei avarice:
olaf@lnxsrvr ~ $ avarice -j /dev/ttyUSB1 --mkII -B250 -l -r
AVaRICE version 2.7.20071102, Mar  6 2008 16:18:54

JTAG config starting.
Found a device: JTAGICEmkII
Serial number:  00:b0:00:00:0d:a8
Reported JTAG device ID: 0xFFFF
No configuration available for device ID: ffff

Wenn man einen ATmega168 flashen will muß man debugWire verwenden
olaf@lnxsrvr ~ $ avarice -j /dev/ttyUSB1 --mkII -B250 -w -l -r
AVaRICE version 2.7.20071102, Mar  6 2008 16:18:54

JTAG config starting.
Found a device: JTAGICEmkII
Serial number:  00:b0:00:00:0d:a8
Reported debugWire device ID: 0x9406
Configured for device ID: 0x9406 atmega168
JTAG config complete.

Reading Fuse Bytes:
  Extended Fuse byte -> 0x00
      High Fuse byte -> 0x00
       Low Fuse byte -> 0x00

Reading Lock Bits:
Lock bits -> 0x00

    Bit 7 [ Reserved ] -> 0
    Bit 6 [ Reserved ] -> 0
    Bit 5 [ BLB12    ] -> 0
    Bit 4 [ BLB11    ] -> 0
    Bit 3 [ BLB02    ] -> 0
    Bit 2 [ BLB01    ] -> 0
    Bit 1 [ LB2      ] -> 0
    Bit 0 [ LB1      ] -> 0

Gruß

Olaf

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hegy wrote:
> Die 2.4er Kernelreihe wird dennoch weiter geupdated, auch in Sachen USB.
> Vllt sollte ich auf 2.4.36 upgraden, kukkense mal den hier:

Ne ne, nur Bugfixes. Features kommen da nicht mehr rein. Also sorry aber 
ich haett etz da keine Lust ewig nach nem Fehler zu suchen mit nem 
Kernel der 5 Jahre alt is.

Autor: Thomas K. (thkusch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso... der Dude ist mit libusb kompiliert..

Autor: Thomas K. (thkusch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry! Falsches Thread!!!

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hegy wrote:

> Dabei habe ich mir den
> Datenverkehr auf der seriellen Schnitte mit aufgezeichnet
> (Registry-Hack, s. Atmel App-Note AVR068 oder so, STK500 Communication
> Protocol) und werde das mal in C reinhacken und mir ein Tool bauen,
> welches die ISP-Frequenz wieder richtig biegt.

Das gibt's schon.  Es heißt AVRDUDE. ;-)

Autor: coldtobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Auf ein Update auf die 2.6er
> Serie habe ich mich noch nicht so richtig drangetraut, generell liegt
> das letzte Update über ein Jahr zurück. Aber da hat sich ja einiges in
> sachen USB geändert, z.B. ist udev reingekommen.

Hast Du konkrete GRünde/Anwendungen, warum Du dich nicht traust?
Schon alleine udev ist so ein Quantensprung, dass es sich rentiert. Das 
usbfs existiert ja trotzdem weiter, so dass eigentlich hier alles 
klargehen sollte.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.