Mikrocontroller und Digitale Elektronik
›
Thread
Ubuntu: avrdude findet AVR-ISP Programmer an USB nicht
Hallo Forum.
Ich habe avrdude aufgerufen mit dem Befehl: 1 avrdude -c stk500 -p m128 -P usb:3 -v
Und als Ergebnis das bekommen: 1 avrdude: usbdev_open(): did not find any (matching) USB device "usb:3"
Wie kann ich die Daten finden, die avrdude braucht, um sich per USB mit
dem Programmer zu verbinden?
Gruß
Frank
W
Walter
Gast
29.11.2013 21:19
#3424986
was soll denn usb:3 sein,
bei mir heißt das z.B
-P /dev/ttyACM0
probier mal den befehl lsusb ob der Programmer da überhaupt aufgelistet
ist
lsusb 1 Bus 005 Device 011: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus hatte auch schon mal 003, deshalb.
Hallo,
beim Einstecken des Programmers wird ein neues Device angelegt.
Warscheinlich sowas wie /dev/ttyUSBx, welches genau steht im Syslog. Das
musst du beim avrdude-Aufruf angeben. Damit das Programmieren als
normaler User klappt, musst du außerdem noch die udev-Regeln anpassen.
Viele Grüße
Oliver
Hallo zusammen.
udevadm info --attribute-walk --name=bus/usb/005/011 brachte unter
anderem:
1 looking at device '/devices/pci0000:00/0000:00:08.0/0000:01:05.1/usb5/5-1':
2 KERNEL=="5-1"
3 SUBSYSTEM=="usb"
4 DRIVER=="usb"
5 ATTR{bDeviceSubClass}=="00"
6 ATTR{bDeviceProtocol}=="00"
7 ATTR{devpath}=="1"
8 ATTR{idVendor}=="10c4"
9 ATTR{speed}=="12"
10 ATTR{bNumInterfaces}==" 1"
11 ATTR{bConfigurationValue}=="1"
12 ATTR{bMaxPacketSize0}=="64"
13 ATTR{busnum}=="5"
14 ATTR{devnum}=="11"
15 ATTR{configuration}==""
16 ATTR{bMaxPower}=="100mA"
17 ATTR{authorized}=="1"
18 ATTR{bmAttributes}=="80"
19 ATTR{bNumConfigurations}=="1"
20 ATTR{maxchild}=="0"
21 ATTR{bcdDevice}=="0204"
22 ATTR{avoid_reset_quirk}=="0"
23 ATTR{quirks}=="0x0"
24 ATTR{serial}=="mySmartUSBlight-0001"
25 ATTR{version}==" 1.10"
26 ATTR{urbnum}=="11"
27 ATTR{ltm_capable}=="no"
28 ATTR{manufacturer}=="Silicon Labs"
29 ATTR{removable}=="unknown"
30 ATTR{idProduct}=="ea60"
31 ATTR{bDeviceClass}=="00"
32 ATTR{product}=="myAVR - mySmartUSB light"
dieser Aufruf:
1 avrdude -c ea60 -p t13 -P usb:/devices/pci0000:00/0000:00:08.0/0000:01:05.1/usb5/5-1
brachte dieses Ergebnis:
1 avrdude: ser_open(): can't open device "usb:/devices/pci0000:00/0000:00:08.0/0000:01:05.1/usb5/5-1": No such file or directory
udef Regeln habe ich so modifiziert:
1 SUBSYSTEM!="usb", ACTION!="add", GOTO="avrisp_end"
2
3 # Silicon Labs stk500 mySmartUSBlight
4 ATTR{idVendor}=="10c4", ATTR{idProduct}=="ea60", MODE="660", GROUP="frank"
Aber zuerst mal geht es ja darum, avrdude beizubringen, den Programmer
am USB zu finden.
Was steht in /var/log/syslog kurz nachdem du den Programmer nochmal neu
angestöpelt hast?
brachte:
1 Nov 29 21:25:42 Compi kernel: [39843.032045] usb 5-1: New USB device found, idVendor=10c4, idProduct=ea60
2 Nov 29 21:25:42 Compi kernel: [39843.032058] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
3 Nov 29 21:25:42 Compi kernel: [39843.032066] usb 5-1: Product: myAVR - mySmartUSB light
4 Nov 29 21:25:42 Compi kernel: [39843.032072] usb 5-1: Manufacturer: Silicon Labs
5 Nov 29 21:25:42 Compi kernel: [39843.032077] usb 5-1: SerialNumber: mySmartUSBlight-0001
6 Nov 29 21:25:42 Compi mtp-probe: checking bus 5, device 11: "/sys/devices/pci0000:00/0000:00:08.0/0000:01:05.1/usb5/5-1"
Wie ist denn das Format, mit dem avrdude der USB-Anschluss mitgeteilt
wird?
MD
Max D.
(max_d)
29.11.2013 22:27
#3425109
Ich würde mal in /dev nach einem ttyUSBx oder nach ttyACMx (x ist
irgendeine Zahl, normalerweise 0). Und dann das als -P an avrdude geben.
Das Format ist /dev/ttyUSBx oder /dev/ttyACMx. Wenn das in deinem Syslog
etwas später nicht auftaucht hast du andere Probleme.
Da kommt nur noch 1 Nov 29 22:31:55 Compi mtp-probe: bus: 5, device: 13 was not an MTP device
Was meinst du mit anderen Problemen?
Solange dein Kernel den CP210x nicht als serielles Device erkennt,
brauchst du mit avrdude gar nicht rumprobieren. Aus irgendwelchen
Gründen versucht mtp-probe was mit deinem Programmer zu machen, was
natürlich fehlsschlagen muss.
A
Arno
Gast
29.11.2013 22:40
#3425132
Vielleicht hilfts ja: Mein Makefile ruft avrdude einfach mit '-P usb'
auf - allerdings mit einem avrisp2-Klon (usbprog) - nicht mit einem
stk500.
MfG, Arno
Hi Arno, ich würde mal sagen, es ist ziemlich egal, an welcher Stelle
ein falscher Parameter mit -P übergeben wird.
@Oliver. Sagt mir nichts, was schlägst du vor?
Ich hab noch mit lsusb -v ein paar Infos gefunden: 1 Bus 005 Device 013: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
2 Device Descriptor:
3 bLength 18
4 bDescriptorType 1
5 bcdUSB 1.10
6 bDeviceClass 0 (Defined at Interface level)
7 bDeviceSubClass 0
8 bDeviceProtocol 0
9 bMaxPacketSize0 64
10 idVendor 0x10c4 Cygnal Integrated Products, Inc.
11 idProduct 0xea60 CP210x UART Bridge / myAVR mySmartUSB light
12 bcdDevice 2.04
13 iManufacturer 1 Silicon Labs
14 iProduct 2 myAVR - mySmartUSB light
15 iSerial 3 mySmartUSBlight-0001
16 bNumConfigurations 1
17 Configuration Descriptor:
18 bLength 9
19 bDescriptorType 2
20 wTotalLength 32
21 bNumInterfaces 1
22 bConfigurationValue 1
23 iConfiguration 0
24 bmAttributes 0x80
25 (Bus Powered)
26 MaxPower 100mA
27 Interface Descriptor:
28 bLength 9
29 bDescriptorType 4
30 bInterfaceNumber 0
31 bAlternateSetting 0
32 bNumEndpoints 2
33 bInterfaceClass 255 Vendor Specific Class
34 bInterfaceSubClass 0
35 bInterfaceProtocol 0
36 iInterface 2 myAVR - mySmartUSB light
37 Endpoint Descriptor:
38 bLength 7
39 bDescriptorType 5
40 bEndpointAddress 0x81 EP 1 IN
41 bmAttributes 2
42 Transfer Type Bulk
43 Synch Type None
44 Usage Type Data
45 wMaxPacketSize 0x0040 1x 64 bytes
46 bInterval 0
47 Endpoint Descriptor:
48 bLength 7
49 bDescriptorType 5
50 bEndpointAddress 0x01 EP 1 OUT
51 bmAttributes 2
52 Transfer Type Bulk
53 Synch Type None
54 Usage Type Data
55 wMaxPacketSize 0x0040 1x 64 bytes
56 bInterval 0
57 Device Status: 0x0000
58 (Bus Powered)
Aber was mach ich denn jetzt, um das Problem zu lösen?
@Arno
Ich meinte einen momentan noch falschen Parameter, weil auf der Console
liefert -P usb eine Fehlermeldung.
Aber schon mal gut zu wissen, wie ein funktionierender Aufruf aussieht.
Danke.
D
da1l6
Gast
30.11.2013 00:41
#3425250
Hallo
Der CP210x mit USB ID 10c4:ea60 wird bereits seit 2006 von Linux
unterstützt. Der Kernel-Treiber heißt naheliegenderweise auch "cp210x".
Leider hast du die mehrfach gestellte frage ob beim Anstecken eine
Gerätedatei /dev/ttyUSB* oder /dev/ttyACM* angelegt wird immer noch
nicht beantwortet.
Wenn dem nicht so ist, würde ich erstmal vermuten das bei deiner Ubuntu
Installation was nicht stimmen könnte. Daher einfach mal den Programmer
an einen anderen Linux Rechner anstecken oder den selben rechner von
LiveCD starten und sehen ob es dort Funktioniert oder nicht.
da1l6
J
JochenZ
Gast
30.11.2013 18:27
#3425989
Danke an alle.
Nach einem Kernel-Update ist der Programmer jetzt unter /dev/ttyUSB0
ansprechbar.
↑ Nach oben
← Zurück zu Mikrocontroller und Digitale Elektronik
Antwort schreiben