Skip to content

How to use FTDI USB Fpga boards

If you know where to go on the Internet, you can find a USB board already configured for FTDI connection. First, you need to check if your computer has a USB port, as you can use any USB-powered device to communicate with your FTDI device. Second, you need to connect the FTDI board to your computer with a USB cable. Third, within the driver, go onto the “Communication” tab and check that “USB Serial,” “USB Device Class,” and “USB Version” are all set to the right values.

After this, it is time to start working with your FTDI device! FTDI devices have many options, so many are not ready by default. Just google around to find out which settings you need for your specific hardware.

Among the settings that you may need to adjust in your FTDI device, you can find:

1. Set the baud rate.

Check the documentation of your device to say what value it needs.

2. Setting serial port parameters.

The FTDI board sets these automatically. However, if you have one of those USB devices which works with some other protocol (such as CAN Bus) or if you want to use hardware flow control, then set these parameters manually.

What is an FTDI chip?

ftdi usb

An FTDI chip is a small computer with one significant difference. Its pins connect to another electronic device instead of installing them into a circuit. Thus, we can use the FTDI chip to talk over an RS232 serial interface in any other electronic device.

There are many uses for an FTDI chip. For example, we can use it as a serial adapter to convert RS232 signals to USB so that you can use the host computer’s USB port with it. Or we can use it as a USB-to-RS232 converter to connect to a computer that does not have a built-in RS232 interface. Also, we can use it as a USB keyboard (hence its name).

Many of these applications were there before, with various results. But this time, I will describe how you could use your FTDI chip directly in your electronics project. I will assume that you are willing to do some soldering and have basic knowledge of electronics.

What are the advantages of using an FTDI chip?

Since the FTDI chip is a separate computer that we can buy for under $5, it is cheap to connect. In addition, because it uses its memory and processor while sharing a single interface with other devices, communication between the device and the FTDI chip is faster than communication between two computers using an RS232 cable.

Since there is no cable to connect, you can fit the device into much smaller spaces than if you had an RS-232 card. Generically, this means it will be easier for you to hide the chip from sight and deliberate observation by someone else.

The FTDI chip comes with drivers that should work without configuration on most Windows, Linux, and OSX machines. Hence, you can use it in a wide range of environments. There are even cases where you can plug an FTDI chip into your USB port, and it will work immediately. This is not always possible with RS232 cards that we need to configure for the operating system to recognize them.

It is very easy to connect almost any device to an FTDI chip. You need to read your hardware documentation, as there are usually no details about this specific feature.

Unlike an RS232 card that we may need to configure to work, the FTDI chip is always ready-to-use. There is no need for extra software or configuration. It will always work as soon as you plug it in.

One can send data, and you will never forget how to connect your device back and forth with an FTDI chip. You will never have to learn extra commands or settings for your hardware to work, but you can use any protocol you require.

Types

There are three main types of FTDI chips.

We also various manufacturers of these chips that include RayMing PCB and Assembly. But many use the same chipset and basic features.

FTDI Basic (V1.0)

The FTDI Basic (V1.0) is the oldest and the most basic of all the chips. It does not have any automatic reset, nor does it auto-disable for unused pins (“floating”). Also, it has a slight problem connecting to some USB ports at higher speeds.

We can find it in early FTDI cable products and most USB breakout boards.

FTDI Cable v2

There also exists an FTDI Cable v2. It has the same features as the FTDI Basic but uses two chips instead of one. It also has additional features such as automatic reset on power-up, auto-disable for unused pins, support of USB 2.0 speeds. There are some examples of this type in cables and USB breakout boards (for example, “FTDI Basic to USB Cable v2 – New”).

FTDI Basic v3

In 2009 there was a new type called the FTDI Basic v3.

The main difference is that it does not have the problem of connecting to a USB port that has a high-speed mode. Instead, it works only with a “fast” speed USB port, normally found on all modern computers. As a result, this is the only way to plug an FTDI Basic v3 cable into an “old” computer running Windows XP / Vista or Mac OS X and expect it to work.

The FTDI Basic v3 is available in most new cables and USB breakout boards.

FTDI cable v5

There is also an FTDI cable v5 which uses the same chipset as the FTDI Basic v3 but adds a new feature: auto-disable for unused pins.

It’s also now available in most new cables and USB breakout boards.

The difference between the FTDI Basic v3, the cable v5, and the original FTDI Basic is that they use entirely different chipsets (they do not share features).

FTDI Basic v3 and FTDI cable v5 share the same features, but the FTDI Basic v3 has 1.1V levels, while the FTDI cable v5 has 3.3V levels.

The original FTDI Basic is in level 0 (0V).

Note: If you want to buy one of these chips, please note that many fake versions are available on eBay and other sites. Please check with your seller for details of their guarantee and warranty.

The FTDI Cable v6

FTDI Cable v6 came in 2010 to replace the FTDI cable v5.

The main difference is that it has a higher voltage level (3.3V instead of 1.1V) and thus a greater distance for the current to flow without damage to the chip.

Also, it comes with improved software from cable v5. It has a new and easier method to configure your device using its application software and standard USB hub software.

The FTDI cable v6 is available in most new cables and USB breakout boards.

ft232r usb uart

Pin Configuration

The most common example is when you want to connect your Arduino board to the FTDI cable:

GND pin is the ground (commonly known as “-” or, on an Arduino board, some of the GND connections). The TXB pin is for sending data from the FTDI chip to your Arduino board. We need to connect this with the RXB pin on your Arduino.

The RXB pin is for receiving data from the Arduino board. So we need to connect this with the TXB pin on your Arduino.

Other devices may have different pinouts. However, they should be compatible as long as they fit into the same connections.

Newer FTDI chips are 5V tolerant, meaning they will not damage the Arduino board if abused by connecting it to a higher voltage. Still, other devices connected via an FTDI cable may suffer damage because they may not be 5V tolerant.

Downloading and installing the drivers

This can be very tedious since you need to download the correct driver for your operating system. You need to find the correct driver by following some steps:

  1. Download and install the free software “FTDI Driver Tool” from here
  2. Select “USB to Serial Adapter” from the devices menu in the FTDI driver tool.
  3. For Windows, click on the “Start” button and type “devmgmt.msc” into the search box on top of the window. Then press [Ctrl+E] and follow the steps to select “FTDI Device” from the device manager.
  4. For Linux, open a terminal window and type “lsusb” into the search box on top of the window to find the correct driver. Also, you can do a google search for “Linux USB serial adapter.”
  5. For Mac OSX, open a terminal window and type “ls -l /dev/cu.*” into the search box on top of the window to find the correct driver.

How to use FTDI USB to Serial Converter?

When you connect cable v5 to a computer, it will automatically reset and install its software on the computer.

You will then get an application called “FTDI Basic Control,” where you can configure your device.

One can also use the standard USB hub software supplied with most operating systems (for example, “WinUSB” in Windows 7). It helps to configure your device from another computer or control it from another application.

There is no need for any special tools to configure your device.

How to install the FTDI Basic Control software

To install this software, you will need to get the “Win32 Disk Imager” program from here and install it on your computer.

The program will then automatically install the FTDI Basic Control software.

Advanced configuration of the FTDI Basic Control software

The Advanced Configuration is only needed if you want to read or write directly to your computer’s serial COM port without using a virtual COM port. For example, to add advanced functionality to your project.

You will also need the “CMDebug” software from here.

It will show you detailed information about all the pins on both your FTDI USB-Serial Converter and your computer’s serial port.

The COM port and FIFO information are also displayed. It helps you use the standard “CMDebug” software to write to your computer’s serial port if you need to.

You may need to use this advanced configuration in rare circumstances. For example, if you want the complete I/O pins of the FTDI USB-Serial Converter to be available for your use.

FTDI Driver Installation

The FTDI driver installation will depend on your operating system.

In general, if you install the FTDI Basic Control software (the “FTDI USB-Serial Converter” control panel), then you should install the drivers automatically when you connect the cable v5 (OE/DO) to a computer.

Otherwise, you will need to install the drivers manually.

The FTDI Basic v3 is now obsolete. There are very few sellers of this chip in a new condition available on eBay and other sites. Check with your seller for details of their guarantee and warranty. FTDI has discontinued selling the FTDI Basic v2.

As of 2015 (and preceding years), there are very few sellers of this chip in a new condition available on eBay and other sites. Check with your seller for details of their guarantee and warranty.

The FTDI cable v5 chips are compatible with the FTDI Basic v2 and v3 cables.

However, the FTDI Basic v2 and v3 cables will not work properly with cable v5.

The general recommendation is to use the most up-to-date cable available for your system. You can use either the FTDI Cable V6 or a USB breakout board from Adafruit Industries.

It will provide better compatibility and more advanced features in most cases.

This chip has four wires. It is a popular chip, and many maker kits are available in new condition.

The FTDI Basic v4 is not compatible with cable v5 (OE/DO). It will only work with a cable v6 (OE/DI).

How to use FTDI chip in Linux

The FTDI USB-Serial Converter is a virtual com port device.

We can use it in Linux as a serial port device by accessing it through the /dev/ttyXX interface (where XX is “d,” “i,” “u,” or “g”).

One must set device permissions to mode 0666 before the Com port works (otherwise, the device will not be visible to the kernel).

Where d corresponds to 1.1V, I correspond to 3.3V, u corresponds to do 12V, and g corresponds to 5V (1.2V) (OE/DI mode only).

Check the output of lsusb for a line beginning with “bcdDevice” to determine the current mode.

The modes are set by inserting the OE/DI wire into a connection on the FTDI USB-Serial Converter and pressing the button on the converter.

For example:~$ echo 3 > /dev/ttyUSB0_0 sets it to Com port mode 3 (3.3V).

The user running udevadm can also change the USB.usermap files as a root user.

As of 2010, the “firmware” wheels available from FTDI only include drivers for Microsoft Windows (32/64-bit).

Compatible drivers for Linux exist in the kernel and are part of many distributions.

These drivers do not have the recent updates and are missing support for the latest chips.

Unfortunately, the current version does not support the newer chips.

FTDI series boards

Boards that belong to this category include:

[USB-101]FT2232H Evaluation Board

[USB-102]FT4232H Evaluation Board

[USB-103]FT2232H Evaluation Board Single type

Specifications (USB-101, 102, 103)

  • Made In Japan
  • Non-use of 6 Restricted substances of RoHS directive
  • Four-layer PCB with Immersion gold
  • EEPROM x1 (Mounted before shipment, Programmed)
  • Power LED
  • EEPROM Socket
  • Power-on reset IC
  • On-board 3.3V regulator
  • Selectable power source
  • 3-pin user interface (Channel B Tx and Rx)
  • 22-pin user interface (Channel A)
  • USB B-type connector

Specifications (FT2232H, FT4232H)

  • +3.3V single supply operating voltage range
  • Compact 64-LD Lead-Free LQFP or LQFN package
  • Extended -40°C to 85°C industrial operating temperature range
  • +1.8V and +3.3V I/O interfacing
  • USB Bulk data transfer mode
  • UHCI/OHCI/EHCI host controller compatible
  • Supports bus-powered, self-powered and high-power bus powered USB configurations
  • Low operating and USB suspend current
  • Configurable I/O drive strength (4, 8, 12, or 16mA) and slew rate
  • Auto-transmit enable control for RS485 serial applications using TXDEN pin
  • UART Interface has capability of supporting 1/2 stop bits, 7/8 bit data, and Even/Odd/Space/Mark/No Parity
  • Option for transmitting and receiving LED drive signals on each channel
  • Adjustable receive buffer timeout
  • Fast Opto-Isolated serial interface option
  • MCU host bus emulation/imitation mode configuration choice
  • CPU-style FIFO interface mode that streamlines design of CPU interface
  • Single-channel synchronous FIFO mode for transfers > 25 Mbytes/sec
  • USB to parallel FIFO transfer data rate of 10Mbyte/sec max
  • RS232/RS422/RS485 UART Transfer Data Rate to 12Mbaud max
  • Independent Baud rate generators
  • Whole USB protocol held on the chip. There is no specific requirements for USB firmware programming
  • Single-chip USB to dual parallel / serial ports with a diversity of configurations

[USB-106] FT600 Evaluation Board

[USB-107] FT601 Evaluation Board

Specifications (FT600, FT601)

  • Extended operating temperature range: -40 ℃ to 85 ℃
  • Integrated power-on-reset circuit
  • Supports Remote Wake-up capability
  • Configurable GPIO support
  • Supports multi-voltage I/O: 1.8 V, 2.5 V, and 3.3 V
  • Up to 8 pipes or configurable endpoints
  • Supports multi-channel FIFO interface
  • Has Built-in 16kB capacity FIFO data buffer RAM
  • Supporting two parallel slave FIFO bus protocols, with data bursting rate to 400 Mbps max
  • Offers USB Battery Charger Recognition/Detection
  • Support for USB3.0 SuperSpeed, USB High Speed, and USB 2.0 Full Speed transfer

USB FPGA boards

USB FPGA board

[EDA-008]Altera Cyclone V USB-FPGA board

  • Altera 5CEBA4F23C8N: 100Maximum user I/O pins (Board), 224 Maximum user I/O pins (Device), 16 Global Clock Networks, 4 PLLs, 132 18 x 18 Multipliers, 3,383 Embedded memory (Kbits), and 49 K Logic Elements.

[EDA-011] Intel Cyclone 10 LP F484 USB-FPGA board

  • 10CL120YF484C8G: 100 Maximum user I/O pins (Board), 277 Maximum user I/O pins (Device), 4 PLL, 288 18×18 Multipliers, 3888 M9K Blocks (kb), and 119088 Logic Elements.
  • 10CL080YF484C8G: 100 Maximum user I/O pins (Board), 289 Maximum user I/O pins (Device), 4 PLL, 244 18×18 Multipliers, 2745 M9K Blocks (kb), and 81264 Logic Elements.
  • 10CL055YF484C8G: 100 Maximum user I/O pins (Board), 321 Maximum user I/O pins (Device), 4 PLL, 156 18×18 Multipliers, 2340 M9K Blocks (kb), and 55856 Logic Elements.
  • 10CL040YF484C8G: 100 Maximum user I/O pins (Board), 325 Maximum user I/O pins (Device), 4 PLL, 126 18×18 Multipliers, 1134 M9K Blocks (kb), and 39600 Logic Elements.
  • 10CL016YF484C8G: 100 Maximum user I/O pins (Board), 340 Maximum user I/O pins (Device), 4 PLL, 56 18×18 Multipliers, 504 M9K Blocks (kb), and 15408 Logic Elements.

[EDA-301]Altera Cyclone IV USB-FPGA board

  • The Altera EP4CE15F17C8N: 56 Maximum user I/O pins (Board), 165 Maximum user I/O pins (Device), 20 Global Clock Networks, 4 PLLs, 56 Embedded 18 x 18 multipliers, 504 Embedded memory (Kbits), and 15,408 Logic Elements.

[EDA-302]Altera Cyclone V USB-FPGA board

  • Altera 5CEBA4U15C8N: 56 Maximum user I/O pins (Board), 224 Maximum user I/O pins (Device), 16 Global Clock Networks, 4 PLLs, 132 18 x 18 Multipliers, 3,383 Total Memory (kb), 303 Memory: MLAB (kb), 3,080 Memory: M10K (kb), 18,480 ALM, and 49 K Logic Elements.

[EDX-008]Xilinx Kintex-7 USB-FPGA board

  • XC7K160T-1FBG484C: 8 CMT (MMCMx1+PLLx1), 600 DSP Slice, 11,700 Max Block RAM Bits, 100 Maximum user I/O pins (Board), 400 Maximum user I/O pins (Device), 2,188 Maximum Distributed RAM (Kb), 25,350 Slice, and 162,240 Logic Cells.
  • XC7K70T-1FBG484C: 6 CMT (MMCMx1+PLLx1), 240 DSP Slice, 4,860 Max Block RAM Bits, 100 Maximum user I/O pins (Board), 300 Maximum user I/O pins (Device), 838 Maximum Distributed RAM (Kb), 10,250 Slice, and 65,600 Logic Cells.

[EDX-301]Xilinx Spartan-6 USB-FPGA board

  • The XILINX XC6SLX16-2CSG225C: 576 K Total Block RAM bits, 56 Maximum user I/O pins (Board), 232 Maximum user I/O pins (Device), 136 K Maximum Distributed RAM bits, 14,579 Logic Cells, and 2,278 Slices.

[EDX-302] Xilinx Artix-7 USB-FPGA board

  • XC7A100T-1FTG256C: 4,860 Total Block RAM (kb), 56 Maximum user I/O pins (Board), 170 Maximum user I/O pins (Device), 1,188 Maximum Distributed RAM (kb), 101,440 Logic Cells, and 15,850Slices.
  • XC7A75T-1FTG256C: 3,780 Total Block RAM (kb), 56 Maximum user I/O pins (Board), 170 Maximum user I/O pins (Device), 892 Maximum Distributed RAM (kb), 75,520 Logic Cells, and 11,800 Slices.
  • XC7A50T-1FTG256C: 2,700 Total Block RAM (kb), 56 Maximum user I/O pins (Board), 170 Maximum user I/O pins (Device), 600 Maximum Distributed RAM (kb), 52,160 Logic Cells, and 8,150 Slices.
  • XC7A35T-1FTG256C: 1,800 Total Block RAM (kb), 56 Maximum user I/O pins (Board), 170 Maximum user I/O pins (Device), 400 Maximum Distributed RAM (kb), 33,280 Logic Cells, and 5,200 Slices.
  • XC7A15T-1FTG256C: 900 Total Block RAM (kb), 56 Maximum user I/O pins (Board), 170 Maximum user I/O pins (Device), 200 Maximum Distributed RAM (kb), 16,640 Logic Cells, and 2,600 Slices.

[EDX-303] Xilinx Spartan-7 USB-FPGA board

  • XC7S100T-1FGGA484C: 4,320 Total Block RAM (kb), 56 Maximum user I/O pins (Board), 338 Maximum user I/O pins (Device), 1,100 Maximum Distributed RAM (kb), 102,400 Logic Cells, and 16,000 Slices.
  • XC7S75T-1FGGA484C: 3,240 Total Block RAM (kb), 56 Maximum user I/O pins (Board), 338 Maximum user I/O pins (Device), 832 Maximum Distributed RAM (kb), 76,800 Logic Cells, and 12,000 Slices.
  • XC7S50T-1FGGA48C: 2,700 Total Block RAM (kb), 56 Maximum user I/O pins (Board), 250 Maximum user I/O pins (Device), 600 Maximum Distributed RAM (kb), 52,160 Logic Cells, and 8,150 Slices.

Conclusion

The FTDI Basic is the most varied of all the chips. However, we can modify it (for example, by adding a “floating” pin), and it works with practically any USB device.