问题描述
我有一个 FT2232H 设备,我需要使用 FTCSPI.dll 编程指南中的 SPI 方法 例如
SPI_OpenHiSpeedDevice(LPSTR lpDeviceName,DWORD dwLocationID,LPSTR
lpChannel,FTC_HANDLE *pftHandle)
我已经使用其他带有制造商 c# 包装器类的 FTDI 设备FTD2XX_NET (Taken from here) 并且工作正常
但是那里没有对 SPI 方法的调用,我在 FTD2XX.DLL 文档中也没有找到这些方法。 但是在Programmers Guide For High Speed Ftcspi Dll 它说:
已创建 FTCSPI DLL 以允许应用程序开发人员使用 FT2232D FT2232H 和 FT4232H 设备创建一个 USB 到串行外设接口 (SPI) 协议接口,无需任何 了解 MPSSE 命令集。 FTCSPI.DLL 中的所有函数都可以通过调用来复制 FTD2XX.DLL 并将适当的命令发送到 MPSSE。
解决方法
FTD2XX.DLL 允许您向 MPSSE 引擎发送命令。专用的 SPI 和 I2C 模式版本基本上“构建”在 MPSSE/FTD2XX.DLL 之上——它们根据 SPI/I2C 参数生成适当的 MPSSE 命令序列,然后将其发送到引擎。
因此,您可以将此序列生成“复制”到您的代码中,并完全跳过 FTCSPI 的使用。问题是:是否有任何理由不使用 FTCSPI?一个正当理由是,人们想要避免硬编码的 INFRA_SLEEP ( https://electronics.stackexchange.com/questions/442388/remove-time-gaps-before-chip-select-disabled-on-ftdi )。