我有一个 CH341a 编程器,当我将其插入 USB 端口时,一切似乎都正常工作,只是它没有分配给设备路径(例如 /dev/ttyUSB0)。
有谁知道为什么会发生这种情况,或者如何解决这个问题?
以下是我为解决问题所做的一些事情。
LSSB
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 1a86:5512 QinHeng Electronics CH341 in EPP/MEM/I2C mode, EPP/I2C adapter
Bus 001 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
消息
[347.965641] usb 1-2.1: new full-speed USB device number 4 using uhci_hcd
[348.196659] usb 1-2.1: New USB device found, idVendor=1a86, idProduct=5512
[348.196661] usb 1-2.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[348.196662] usb 1-2.1: Product: USB UART-LPT
您可以看到设备被识别为已连接,但没有设备路径分配。
我已经将这个东西连接到 4 个不同的设备,它们的行为方式都相同,对 lsusb 和 dmesg 的输出也相同。此示例输出来自 Ubuntu VM,但其他输出是在 Thinkpad P15s 上运行的 Linux Mint、在旧 Dell Latitude 上运行的 Zorin 以及在 Raspi 4 上运行的 Kali。
哦,我也尝试过安装驱动程序https://github.com/juliagoda/CH341SER我已经从所有测试设备上卸载了 BRLTTY 软件(这实际上解决了我的 Arduino Nano 的问题,但不是这个设备的问题)。
截至本文发布时,所有更新均已安装,并且每个系统都是 UTD。
非常感谢任何和所有的帮助。
谢谢。
答案1
您的设备未分配串行设备路径,因为它不是串行端口。从您的lsusb
输出中,我们看到:
Bus 001 Device 004: ID 1a86:5512 QinHeng Electronics CH341 in EPP/MEM/I2C mode, EPP/I2C adapter
关键部分是in EPP/MEM/I2C mode
.设备未配置为 UART;如果是的话,我们会看到:
Bus 001 Device 004: ID 1a86:5523 QinHeng Electronics CH341 in serial mode, usb to serial port converter
无论安装多少驱动程序,当前配置下的设备都不会显示为 USB 串行端口。问题完全在于设备本身的配置方式。
如果你有裸板,可以自己配置。根据数据表,UART 和 SPI/I2C 模式之间的选择通过 SCL 和 SDA 引脚进行配置(请参见第 5.3 节“功能配置”)。
如果您有一款消费类产品是 UART 转 USB 设备,我会将其退回以进行更换。
答案2
就我而言,只需移除板上连接引脚 1 和 2 的跳线即可。现在加密狗枚举如下:
Bus 002 Device 016: ID 1a86:5523 QinHeng Electronics CH341 in serial mode, usb to serial port converter
我还安装了这个固定驱动程序:https://github.com/juliagoda/CH341SER/
更多信息和技巧在这里:http://www.zoobab.com/ch341-usb-spi-i2c-uart-isp-dongle#toc5