首页 > 解决方案 > 在 Linux 中使用带有 FT4232H 的 libMPSSE

问题描述

我对 FT4232H 没有太多经验。它是四端口设备。我想将一些端口配置为 SPI,其他端口配置为 UART 和 GPIO

我已经开始试验 SPI 。在官方文档中,它说如果使用 ftd2xx 和 libMPSSE,则必须删除标准内核模块 ftdi_sio 和 usbserial,所以我这样做了。

我的问题:在 Linux 中,我可以将所有 4 个端口任意配置为 SPI/UART/I2C/GPIO,因为每个端口在 PC 中使用可能不同的驱动程序吗?据我所知,驱动程序是根据 PID/VID 加载的。FT4232H 有 4 个端口,这是独一无二的,那么如何做到这一点呢?欢迎对此提出任何想法。

我还想分享我目前(一天)使用 libMPSSE 的经验。不幸的是有点消极。我已经从官方 FTDI 网站下载了最新的 libMPSSE-rev0.6 的源代码。我很惊讶地发现在 Linux 下没有为编译提供配置。libMPSSE 没有 Makefile。我做了一个简单的,没什么大不了的,但后来我发现它不是开箱即用的。我在一个位置得到“未定义类型字节”。在构建库之后,我做了一个简单的测试应用程序,它表现得很奇怪。我在 SPI 上发送 8 个字节,但使用示波器我观察到 7 个 8 位时钟数据包,然后是 100us 暂停,最后是最后一个 8 位数据包。最后一个数据包中的 MOSI 也不正确。(我发送的都是 0,但最后得到了两位高)幸运的是我发现https://www.mathworks.com/matlabcentral/answers/518039-ftdi-libmpsse-0-6-spi_readwrite-weird-behaviour-loadlibrary-calllib。修复使我的转移看起来不错。在我看来,FTDI 甚至没有对 libMPSSE 进行基本检查

我无法理解如此流行的 FTDI 芯片如何拥有如此低质量的软件库。可能 ftd2xx 没问题,问题只在更高层的 libMPSSE 中?有人使用 libMPSSE 吗?我应该期待更多的问题吗?欢迎任何关于 FTDI 解决方案稳定性的想法。

谢谢迪米塔

标签: linuxspiftdi

解决方案


首先:

在我的理解中,你的大部分“问题”并不是一个真正的问题,而是一个“讨论起点”,它不是“堆栈-...”生态系统的范围。

对于驱动程序问题部分:据我所知,驱动程序每个设备加载一次,而不是每个端口。然而,ftd2xx 能够单独寻址每个端口并将它们设置为不同的模式(基本上它只是简单地向 MPSSE 引擎提供特定命令,它并不真正关心给定序列的真正含义)。您唯一失去的是方便的 VCP 可访问性。

不同的 libMPSSE 模式有其局限性和怪癖。网站搜索将产生足够多的作为更缩小的后续问题的起点。如果您只对一种模式感兴趣,专用于这种模式的 IC 可能是相对“通用”的 FTx232x 系列的替代品。


推荐阅读