注:转载请注明出处
记录下学习过程,个人水平有限,可能理解有误,后续若发现错误之处,会及时更新。
Version | Date |
---|---|
1.0 | 2021.12.20 |
一、FT2232H 和 JTAG 简介
1.1 FT2232H
FT2232H是一个USB2.0高速(每秒480兆位)至UART/FIFO 芯片。 具有在多种工业标准串行或并行接口配置的能力。有两个多协议同步串行引擎(MPSSE)允许使用JTAG,I2C和SPI两个通道同时进行通信。
多协议同步串行引擎 (MPSSE) 是某些 FTDI 客户端 IC 的一项功能,允许模拟多种同步串行协议,包括 SPI、I2C 和 JTAG。
1.2 JTAG
有关JTAG标准的知识可以看我本系列之前相关的学习笔记,此处不再赘述。
如图1所示,多个需要测试的设备共享TCK和TMS信号,所有这些被测设备在任何时刻都处于相同状态,然后将上一级的TDO端口输出信号接到下一级TDI输入端口,便构成一个JTAG扫描链。
二、MPSSE 配置
2.1 MPSSE简介
FTDI 的多协议同步串行引擎 (MPSSE) 提供了一种将同步串行设备连接到 USB 端口的灵活方法。 MPSSE 可以与许多不同类型的同步串行设备进行通信,如 SPI、I2C 和 JTAG。 可以通过多种方式配置数据格式和时钟,可自定义进行配置。
这里需要注意的一点是:MPSSE只能作为同步接口的主机生成时钟和接口选择/片选信号,不作为从机运行。
在 FT2232H芯片中,其MPSSE引脚定义如图2所示;
这些引脚可被配置成同步串行接口,如I2C、SPI、JTAG,对应信号映射关系如图三所示:
图3所示,MPSSE的引脚Data Out连接到JTAG接口的TDI(MPSSE的数据输出即是所连接的JTAG从设备的数据输入),Data In 连接到JTAG接口的TDO(所连接的JTAG从设备的数据输出即是MPSSE的数据输入),Clock连接到TCK,Chip Select连接到TMS。
电路连接示意图如图4所示:
可以看到DO连接JTAG链的第一级TDI,DI连接到最后一级的TDO。JTAG-1和JTAG-2的TCK和TMS共享,原理可参考1.2。
注:因为我学习的是如何配置MPSSE将USB信号转为JTAG信号,所以此处仅讨论如何转JTAG。
2.2 串行协议配置
主机(PC)调用 D2XX 驱动 API 通过USB总线配置MPSSE,需要配置的参数如下:
- 配置选择以LSB(最低有效位)或MSB(最高有效位)在前进行数据的发送和接收。 决定了数据的传输顺序。
- 时钟 ,包括时钟频率和数据发送和接收的有效边沿。
(具体细节暂时未学习,等需要时学习完了进行补充)
参考文献
【1】Application Note AN_129 Interfacing FTDI USB Hi-Speed
Devices to a JTAG TAP
【2】Application Note AN_135 FTDI MPSSE Basics