通用usb串行设备连续给出1`

时间:2015-09-28 20:42:33

标签: linux serial-port ftdi

我正在尝试通过Linux(Di245)中的虚拟COM驱动程序(VCD)与pdf进行通信,我遇到了一个奇怪的问题。在内部,该设备使用FTDI芯片组(FT232BL)。

单独附加设备未注册为VCD,因此我执行以下操作:

sudo modprobe usbserial vendor=0x0683 product=0x2450

会产生以下dmesg消息:

usbserial: USB Serial support registered for generic
usbserial_generic 3-3:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
usbserial_generic 3-3:1.0: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
usbserial_generic 3-3:1.0: generic converter detected
usb 3-3: generic converter now attached to ttyUSB0

我按照承诺获得/dev/ttyUSB0设备。到目前为止,一切似乎都没问题。

但是,如果我在代码中打开端口,我会从中获得一堆1`(交替1`)。尝试screen

screen /dev/ttyUSB0 115200

我不断收到1`。这绝对不是设备发送的东西,奇怪的是,如果我把一个随机波特率,我会继续得到同样的东西。

这是报告某些错误的方法吗?什么可能触发这种行为,我该如何解决?

1 个答案:

答案 0 :(得分:1)

解决方案如下:

# modprobe usbserial vendor=0x0683 product=0x2450
# modprobe ftdi_sio
# echo "0683 2450" >> /sys/bus/usb-serial/drivers/ftdi_sio/new_id

这样,ftdi_sio驱动程序就知道要为哪个供应商/产品提供VCD。以下udev规则(例如,99-di245.rules)可以自动执行此操作:

ACTION=="add", ATTRS{idVendor}=="0683", ATTRS{idProduct}=="2450", RUN+="/sbin/modprobe ftdi_sio" RUN+="/sbin/modprobe usbserial vendor=0x0683 product=0x2450" RUN+="/bin/sh -c 'echo 0683 2450 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"

安装时:

$ sudo cp 99-di245.rules /etc/udev/rules.d
$ sudo udevadm control --reload