MPSSE Application Example:

http://ftdichip.cn/Support/SoftwareExamples/MPSSE.htm

MPSSE: AN_129 FTDI USB To JTAG TAP Example

MPSS: AN_114 FTDI USB to SPI Example

MPSSE: AN_113 FTDI USB to I2C Example

Application Notes/AN_129_FTDI_Hi_Speed_USB_To_JTAG_Example.pdf

FTDI MPSSE(Multi-Protocol Synchronous Serial Engine)

Using the MPSSE can simplify the synchronous serial protocol (USB to SPI, I2C, JTAG, etc.) design. This application note focuses on the hardware and software required to emulate a connection to a JTAG TAP test chain using the FT2232H. The FT232H and FT4232H can also be used with the example in this document, though pin-out and port selection will need to match the respective part.

Users can use the example schematic and functional software code to begin their design. The application example also duplicates the JTAG timing expected to be seen by the SN74BCT8244A to prove the function.

Note that software code listing is provided as an illustration only and not supported by FTDI.

1 Introduction

The FT2232H and FT4232H are the FTDI's first USB 2.0 Hi-Speed (480Mbits/s) USB to UART/FIFO ICs. They also have the capability of being configured in a variety of serial interfaces using the internal MPSSE. The FT2232H device has two independent ports, both of which can be configured to use the MPSSE while only Channel A and B of FT4232H can be configured to use the MPSSE. The FT232H, introduced in 2011, builds on the FTDI Hi-Speed USB family. The FT232H is a single-port UART/FIFO IC that has one MPSSE interface as well as several new modes.

1.1 FTDI MPSSE Introduction

The MPSSE is a feature of certain FTDI client ICs that allow emulation of several synchronous serial protocols including SPI, I2C and JTAG.

A single MPSSE is available in the FT2232D, a Full-Speed USB 2.0 client device. The FT2232D is capable of synchronous serial communication up to 6Mbps. As noted above, two MPSSEs are available in the FT2232H and the FT4232H, both Hi-Speed USB 2.0 client devices. Each of the engines is capable of synchronous serial communications up to 30Mbps. The MPSSE in the FT2232H and FT4232H provide new commands for additional clock modes and is used in CPU interface and synchronous FIFO (parallel) modes. The FT232H contains a single MPSSE, the CPU Synchronous FIFO and the new FT1248 modes. Application note AN_135, MPSSE Basics and AN_167, FT1248 Dynamic Parallel/Serial Interface Basics provide more information on these other modes.

This application note describes the use of the MPSSE to emulate a JTAG interface. There are multiple references to AN_108 - Command Processor for MPSSE and MCU Host Bus Emulation Modes, also available from the FTDI Web Site.

1.2 JTAG background

Today's electronic circuits consist of numerous complex integrated circuits. A typical embedded system can contain multiple CPUs, programmable devices, memory, etc. With such complexity, it is often impossible to directly probe and test the entire functionality of a given design.

In 1990, the IEEE(Institute of Electrical and Electronics Engineers) ratified the standard 1149.1, which was the work of the Joint Test Action Group (JTAG). This standard defines a common means of implementing boundary-scan test functionality in an integrated circuit. It allows devices from different vendors to be present in a common chain to provide access to all of the Input and Output (I/O) pins. Commonly used with additional facilities, such as a bed-of-nails device, it is possible to perform functional and manufacturing tests on an entire circuit. It is common to refer to the IEEE 1149.1 standard as the "JTAG standard". Many published documents and articles use these terms interchangeably.

The IEEE 1149.1 was most recently updated in 2001. Additional IEEE standards reference 1149.1 while providing expanded features such as analog circuit tests in addition to digital circuit tests. These additional standards are 1149.4 - Analog Boundary Scan, 1149.6 - Advanced I/O and 1532 - In System Configuration. The latter is commonly used for programming memory devices and configuring programmable digital logic such as FPGAs and CPLDs.

JTAG (IEEE 1149.1) defines a synchronous state machine consisting of 16 states as noted in Figure 1.1.

The boundary scan circuitry is accessed through a TAP(Test Access Port) controller with four dedicated and mandatory I/O signals:

TCK(Test Clock) - the input clock for the state machine,

TMS(Test Mode Select) - the input used to navigate through the state machine,

TDI(Test Data In) - the input containing serial data or instructions,

TDO(Test Data Out) - the output containing serial data or instructions.

TRST#(Test Reset) - An OPTIONAL fifth signal can be implemented on a TAP. TRST# is an asynchronous reset that forces the state machine immediately to the Test-Logic-Reset state. It is important to note that even without TRST#, the state machine can always be forced to Test-Logic-Reset from any other state by holding TMS high for a maximum of five clock cycles.

As shown in Figure 1.2, devices in a JTAG chain share TCK and TMS. This forces all devices on a single chain to be in the same state within the state machine:

  • The JTAG master controller connects its data output to TDI.
  • Each device in the chain connects its TDI to the previous TDO.
  • Finally, the last device in the chain connects its TDO to the controllers data input.
  • Other connection schemes are possible; however, they are beyond the scope of this application note.

SciTech-EECS-Circuits-JTAG协议背景知识简介与FTDI的FT4232H配成USB to JTAG TAP(MPSSE)使用实例的更多相关文章

  1. Http协议基本知识简介

    HTTP协议是指超文本传输协议,位于应用层,HTTP规定数据格式,然后用tcp进行传输. 请求响应模式:简单理解为客户端对服务器发起请求,服务器响应客户端. 主要特点 无连接:无连接的含义是限制每次连 ...

  2. 『Python基础-1 』 编程语言Python的基础背景知识

    #『Python基础-1 』 编程语言Python的基础背景知识 目录: 1.编程语言 1.1 什么是编程语言 1.2 编程语言的种类 1.3 常见的编程语言 1.4 编译型语言和解释型语言的对比 2 ...

  3. Mozilla研究—深入理解mozilla所需的背景知识

    mozilla是一个以浏览器为中心的软件平台,它在我们平台中占有重要地位.我们用它来实现WEB浏览器.WAP浏览器.邮件系统.电子书和帮助阅读器等应用程序.为此,我最近花了不少时间去阅读mozilla ...

  4. Tomcat(一):背景知识和安装tomcat

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 基础背景知识 1.1 java和jdk概念 无论是何种程序,要能在计算机 ...

  5. jenkins X实践系列(1) —— 背景知识

    本文介绍jenkins X(以下简称jx)相关的背景技术. jenkins X 简介 Jenkins X 是一个高度集成化的CI/CD平台,基于Jenkins和Kubernetes实现,旨在解决微服务 ...

  6. {Python之进程} 背景知识 什么是进程 进程调度 并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 multiprocess模块 进程池和mutiprocess.Poll

    Python之进程 进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mut ...

  7. http协议与url简介(转)

    一 知识简介 HTTP:(Hypertext transfer protocol)超文本传输协议,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议. URL ...

  8. 『Linux基础 - 2 』操作系统,Linux背景知识和Ubuntu操作系统安装

    这篇笔记记录了以下几个知识点: 1.目前常见的操作系统及分类,虚拟机 2.Linux操作系统背景知识,Windows和Linux两个操作系统的对比 3.在虚拟机中安装Ubuntu系统的详细步骤 OS( ...

  9. HTML5背景知识

    目录 HTML5背景知识 HTML的历史 JavaScript出场 浏览器战争的结束 插件称雄 语义HTML浮出水面 发展态势:HTML标准滞后于其使用 HTML5简介 新标准 引入原生多媒体支持 引 ...

  10. .NET同步与异步之相关背景知识(六)

    在之前的五篇随笔中,已经介绍了.NET 类库中实现并行的常见方式及其基本用法,当然.这些基本用法远远不能覆盖所有,也只能作为一个引子出现在这里.以下是前五篇随笔的目录: .NET 同步与异步之封装成T ...

随机推荐

  1. Apache Flink(CVE-2020-17519)路径遍历漏洞复现_附POC和批量检测脚本

    声明 本文仅用于技术交流,请勿用于非法用途 由于传播.利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任. 文章作者拥有对此文章的修改和解释权.如 ...

  2. CTF实验吧:登陆一下? 不一样的SQL注入

    http://ctf5.shiyanbar.com/web/wonderkun/web/index.html 发现 过滤了很多SQL敏感字符,并且 转码绕过也并不行 发现'和=没有进行过滤 考虑万能密 ...

  3. 如何用DevEco Studio的ArkUI Inspector轻松搞定鸿蒙应用UI布局

    作为一名鸿蒙应用开发者,我最近遇到了一个让我头疼不已的UI问题--一个看似简单的页面布局,却在真机上出现了严重的错位问题.按钮重叠.文本溢出.图片显示不全--这些问题不仅影响了用户体验,还让我在调试过 ...

  4. 突破Excel百万数据导出瓶颈:全链路优化实战指南

    在日常工作中,Excel数据导出是一个常见的需求. 然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈. 当用户点击"导出"按钮时,后台系统往往会陷入三重困境: ‌内 ...

  5. JavaScript编程艺术:掌门人的代码之道

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  6. 鸿蒙仓颉开发语言实战教程:自定义tabbar

    大家周末好呀,今天继续分享仓颉语言开发商城应用的实战教程,今天要做的是tabbar. 大家都知道ArkTs有Tabs和TabContent容器,能够实现上图的样式,满足基本的使用需求.而仓颉就不同了, ...

  7. 从基础到高级,带你结合案例深入学习curl命令

    目录 简介 发送get请求 显示通信过程-v 模仿浏览器 -A 发送 Cookie -b 获取cookie -c 伪造来源页面 -e 构造GET请求查询字符串 -G 添加HTTP请求头 -H 显示头信 ...

  8. MySQL中以数值类型存储IP地址

    前言   数据库中存储IP地址的时候,推荐使用整数存储而不是字符串.一般来说, 在保证正确性的前提下,尽量使用最小的数据类型来存储和展示数据:小的数据类型一般比大的更快,因为小的数据类型占用的磁盘空间 ...

  9. 【Spring Boot】ActiveMQ 连接池

            spring.activemq.pool.enabled=false时,每发送一条数据都需要创建一个连接,这样会出现频繁创建和销毁连接的场景.为了不踩这个坑,我们参考池化技术的思想,配 ...

  10. Kubernetes控制器-Horizontal Pod Autoscaler(HPA)

    Horizontal Pod Autoscaler(HPA) 我们可以通过手动执行kubeclt sacle命令实现Pod的扩缩容,但是这显然不符合Kubernetes的定位目标-自动化和智能化.Ku ...