我买了一个 USBASP 2.0 编程器并将其连接起来,我看不到编程器创建的任何端口。我期望的USBtty0
是/dev
为了解决这个问题,我重新启动了 UDEV 并尝试了其他 UDEV 配置,但它没有显示。
乌纳梅
Linux Puc 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
LSSB
Bus 003 Device 092: ID 16c0:05dc Van Ooijen Technische Informatica shared ID for use with libusb
消息
[181622.326920] usb 3-5: new low-speed USB device number 92 using xhci_hcd
[181622.460268] usb 3-5: New USB device found, idVendor=16c0, idProduct=05dc
[181622.460270] usb 3-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[181622.460271] usb 3-5: Product: USBasp
[181622.460272] usb 3-5: Manufacturer: www.fischl.de
udev规则
SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE="0666"
这个设备: http://www.fischl.de/usbasp/
[编辑]
从arduino/hardware/tools/avr
目录使用此命令,连接可以正常工作,但不能从 Arduino IDE 内部进行。
./bin/avrdude -C etc/avrdude.conf -c usbasp -P usb -p m328p
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f
avrdude: safemode: Fuses OK (H:05, E:DF, L:FF)
avrdude done. Thank you.
答案1
我不认为这是应该的。
如果我没记错的话,USBasp 使用自定义控制传输,例如通过供应商和产品 ID 以及 ID 字符串avrdude
进行查找。/dev/bus/usb
使用avrdude
,类似这样的东西应该可以工作,或者抱怨它找不到具有正确 ID 的 USB 设备:
avrdude -P usb -c usbasp -p $UC
此外,由于 USBasp 与软件实现的 USB 配合使用,因此它仅限于低速操作,这原则上意味着它不能用作串行端口:
USB CDC 类适用于调制解调器和其他通信设备。 [...]
CDC 需要批量端点,而 USB 规范禁止低速设备使用这些端点。
(引自V-USB 维基)