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

MPSS: AN_113 FTDI USB to I2C Example

Acronyms and Abbreviations

Terms Description
MPSSE Multi Purpose Synchronous Serial Engine
I2C Inter-Integrated Circuit
JTAG Joint Test Action Group
SPI Serial Peripheral Interface
SPI Master A SPI device that initiates and manages serial communication to all devices connected to its SPI bus.
SPI Slave A SPI device that responds to commands sent to it by the SPI master.
MISO Master In, Slave Out
MOSI Master Out, Slave In
Serial EEPROM A programmable memory chip that uses a bitwise serial interface such as I2C or SPI.
USB Universal Serial bus

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 illustrates how to use the MPSSE of the FT2232H to interface with the I2C bus. 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 (refer to Figure 3) and software code (section 3) to begin their design.

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

provided as an illustration only and not supported by FTDI.

1.1 I2C Bus Introduction

I2C is a low- to medium-data-rate master/slave communication bus.:

  • Two wires: SCL(serial clock) and SDA(serial data), carry information between the devices connected to the bus.
  • Each device is recognized by a unique address and can operate as either a transmitter or receiver, depending on the function of the device.
  • In addition to transmitters and receivers, devices can also be considered as masters or slaves when performing data transfers. A master is the device whic h initiates a data transfer on the bus. At that time, any device addressed is considered a slave.

The physical layer of I2C bus is a simple handshaking protocol that relies upon open collector outputs on the bus devices and the device driving or releasing the bus lines, so a pull-up resistor is needed on each wire of the bus.

I2C bus is a true multi-master bus including collision detection and arbitration to prevent data corruption, if two or more masters simultaneously initiate data transfer Serial, 8-bit oriented, bi-directional data transfers can be made at:

  • Standard-mode: up to 100 kbit/s,
  • Fast-mode: up to 400 kbit/s,
  • High-speed mode: up to 3.4 Mbit/s.

Figure 1 shows typical data transfers on the I2C bus.

The master supplies the clock; it initiates and terminates transactions and the intended slave (based upon the address provided by the master) acknowledges the master by driving or releasing the bus. The slave cannot terminate the transaction but can indicate a desire to by a "NAK" or not-acknowledge.

I2C specification defines unique situations as S(START) and P(STOP) conditions(Figure 2):

  • START and STOP conditions are always generated by the master.
  • START condition: A HIGH to LOW transition on the SDA line while SCL is HIGH.
  • STOP condition: A LOW to HIGH transition on the SDA line while SCL is HIGH.
  • Every byte put on the SDA line must be 8-bits long. The number of bytes can be transmitted per transfer is unrestricted.
  • Each byte is followed by an acknowledge bit. In most cases, data transfer with acknowledge is obligatory. The acknowledge-related clock pulse is generated by the master.
  • Data is transferred with the MSB(most significant bit) first.
  • The transmitter releases the SDA line (HIGH) during the acknowledge clock pulse. The receiver must pull down the SDA line during the acknowledge clock pulse so that it remains stable LOW during the HIGH period of this clock pulse (see Figure 3). Also, set-up and hold times must also be taken into account.

Data transfers of I2C specification should follow the format. After the START condition (S), a slave address should be sent first. This address is 7 bits long followed by an eighth bit which is a data direction bit (R/ ) – a "zero" indicates a transmission (WRITE), a "one" indicates a request for data (READ). After the slave address byte is sent, master can continue its data transfer by writing or reading data byte as defined format. The data transfer is always terminated by a STOP condition generated by the master.

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

  1. Http协议基本知识简介

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

  2. 很清晰的解读i2c协议

    很清晰的解读i2c协议 转载:http://dpinglee.blog.163.com/blog/static/14409775320112239374615/ 1.I2C协议 2条双向串行线,一条数 ...

  3. I2C协议简介

    主从芯片如何传输数据 AT24C02是一个存储芯片,需要把数据从ARM板发给AT24C02,也需要从AT24C02读取数据. I2C是一个主从结构,Master发起传输,slave接收或回应 一主多从 ...

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

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

  5. i2c协议简要分析(转载)

    声明 本文大部分内容为转载,因此标定为转载 源地址: http://www.cnblogs.com/zym0805/archive/2011/07/31/2122890.html http://blo ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. sonarqube+gitlab+jenkins+maven集成搭建(四)

    安装Gitlab 关闭firewalld防火墙和selinux防火墙,如图1-2:[root@localhost ~]# systemctl stop firewalld[root@localhost ...

  2. linux vim增强使用

    目录 删除 编辑 删除 删除当前行 dd 删除当前行后面的所有行 dG 编辑 恢复为未修改前的状态 uu

  3. DDD分层设计与异步职责划分:让你的代码不再“异步”混乱

    title: DDD分层设计与异步职责划分:让你的代码不再"异步"混乱 date: 2025/05/04 00:18:53 updated: 2025/05/04 00:18:53 ...

  4. 【记录】IDA|Ollydbg|两种软件中查看指令在原二进制文件中的位置,及查看原二进制文件位置对应的反汇编指令的方式

    文章目录 在IDA中查看指令地址 在Ollydbg中查看指令地址 在Ollydbg中查看地址对应的指令 在IDA中查看指令地址 在Ollydbg中查看指令地址 ollydbg在对应指令处,右键-查看- ...

  5. Django实例(3)-用户连数据库登入系统

    App01--->urls.py from django.contrib import adminfrom django.conf.urls import urlfrom app01 impor ...

  6. Python中的模块包

    dir0/dir1/dir2/mod.py,dir0必须在环境变量中,可以import dir1,import dir1.dir2.mod.但在python3.3之前,dir1和dir2下必须存放一个 ...

  7. 5 easybr指纹浏览器内存修改教程

    目的 navigator.deviceMemory可以暴露设备的物理内存和运行状态,被用于设备唯一性识别或判断设备等级. 通过伪造这类信息,可以增强防关联.防追踪能力. easybr指纹浏览器提供演示 ...

  8. Linux 在文件中统计关键字出现的次数

    摘要:在当前文件或者当前目录下所有文件中,使用Linux命令grep.awk.sed.rg或者cat统计关键字出现的次数. 目录 问题背景 解决办法 使用grep和wc命令 使用awk命令模式匹配 使 ...

  9. chatgpe脚本系列 - 分析nginx攻击日志,并自动加入防火墙黑名单

    脚本内容 #!/bin/bash # 日志文件路径 LOG_FILE="/var/log/nginx/access.log" # Fail2Ban 过滤器路径 FILTER_FIL ...

  10. 【中文】【吴恩达课后编程作业】Course 2 - 改善深层神经网络 - 第三周作业

    [中文][吴恩达课后编程作业]Course 2 - 改善深层神经网络 - 第三周作业 - TensorFlow入门 上一篇:[课程2 - 第三周测验]※※※※※ [回到目录]※※※※※下一篇:[课程3 ...