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
hast du avrdude mal mit root rechten ausgeführt oder eine udev regel angelegt?
Habs mit root probiert, aber ich scheitere anscheinend daran bereits den richtigen port parameter auszuwählen :-( Hab gegoogelt aber das hat nur Verwirrung erzeugt...
Wie wäre es mit dem Lesen der Manpage?
1 | -P port |
2 | … |
3 | For the JTAG ICE mkII and JTAGICE3, if avrdude has been |
4 | configured with libusb support, port can alternatively be |
5 | specified as usb[:serialno]. This will cause avrdude to |
6 | search the programmer on USB. If serialno is also speci‐ |
7 | fied, it will be matched against the serial number read |
8 | from any JTAG ICE mkII found on USB. The match is done |
9 | after stripping any existing colons from the given serial |
10 | number, and right-to-left, so only the least significant |
11 | bytes from the serial number need to be given. |
Das Posten der von dir verwendeten Kommandozeile mitsamt der Fehlermeldung, die du bekommst, wäre auf jeden Fall hilfreich gewesen.
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?
Hier die Ausgabe von lsusb -v:
Bus 003 Device 016: ID 03eb:2140 Atmel Corp.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x03eb Atmel Corp.
idProduct 0x2140
bcdDevice 1.01
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 64
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 4
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 55
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 255
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 255
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.
Prima, vielen Dank! Werde auf 6.1 'upgraden' und dann nochmal versuchen!
Vielen Dank an euch alle, jetzt klappt es!
jan@Jan-Lenovo:~$ sudo avrdude -c jtag3isp -p m328p -P usb:49:34 -v
avrdude: Version 6.1, compiled on Jul 18 2014 at 11:08:27
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/usr/local/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:49:34
Using Programmer : jtag3isp
avrdude: usbdev_open(): did not find any (matching) USB device
"usb:4934" (0x03eb:0x2110)
avrdude: usbdev_open(): Found JTAGICE3 CMSIS-DAP, serno: J40240224934
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages
MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------
----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0
3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256
4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0
4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0
4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0
4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0
4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0
0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0
0 0 0x00 0x00
Programmer Type : JTAG3_ISP
Description : Atmel AVR JTAGICE3 in ISP mode
Vtarget : 4.9 V
SCK period : 1.54 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100%
0.19s
avrdude: Device signature = 0x1e950f
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DA
avrdude: safemode: efuse reads as FD
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DA
avrdude: safemode: efuse reads as FD
avrdude: safemode: Fuses OK (E:FD, H:DA, L:FF)
avrdude done. Thank you.
Vielen Dank nochmal und schonmal ein schönes Wochenende!
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 |
11 | # room e.g. for software USB implementations |
12 | SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", GROUP="plugdev", MODE="0660"
|
13 | |
14 | # CMSIS-DAP devices |
15 | KERNEL=="hidraw*", ATTRS{busnum}=="1", ATTRS{idVendor}=="03eb", GROUP="plugdev", MODE="0660"
|
16 | |
17 | # Atmel SAM-ICE (aka. Segger J-Link) |
18 | SUBSYSTEM=="usb", ATTR{idVendor}=="1366", ATTR{idProduct}=="0101", GROUP="plugdev", MODE="0660"
|
19 | |
20 | # USBtinyISP (3rd party programmer) |
21 | SUBSYSTEM=="usb", ATTR{idVendor}=="1781", ATTR{idProduct}=="0c9f", GROUP="plugdev", MODE="0660"
|
22 | |
23 | # USBasp |
24 | SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", GROUP="plugdev", MODE="0660"
|
als /etc/udev/rules.d/42-atmel_usb.rules
Kann mir jemand sagen wie ich AVRDUDE auf 6.1 upgraden kann? Habe nämlich das gleiche Problem wie oben schon beschrieben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.