For new users (Generation 3 Firmware), the OpenFutNet tool is recommended.
If the user has a Python 2.7 interpreter installed on Windows OS, he/she could also use the couple Open_FUT (gen 3) + CyControl:
See also TE USB FX2 Software tools.
Tool | FPGA Configuration capable? | Generation 2 Firmware Upgrade capable?(1) | Generation 3 Firmware Upgrade capable?(2) | It works without Reference Firmware? | Firmware Recovery capable?(3) | Remarks |
---|---|---|---|---|---|---|
direct or indirect .mcs file | A Windows OS | |||||
DEWESoft Firmware Upgrade Tool | old .fwu (and .bin) file | old .fwu (and .bin) file |
| Obsolete, Only Windows OS
| ||
Open_FUT for generation 2 | .bit, .mcs file | .iic file and | Python 2.7 Only Windows OS
| |||
Open_FUT for generation 3 | (5) .bit or a .mcs file
| (5) .iic file and | Python 2.7 Only Windows OS | |||
CyConsole = Cypress USB Console | .iic file | implicit .iic file | Less easy than Only Windows OS | |||
CyControl = Cypress USB Control Center | .iic file | implicit .iic file | Microsoft .NET Only Windows OS | |||
OpenFutNet: | .bit or .mcs file | the explicit | .iic file | for the for the for the | implicit .iic file | Microsoft .NET Recommended tool. Only Windows OS |
Linux_FUT | FPGA Configuration .bin only | .bin, but | .bin, but | use fx2loader | libusb library Only Linux OS | |
fx2loader (see also here) | use explicit two step | use explicit two step
| (8)
| explicit two step | a wrapped A Windows OS | |
fxload ( see also here) |
use explicit two step |
use explicit two step | (9)
|
explicit two step | libusb library Only Linux OS |
(1) Generation 2 Firmware Upgrade: it requires DEWESoft device driver (VID/PID:0x0547/0x1002) and DEWESoft API.
(2) Generation 3 Firmware Upgrade: it requires TE USB FX2 device driver (VID/PID:0x0BD0/0x0300) and TE API (C++ TE_USB_FX2_CyAPI.dll or .NET TE_USB_FX2_CyUSB.dll).
(3) Firmware Recovery:requires USB generic Cypress device driver, to boot with EEPROM disabled and to enable EEPROM after TE USB FX2 module is inserted into USB port. This is the procedure followed by implicit two step recovery boot (TE USB FX2 Firmware Recovery) (CyConsole and CyControl) and implicit two step recovery boot (OpenFutNet).
(4) The user can use implicit two step recovery boot to program the USB FX2 microcontroller's EEPROM with the Generation 3 firmware required by firmware update and FPGA configuration.
(5) Based on simplified TE_USB_FX2_CyAPI.dll
(6) Based on both CyUSB.dll and TE_USB_FX2_CyUSB.dll
(7) Based on CyUSB.dll
(8) To write a new firmware in FX2 microcontroller's RAM, fx2loader does not require a reference firmware but, to write a new firmware in FX2 microcontroller's EEPROM a firmware supporting EEPROM writing should already be runnning in FX2 microcontroller's RAM.
(9) To write a new firmware in FX2 microcontroller's RAM, fxload does not require a reference firmware but, to write a new firmware in FX2 microcontroller's EEPROM a firmware supporting EEPROM writing should already be running in FX2 microcontroller's RAM (Vend_Ax.hex is normally used).
The following firmware tools
work only if the reference firmware, or a derived firmware, is running in the module. The reference/derived firmware is necessary because the tools make use of TE API Commands executed by the USB FX2 microcontroller. These tools are therefore able to update the firmware (EEPROM programming) of the USB FX2 microcontroller and the FPGA configuration file (bitstream, SPI Flash programming).
Note: some TE API Commands require support from a Xilinx MicroBlaze soft embedded processor (of the TE reference/derived architecture), but this TE API Commands are not needed for EEPROM and SPI Flash programming.
The following firmware tools
work also if the reference firmware, or a derived firmware, is not running in the module. The reference/derived firmware is not necessary because they do not make use of TE API Commands. Conversely, they directly make use of CyAPI.lib, CyUSB.dll or libusb library.
These tools are only able to update the firmware of the USB FX2 microcontroller, but not the FPGA configuration file (bitstream).