FTDI FT2232H USB TO JTAG学习笔记(一)基础概念

注:转载请注明出处
记录下学习过程,个人水平有限,可能理解有误,后续若发现错误之处,会及时更新。

VersionDate
1.02021.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 JTAG链

如图1所示,多个需要测试的设备共享TCK和TMS信号,所有这些被测设备在任何时刻都处于相同状态,然后将上一级的TDO端口输出信号接到下一级TDI输入端口,便构成一个JTAG扫描链。

二、MPSSE 配置

2.1 MPSSE简介

FTDI 的多协议同步串行引擎 (MPSSE) 提供了一种将同步串行设备连接到 USB 端口的灵活方法。 MPSSE 可以与许多不同类型的同步串行设备进行通信,如 SPI、I2C 和 JTAG。 可以通过多种方式配置数据格式和时钟,可自定义进行配置。

这里需要注意的一点是:MPSSE只能作为同步接口的主机生成时钟和接口选择/片选信号,不作为从机运行。
在 FT2232H芯片中,其MPSSE引脚定义如图2所示;
在这里插入图片描述

图2 MPSSE引脚定义

这些引脚可被配置成同步串行接口,如I2C、SPI、JTAG,对应信号映射关系如图三所示:
在这里插入图片描述

图3 MPSSE引脚映射

图3所示,MPSSE的引脚Data Out连接到JTAG接口的TDI(MPSSE的数据输出即是所连接的JTAG从设备的数据输入),Data In 连接到JTAG接口的TDO(所连接的JTAG从设备的数据输出即是MPSSE的数据输入),Clock连接到TCK,Chip Select连接到TMS。

电路连接示意图如图4所示:
在这里插入图片描述

图4 MPSSE与多个JTAG从设备连接示意图

可以看到DO连接JTAG链的第一级TDI,DI连接到最后一级的TDO。JTAG-1和JTAG-2的TCK和TMS共享,原理可参考1.2。

注:因为我学习的是如何配置MPSSE将USB信号转为JTAG信号,所以此处仅讨论如何转JTAG。

2.2 串行协议配置

主机(PC)调用 D2XX 驱动 API 通过USB总线配置MPSSE,需要配置的参数如下:

  1. 配置选择以LSB(最低有效位)或MSB(最高有效位)在前进行数据的发送和接收。 决定了数据的传输顺序。
  2. 时钟 ,包括时钟频率和数据发送和接收的有效边沿。

(具体细节暂时未学习,等需要时学习完了进行补充)

参考文献

【1】Application Note AN_129 Interfacing FTDI USB Hi-Speed
Devices to a JTAG TAP
【2】Application Note AN_135 FTDI MPSSE Basics

在 macOS 上安装 nginx 的第三方模块可以使用 Homebrew 包管理器来简化过程。以下是安装第三方模块的步骤: 1. 首先,确保您已经安装了 Homebrew。如果您还没有安装,可以在终端中运行以下命令来安装 Homebrew: ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` 2. 安装 nginx。在终端中运行以下命令来使用 Homebrew 安装 nginx: ``` brew install nginx ``` 3. 找到您想要安装的第三方 nginx 模块。您可以通过在搜索引擎上搜索或访问模块的官方网站来找到合适的模块。 4. 下载并解压第三方模块的源代码。将源代码解压到个您可以方便访问的位置。 5. 进入解压后的模块源代码目录,并使用 `./configure` 命令配置编译选项。在这个命令中,您可以通过添加 `--add-dynamic-module=/path/to/module` 来指定要安装的模块。例如: ``` ./configure --add-dynamic-module=/path/to/module ``` 请将 `/path/to/module` 替换为您要安装的模块的实际路径。 6. 完成配置后,运行 `make` 命令编译 nginx。 7. 编译完成后,在终端中运行以下命令将编译好的模块复制到 nginx 的模块目录: ``` cp objs/*.so /usr/local/Cellar/nginx/{version}/libexec/modules/ ``` 请将 `{version}` 替换为您当前安装的 nginx 版本号。 8. 在终端中运行以下命令启动 nginx: ``` brew services start nginx ``` 现在,您已经成功安装了第三方模块,并且可以在 nginx 的配置文件中启用和配置它们。 请注意,安装第三方模块可能需要些编译工具和依赖项。如果出现任何错误或依赖项缺失,您可能需要安装相应的工具和库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪天鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值