0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探索Adafruit FT232H Breakout:多功能串口协议扩展板的使用指南

chencui 2026-05-11 09:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

探索Adafruit FT232H Breakout:多功能串口协议扩展板的使用指南

在电子设计领域,我们常常希望计算机能够直接与各种设备和传感器进行通信,而Adafruit FT232H Breakout扩展板为我们实现这一目标提供了一个强大且灵活的解决方案。下面将详细介绍该扩展板的特点、组装、配置及使用方法。

文件下载:2264.pdf

一、概述

Adafruit FT232H Breakout扩展板是一款功能强大的工具,它就像是计算机的一个“串口协议瑞士军刀”。自2020年2月12日起,该扩展板进行了升级,采用了现代的USB C连接器,新增了I2C开关以便于I2C接口连接,还有3V电源输出引脚(最大500mA)以及Stemma QT连接器,可实现即插即用连接各种Stemma QT或Qwiic设备、传感器和显示器,并且在尺寸、安装孔和引脚排列上完全向后兼容。

FT232H芯片来自FTDI,与常见的USB转串口转换器芯片类似,但它增加了“多协议同步串行引擎”(MPSSE),能够支持SPI、I2C、串行UART、JTAG等多种常见协议。此外,它还有几个数字GPIO引脚,可用于读取和写入,实现诸如闪烁LED、读取开关或按钮等功能。

二、组装与接线

1. 组装

组装FT232H Breakout扩展板需要将附带的引脚头焊接到扩展板上。如果你是焊接新手,建议先阅读优秀焊接指南并进行一些废料练习。具体步骤如下:

  • 修剪公引脚头,使其长度与扩展板上的引脚孔相匹配,通常是两排各10个引脚。
  • 将引脚头的长引脚插入面包板,使FT232H扩展板的引脚孔能够完美穿过面包板顶部伸出的引脚头。
  • 使用烙铁和焊锡,小心地将所有引脚焊接到FT232H扩展板上。
  • 焊接完成后,将微型USB电缆插入FT232H扩展板的端口,再将电缆连接到计算机或笔记本电脑。如果扩展板上5V引脚旁边的绿色LED亮起,说明组装成功。

2. 接线

FT232H扩展板的引脚功能如下:

  • 5V:这是直接连接到USB总线的5伏电源,不要从该引脚吸取超过400 - 500mA的电流,以免损坏计算机的USB端口。
  • GND:这是FT232H扩展板的接地引脚。
  • D0 - D7:这些是FT232H芯片上的ADBUS引脚,用于串行UART和其他串行协议,也可作为GPIO引脚用于数字输入和输出。
  • C0 - C9:这些是FT232H芯片上的ACBUS引脚,主要用作GPIO引脚进行数字输入和输出。需要注意的是,C8和C9引脚不能通过软件控制,只能通过更改芯片的EEPROM来分配功能。

三、串行UART使用

1. 基本功能

FT232H开箱即用,可作为FTDI的USB转串行UART转换器,适用于与Arduino等串行设备通信。它能安全处理3.3伏和5伏信号,可连接Arduino的5伏串行端口以及树莓派BeagleBone Black的3.3伏串行端口。

2. 引脚功能

  • D0:TX或发送引脚,是FT232H芯片的串行数据输出,应连接到串行设备的RX或接收引脚。
  • D1:RX或接收引脚,是FT232H芯片的串行数据输入,应连接到串行设备的TX或发送引脚。
  • D2:RTS或准备发送引脚,用于串行连接的流控制。
  • D3:CTS或清除发送引脚,与RTS类似,用于流控制。
  • D4:DTR或数据终端准备好引脚,用于RS - 232串行连接的流控制。
  • D5:DSR或数据集准备好引脚,与DTR类似,用于RS - 232串行连接的流控制。
  • D6DCD或数据载波检测引脚,有时用于RS - 232串行通信。

3. USB串行驱动程序安装

大多数操作系统都包含FTDI的串行UART驱动程序,通常无需额外安装。具体情况如下:

  • Mac OSX Mavericks或更高版本:自动包含FTDI串行驱动程序。
  • Linux内核版本约2.6及以上:也包含FTDI串行驱动程序,如Ubuntu 12.04或14.04等现代Linux发行版无需安装驱动。
  • Windows:通常可以在线自动搜索驱动程序,如果失败,可以手动从FTDI网站下载并安装。

4. 串行使用测试

安装必要的串行端口驱动程序后,可以进行简单的回环测试来确认能够通过UART读写数据。将D0(TX)引脚连接到D1(RX)引脚,使用串行控制台输入数据,若输入的数据能被立即回显,则测试成功。不同操作系统的操作方法如下:

  • Windows:可以使用PuTTY作为串行控制台,配置连接类型为串行,设置串行线为设备管理器中找到的COM端口,速度设置为9600波特。
  • Mac OSX:使用终端命令ls /dev/tty.*列出所有串行端口,连接FT232H扩展板后再次运行该命令,找到新出现的设备,使用screen命令打开串行连接。
  • Linux:使用ls /dev/tty*命令列出串行设备,连接FT232H扩展板后找到新设备的路径,使用screen命令打开串行端口。

四、Python设置与使用

1. MPSSE模式概述

MPSSE(多协议同步串行引擎)是FT232H芯片的核心,它允许芯片支持I2C、SPI等多种协议。在MPSSE模式下,D0 - D3引脚具有特殊的串行协议功能:

  • D0时钟信号输出,可配置为运行速度在约450Hz至30MHz之间的时钟。
  • D1:串行数据输出,用于输出串行信号,如SPI连接中的MOSI线。
  • D2:串行数据输入,用于读取串行信号,如SPI连接中的MISO线。
  • D3:串行选择信号,用于告诉连接的设备FT232H准备与之通信。

此外,MPSSE模式还允许将D4 - D7和C0 - C7共12个引脚作为通用数字输入或输出控制。

2. 软件选项

使用MPSSE模式需要使用一些特殊的软件和编程库,以下是一些可选的软件:

  • FTDI的官方D2XX驱动程序和库:由FTDI生产,提供对FTDI芯片功能的底层访问,有适用于Windows、Mac OSX和Linux的二进制版本。
  • FTDI的LibMPSSE - I2C和LibMPSSE - SPI库:基于D2XX驱动程序构建,为与FT232H的MPSSE组件进行I2C和SPI通信提供更简单的接口。
  • libFTDI库:开源库,类似于D2XX库,提供对FTDI芯片功能的底层接口,还有Python接口,使用起来相对简单。
  • libmpsse库:基于libFTDI库构建,为使用MPSSE组件的I2C和SPI协议提供更简单的接口,目前仅支持Mac OSX和Linux。
  • Adafruit Python GPIO库:为简化FT232H的使用,该库提供了一个简单的接口,可通过Python编程语言访问FT232H的GPIO、SPI和I2C功能,支持Windows、Mac OSX和Linux平台。

3. 不同平台的MPSSE设置

由于MPSSE相关内容已被弃用,这里仅作历史参考。在使用MPSSE模式时,串行UART模式将被禁用。不同平台的设置步骤如下:

  • Windows:需要使用Zadig工具将FT232H的FTDI驱动程序替换为基于libusb的驱动程序,下载并安装libftdi二进制文件,最后安装Adafruit Python GPIO库。
  • Mac OSX:需要安装Xcode和Xcode命令行工具,安装Homebrew包管理器,使用brew命令安装libftdi及其依赖项,下载并安装Adafruit Python GPIO库。
  • Linux:在Debian/Ubuntu/Raspbian系统上,使用apt - get命令安装libftdi及其依赖项,下载并安装Adafruit Python GPIO库。

4. MPSSE使用示例

(1)GPIO使用

使用FT232H的GPIO引脚非常简单,以下是一个闪烁LED和读取数字输入的示例:

  • 连接硬件:将FT232H的C0引脚连接到LED的阳极,LED的阴极通过一个330 - 1000欧姆的电阻连接到FT232H的GND引脚;将FT232H的D7引脚连接到GND,通过将跳线在GND和5V之间切换来读取D7输入的高低值。
  • 编写Python代码:创建一个名为gpio_test.py的文件,代码如下:
    
    import time
    import Adafruit_GPIO as GPIO
    import Adafruit_GPIO.FT232H as FT232H

FT232H.use_FT232H() ft232h = FT232H.FT232H() ft232h.setup(7, GPIO.IN) ft232h.setup(8, GPIO.OUT)

print 'Press Ctrl - C to quit.' while True: ft232h.output(8, GPIO.HIGH) time.sleep(1) ft232h.output(8, GPIO.LOW) level = ft232h.input(7) if level == GPIO.LOW: print 'Pin D7 is LOW!' else: print 'Pin D7 is HIGH!' time.sleep(1)

 - 运行代码:在Windows上运行`python gpio_test.py`,在Mac OSX或Linux上运行`sudo python gpio_test.py`,可以看到LED每秒闪烁一次,并打印D7输入的状态。

#### (2)SPI使用
FT232H的MPSSE非常适合使用SPI协议进行通信,以下是一个使用SPI协议发送和接收数据的示例:
```python
import Adafruit_GPIO.FT232H as FT232H

FT232H.use_FT232H()
ft232h = FT232H.FT232H()
spi = FT232H.SPI(ft232h, cs = 8, max_speed_hz = 3000000, mode = 0, bitorder = FT232H.MSBFIRST)
spi.write([0x01, 0x02, 0x03])

response = spi.read(3)
print 'Received {0}'.format(response)

response = spi.transfer([0x01, 0x02, 0x03])
print 'Received {0}'.format(response)

(3)驱动NeoPixels

使用SPI协议驱动WS2811/WS2812 NeoPixel可寻址RGB LED是一个有趣的应用。通过使用6MHz的高速SPI信号对NeoPixel控制信号进行“过采样”,可以从FT232H的D1(MOSI)线生成近似的控制信号。需要注意的是,这种方法一次最多只能点亮约340个像素。以下是一个驱动NeoPixels的示例代码:

import time
import Adafruit_GPIO as GPIO
import Adafruit_GPIO.FT232H as FT232H

class NeoPixel_FT232H(object):
    def __init__(self, n):
        self.ft232h = FT232H.FT232H()
        self.spi = FT232H.SPI(self.ft232h, max_speed_hz = 6000000)
        self.buffer = bytearray(n * 24)
        self.lookup = self.build_byte_lookup()

    def build_byte_lookup(self):
        lookup = {}
        for i in range(256):
            value = bytearray()
            for j in range(7, -1, -1):
                if ((i >> j) & 1) == 0:
                    value.append(0b11100000)
                else:
                    value.append(0b11111000)
            lookup[i] = value
        return lookup

    def set_pixel_color(self, n, r, g, b):
        index = n * 24
        self.buffer[index:index + 8] = self.lookup[int(g)]
        self.buffer[index + 8:index + 16] = self.lookup[int(r)]
        self.buffer[index + 16:index + 24] = self.lookup[int(b)]

    def show(self):
        self.spi.write(self.buffer)

if __name__ == '__main__':
    pixel_count = 16
    pixels = NeoPixel_FT232H(pixel_count)
    for i in range(pixel_count):
        pixels.set_pixel_color(i, 255, 0, 0)
        pixels.show()
        time.sleep(0.25)
    for i in range(pixel_count):
        pixels.set_pixel_color(i, 0, 255, 0)
        pixels.show()
        time.sleep(0.25)
    for i in range(pixel_count):
        pixels.set_pixel_color(i, 0, 0, 255)
        pixels.show()
        time.sleep(0.25)
    colors = [(255, 0, 0), (255, 255, 0), (0, 255, 0), (0, 255, 255), (0, 0, 255), (255, 0, 255)]
    offset = 0
    print 'Press Ctrl - C to quit.'
    while True:
        for i in range(pixel_count):
            color = colors[(i + offset) % len(colors)]
            pixels.set_pixel_color(i, color[0], color[1], color[2])
        pixels.show()
        offset += 1
        time.sleep(0.25)

(4)I2C使用

I2C协议是与传感器和设备通信的另一种流行协议,FT232H的MPSSE组件可以实现I2C协议。使用I2C时,需要将D1和D2引脚用跳线连接在一起,形成I2C的SDA数据线,D0引脚作为I2C的SCL时钟线,并添加4.7千欧姆的上拉电阻。以下是一个使用I2C的示例代码:

import Adafruit_GPIO.FT232H as FT232H

FT232H.use_FT232H()
ft232h = FT232H.FT232H()
i2c = FT232H.I2CDevice(ft232h, 0x70)

response = i2c.readU16(0x01)
i2c.write8(0x02, 0xAB)

五、更多信息与资源

1. 参考资料

  • 官方FT232H数据手册:这是了解FT232H所有信息的参考资料,建议至少浏览一遍,以便全面了解芯片的功能。
  • MPSSE命令参考:详细介绍了控制FT232H芯片MPSSE组件的底层命令。
  • FTDI实用工具:如FT PROG工具,可用于写入FT232H扩展板的EEPROM并控制C8和C9引脚的功能,但该工具仅支持Windows。
  • FTDI应用笔记:在该页面搜索FT232H或MPSSE,可找到许多使用FT232H与不同串行协议进行接口的有用应用笔记。
  • libftdi:开源库,是FTDI二进制驱动程序的不错替代方案,可用于与FT232H进行底层交互。
  • libmpsse:用于访问FT232H的MPSSE功能,是本指南中Python GPIO库的替代方案。
  • OpenOCD硬件:对于ARM芯片开发,OpenOCD调试工具对于使用JTAG协议进行芯片调试非常有价值,具有MPSSE的FTDI芯片(如FT232H)甚至可以支持JTAG并与OpenOCD配合使用。

2. 擦除EEPROM以使用FT_PROG

如果要使用FTDI的FT_PROG编程工具,可能需要擦除FT232H的EEPROM。具体步骤如下:

  • 连接FT232H板到计算机,使用Zadig工具启用基于libusb的驱动程序。
  • 下载libftdi Windows二进制文件,解压后在命令行终端中运行eeprom -e -p 0x6014 -v 0x0403命令擦除EEPROM。
  • 卸载libusb驱动程序,重新插拔FT232
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 串口协议
    +关注

    关注

    0

    文章

    18

    浏览量

    8463
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FT121 G Sensor Shield:一款强大的传感器扩展板

    FT121 G Sensor Shield:一款强大的传感器扩展板 在电子设计领域,传感器扩展板是实现各种功能的重要组件。今天,我们来详细介绍一下 Future Technology
    的头像 发表于 05-15 15:40 85次阅读

    探索 FT4232H - 56Q Mini 模块:USB 开发的得力助手

    模块。它采用了 FT4232H - 56Q USB 高速四口桥接芯片,该芯片负责处理所有 USB 信号和协议。对于开发者来说,它是快速验证在目标设计中添加 USB 功能的理想选择。 芯片特性
    的头像 发表于 05-15 15:05 80次阅读

    FTDI UM232H - B:高速USB到串口/并口转换模块的技术剖析

    FTDI UM232H-B:高速USB到串口/并口转换模块的技术剖析 在电子设计领域,接口转换模块是实现不同设备之间数据通信的关键组件。FTDI的UM232H - B模块作为一款多功能
    的头像 发表于 05-15 14:15 147次阅读

    探索UM232H单通道USB高速FT232H开发模块:特性、应用与配置全解析

    探索UM232H单通道USB高速FT232H开发模块:特性、应用与配置全解析 在电子设计领域,USB接口的应用无处不在,而UM232H单通道USB高速
    的头像 发表于 05-15 14:15 159次阅读

    FTDI Basic Breakout 3.3/5V:Arduino开发的实用利器

    下载: DFR0065.pdf 产品概述 FTDI Basic Breakout 3.3/5V是一款基于FTDI FT232RL USB转串口IC的基础扩展板。它的引脚布局与FTDI电
    的头像 发表于 05-13 16:40 87次阅读

    Critical Link RS232 扩展套件:功能、特性与设计要点

    Critical Link RS232 扩展套件:功能、特性与设计要点 在嵌入式系统开发中,串口通信是一种常见且重要的通信方式。RS232
    的头像 发表于 05-12 14:10 124次阅读

    Adafruit PDM Microphone Breakout:电子工程师的新宠

    Adafruit PDM Microphone Breakout:电子工程师的新宠 在电子设计领域,一款优秀的麦克风对于音频相关项目至关重要。今天,我们要介绍的是 Adafruit PDM
    的头像 发表于 05-11 12:50 142次阅读

    Adafruit Ultimate GPS Breakout - 66 channel w/10 Hz updates - Version 3:一款出色的GPS模块

    定位功能的关键组件。今天,我们来深入了解一下Adafruit推出的这款Ultimate GPS Breakout - 66 channel w/10 Hz updates - Version 3模块
    的头像 发表于 05-11 10:50 261次阅读

    Adafruit FONA 3G Cellular + GPS Breakout功能强大的一体化模块

    Adafruit FONA 3G Cellular + GPS Breakout功能强大的一体化模块 在物联网和嵌入式系统开发中,一款功能强大且易于集成的通信与定位模块至关重要。
    的头像 发表于 05-11 09:30 348次阅读

    Adafruit FONA 808 Cellular + GPS Breakout:小身材大功能的物联网利器

    Adafruit FONA 808 Cellular + GPS Breakout:小身材大功能的物联网利器 在物联网应用日益广泛的今天,集成多种功能的设备变得越来越重要。
    的头像 发表于 05-11 09:20 379次阅读

    Adafruit TB6612 1.2A DC/Stepper Motor Driver Breakout Board使用指南

    Adafruit TB6612 1.2A DC/Stepper Motor Driver Breakout Board使用指南 在电子工程领域,电机驱动是一个常见且重要的应用场景。今天我们来详细介绍
    的头像 发表于 05-11 09:20 373次阅读

    探索Adafruit FONA MiniGSM:小巧模块的强大功能

    探索Adafruit FONA MiniGSM:小巧模块的强大功能 一、引言 在电子设计的世界里,我们常常追求小巧、多功能的模块,以满足各种项目的需求。
    的头像 发表于 05-10 16:40 782次阅读

    Adafruit AGC Electret Microphone Amplifier - MAX9814 评测与使用指南

    Adafruit AGC Electret Microphone Amplifier - MAX9814 评测与使用指南 一、概述 在音频领域,自动增益控制(AGC)是极为重要的特性,它能显著提升
    的头像 发表于 05-10 16:15 699次阅读

    Adafruit 1-Wire GPIO Breakout - DS2413 开发板使用指南

    Adafruit 1-Wire GPIO Breakout - DS2413 开发板使用指南 在微控制器的世界里,引脚资源常常十分宝贵。有时候,我们仅仅需要一两个额外的引脚,但又不想更换更大的开发板
    的头像 发表于 05-10 16:05 297次阅读

    Adafruit MicroLipo和MiniLipo电池充电器使用指南

    Adafruit MicroLipo和MiniLipo电池充电器使用指南 在电子项目中,摆脱电源束缚,使用电池供电是常见需求。而锂聚合物(LiPo)和锂离子(LiIon)电池凭借高能量密度、大电流
    的头像 发表于 05-10 15:50 261次阅读