问题标签 [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.

0 投票
0 回答
173 浏览

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 失败

你能帮我吗?任何想法可以帮助?

0 投票
0 回答
65 浏览

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

这是我的代码,我将不胜感激任何想法和帮助:

0 投票
1 回答
44 浏览

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,缓冲区似乎仍然没有被清除。

0 投票
0 回答
33 浏览

c++ - 从 Qt 交叉编译后在我的树莓派 3B+ 上找不到 .so 文件

我正在使用带有外部 d2xx lib 的 Qt 交叉编译从 Linux 上的虚拟机下编译树莓派 3b+ 上的项目。结果,我收到以下错误(n raspberry,该库安装在一个文件夹中/usr/local/lib):

我的 .pro 文件如下所示:

我还检查了树莓派上是否有一个库使用ldconfig -p | grep ftd2xx,输出是这样的:

我还将 lib 添加到~/.bashrcandld.so.conf和 run ldconfig。完成这些步骤后,我使用命令重新同步rsync -avz pi@$<PI_IP>:/usr/local/lib sysroot/usr。我还尝试将 .so 文件和头文件放入我在树莓上的工作路径中,但这并没有给我任何帮助。我该如何解决这个问题?

0 投票
1 回答
75 浏览

c# - 在 Ubuntu 20.04 上使用 Python3 从 FTDI D2XX 设备读取

我正在使用具有适用于 Windows 的本机软件的 FTDI 设备,但没有适用于 Linux 的软件。我正在尝试使用pylibftdi. 我想翻译C# code设备制造商提供的并且据称可以工作(不清楚是否属实)但没有成功。到目前为止,我已经完成了以下工作:

  1. 根据这些说明安装了 Linux D2XX 驱动程序。安装成功。

  2. 按照此处此处的说明使 FTDI 设备能够连接到 Linux 系统。

  3. 将 FTDI 设备插入 Linux 系统 USB 端口后:

粗体设备 ( Bus 001 Device 006: ID 0403:6001) 是我想从中读取的设备。

  1. 然后安装pylibftdi并验证设备是否可以通过pylibftdiAPI 读取:
  1. 很明显,设备已连接并被识别。但是,当我尝试从设备中读取数据时,我收到了空数组:
  1. C# 代码(由制造商提供)据称可以工作,但我无法对其进行测试。似乎最简单的方法是将其转换为python但即使这样也具有挑战性,因为我不知道如何复制ftdi正在使用的常量和函数调用。提供的C#代码是:
  1. 根据pylibftdigithub repo 中的文档,我可以找到一些包装函数调用以及一些常量,但我不知道如何只打开设置片段,例如:

进入某事python。我想我可以使用 重置波特率d.baudrate = 3000000,我可以使用更改延迟计时器,d.ftdi_fn.ftdi_set_latency_timer(2)但我不知道如何设置数据特征,常量的含义(FTDI.FT_DATA_BITS.FT_BITS_8等),以及如何设置与C#代码相同的流量控制.

  1. 其他 SO 帖子也参考了此处找到的 D2XX 程序员指南,但没有看到将其应用于此问题的方法

任何建议,将不胜感激。

0 投票
0 回答
38 浏览

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?