USB-JTAG MBFTDI Programming Device

If someone wants to work with FPGA or CPLD he needs a programming cable. Simplest programming cable for Altera devices is Altera ByteBlaster. Unfortunately it uses PC’s parallel port, which already disappeared from computer rare panel.

Other possibility is Altera UsbBlaster which is absolutely fine because uses popular USB interface. Disadvantage of UsbBlaster is rather high pricing. Another issue is – people cannot easy reproduce UsbBlaster because hardware is protected.

That is why we decided to create our own programming device, as simple and cheap as possible.
Now we have it - MBFTDI :

MBFTDI USB Jtag programmer device

Programmer MBFTDI is built on single chip FTDI FT2232HL.
Description of a chip is here on a vendor web site:

This chip is most suitable for our purposes because it has embedded JTAG interface, which is necessary for loading FPGA/CPLD images. Additionally, FT2232HL chip has a possibility to send/receive data via dual serial port or using fast FIFO parallel mode. MPSSE (Dual Multi-Protocol Synchronous Serial Engine) allows to do many other things like control JTAG pins etc.

Schematic of MBFTDI programming device is here:

MBFTDI schematic

Also it is possible to get schematic in form of PDF file:

Programmer is first, but also programming software is necessary.
We had developed our own open source SVF player utility tool. Everybody may get source and windows binary from our web site download section () or from GIT. Sources are both Windows and Linux compatible.

SVF is Serial Vector Format File which describes sequence of JTAG/TAP controller commands. Altera Quartus II can generate SVF files together with other FPGA/CPLD image formats. This means that now developer can use Quartus II, compile his project and obtain SVF file representing loadable image. Then SVF file is passed to SVF player tool which loads image into FPGA/CPLD chip. Here is sample of SVF player usage from console:

C:\Altera\marsohod\mBlasterFtdi\windows\Release>mbftdi.exe ..\..\common\test1.svf
mbftdi - burn MAX2 CPLD from Altera Vector Programming File *.svf
FTDI port to JTAG is used for programming
Usage example: mbftdi myfile.svf
Checking for FTDI devices...
2 FTDI devices found - the count includes individual ports on a single chip
Assume first device has the MPSSE and open it...
Configuring port for MPSSE use...
JTAG program executed successfully.


Using SVF Player tool is not the only one possibility.

Nowdays it is also possible to use MBFTDI directly from Altera Quartus II environment. There is a special driver jtag_hw_mbftdi_blaster.dll which can be put into quartus/bin folder of Quartus II installation. Then programmer MBFTDI becomes accessible from Quartus II Programmer or SignalTap or other Quartus II tools:

programmer MBFTDI in Quartus II

Additional info about JTAG and programmer (Russian language here):