You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 49 Next »

Generation 2 and Generation 3 technology stacks share the same reference firmware but with two different VID/PID couples:

  • 0547/1002 (Generation2);
  • 0BD0/0300 (Generation 3).

The firmware used (running on the FX2 microcontroller) is normally (EEPROM switch enabled) retrieved from EEPROM when a reset occurs. It is also possible to directly write the RAM of FX2 microcontroller to change the current running firmware.

For a general introduction to USB and FX2 microcontroller firmware see the section "General USB and FX2 firmware introduction".

TE USB FX2 module comes with an already loaded FX2 USB microcontroller's firmware inside EEPROM.

For an introduction to reference firmware see section "Reference firmware (Trenz Electronic v3.02 description): preloaded USB Firmware (FX2 USB microcontroller, EEPROM)".

This preloaded firmware expose to host computer's software (through USB) the Trenz Electronic Firmware API (TE API Commands (FW APIs)).

To change the EEPROM content (reference firmware) from Generation 2 to Generation 3 you must follow this procedure. You may also watch this video play list.

For an introduction to recovery boot and regular/update boot: see sections  "USB FX2 microcontroller's firmware configuration", "USB connection is unresponsive", "Recovery Boot (TE USB FX2 Firmware Recovery)" and "Update Boot (TE USB FX2 Firmware Update)".

For custom firmware tips see section "Custom FX2 microcontroller's firmware".

 

 

generation

2/3/custom

2

3

custom

EEPROM switch (2) status
when a reset occurs

disabled (3)enabled (4)enabled (4) enabled (4)
boot modefirmware recovery bootregular or
firmware update boot
regular or
firmware update boot
regular or
firmware update boot

VID

04B4

0547

0BD0

any, but 0BD0 is advised

PID

8613

1002

0300

any, but 0300 is advised

device enumerated

Cypress generic USB

DEWESoft TE03xx USB

Trenz Electronic TE USB FX2

any or
Trenz Electronic TE USB FX2

required driver
(Windows OS)

 recovery driver (Cypress)
or WinUSB (5a)

regular driver (Gen 2) 
or WinUSB (5a)

regular driver (Gen 3)
or WinUSB (5a)

custom, WinUSB (5a)  (for any)
or regular driver (Gen 3)
firmware source code

Hardware Layer only (6)

Source code available here

Source code available here

Custom firmware (7)

firmware binary filesHardware Layer only (6)Binary files available hereBinary files available hereCustom firmware (7)

recovery tool

Cypress USB Console,
Cypress USB Control Center,
 C# OpenFutNet (advised) (5b)

 not applicable

not applicable

not applicable
update toolnot applicablePython Open_FUT (Gen2) (5b)

Cypress USB Console,
Cypress USB Control Center ,
Python Open_FUT (Gen 3),
C# OpenFutNet (advised) (5b)

nothing or
Cypress USB Console,
Cypress USB Control Center ,
Python Open_FUT (Gen 3),
C# OpenFutNet (advised) (5b)
Firmware loading and/or update comparison table.
(1) The TE USB FX2 module (in recovery boot) is served by the Cypress USB Generic Driver; this driver allows Cypress firmware update tools (Cypress Console, Cypress Control Center) and OpenFutNet to work with the Cypress EZ-USB FX2 microcontroller on the module.
(2) The EEPROM switch connect (enable)/disconnect (disable) the connection between EEPROM and FX2 microcontroller.
(3) EEPROM connection disabled when TE USB FX2 module turned on, then EEPROM connection enabled when TE USB FX2 module is inserted in the USB port of the computer (aka plugged in, aka attached)
(4) EEPROM connection enabled when TE USB FX2 module turned on, then EEPROM connection enabled when TE USB FX2 module is inserted in the USB port of the computer (aka plugged in, aka attached)  
(5a) WinUSB driver and Zadig should be used only if libusb or libusbx are the libraries used by the user under Windows OS. See WinUSB driver installation (libusb and libusbx). See also Zadig
(5b) If libusb or libusbx are used (with WinUSB driver and/or Zadig), the software tools Cypress USB Console, Cypress USB Control Center , Python Open_FUT (Gen2), Python Open_FUT (Gen 3) and C# OpenFutNet could not be directly used. The code of these tools should be rewritten using libusb or libusbx instead of Cypress libraries (CyAPI.lib and CyUSB.dll) and the derived Trenz Electronic libraries (TE_USB_FX2_CyAPI.dll and TE_USB_FX2_CyUSB.dll). See Linux_FUT as a starting point for a new software tool using libusb or libusbx under Windows OS.
(6) To default, the FX2 hardware (i.e with EEPROM isolated =>hardware's first stage loader) enumerates the USB FX2 microcontroller chip as VID=0x04B4 (Cypress) and PID=0x8613 (FX2), and provides support for loading firmware into RAM. 
To default, using the FX2 hardware (i.e with EEPROM isolated => hardware's first stage loader ) it is possible to write a new firmware in RAM but NOT in EEPROM.
The USB FX2 microcontroller hardware's first stage loader (supporting the 0xA0 vendor request) can't write into external memory (EEPROM for example). 
Configurations that put firmware into external memory thus need a second stage loader in RAM (normally Vend_Ax.hex).

 

EEPROM connection shall always be enabled during EEPROM programming.

Using Cypress firmware update tools with generation 2 modules does require a recovery boot, in order to force enumeration as Cypress USB Generic Driver.

On the other side, using Cypress firmware update tools with generation 3 modules may not require a recovery boot (if a Generation 3 reference firmware is running on USB FX2 microcontroller), but only an update boot. This is possible because the original Cypress USB Generic Driver (in case of a recovery boot) and the Trenz Electronic USB FX2 device driver ( in case of a regular boot) are both Cypress driver. Trenz Electronic USB FX2 driver derives from the original Cypress USB Generic Driver.

 

 

  • No labels