mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB-JTAG unter Linux


Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir aus China ein günstiges USB-JTAG-Interface für 
AVR-Mikrocontroller kommen lassen.

Der Kasten hat nur 3 LED's (grün-gelb-rot), mitgeliefert wurde eine 
Mini-CD, deren RAR-Archiv mehrere Dateien auf FTDI* beinhalteten.

Daraus schloß ich, daß ich das ftdi_sio-Kernelmodul bräuchte.

Mein Problem ist wie folgt: ich bekomme weder avarice noch avrdude dazu, 
den Adapter zu nutzen.

Ein "avarice -2 -j usb" in allen erdenklichen Kombinationen führt nur zu 
einem 'did not find any USB device "usb"'.


AVR-DUDE verhält sich ähnlich: ein "avrdude -c jtag2 -P usb -v -p m16"
vermeldet nur: 'avrdude: usbdev_open(): did not find any USB device 
"usb"'

Der Adapter offenbart sich über lsusb -v wie folgt:
 idVendor           0x0807
  idProduct          0x8001
  bcdDevice            4.00
  iManufacturer           1 LSTX
  iProduct                2 USB<==>JTAG ICE
  iSerial                 3 LSR6LPSK
...
     bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 USB<==>JTAG ICE

Wie bekomme ich das Teil zum laufen?

Autor: Christoph S. (mixer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn da ein FTDI-Chip verbaut ist dann sollte dein PC beim Anstecken 
einen virtuellen Com-Port öffnen.

Dann musst du auch diesen Port avrdude mitteilen und nicht eine 
USB-Schnittstelle.

MFG Mixer

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, das ist eine heiße Spur! Danke!

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt eine udev-Regel zum Einbinden eingerichtet:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0807", SYSFS{idProduct}=="8001", 
MODE="0666", SYMLINK+="avrjtag"

Nun habe ich ein /dev/avrjtag aber das mag avarice auch nicht:
"AVaRICE version 2.10, Dec 18 2009 16:10:11

Defaulting JTAG bitrate to 250 kHz.

JTAG ICE communication failed: Inappropriate ioctl for device"
Grrrrr......

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit ich aus Netzinfo erkennen kann ist avarice ein Programm zur
Kommunikation mit
  JTAG ICE mkI
  JTAG ICE mkII
  AVR Dragon.
Die mitgelieferte CD suggeriert jedoch einen FTDI-Chip. Wenn es der 
FT232 ist, dann arbeitet das JTAG Interface über einen 
USB/Serial-Konverter und den müsste das Linux eigentlich als serielle 
Schnittstelle erkennen. Dann wäre eher dieses /dev/ttyS* das Device für 
avarice.

Vendor 0807 scheint aber nicht FTDI zu sein.

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider keine Reaktion auf die bestehenden 4, es werden auch keine neuen 
ttyS* angelegt....

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kein Wunder bei der ID. Zu Atmel passt diese ID allerdings genauso 
wenig. Was immer das ist, ein 100% Klon eines Atmel JTAG ist es wohl 
nicht.

Hat der Verkäufer irgendwas von Linux erzählt, oder war das deine 
unausgesprochene Hoffnung?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeig doch mal wo du das Ding herhast.

Wenn du Glück hast, dann steckt da ein umnummerierter FT232 drin. Dann 
müsstest du den FTDI Treiber dazu bewegen, diese ID zur Kenntnis zu 
nehmen. Frag mich aber nicht wie.

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist das Problem - hab's im Sommer bei eBay gekauft und habe erst 
jetzt eine STK-500 ähnliche Zielplattform erworben.

An Chips sind zu sehen:
 * ein AtMega16
 * ein FT232

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann könnte das eine Variation eines JTAG ICE mkI sein, denn der 
besteht aus einem Mega16, angesprochen über dessen serielle 
Schnittstelle. Dann wär's jetzt an der Zeit, dem FTDI Treiber von Linux 
die gezeigte ID beizubringen, damit die dafür nötige serielle 
Schnittstelle auftaucht.

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem mkI ist eine wichtige Information. Ich schau mal nach, was 
ich über den FTDI-Treiber so rausbekomme. Ein modprobe lädt ihn einfach, 
ansonsten passiert nichts.

Anscheinend erkennt er die ID des Chips nicht, oder?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann er nicht, die ID kennt er nicht. Hat sich dein Chinese vielleicht 
selbst einfallen lassen.

Probiert's mal mit 
http://www.ftdichip.com/Documents/TechnicalNotes/T...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programmier den FTDI Chip doch einfach auf die FTDI Default VID/PID und 
dann taucht der auch als virtuelle serielle auf. Geht mit MProg unter 
Windows einfach, weiß nicht, wie man das unter Linux macht. Dann hättest 
zu wohl mehr Glück mit dem avarice.

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der PDF steht's ja - es sind Modulparameter. Weiß jemand die 
Vendor/Product-ID von einem mkI?

Warum konnten die nicht einfach das auch noch mitkopieren?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf S. schrieb:

> In der PDF steht's ja - es sind Modulparameter. Weiß jemand die
> Vendor/Product-ID von einem mkI?

Kriegt man im Internet raus, aber diese ID hat er nicht. Nimm das Brett 
vorm Kopf weg, ist dein eigener Text:

Der Adapter offenbart sich über lsusb -v wie folgt:
 idVendor           0x0807
 idProduct          0x8001

Das ist die ID die er hat und folglich die ID unter der der FTDI 
Treiber ihn finden wird.

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, hab mir auch gerade vor die Birne gehauen....

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JAAAA!!!!
"usb 6-1: FTDI USB Serial Device converter now attached to ttyUSB0"

Für's Protokoll: ich habe die Datei
/etc/udev/rules.d/99-usbftdi.rules

mit dem Inhalt
SYSFS{idProduct}=="8001", SYSFS{idVendor}=="0807", RUN+="/sbin/modprobe 
-q ftdi_sio product=0x8001 vendor=0x0807"

Nebenbei habe ich gelernt wie man mittels udev beim Einstecken von 
Geräten Kommandos ausführt - eine gute Möglichkeit für Streiche....

Wenn jedesmal "igitt!" aus dem Lautsprecher tönt wenn die Webcam oder 
ein USB-Stick angesteckt wird...

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"rules.d # avarice -1 -j /dev/ttyUSB0
AVaRICE version 2.10, Dec 18 2009 16:10:11

Defaulting JTAG bitrate to 250 kHz.

JTAG config starting.
Hardware Version: 0xc1
Software Version: 0x80
Reported JTAG device ID: 0x9403
Configured for device ID: 0x9403 atmega16
JTAG config complete."

:-) :-) :-) :-)

Dann kann ich endlich in der Weihnachtszeit mal auf dem 
Experimentierbrett spielen.....

Autor: Rolf S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Dank an alle Hilfegeber!!!!

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.