前言:
FTDI MPSSE 串行引擎编程教程:基础知识和 GUI 示例 - Atadiat
许多MCU没有物理层来支持USB的直接连接,而大多数MCU都具有串行接口,这就是为什么需要通过USB进行有线通信的设备常用方法是使用桥接芯片。USB 串行桥最常见的品牌是 FTDI。
芯片进行一种类型转换
知名产品和开发板使用FTDI的FT232R作为USB到UART转换器。然而,FT232R在其他可用的串行接口中只转换UART,而不需要进行配置或编程,它提供了一个虚拟COM(VCOM)来与你的USB端口进行通信。这意味着如果要将SPI转换为USB .i.e:FT220X,或I2C转换为USB .i.e:FT201X,则需要使用不同的芯片。等。
一个芯片可以做多种类型的转换!
FTDI在下一代芯片中引入了通用串行转换引擎。因此,客户可以使用同一芯片将USB转换为UART或SPI或其他串行协议。
“Multi-Protocol Synchronous Serial Engine”或MPSSE是FTDI新一代芯片内部的模块名称,旨在提供USB到各种串行协议转换的灵活性。该引擎驱动芯片引脚以执行所需的串行协议。
MPSSE 在 FT232H 框图中突出显示 – 数据表
这种灵活性使MPSSE可用于不同的应用,包括不同类型的USB到串行转换,其中一个著名的例子是使用OpenOCD,即带有MPSSE芯片的JTAG/SWD调试器。要了解有关 OpenOCD 的更多信息,请参阅此入门指南。
在本文中,我们将了解MPSSE的基础知识,如何配置,并编写一个小程序来驱动包含MPSSE引擎的FT2232H芯片。
本教程中将使用的分线板来自全球速卖通的中国提供商。但是,FTDI有一个官方模块,也可以使用,称为FT2232H迷你模块。
“设备管理器”眼中的MPSSE
MPSSE 模块可以在新一代 FTDI 芯片中找到,即:FT232H、FT2232H、FT4232H 和 FT2232D。为了配置MPSSE,使用了一个名为D2XX的软件USB接口,该接口是专门用于FTDI设备的专有接口,并且可以使用“FTD2XX.DLL”库使用其功能。但是,通常的虚拟 COM 端口 (VCP) 接口也可用。因此,当您将芯片连接到PC时,您会看到2个不同的接口,并且实际上属于同一硬件。
Windows 组合驱动程序模型 (CDM) 驱动程序体系结构 – D2XX 程序员指南
您可以通过在连接FT2232H后在 Windows 中打开“设备管理器”来查看这一点。由于上述原因,您将在两个地方看到FTDI芯片:在“端口(COM和LPT)”和“通用串行总线控制器”下。
从每个人的驱动程序详细信息中,我们可以看到差异:
Mr. MPSSE 引脚
根据您使用的芯片,您可能有一个通道(FT232H)、双通道(FT2232D和FT2232H)或四通道(FT4232H)。
每个通道都有固定的引脚来进行串行通信(如果需要,可以进行数据输出、数据输入、时钟和片选),如下表所示:
来源:应用笔记 AN 135,标题为“MPSSE_Basics”
下表说明了如何将协议信号分配给 MPSSE 中串行通信的 4 个主要固定引脚:
来源:应用笔记 AN 135,标题为“MPSSE_Basics”