FTDI FT2232H在嵌入式教学中的应用

FT2232H是FTDI chip在2012年发布的一款高速USB转串行通信的协议转换芯片。作为第五代USB协议转串行总线通信协议的芯片,完全符合USB2.0规范(480Mb/s)并且可以依靠编程的方式配置成为串行或者并行的其他总线接口规范。这对于在进行嵌入式教学是的传感器总线仿真是非常方便的,甚至可以作为嵌入式教学中的调试工具使用。具体的芯片介绍可以参考官方资料(DS_FT2232H),这里笔者只举一个编程实现I2C总线通信的例子,来说明FT2232H的使用。


一、MPSSE简介
在用户程序使用Multi Protocol Synchronous Serial Engine (MPSSE)作为实现三个较常见的串行总线(SPI、I2C和JTAG)的中间件。MPSSE实际上是一个函数库,封装了实现不同协议的流程化操作,用户程序可以通过调用这些函数,来实现和D2XX Driver的数据交换,而D2XX在逻辑上直接驱动FT2232H芯片。实际上程序也可以直接调用D2XX中的函数,来直接实现所需的协议规范。
FT232HL的栈结构
图 MPSSE所处的位置
如上图所示,MPSSE提供了三种类型的API来分辨实现I2C、SPI和JTAG,在使用的使用下载相应的函数库就可以了。官网提供了Linux和Windows的版本
http://www.ftdichip.com/Support/SoftwareExamples/MPSSE.htm
这里写图片描述
图 系统结构
在上图中,Host可以使PC或者是嵌入式系统给,通过FT2232H桥接到I2C总线。作为示例,图中只有一个I2C设备,在实际应用中,在I2C总线上的设备可能不止一个,这就需要在使用的时候配置FT2232H的I2C地址。
libMPSSE-I2C的函数库文件结构如下,在使用是只需将inlcude和lib文件夹下的windows\i386下的内容拷贝到工程文件夹中,如下图所示:
这里写图片描述
图 libMPSSE-I2C的目录结构
这里写图片描述
图 添加后的文件组成
另外,还需在Visual Studio的工程中添加对Lib的依赖,如下图:
这里写图片描述
libMPSSE-I2C可以分为两个部分,其一为五个控制函数;其二为两个数据传输函数。所有的API都返回FT_STATUS宏(FT_STATUS在D2XX Driver中的定义)。

二、被控制的I2C器件的时序和函数参数
被控制(访问)的I2C设备,在本文中选用的是DIP封装的老款24C128(I2C接口的128K EEPROM),新款的型号是24C128C,引脚(A0-A3在设备寻址是稍有不同,老款只使用A0-A1两个引脚),这里只说明24C128的设备寻址。
这里写图片描述
图 24C128的引脚和引脚说明
这里写图片描述
图 设备寻址是8位地址的组成
在使用时,高5位是不变的,在使用时只需配置A1-A0和LSB(读写标志位)即可。当只对一片24C128操作时,A1=A0=0。在进行写操作时,务必使WP接地或者悬空。在使用FT2322H访问I2C设备时,只要求地址为0B0101000(七位,最后一位不用写)。 具体的寻址请参考AT24C12

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值