未检测到FTDI设备

时间:2017-07-12 09:39:47

标签: ubuntu ubuntu-14.04 driver ftdi

将FTDI设备连接到USB端口后,FT_OpenEx()返回错误代码2 FT_DEVICE_NOT_FOUND。但是,在终端中运行“lsusb”时,FTDI设备会显示出来。 如果设备被lsusb列出,导致FT_Open_Ex()返回FT_DEVICE_NOT_FOUND的原因是什么?有哪些可能的问题和解决方案?

输出lsusb:

Bus 001 Device 003: ID 0bda:5776 Realtek Semiconductor Corp. 
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dmesg的输出| grep FTDI:

[28153.244220] usbserial: USB Serial support registered for FTDI USB Serial Device
[28153.244260] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
[28153.244509] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0

dmesg的输出| grep -i FTDI:

[28153.244206] usbcore: registered new interface driver ftdi_sio
[28153.244220] usbserial: USB Serial support registered for FTDI USB Serial Device
[28153.244260] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
[28153.244509] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0

2 个答案:

答案 0 :(得分:0)

一个可能的问题:

如果您在使用程序(使用FT_OpenEx功能)时没有root权限,则会收到错误代码2

解决此特定问题:

sudo ./"your FT program"

答案 1 :(得分:0)

dmesg输出显示ftdi_sio(内核模块)已声明USB端口可模拟串行端口。这是典型的Ubuntu安装的默认行为。

FT_OpenEx是FTDI D2XX API的一部分,该API无法访问ftdi_sio已经声明的设备。

FTDI Linux D2XX notes建议:

sudo lsmod 

如果列出了“ ftdi_sio”: 卸载它(及其辅助模块usbserial),如下所示。

sudo rmmod ftdi_sio
sudo rmmod usbserial

这将允许D2XX程序访问设备,直到下次重新启动时内核才会再次加载ftdi_sio。 This answer提供了一种避免每次重新启动后都必须手动卸载它的方法。