问题标签 [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.
c++ - FTDI FT_Open 在树莓派 pi4 中失败,得到错误代码 3
我正在开发一个项目,带有 FTDI D2XX 的树莓派 4,我已按照安装 Linux D2xx 驱动程序的说明进行操作。我在 pi 上使用以下行命令在 C++ 中运行我的代码:
须藤 g++ -o FTDIEX FTDI_Mgt.cpp -L。-lftd2xx -Wl,-rpath,/usr/local/lib -pthread
须藤 ./FTDIEX
我按照建议运行了 sudo rmmod ftdi_sio 和 sudo rmmod usbserial 命令以卸载默认内核驱动程序。
但是,当尝试调用 FT_Open 失败并出现代码错误 3。
一些建议是创建一个 udev 规则以将正确的 ttyUSB 符号链接到一个众所周知的位置。我尝试了下面的行,但没有找到错误命令
驱动程序=="ftdi_sio", ATTRS{serial}=="FT6MGS9D", SYMLINK+="/dev/ttyUSB2"
-bash: ATTRS{serial}==FT6MGS9D,: 找不到命令
我使用我的代码成功获得了以下关于我的设备的信息:
开发 0:
标志=0x3 类型=0x8 ID=0x4036014 LocId=0x106 序列号=FT6MGS9D 描述=UM232H_FIFO_SYNC
ftHandle=0x4d7410
这是我的代码,当我使用 ftStatus = FT_CyclePort(ftHandle) 而不是 FT_Open 它返回 FT_Ok 但我无法读取任何内容 FT_Read 返回 data = 0 并且 FT_GetStatus 失败
你能帮我吗?任何想法可以帮助?
c++ - 错误 FT_GetStatus 无法读取和获取 numBytesToRead 和 BytesReceived
我正在开发一个项目,带有 FTDI D2XX 的树莓派 4,我已按照安装 Linux D2xx 驱动程序的说明进行操作。我用C++编写代码,成功初始化驱动,得到如下信息:
设备数量为 1 Dev N 0: Flags=0x3 Type=0x8 ID=0x4036014 LocId=0x118
SerialNumber=FT6MGS9D Description=UM232H_FIFO_SYNC
ftHandle=0x1cef410
我正在尝试在 FTDI 上写入 0X85,命令 FT_write 返回 FT_Ok。当我尝试使用 FT_GetStatus 获取 numBytesToRead 时,它不会返回 FT_Ok,但 FT_Read 在没有数据读取的情况下返回 FT_Ok,所以我得到:
FT_Read 正常,dataBuffer = 0
FT_Read 正常,numBytesToRead= 0 FT_Read 正常,BytesReceived = 0
这是我的代码,我将不胜感激任何想法和帮助:
c++ - 清除 FT201X I2C-Slave 的内部发送缓冲区
我试图清除 FT201X I2C-Slave 的 FX-Buffer。不知何故,它似乎不起作用,即使在调用 purge-function 之后,master 仍然读取旧数据集。我使用 C++(Visual Studio 2019)和 D2XX-Programmers-Guide 中给出的 D2XX 函数。
我确实尝试在清除命令之前和之后使用 StopInTask 和 RestartInTask 函数,但它仍然没有清除我的缓冲区。
我什至尝试FT_W32_PurgeComm(fthandle, PURGE_TXABORT | PURGE_TXCLEAR)
过,即使函数返回 true,缓冲区似乎仍然没有被清除。
c++ - 从 Qt 交叉编译后在我的树莓派 3B+ 上找不到 .so 文件
我正在使用带有外部 d2xx lib 的 Qt 交叉编译从 Linux 上的虚拟机下编译树莓派 3b+ 上的项目。结果,我收到以下错误(n raspberry,该库安装在一个文件夹中/usr/local/lib
):
我的 .pro 文件如下所示:
我还检查了树莓派上是否有一个库使用ldconfig -p | grep ftd2xx
,输出是这样的:
我还将 lib 添加到~/.bashrc
andld.so.conf
和 run ldconfig
。完成这些步骤后,我使用命令重新同步rsync -avz pi@$<PI_IP>:/usr/local/lib sysroot/usr
。我还尝试将 .so 文件和头文件放入我在树莓上的工作路径中,但这并没有给我任何帮助。我该如何解决这个问题?
c# - 在 Ubuntu 20.04 上使用 Python3 从 FTDI D2XX 设备读取
我正在使用具有适用于 Windows 的本机软件的 FTDI 设备,但没有适用于 Linux 的软件。我正在尝试使用pylibftdi
. 我想翻译C# code
设备制造商提供的并且据称可以工作(不清楚是否属实)但没有成功。到目前为止,我已经完成了以下工作:
粗体设备 ( Bus 001 Device 006: ID 0403:6001
) 是我想从中读取的设备。
- 然后安装
pylibftdi
并验证设备是否可以通过pylibftdi
API 读取:
- 很明显,设备已连接并被识别。但是,当我尝试从设备中读取数据时,我收到了空数组:
- 该
C#
代码(由制造商提供)据称可以工作,但我无法对其进行测试。似乎最简单的方法是将其转换为python
但即使这样也具有挑战性,因为我不知道如何复制ftdi
正在使用的常量和函数调用。提供的C#
代码是:
进入某事python
。我想我可以使用 重置波特率d.baudrate = 3000000
,我可以使用更改延迟计时器,d.ftdi_fn.ftdi_set_latency_timer(2)
但我不知道如何设置数据特征,常量的含义(FTDI.FT_DATA_BITS.FT_BITS_8
等),以及如何设置与C#
代码相同的流量控制.
- 其他 SO 帖子也参考了此处找到的 D2XX 程序员指南,但没有看到将其应用于此问题的方法
任何建议,将不胜感激。
ftdi - FTDI MPSSE 和 D2XX 冲突 - 如何自动从支持 MPSSE 的频道中删除 ftdi_sio?
我们正在设计一个带有 FT4232H 的实验板。FTDI设备的通道使用如下:
通道 1 -> SPI
通道 2 -> I2C
通道 3 -> UART1
通道 4 -> UART2
我们可能需要在一个会话中使用所有这些通道,而无需拔下电路板。通常,在我们使用开发板之前,我们会使用脚本为支持 MPSSE 的通道禁用 ftdi_sio。这没关系,但这意味着我们每次再次插入电路板时都需要运行此脚本。有一个使用 udev 规则的解决方案。此解决方案永久解除绑定不需要的设备。但是,我的问题更广泛一些。我需要将此板发送给许多用户,以便该板与不同的计算机连接。我正在寻找一种方法,当我将板连接到(任何 linux)计算机时,它应该自动禁用前两个通道的 ftdi_sio。因此用户可以直接执行他们的应用程序而无需处理端口问题。
一种解决方案可能是更改设备 ID。这样,通道将永远不会绑定。但是这个解决方案也杀死了我需要的 UART 通道。所以,没用。
我们能否在 EEPROM 中存储一个应用程序(类似于我们用来禁用 ftdi_sio 的脚本),当设备连接到计算机时,它会自动将这些命令发送到主机设备(通过任何通道)执行?
欢迎所有其他想法。问题的明确陈述:我需要 FTDI 设备在连接到任何主机设备 (linux) 时自动取消绑定通道 1 和 2?