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?
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
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.
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?
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.
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
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.
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.
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.
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...
"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.....