问题标签 [d2xx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - FTDI 设备的 udev 规则在 VMware Ubuntu 16.04 中不起作用
我已经使用 Ubuntu 16.04 设置了一个 VMware (14.1.1) 环境,我试图通过 FTDI 的 D2xx 驱动程序控制一些 FTDI 设备。但是,我无法打开我的 FTDI 设备或与之通信。使用
告诉我有可用的设备。但是,如果我尝试用
它给了我一个错误(ftStatus = 2)。据我所知,这个错误意味着没有可用的设备。
如果我从 FTDI 驱动程序执行“EEPROM/读取”示例,一切正常。唯一的区别是我以超级用户身份执行它(sudo ./read)。因此,我正在制定一个 udev 规则,希望能解决我的问题:
但是,问题仍然存在。如果我在一台非常相似的物理 Ubuntu 16.04 机器上运行完全相同的东西,那么这个 udev 规则一切正常。
使用虚拟系统时如何定义这些规则有区别吗?但我还有一些其他 FTDI 设备可以很好地满足这条规则:
我遵循了 FTDI 的安装指南:http: //www.ftdichip.com/Support/Documents/AppNotes/AN_220_FTDI_Drivers_Installation_Guide_for_Linux.pdf
java - 将 FTDI 设备作为 VCP 连接到 Android
我正在尝试使用 FTDI 提供的 Java 类库将 FTDI FT2232H 连接到 Android 应用程序,该类库不需要 root 访问权限。
有没有办法通过这个包使用VCP,而不是旧式的原生驱动路由?或者,如果没有,有没有办法通过它模拟 VCP 接口(或者是否有可能推出我自己的解决方案?)我发现官方文档有点缺乏,因为他们鼓励使用 Java 库而不是原生的,但不要解释它是否提供完整的功能奇偶校验。
android - Android + FTDI FT232H 兼容性
我正在构建一个连接 FTDI FT232H USB 到 SPI 转换器的 C 库。它目前在带有D2XX 驱动程序的 Windows/Linux 上工作。
在 Android (6) 上,将通过 JNI 在运行 armeabi-v7a 和 arm64-v8a 架构的设备上访问该库。
问题:Android 没有明确支持 FTDI。
D2XX Linux 驱动程序使用硬浮点数,但Android 需要软浮点数。我的替代方案是什么?
codeblocks - 无法将 64 位 ftd2xx 静态库与项目显示链接器错误链接。如何将 ftd2xx 64 位库链接到代码
我正在尝试将 ftd2xx.lib (amd64 https://www.ftdichip.com/Drivers/CDM/CDM%20v2.12.28%20WHQL%20Certified.zip ) 静态文件链接到我的代码块中的测试程序。我在基于英特尔 i3-7020、x64 的处理器上运行代码块(mingw)。我收到链接器错误 obj\Debug\main.o:main.cpp|| 对 `_imp__FT_ListDevices@12' 的未定义引用。有人可以告诉我如何在代码块中链接 ftd2xx.lib 64 位版本的静态库。
它应该编译成功并显示连接的设备数量。
c - 尝试从设备读取时,Raspberry Pi 上的 FT_DEVICE_NOT_FOUND - sudo 不起作用
第一篇文章,所以请随意撕毁我。
尝试将 FT_Open() 用于 FTDI 设备。此函数用于 FTDI 驱动程序的示例“读取”程序,目前在该程序中失败。我在树莓派 4 上运行它,但也在尝试在 Ubuntu 上出现同样的错误。
在这两个设备上,在 lsusb 的结果中都可以找到 FTDI,显示我需要连接的序列号。我尝试使用通过端口号打开的 FT_Open(),但这不起作用,返回 FT_DEVICE_NOT_FOUND 的 ftStatus 代码。
在运行示例“读取”程序时,我尝试使用 sudo 来更正此问题,但这不起作用,但作为对先前问题的修复被提及。
这是正在打印的代码和错误消息。这与我的笔记本电脑和树莓派上的代码相同,它们都会导致相同的问题。
我希望这甚至不会打印,但是目前我得到了
FT_Open(6): 2 failed.
关于做什么的任何想法?此 FTDI 设备的 productId 不同,因为它实际上是 PLMS Developments 销售的 Nistune 咨询电缆。我正在尝试通过 Linux 连接到它,目前仅支持 Windows。
编辑:好的,所以在将我正在使用的 FT232R 芯片上的 EEPROM 重新编程为默认设置后,我确实最终让它工作了。
但是我正在尝试这样做而不需要这样做。我想为芯片使用默认的 vendorID 和不同的 productID。以前,每次我拔掉设备时,它都会重新加载 ftdi_sio 和 usbserial 模块。这将导致它永远无法正确连接。正如我在其他问题中看到的那样,这可以解决。
现在我需要找到一种在 Linux 驱动程序软件中接受自定义产品 ID 的方法。我尝试更改所有似乎相关的信息,但它再次无法识别该设备。
android - 使用 FTDI D2xx 库读取数据时出现问题
我正在尝试使用 FTDI usb 到串行驱动程序/库 d2xx 进行 MODBUS RTU 通信。我可以在我的电脑上看到从我的 android 应用程序发送的消息,而我的台式电脑确实将消息发回给我。我成功地获得了所需的字节数,但我从 FT_Device.read() 方法接收到所有“0”。
任何帮助将不胜感激。
我已经写了android代码...
xcode - 如何在 xcode 11.2 中链接 ftdi d2xx dylib?
我正在尝试让 ftd2xx dylib 在 MacOS 终端 xcode 项目中工作。
我已经按照自述文件的说明正确安装了驱动程序和苹果驱动程序的冲突修复程序。
https://www.ftdichip.com/Drivers/D2XX/MacOSX/ReadMe.rtf
Xcode 版本 11.2 (11B52),
FTD-lftd2xx.1.4.16
我试过链接二进制文件、构建副本、标题路径,但我无法让它工作。
我是 Xcode IDE 的新手,对编程并不陌生。
根据 xcode 版本,这似乎有不同的原因。至少这是根据我的研究。
任何和所有的帮助将不胜感激。提前致谢。
python - 在带有 ctypes 的 python 中使用 d2xx.dll
我正在尝试使用 d2xx.dll,它是一个用于连接 FTDI 的 USB 控制器芯片的库。我想在我的 python 代码中使用这个库。我决定在 python 中使用 ctypes 库来调用 dll 函数。我未能从 dll 文件中适当地调用函数,并且我认为我在传递给 dll 库中的函数的变量类型方面存在一些问题。我不是专业程序员,所以请放轻松。:D
这是迄今为止尝试过的,
我只是想检测有多少 D2XX 设备与 FT_CreateDeviceInfoList() 函数连接。FT_CreateDeviceInfoList 在d2xx.dll 文档第 6 页中进行了描述。该函数有一个输入参数,它是一个指向无符号长整数的指针,它返回 USB 设备的状态。我用“numDevs = ctypes.c_ulong()”声明了一个无符号长整数,并在“p_numDevs = POINTER(numDevs)”中声明了它的指针,当我运行代码时出现以下错误。
我还尝试使用 byref 来传递 numDevs 的地址:
这次我得到以下信息:
我应该如何传递输入参数?我知道python中有一些d2xx.dll的包装器,比如pyusb,但由于某种原因,我无法让它们工作。我用 d2xx.dll 编写了一些 C 代码,它们的工作方式非常有魅力。现在我正在寻找一种让他们在 python 中工作的方法。
提前致谢。
ubuntu - CC3200 LaunchXL 与 ubuntu 和 VSCODE
并感谢在我错的地方纠正我,因为我根本不是专家!
我已经阅读了很多帖子和线程,但没有一个适合我的情况。我希望能够在 Linux Ubuntu 18.04.5 LTS(64 位)、内核 5.4.0-48-generic 下使用 VSCODE、CC3200-LaunchXL 编辑、制作、刷新(并希望调试)。
据我了解,OpenOCD 将打开 LaunchXL 板上的 FTDI 芯片,并以“透明方式”将可执行文件加载到 CC3200 芯片中。为此,它只需要 CC3200.cfg 和可执行文件。
我已经下载了CC3200 sdk CC3200SDK-1.5.0-windows-installer.exe 并用wine64安装了它。进入 ../cc3200-master/example/blinky/gcc,做了一个 make clean 和 make,然后 openocd -f ../cc3200-master/tools/gcc_scripts/cc3200.cfg -c "program ../path_to/ blinky.bin 验证重置退出”
我有以下“错误:找不到指定的调试接口(ft2232)以下调试接口可用:1:parport 2:虚拟3:ftdi ... ...”
我读到 FTDI ft2232 有 2 个驱动程序,一个用于串行端口 (VCP),这个是内置的 Ubuntu,当插入 FTDI 芯片时加载一个用于数据 D2XX,https: //www.ftdichip.com /Drivers/D2XX/Linux/libftd2xx-x86_64-1.4.8.gz 我已经使用 sudo cp release/build/lib* /usr/local/lib 将 libusb 复制到 /usr/local/lib 中,使用 sudo ln - s libftd2xx.so.1.4.8 libftd2xx.so 使其可执行 sudo chmod a+rwx libftd2xx.so.1.4.8
然后,我需要做 2 件事,通过编写 udev 规则并将我添加到拨出组并重新启动会话,授予我访问 FTDI 的权限,该规则取自网络,我添加了 trigger.sh只需在 tmp 文件中打印日期,以便仔细检查事件是否发生,确实如此。SUBSYSTEM=="tty", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="c32a", SYMLINK+="fhss", GROUP="dialout", RUN+="/usr/local/bin/trigger .sh", MODE="0777", RUN+="/sbin/modprobe ftdi-sio", RUN+="/bin/sh -c '/bin/echo 0451 c32a > /sys/bus/usb-serial/drivers/ ftdi_sio/new_id'" 我认为在调用 modprobe 之前必须卸载 VCP 驱动程序(rmmod ftdi_sio rmmod usbserial,插入时加载)?我不确定 0451 c32a >
因此,当我尝试从 release/examples/EEPROM/read (clean and make) 读取 EEPROM 示例并且我有 Library version = 0x10408 Opening port 0 FT_Open(0) failed
如果我拔下电路板并重复相同的命令...相同的输出。这么清楚命令甚至没有到达USB端口?无论如何,这就是我的位置......谢谢你的帮助
另外需要注意的是,当我插入 LaunchXL 时,dmesg 显示“忽略为 JTAG 保留的串行端口”,不确定这是否正常。
windows - 是否可以使用 D2XX 与非 FTDI 设备连接?
这是在 Windows 10 上。
在我的项目中,我们之前使用 D2XX 与 FTDI USB-to-Serial 设备连接。效果很好。
现在我们介绍了一个额外的 USB 转串口设备,但我刚刚意识到它实际上并不是一个 FTDI 设备。它显示为通用的 Microsoft“USB 串行设备”:
因此,当我们通过FT_GetDeviceInfoList枚举连接的设备时,FTD2XX 库当然无法识别它并且它不会出现。
D2XX 接口是专门用于 FTDI 设备的专有接口。
我知道直接的解决方法是不为此设备使用 D2XX,而是使用通用的 Windows Fileapi 接口。
但是,为了减少代码重复,我想知道是否有一种方法可以“包装”通用驱动程序,以便我们可以使用 FTD2XX 库与之交互?