USB-JTAG unter Linux

Gast #1525102
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?
Gast
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......
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.
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.
Gast
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?
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.
Gast
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?
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.
Gast
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...
Gast
"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.....

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.