Generation 2 and Generation 3 technology stacks share the same reference firmware but with two different VID/PID couples:
- 0547/1002 (Generation 2);
- 0BD0/0300 (Generation 3).
The firmware used (running on the FX2 microcontroller) is normally (EEPROM switch enabled) retrieved from the EEPROM when a reset occurs. It is also possible to directly write the RAM of the FX2 microcontroller to change the current running firmware.
Info |
---|
A general introduction to USB bulk transaction and FX2 microcontroller firmware is available here. TE USB FX2 modules are shipped with a preloaded FX2 USB microcontroller reference firmware inside the EEPROM. For a description see here.
The preloaded firmware exposes Trenz Electronic Firmware API (TE API Commands (FW APIs)) to the host computer software (through USB). To change the EEPROM content (reference firmware) from Generation 2 (VID/PID 0547/1002) to Generation 3 (VID/PID 0BD0/0300), you shall follow this procedure. You may also watch this video play list. For an introduction to USB FX2 microcontroller's firmware configuration, recovery boot and update boot.
|
Tip |
---|
For Custom FX2 microcontroller's firmware considerations and advices see here. |
Firmware loading and/or update comparison table
Scroll pdf title |
---|
title | Firmware loading and/or update comparison table. |
---|
|
EEPROM switch (2) status when a reset occurs | disabled (3) | enabled (4) |
---|
generation | 2/3/custom | 2 | 3 | custom |
---|
boot mode | firmware recovery boot | regular 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 default, using Cypress or TE SW libraries) or WinUSB (using libusbx library)(5a) | regular driver (Gen 2, using Cypress or TE SW libraries) or WinUSB (using libusbx library) (5a) | regular driver (Gen 3, using Cypress or TE SW libraries) or WinUSB (using libusbx library) (5a) | custom (using custom or libusbx library), WinUSB (using libusbx library) (5a) or regular driver (Gen 3, using Cypress or TE SW libraries) |
---|
firmware source code | Hardware Layer only (6) | Source code available here | Source code available here | Custom firmware (7) |
---|
firmware binary files | Hardware Layer only (6) | Binary files available here | Binary files available here | Custom firmware (7) |
---|
recovery tool (Windows OS) | Cypress USB Console, Cypress USB Control Center, C# OpenFutNet (recommended) (5b), fx2loader (see also here) | not applicable | not applicable | not applicable |
---|
update tool (Windows OS) | not applicable | Python Open_FUT (Gen2) (5b) | Cypress USB Console, Cypress USB Control Center , Python Open_FUT (Gen 3), C# OpenFutNet (recommended) (5b)
| nothing or (only if custom firmware is compatible with TE API Commands (FW APIs)): Cypress USB Console, Cypress USB Control Center , Python Open_FUT (Gen 3), C# OpenFutNet (recommended) (5b) |
---|
recovery tool (Linux OS) | fx2loader (see also here) or fxload ( see also here) | not applicable | not applicable | not applicable |
---|
update tool (Linux OS) | not applicable | Linux_FUT
| Linux_FUT
| Linux_FUT (only if custom firmware is compatible with TE API Commands (FW APIs)) |
---|
|
(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)
(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).
Note |
---|
EEPROM connection shall always be enabled during EEPROM programming. |