Hallo zusammen,
ich habe hier einen recht neuen Atmel AVR jtagICE3 liegen, funktioniert
prima unter Windows, möchte diesen aber sehr gerne auch unter Linux
(Ubuntu 14) mit avrdude benutzen. Avrdude habe ich installiert, der
jtagICE3 findet sich auch in der Liste der unterstützten
Programmieradapter, aber anscheinend fehlt mir ein Treiber dafür. Naja,
und auch die Erfahrung das alleine zum laufen zu bekommen.
Habe dmesg bemüht um zu erfahren ob Linux das Gerät erkennt:
[95491.766209] usb 3-4: USB disconnect, device number 5
[95540.740259] usb 3-4: new high-speed USB device number 6 using
xhci_hcd
[95540.757154] usb 3-4: New USB device found, idVendor=03eb,
idProduct=2140
[95540.757160] usb 3-4: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[95540.757165] usb 3-4: Product: JTAGICE3 CMSIS-DAP
[95540.757169] usb 3-4: Manufacturer: Atmel Corp.
[95540.757172] usb 3-4: SerialNumber: J302000234
[95540.757365] usb 3-4: ep 0x84 - rounding interval to 128 microframes,
ep desc says 255 microframes
[95540.757371] usb 3-4: ep 0x3 - rounding interval to 128 microframes,
ep desc says 255 microframes
[95540.758611] hid-generic 0003:03EB:2140.0005: hiddev0,hidraw3: USB HID
v1.11 Device [Atmel Corp. JTAGICE3 CMSIS-DAP] on
usb-0000:00:14.0-4/input0
In dev wird der jtagICE3 als /dev/hidraw3 eingebunden.
Kann mir jemand erklären wie ich darauf jetzt per avrdude zugreifen
kann? Flashen reicht mir schon, debuggen muss nicht sein.
Vielen Dank für eure Hilfe!
Jan
Habs mit root probiert, aber ich scheitere anscheinend daran bereits den
richtigen port parameter auszuwählen :-( Hab gegoogelt aber das hat nur
Verwirrung erzeugt...
Entschuldigung, arbeite an meinem Stil, ich hoffe damit könnt ihr mir
weiterhelfen:
Laut http://www.nongnu.org/avrdude/user-manual/avrdude_6.html gibt
folgende Eingabe in der Kommandozeile eine Liste der angeschlossenen
jtagICE3:
jan@Jan-Lenovo:~$ sudo avrdude -c jtag3 -p m328p -P usb:xx -v
avrdude: Version 6.0.1, compiled on Oct 21 2013 at 17:07:18
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/home/jan/.avrduderc"
User configuration file does not exist or is not a regular
file, skipping
Using Port : usb:xx
Using Programmer : jtag3
avrdude: usbdev_open(): did not find any (matching) USB device "usb:xx"
Ich denke das Problem liegt beim '-P usb:xx', oder?
Jan schrieb:> Ich denke das Problem liegt beim '-P usb:xx', oder?
Nein. Die "xx" ist hier nur ein Platzhalter für eine garantiert nicht
existierende Seriennummer, und zusammen mit der Option -v listet er
dann alle Geräte, die er unter diesem VID/PID-Paar findet.
Dein Problem ist das hier:
> avrdude: Version 6.0.1, compiled on Oct 21 2013 at 17:07:18> ^^^^^^^^^^^^^^^^^^^^^^
zusammen mit einer neuen Firmware, die sich darin ausdrückt:
Jan schrieb:> Bus 003 Device 016: ID 03eb:2140 Atmel Corp> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Diese Firmware implementiert das CMSIS-DAP-Protokoll, und dafür brauchst
du ein AVRDUDE 6.1. Das ältere AVRDUDE implementierte nur das
Atmel-eigene Protokoll, und suchte entsprechend nur nach der dafür
benutzten PID 2111.
Jan schrieb:> jan@Jan-Lenovo:~$ sudo avrdude -c jtag3isp -p m328p -P usb:49:34 -v
Wenn du nur ein JTAGICE3 in deinem gesamten System hast, musst du
die Seriennummer nicht angeben; »-P usb« ist dann völlig ausreichend.
Das Feature mit der Seriennummer ist dafür da, dass man mehrere
gleichartige Programmieradapter auseinander halten kann.
p.s.: Für eine hinreichende Bugfreiheit für den Betrieb als root
würde ich nicht garantieren wollen. Bau dir lieber dein System so
um, dass du als normaler Nutzer auf die Geräte zugreifen kannst.
Auf einem Linux, mit dem ich arbeite, benutze ich das hier:
1
# Atmel VID: 03eb
2
# Atmel AVR ISP mkII: PID 2104
3
# Atmel AVR JTAG ICE mkII: PID 2103
4
# Atmel STK600: PID 2106
5
# Atmel AVR DRAGON: PID 2107
6
# Atmel JTAGICE3: PID 2110
7
# Atmel JTAGICE3 CMSIS-DAP PID 2140
8
# Atmel-ICE PID 2141
9
#
10
# By matching any PID, any Atmel product will be recognized, leaving