问题标签 [ftdi]

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 投票
2 回答
2555 浏览

ftdi - 使用 FTDI 设备 FT4232H 将初始状态设置为引脚上的输入

我正在使用来自 FTDI 的名为 FT4232H 的 USB 设备,我想在 EEPROM 上进行写入,以确保在启动时将某些引脚设置为输入。我正在使用 D2XX 驱动程序(此处为 pdf )。在这里,我在第 106 页发现有一个名为 FT_EEPROM_4232H 的结构。这可以用来确保在开始时将引脚设置为输入还是完全错误的?有四个 UCHAR 变量,称为 A-、B-、C- 和 DDriverType。有谁知道这些应该用来做什么?

0 投票
2 回答
24357 浏览

python - 在 raspbian 软浮点上使用 FTDI D2XX 驱动程序和来自 Raspberry Pi 的 Python

我们有一个由 FTDI 的 D2XX 驱动程序控制的 USB 设备。它目前通过 Python 接口从 Windows 机器控制,作为一个有趣的项目,我尝试将控制转移到 Raspberry Pi(大约是 PC 成本的 1/10,不包括操作系统成本)。

有许多障碍需要清除,但几周后,我终于找到了所有答案并让它发挥作用。答案分布在多个论坛上,因此感谢 Stack Overflow 社区,我想我会在这里整合它们。

一、项目要求:

我下载了 Wheezy 发行版并使用 Win32DiskImager 写入 4 GB SD 卡。Raspberry Pi 启动没有问题。然后我解压 D2XX 库 (libftd2xx.so) 并将其安装到/usr/local/lib.

PyUSB (1.6) 目前仅针对 Windows 进行测试,但它们提供了源代码。为 Raspberry Pi 编译一个副本非常简单。基本上,修改 setup.py 以链接到 libftd2xx.so 库(无需复制它)。还要编辑 d2xx/_d2xx.c 以注释掉没有 Linux 实现的例程(当前为 ftobj_Rescan、ftobj_Reload ftobj_GetComPortNumber)。将 FTDI D2XX 驱动程序下载(在发行版中)目录中的 WinTypes.h 和 ftd2xx.h 复制到 ftdi-win32 并运行python setup.py install,它将编译和安装 Python 模块。

完成所有这些后,我编写了一个简单的 Python 脚本来与 FTDI 芯片对话。请注意,您需要通过 sudo 运行。

d2xx 模块似乎找不到 libftd2xx.so 文件。因此,我调整了 setup.py 脚本以链接到库的静态副本 libftd2xx.a。瞧,我得到了问题的第一个线索:D2XX 库是使用软浮点构建的,而我的 Wheezy 发行版被配置为使用浮点寄存器。也就是说,我系统上的 gcc 生成的代码与 D2XX 库二进制不兼容,并且不允许链接到它们。

为了解决这个问题,我下载了soft-float debian "wheezy" 发行版(2012-08-08) 并写入了 4 GB SD 卡。这次映像无法启动。环顾四周后,我发现了这个有用的答案. 简而言之,软浮点的启动映像存在问题,因此对于某些 Raspberry Pi 板,它不会启动。解决方案是将软浮点发行版中的 start.elf 文件替换为可以正常工作的文件,例如硬浮点 Raspbian 映像的副本。幸运的是,SD 卡有两个分区:一个 FAT 分区和一个 ext3(?) 分区。启动映像位于 FAT 分区上,因此将硬浮动 SD 卡弹出到 Windows 框中,复制 start.elf 文件,弹出软浮动 SD 卡并使用硬浮动更新其 start.elf 是微不足道的-浮动一个。之后,Raspberry Pi 启动没有问题。

在安装 FTDI 的 D2XX 驱动程序并从 PyUSB 构建 d2xx Python 模块后,我再次尝试了测试脚本。又失败了。d2xx 模块可以毫无问题地读取 libftd2xx.so 库,但由于某种原因无法与设备通信。

0 投票
1 回答
557 浏览

usb - Communication between a BeagleBoard and an Arduino Pro Mini through an FTDI adapter

I'm working on a project in which i have to connect a BeagleBoard and an Arduino Pro Mini for communication.

I tried the USB-FTDI way. I have installed all kernel modules, ftdi-sio , usbserial module, but nothing appear in /dev. I try it in Ångström and Ubuntu. I wanted to use I²C, but I have to know electronics. Since the BeagleBoard's GPIOS output is 1.8 V, I need a level converter to communicate with the Arduino.

What do I have to do to make it working?

0 投票
1 回答
1890 浏览

android - FTDI d2xx 安卓通信

我一直在尝试使用 TN_134 FTDI Android D2XX 驱动程序和测试应用程序,但惨遭失败。LogCat 告诉我它无法加载 .jni 文件,并且每次尝试加载时应用程序都会崩溃...无法加载 .jni 库,因为我的设备没有植根(而且我不打算植根它)。有没有办法绕过这个,使用相同的芯片组?有没有办法将 .jni 代码集成到测试应用程序代码中,这样就不需要库文件了?我愿意接受任何不涉及植根设备的建议。

0 投票
0 回答
339 浏览

c - 如何在 Ubuntu 中发布 FTDI 设备处理程序?

我在 Ubuntu 12.0.4 64 位上使用 FTDI 芯片。如果我第一次连接它并读/写,它工作正常。但是在调用 FT_Close 并释放句柄后,它无法从设备读取/写入。我们每次都需要重新连接 FTDI 设备。

0 投票
1 回答
1229 浏览

winforms - winforms:从串口读取并绘制实时数据。许多错误/错误

我正在尝试从 MCU 获取数据,将它们保存到文件中并绘制它们。代码正常运行一段时间,然后随机挂起(有时在 1 秒后,有时在 1 分钟后......!)。此外,串行端口超时也不受尊重,即我没有收到任何超时异常。我正在使用 FTDI232RL 芯片。我唯一一次遇到超时异常是在程序运行时拔掉它。

代码:

允许用户以秒为单位定义数据采集的间隔(在代码中,此间隔是转换为双精度后的 w)。在这种情况下,程序会向 MCU 发送一个脉冲,请求新的数据传输。到目前为止,我已经测试了 1 秒的时间间隔(注意,在每个时间间隔内,MCU 发送 8 帧,每个帧代表一个 ADC)。但是,我需要让它在某个时候运行 10 毫秒的间隔。这可能吗?关于如何解决我一开始提到的几个问题的任何想法?

提前致谢

更新

只是为了让您了解正在发生的事情:我评论了图表部分并运行了大约 5 分钟的程序,阅读间隔为 1 秒。所以我希望在输出文件中得到大约 5x60=300 个值,但我只得到了 39 个(即从 1 秒到 39 秒)。该程序仍在运行,但数据不再存储。测试是在发布模式而不是调试模式下完成的。在调试模式下,在 serialport->readbyte() 下设置断点不会重现问题。我的猜测是程序和MCU之间的时间问题。

0 投票
3 回答
2445 浏览

c - 将编译的库链接到较新版本的 glibc

我正在开发一个使用 ftdi D2XX 驱动程序与 ENTTEC DMX usb pro 设备接口的项目。ftdi 驱动程序(libftdi2xx.so.1.1.12 存储在 /usr/local/lib/ 中)是针对 glibc v2.14 或更高版本编译的。

我正在 debian 7 上开发,它只支持 glibc v2.13。当执行我编写的 C 代码(调用 ftdi 驱动程序)时,它给出了一个错误:

这是有道理的,知道 glibc 版本不兼容。我已将最新版本的 glibc (v2.17) 下载并安装到我计算机上的临时目录 ('~/glibc-testing/install/lib/') 中,并使用以下调用:

通过这个调用,我能够成功运行 C 代码。

我想将此 C 代码编译为共享库。它将用于与 DMX 设备交互,并由基于 C# 开发的主应用程序调用。

我不确定如何前进。看起来我需要做的是告诉 fdti 驱动程序始终使用较新的 glibc,同时让应用程序的其余部分使用普通库。ftdi 2DXX 驱动程序仅提供预编译(无源代码可用)。有没有办法将此预编译程序链接到新库?

我研究了导出 LD_LIBRARY_PATH=/home/.../glibc/install/lib/ 的选项,但收效甚微。

谢谢!

0 投票
1 回答
620 浏览

windows-7 - 为什么在 Windows 7 上调用 ftd2xx 打开(使用 tclftd2xx.dll)后 tcl/tk 在退出时挂起

我有一个在 Windows 8 机器上开发的 Tcl/Tk 应用程序。该应用程序使用 FTDI USB windows 驱动程序和 tclftd2xx tcl 扩展来打开 USB 设备。

作为测试的一部分,我将应用程序安装到 Windows 7 机器上。该应用程序运行良好,直到我尝试退出 tcl。当执行退出命令时,应用程序就会挂起。

我以为它与Tk有关,但事实并非如此。tcl 代码非常简单(loc 22 只是一个例子):

这不是一个“好的”挂起——即使是程序 KILL 也不会关闭它。摆脱这种情况的唯一方法是对机器进行硬重置,因为 Windows 不会对活动进程进行“安全”关闭。

我确实发现调用 ftd2xx 重置会清除 tcl 正在等待的任何内容,并允许退出完成。

如:

现在我的问题是,如果用户在关闭应用程序之前拔下 USB 设备,文件句柄 ($handle) 就会过时,因此 ftd2xx 重置无法释放挂起,我又要硬重启了。

我不知道错误是在我的初始化、libftd2xx.c、FTDI 驱动程序还是 Tcl 中。我不想发布所有 libftd2xx.c

如果有人对此有所了解,我将不胜感激。

0 投票
0 回答
1154 浏览

linux - Avrdude 无法写入 - C232HM-DDHSL-0 Linux Mint

我一直在尝试使用基于 FT232H 芯片的 C232HM-DDHSL-0 编程器对我的 ATmega644p 进行编程。

我在我的主目录中编辑了 .avrduderc 以包含以下内容,这些内容是从 /etc/avrdude.conf 改编而来的:

我已经能够使用 avrdude 与 MCU 通信

其中终端的输出是:

启用 -vvvv 选项的输出: http ://pastebin.com/z3K8RYJP

但是,当我尝试刷新一个简单的 .hex 文件时,它会在写入 flash 时停止:

启用 -vvvv 选项的输出: http ://pastebin.com/EmmuCsxN

我还安装了 FTDI 的 D2XX 驱动程序,并按照本指南中概述的步骤进行操作,但无济于事:(请参阅评论以获取链接)

似乎我无法写入 MCU,所以我的第一个猜测是我错误地配置了编程器。任何帮助将非常感激。谢谢!

编辑:刚刚注意到我使用不同的命令与 MCU 进行通信 :(

EDIT2:我使用此配置修复了它:

0 投票
1 回答
651 浏览

c# - 我有 ac# windows 窗体程序,我计划在其中使用 FTDI FTD2XX_NET 库

我有使用 FTDI FTD2XX_NET 库的 ac# windows 窗体程序。如何使用特定的 FT_ 命令,例如 FT_GetDeviceInfo、FT_GetDriverVersion 等?我在另一个答案中找到了这个:

它也适用于我,但我无法弄清楚它是如何工作的。有人可以向我解释它是如何工作的吗?我是新手,所以请分析一下!先感谢您,