Hallo zusammen,
eben liegt ein neuer [Diamex EXA-Prog Programmer]. Dieser soll laut
Herstellerseite unter anderem die typischen AVRs über ISP programmieren
können. Dafür ist laut Dokumentation und auch laut diesem
Beitrag "Re: Diamex EXA-PROG mit AVRDUDE uter Linux (Mint)" das
STK500-Protokoll zu verwenden.
Stecke ich den Programmer an, meldet sich dieser brav als solcher an
1 | Okt 02 22:32:03 infinitypro kernel: usb 3-3.2: new full-speed USB device number 17 using xhci_hcd
|
2 | Okt 02 22:32:03 infinitypro kernel: usb 3-3.2: New USB device found, idVendor=16c0, idProduct=2a9b, bcdDevice=45.80
|
3 | Okt 02 22:32:03 infinitypro kernel: usb 3-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
|
4 | Okt 02 22:32:03 infinitypro kernel: usb 3-3.2: Product: EXA-PROG
|
5 | Okt 02 22:32:03 infinitypro kernel: usb 3-3.2: Manufacturer: ERFOS
|
6 | Okt 02 22:32:03 infinitypro kernel: usb 3-3.2: SerialNumber: 58466-86580-826
|
7 | Okt 02 22:32:03 infinitypro kernel: cdc_acm 3-3.2:1.0: ttyACM0: USB ACM device
|
Es erscheint natürlich auch die Datei _/dev/ttyACM0_, die von
Mitgliedern der Gruppe uucp schreib- und lesbar ist (ich bin Mitglied
dieser Gruppe):
1 | $ ls -l /dev/ttyACM0
|
2 | crw-rw---- 1 root uucp 166, 0 2. Okt 22:32 /dev/ttyACM0
|
3 | $ groups
|
4 | power adbusers users uucp wheel
|
So weit sieht erst einmal alles richtig aus. Nun das eigentliche
Problem:
Nutze ich ein avrdude aus meinen Paketquellen (Arch Linux, Version 8.0),
so wird meistens beim Aufruf sofort das USB-Gerät ab- und wieder
angemeldet, was avrdude entsprechend quittiert:
1 | $ avrdude -c stk500v2 -P /dev/ttyACM0
|
2 | OS error: cannot open port /dev/ttyACM0: Input/output error
|
3 | Error: unable to open port /dev/ttyACM0 for programmer stk500v2
|
4 |
|
5 | Avrdude done. Thank you.
|
6 | $ journalctl -e | tail -9
|
7 | Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: reset full-speed USB device number 20 using xhci_hcd
|
8 | Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: USB disconnect, device number 20
|
9 | Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: new full-speed USB device number 21 using xhci_hcd
|
10 | Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: New USB device found, idVendor=16c0, idProduct=2a9b, bcdDevice=45.80
|
11 | Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
|
12 | Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: Product: EXA-PROG
|
13 | Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: Manufacturer: ERFOS
|
14 | Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: SerialNumber: 58466-86580-826
|
15 | Okt 02 22:37:37 infinitypro kernel: cdc_acm 3-3.2:1.0: ttyACM0: USB ACM device
|
Man erkennt, dass das USB-Gerät einen Reset durchläuft und als neues
Gerät (Nummer 21 statt 20) auftaucht. Dass avrdude das nicht mag, ist
nachvollziehbar.
Kennt jemand diesen Fehlerfall und weiß Rat?
Vielen Dank im Voraus!
[Diamex EXA-Prog Programmer]:
https://www.diamex.de/dxshop/EXA-PROG-AVR-ISP-und-UPDI-STM32-NXP-ESP