首次使用 FTDI 的 USB bridging chips 是在 Amazon 工作时期, 需要通过电脑上Linux开发环境的C-Kermit软件, 用FTDI USB to UART Chip对Amazon Kindle进行开发验证调试,

包括但不限于(Hardware/OS/Framework/Application);

十多年已过去,FTDI 的芯片日益丰富:

https://ftdichip.com/document/usb-ic-data-sheets/

FT602 S.S. USB3.0 IC(FIFO to USB 3.0 UVC Bridge) Datasheet, ver.1.5, 27-07-2023

FT4232H H.S. Quad USB UART IC Data Sheet, ver.2.6, 27-05-2019

FT4232HA (Automotive grade Quad H.S. USB to Multi-purpose UART/MPSSE IC Datasheet), ver.1.1, 14-03-2022

FT4233HP / FT4232HP H.S. USB Bridge with Type-C/PD3.0 Controller, ver.1.5, 28-09-2023

https://ftdichip.com/document/usb-modules-data-sheets/

UMFT4233HPEV Evaluation Module Datasheet, Ver.1.0, Issue Date: 24-11-2021

FT4232H Mini Module: USB Hi-Speed FT4232H Evaluation, Ver.1.8 Issue Date: 2012-08-01

FT4233HP EVB, ver.1.0, Issue Date 24-11-2011

FT4232H-56Q Mini-Module, ver.1.4, Issue Date:07-04-2020

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

Programming-Guides

https://ftdichip.com/document/programming-guides/

Application Notes:

AN_124: User Guide For FTDI FT_Prog Utility

AN_167: FT1248 Dynamic Parallel/Serial Interface Basics

AN_121: Accessing The EEPROM User Area Of FTDI Devices

AN_167: FT1248 Dynamic Parallel/Serial Interface Basics

AN_135: MPSSE Basics for FT2232D, FT2232H, FT4232H

AN_108: Command Processor for MPSSE and MCU Host Bus Emulation Modes

AN_129: FTDI HiSpeed USB To JTAG Example

AN_180: FT232H MPSSE Example – USB Current Meter using the SPI Interface

AN_184: FTDI Device Input Output pin States

AN_178: User Guide For LibMPSSE-SPI

AN_177: User Guide For LibMPSSE-I2C

AN_128: User Guide For FT4232H Factory Test Utility

D2XX Programmers Guide

AN_220: FTDI Drivers Installation Guide for Linux

AN_233: Java D2XX for Android API User Manual

AN_242: FTDI_UART_Terminal_User_Manual.pdf

AN_357: Android D2XX Demo Application for FT4222H

AN_449: FT{4233,2233,233}HP FT{4232,2232,232}HP DCDC Power Delivery

AN_551: FT4232HP_FT2232HP_FT232HP Configuration Guide

AN_552: Consistent COM Port Enumeration on Linux

MPSSE(Multi-Protocol Synchronous Serial Engine):

FTDI's MPSSE provides a flexible means of interfacing synchronous serial devices to a USB port. By being “Multi-Protocol”, the MPSSE allows communication with many different types of synchronous devices, the most popular being SPI, I2C and JTAG. Data formatting and clock synchronization can be configured in a variety of ways to satisfy almost any requirement. In addition to the serial data pins, additional GPIO signals are available. This document outlines the basics in configuring the MPSSE for use and demonstrates some of the available modes of operation.

The MPSSE is always a master controller for the selected synchronous interface. As such, it generates the clock and any required interface select / chip-select signals. The MPSSE does not operate as a slave.

MPSSE Required Components

Use of the MPSSE requires certain components be in place, both software and hardware:

1) FTDI FT-series device with the MPSSE – At the time of publication, FTDI manufactures three devices with the MPSSE block:

  • a. FT2232D: USB 2.0 Full-Speed Dual UART/FIFO with 1 MPSSE (6Mbps, maximum)
  • b. FT2232H: USB 2.0 Hi-Speed Dual UART/FIFO with 2 MPSSEs (30Mbps each, maximum)
  • c. FT4232H: USB 2.0 Hi-Speed Quad UART with two MPSSEs (30Mbps each, maximum)

2) FTDI D2XX Device Drivers

The latest D2XX device drivers are required. Multiple operating systems are supported. See http://ftdichip.com/Drivers/D2XX.htm for the latest downloads. Installation guides for various operating systems are available at the FTDI Website.

3) Documentation

  • a. Datasheet for the FTDI FT-series device with the MPSSE
  • b. D2XX Programmers Guide
  • c. AN_108 Command Processor for MPSSE and MCU Host Bus Emulation Modes

    Although there are programming examples and libraries on the FTDI web site specific to SPI, I2C and JTAG, it is often easier to access the MPSSE directly with the D2XX calls.

MPSSE Command Processor:

The FT2232D, FT232H, FT2232H and FT4232H incorporate a command processor called the MPSSE. The purpose of the MPSSE command processor is to communicate with devices which use synchronous protocols (such as JTAG or SPI) in an efficient manner. The FT2232x MCU Host Bus Emulation mode also uses the MPSSE technology to make the chip emulate a standard 8048/8051 MCU host bus.

The MPSSE Command Processor unit is controlled using a SETUP command. Various commands are used to clock data out of and into the chip, as well as controlling the other I/O lines. If disabled the MPSSE is held in reset and will not have any effect on the rest of the chip. When enabled, it will take its commands and data from the OUT data written to the OUT pipe in the chip. This is done by simply using the normal WRITE command, as if data were being written to a COM port. Any data read will be passed back in the normal IN pipe. This is done using the normal READ command, as if data were being read from a COM port.

libMPSSE

The MPSSE(Multi-Protocol Synchronous Serial Engine) is a generic hardware found in several FTDI chips that allows these chips to communicate with a synchronous serial device such an I2C device, a SPI device or a JTAG device. The MPSSE is currently available on the FT2232D, FT2232H, FT4232H and FT232H chips, which communicate with a PC (or an application processor) over the USB interface. Applications on a PC or on an embedded system communicate with the MPSSE in these chips using the D2XX USB drivers.

The MPSSE takes different commands to send out data from the chips in different formats, namely I2C, SPI and JTAG. libMPSSE is a library that provides a user-friendly API that enables users to write applications to communicate with the I2C/SPI/JTAG devices without needing to understand the MPSSE and its commands. However, if the user wishes then he/she may try to understand the working of the MPSSE and use it from their applications directly by calling D2XX functions.

libMPSSE has three different APIs, one each for I2C, SPI and JTAG. The libMPSSE (Linux and Windows versions) sample code, release notes and all necessary files can be downloaded from the FTDI website at:

http://www.ftdichip.com/Support/SoftwareExamples/MPSSE.htm

D2XX Programming Interface

FTDI provides two alternative software interfaces for its range of USB-UART and USB-FIFO ICs:

  • a). VCP(Virtual COM Port) Interface which appears to the system as a legacy COM port.
  • b). D2XX Interface, is provided via a proprietary DLL(FTD2XX.DLL, Linux/Mac have "pyftdi" and "ftd2xx" Python library).

The D2XX interface is a proprietary interface specifically for FTDI devices, provides special functions that are not available in standard operating system COM port APIs, such as setting the device into a different mode or writing data into the device EEPROM.

In the case of the FTDI drivers for Windows, the D2XX driver and VCP driver are distributed in the same driver package, called the CDM(Combined Driver Model) package.

For Linux, Mac OS X (10.4 and later) and Windows CE (4.2 and later) the D2XX driver and VCP driver are mutually exclusive options as only one driver type may be installed at a given time for a given device ID.

In the case of a Windows system running the CDM driver, applications may use either the D2XX or VCP interface without installing a different driver but may not use both interfaces at the same time.

As the VCP driver interface is designed to emulate a legacy COM port, FTDI does not provide documentation on how to communicate with the VCP driver from an application; the developer is referred to the large amount of material available on the Internet regarding serial communication.

FT1248 Interface:

FT1248 is a new interface which provides a synchronous half duplex interface to external logic. The FT1248 interface is a slave interface requiring an external clock to be supplied to any FTDI chip which has the FT1248 interface. The width of the FT1248 data bus may be configured as 1 bit, 2 bit, 4 bit or 8 bit wide. The external clock can be up to 30MHz. This provides a transfer rate of up to a maximum of 30Mbytes /s. This provides the flexibility and trade-off of bandwidth verses pin-count. At the time of writing this application note the interface is available only on the FT232H device. This application note discuss how to access, configure and control the FT1248 synchronous interface.

The FT4232H-56Q on the Mini Module is FTDI's 5th generation of USB devices. The FT4232H is a USB 2.0 High Speed (480Mb/s) to UART/MPSSE IC. The device features four interfaces that can be independently configured for asynchronous or synchronous serial interfaces. Two of these have an option to independently configure an MPSSE engine. This allows the FT4232H to operate as two UART/Bit-Bang ports plus two MPSSE engines used to emulate JTAG, SPI, I2C, Bit-bang or other synchronous serial modes. All components used, including the FT4232H-56Q are Pb-free (RoHS compliant).

USB 2.0 H.S.(High Speed) 480Mbps:

FT232H / FT2232H / FT4232H

FT4232HP / FT4233HP (P系列 带 USB Type-C Power Delivery)

1.FT4232H 的 4 通道 UART,分两组:

A组包括 Channel0 与 Channel1, 有MPSSE功能;

B组包括 Channel2 与 Channel3, 没MPSSE功能.

2.Channel{0-3}四通道的UART与SPI/JTAG/IIC/FIFO的切换,

是由FT4232H使用的外部EEPROM存储的Device Profile决定;

3.用FTDI提供的FT Prog配置软件可对FT4232使用的外部EEPROM进行Programming; 分四步:

a. create and save EEPROM template;

b. scan FTDI devices(including FT4232H, only load the freshest memory from EEPROM);

c.programming existing FTDI devices by apply created/saved EEPROM template;

d.Cycle ports: equivalent to an un-plug and re-plug of the selected FTDI devices.

e.NOTES: In "FT Prog": The driver that is installed and used by each channel can be set by selecting "VCP(Virtual COM Port)" or "D2XX Direct option(required for MPSSE)". The slow slew function can be selected for slower output driver. The "Schmitt Input" function can be enabled if user needs to implement Schmitt trigger function to input pins. The IO pin driving capability can also be set; the current range is 4mA to 16mA.

AN_379 D3XX Programmers Guide

The D3XX interface is a proprietary interface specifically for FTDI SuperSpeed USB devices (FT60x series). D3XX implements a proprietary protocol different from D2XX in order to maximize USB 3.0 bandwidth. This document provides an explanation of the functions available to application developers via the FTD3XX library. Any software code examples given in this document are for information only. The examples are not guaranteed and are not supported by FTDI.

FT600 and FT601 are the first devices in a brand new USB SuperSpeed series from FTDI Chip. The devices provide a USB 3 SuperSpeed to FIFO Bridge, with up to 5Gbps of bandwidth. With the option of 16 bit (FT600) and 32 bit (FT601) wide parallel FIFO interfaces, FT60X enables connectivity for numerous applications including high resolution cameras, displays, multifunction printers and much more.

The FT60X series implements a proprietary Function Protocol to maximize USB 3 bandwidth. The Function Protocol is implemented using 2 interfaces – communication interface and data interface. The data interface contains 4 channels with each channel having a read and write BULK endpoint, for a total of 8 data endpoints. The communication interface includes 2 dedicated endpoints, EP OUT BULK 0x01 and EP IN INTERRUPT 0x81. The OUT BULK endpoint is for receiving session list commands from the host, targeted mainly for high data traffic between the host and the FT60x device. The EP IN INTERRUPT endpoint is for host notification about the IN pipes that have pending data which is not scheduled by the session list, targeted mainly for low traffic. Combining the use of the two endpoints above provides performance and flexibility.

FT602Q IC Datasheet(FIFO to USB 3.0 UVC Bridge)

The FT602 is a USB-to-FIFO interface to SuperSpeed USB (USB 3.1 Gen 1) USB Video Class (UVC) bridge chip with the following advanced features:

• Supports USB 3.1 GEN 1 Super Speed(5Gbps) / USB 2.0 High Speed (480Mbps)

• Supports USB Transfer Types: Control/Bulk/Interrupt

• Supports UVC version 1.1

• Supports up to 4 video input channels on the FIFO bus.

• Supports 2 parallel external FIFO bus protocols, 245 FIFO and Multi-channel FIFO mode, with a data burst rate up to 400MB/s with 32 bit parallel interface

• Built-in 16kB FIFO data buffer RAM.

• Built-in I2C master interface for video device configuration

• Supports multi voltage I/O: 1.8V, 2.5V and 3.3V.

• Internal LDO 1.0V regulator.

• Integrated power-on-reset circuit.

• User programmable USB and UVC descriptors.

• Industrial operating temperature range: -40 to 85⁰C.

• Available in compact Pb-free QFN-76 RoHS compliant package. Built-in I2C master interface for video device configuration

• Supports multi voltage I/O: 1.8V, 2.5V and 3.3V.

• Internal LDO 1.0V regulator.

• Integrated power-on-reset circuit.

• User programmable USB and UVC descriptors.

• Industrial operating temperature range: -40 to 85⁰C.

• Available in compact Pb-free QFN-76 RoHS compliant package.

USB(2.0 / Type-C) to MPSSE(JTAG / SPI / IIC) / UART / FIFO: FTDI 的桥接芯片选型的更多相关文章

  1. USB 3.0规范中译本第9章 设备框架

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 设备框架可以被分成三层: 最底层是总线接口层,传送和接收包. 中间层处理在总线接口和设备的各种端点之间路由数 ...

  2. USB 3.0规范中译本 第8章 协议层

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 协议层管理设备及其主机之间端到端的数据流.这一层建立在链路层提供对某些类型的包的保证传输(guarantee ...

  3. USB 3.0规范中译本 第4章 超高速数据流模型

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章展示数据和信息如何在超高速上通过的一种高层次的描述.请阅读协议层一章关于低层次协议的细节.本章提供设备架 ...

  4. USB 3.0规范中译本 第3章 USB 3.0体系结构概览

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章呈现USB 3.0体系结构和关键概念的概览.USB 3.0与前面版本的USB类似,因为它是线缆总线,支持 ...

  5. USB 3.0规范中译本 第2章 术语及缩略语

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章列出并定义本规范通篇将使用的术语及缩略语. 术语/略缩语 定义 ACK(确认包) 表示积极肯定的握手包. ...

  6. org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 0): Type cannot be found

    今天在完成Spring项目的时候遇到了一个类似于下面的异常: 10.03.2010 13:53:53 org.apache.catalina.core.StandardWrapperValve inv ...

  7. Universal Serial Bus USB 3.0

    Computer Systems A Programmer's Perspective Second Edition A Universal Serial Bus (USB) controller i ...

  8. 电脑是如何识别USB 3.0 U盘的

    USB 3.0电缆如图1所示. 图1 USB 3.0的接口比USB 2.0接口多了5根线,这5根线分别是Shield.SSRX+/-和SSTX+/-,即是屏蔽地.超速发送差分对和接受差分对. 因此一个 ...

  9. USB 3.0连接器引脚、接口定义及封装尺寸

    上篇整理了USB 2.0A型.B型和Mini USB接口定义及封装,本文补充USB 3.0接口定义,USB 3.0采用的双总线结构,在速率上已经达到4.8Gbps,所以称为Super speed,在U ...

  10. USB 2.0 A型、B型、Mini和Micro接口定义及封装

    USB全称Universal Serial Bus(通用串行总线),目前USB 2.0接口分为四种类型A型.B型.Mini型还有后来补充的Micro型接口,每种接口都分插头和插座两个部分,Micro还 ...

随机推荐

  1. mac使用pptp的正确方式

    环境:macos mojave 10.14.6 尝试的解决方案: mac自带vpn 结论:已经不支持pptp协议 使用shimo 结论:无用,连接的时候没反应 为了解决不能连接的问题,某老外写的ppt ...

  2. python打包exe自定义图标

    1.生成.ico图标 https://www.aconvert.com/cn/icon/jpg-to-ico/ 2.打包 pyinstaller -F -w -i 666.ico pdfToword. ...

  3. lambdo表达式

    ************************************************************************* 原作者:ioriogami 原文:https://b ...

  4. 轻松掌握Manim的.animate语法:让动画编程更简单

    在Manim中,.animate语法是一个非常实用的功能,它能让你的动画代码变得更加简洁和直观. 本文将详细介绍.animate语法,看看它是如何让动画制作变得更加简单又有趣,即使是编程新手也能轻松上 ...

  5. A* 合集

    板子那篇烂尾了,等 \(25\) 年 \(csp\) 时再继续写吧 CF1620E Replace the Numbers 点击查看代码 #include<bits/stdc++.h> u ...

  6. 在java中使用lua脚本操作redis

    前言 众所周知,redis可以执行lua脚本,至于为什么要用lua脚本来操作redis,自行百度咯 开始 Bean类 package cn.daenx.myadmin.common.config.re ...

  7. 2023人形全能赛体操机器人uno代码

    uno // @Author : Hcm #include <SoftwareSerial.h> // 软串口 #include <LobotServoController.h> ...

  8. 「Log」2023.8.28 小记

    序幕 七点多到校,整理博客,开了一篇新做题记录. 整理一下学过知识点,准备阶段复习. 八点整开始打模拟赛,接下来算游记. T1 是个静态区间第 \(k\) 小板子,纯主席树被空间卡掉了,打了 \(60 ...

  9. HTML显示不出来图片原因及解决办法

    HTML插入图片时,一直显示不出来图片,大体分为两种情况. 一.写了代码,也有图片的空间,但就是没有图片. 二.有图片位置,也有图片框框,但图片就是不显示. 针对图一,应该是路径问题,尽量不要有汉字, ...

  10. AI接口实现:简单实现Viper配置管理

    简介 前面实现的一个简易suno-api.是使用cookie来获取suno-token发起请求的.当时并没有通过配置的方式来获取cookie,而是直接在代码中写死了cookie的值,这种做法并不好,所 ...