使用 FTD2XX.DLL 中的 FTCSPI.dll 函数,使用 FT2232H 设备

问题描述

我有一个 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 调用问题开头指定的方法

解决方法

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 )。