FT2232 breakout board
Maker: Dangerous Prototypes
model: FT2232 breakout board
version: v1.0
usb connector: Mini-B
specifications:
- USB 2.0 Hi-Speed (480Mb/s)
- 2 Independent USB to serial ports
- 2 MPSSE modules with I2C, SPI, and JTAG
- General purpose IO pins
- 3.3volts
- Supported JTAG debugger in OpenOCD, urJTAG, and others
- Multi-platform support, GPL drivers
The breakout board includes an EEPROM for custom USB descriptors and VID/PIDs. The I/O pins are + 5V tolerant, according to the FT2232H datasheet.
JTAG
first port
ADBUS0 - TCK ADBUS1 - TDI ADBUS2 - TDO ADBUS3 - TMS
second port
BDBUS0 - TCK BDBUS1 - TDI BDBUS2 - TDO BDBUS3 - TMS
async serial (rs-232)
first port
ADBUS0 - TXD ADBUS1 - RXD ADBUS2 - RTS# (# = active low) ADBUS3 - CTS# ADBUS4 - DTS# ADBUS5 - DSR# ADBUS6 - DCD# ADBUS7 - RI#
second port
BDBUS0 - TXD BDBUS1 - RXD BDBUS2 - RTS# (# = active low) BDBUS3 - CTS# BDBUS4 - DTS# BDBUS5 - DSR# BDBUS6 - DCD# BDBUS7 - RI#
back to microcontrollers page.
links
Getting Started with OPENOCD Using FT2232H Adapter for SWD Debugging, USB port JTAG programmer, eLinux.org Flameman/blackfin-avr-jtag,
Local links
Bus Pirate,
History
2021-09-17: I re-created this page on my self-hosted web server.
2018-07-20: e1 - config file for OpenOCD
[tingo@kg-elitebook XC6SLX9_mini_board]$ cat ft2232h.cfg # OpenOCD cfg file for FT2232H interface ftdi ftdi_device_desc "FT2232H breakout board" ftdi_vid_pid 0x0403 0x6010 # channel 1 is for custom purpose by users (like uart, fifo etc) ftdi_channel 0 # just TCK TDI TDO TMS, no reset ftdi_layout_init 0x0008 0x000b #reset_config none reset_config srst_only adapter_khz 30000
needed an update
[tingo@kg-elitebook XC6SLX9_mini_board]$ cat ft2232h.cfg # OpenOCD cfg file for FT2232H interface ftdi #ftdi_device_desc "FT2232H breakout board" ftdi_vid_pid 0x0403 0x6010 # channel 1 is for custom purpose by users (like uart, fifo etc) ftdi_channel 0 # just TCK TDI TDO TMS, no reset ftdi_layout_init 0x0008 0x000b #reset_config none reset_config srst_only adapter_khz 30000 transport select jtag
better now.
2018-07-20: e1 - I connected up the FT2232 breakout board to my Fedora laptop lsusb
[tingo@kg-elitebook ~]$ lsusb -d 0403:6010 Bus 003 Device 014: ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC
ttys
[tingo@kg-elitebook ~]$ ll /dev/tty[ACU]* crw-rw----+ 1 root root 188, 0 Jul 20 12:38 /dev/ttyUSB0 crw-rw----+ 1 root root 188, 1 Jul 20 12:38 /dev/ttyUSB1
ok.
2014-05-20: I need to solder pins and / or headers to the board.
2014-05-20: when connected to my FreeBSD workstation, running FreeBSD 8.4-stable:
tingo@kg-core1$ uname -a FreeBSD kg-core1.kg4.no 8.4-STABLE FreeBSD 8.4-STABLE #0 r253646: Thu Jul 25 10:12:31 UTC 2013 root@kg-core1.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64
the board shows up like this in /var/log/messages:
May 20 21:33:10 kg-core1 kernel: ugen2.4: <FTDI> at usbus2 May 20 21:33:10 kg-core1 kernel: uftdi0: <Dual RS232-HS> on usbus2 May 20 21:33:10 kg-core1 kernel: uftdi1: <Dual RS232-HS> on usbus2
and a red LED on the board lights up. The board shows these serial devices:
root@kg-core1# ls -l /dev/cuaU* /dev/ttyU* crw-rw---- 1 uucp operator 0, 179 May 20 21:33 /dev/cuaU0 crw-rw---- 1 uucp operator 0, 180 May 20 21:33 /dev/cuaU0.init crw-rw---- 1 uucp operator 0, 181 May 20 21:33 /dev/cuaU0.lock crw-rw---- 1 uucp operator 0, 185 May 20 21:33 /dev/cuaU1 crw-rw---- 1 uucp operator 0, 186 May 20 21:33 /dev/cuaU1.init crw-rw---- 1 uucp operator 0, 187 May 20 21:33 /dev/cuaU1.lock crw-rw---- 1 root operator 0, 175 May 20 21:33 /dev/ttyU0 crw-rw---- 1 root operator 0, 176 May 20 21:33 /dev/ttyU0.init crw-rw---- 1 root operator 0, 178 May 20 21:33 /dev/ttyU0.lock crw-rw---- 1 root operator 0, 182 May 20 21:33 /dev/ttyU1 crw-rw---- 1 root operator 0, 183 May 20 21:33 /dev/ttyU1.init crw-rw---- 1 root operator 0, 184 May 20 21:33 /dev/ttyU1.lock
usbconfig says
root@kg-core1# usbconfig -d ugen2.4 ugen2.4: <Dual RS232-HS FTDI> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
usb device description
root@kg-core1# usbconfig -d ugen2.4 dump_device_desc ugen2.4: <Dual RS232-HS FTDI> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x0000 bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0040 idVendor = 0x0403 idProduct = 0x6010 bcdDevice = 0x0700 iManufacturer = 0x0001 <FTDI> iProduct = 0x0002 <Dual RS232-HS> iSerialNumber = 0x0000 <no string> bNumConfigurations = 0x0001
usb current config
root@kg-core1# usbconfig -d ugen2.4 dump_curr_config_desc ugen2.4: <Dual RS232-HS FTDI> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x0037 bNumInterfaces = 0x0002 bConfigurationValue = 0x0001 iConfiguration = 0x0000 <no string> bmAttributes = 0x0080 bMaxPower = 0x00fa Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0000 bNumEndpoints = 0x0002 bInterfaceClass = 0x00ff bInterfaceSubClass = 0x00ff bInterfaceProtocol = 0x00ff iInterface = 0x0002 <Dual RS232-HS> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0200 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0002 <OUT> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0200 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x0000 bNumEndpoints = 0x0002 bInterfaceClass = 0x00ff bInterfaceSubClass = 0x00ff bInterfaceProtocol = 0x00ff iInterface = 0x0002 <Dual RS232-HS> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0083 <IN> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0200 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0004 <OUT> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0200 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000
that's it for now.
2014-05-20: This afternoon, I picked up the package at my local PIB, RIMI Trondheimsveien. The package contained two items; 1 x FT2232 breakout board, 1 x Bus Pirate (ordered separately, but from the same seller).
2014-05-19: got a pickup note from the Postal service.
2014-05-12: got a notification that the board was shipped.
2014-05-11: from a seller on eBay, I ordered a FT2232 breakout board for USD 29.- shipping included. NOK 178,84 according to payment processor.