Introduction
Generation 2 and generation Generation 3 technology stacks share the same reference firmware but with two different VIDs/PIDs.
Using Cypress firmware update tools with generation 2 modules does require a recovery boot, in order to force enumeration as Cypress USB Generic Driver.
...
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.
Tip |
---|
For custom firmware tips see section "Custom FX2 microcontroller's firmware". |
Scroll pdf title |
---|
title | Firmware loading and/or update comparison table. |
---|
|
generation | 2: recovery boot | 2: regular/ | update boot3: recovery boot | 3: regular/update bootcustom | boot mode2 | firmware recovery | regular or firmware update | firmware recovery | regular or firmware update3 | custom |
---|
EEPROM switch (2) | EEPROM switch warning status when a reset occurs | disabled (3) | EEPROM always enabled (4) | EEPROM switch warning enabled ( | 34) | EEPROM always enabled enabled (4) |
---|
boot mode | firmware recovery boot | regular or firmware update boot | regular or firmware update boot | regular or firmware update boot |
---|
VID | 04B4 | 0547 | 04B40BD0 | any, but 0BD0 is advised |
---|
PID | 8613 | 1002 | 86130300 | any, but 0300 is advised |
---|
device enumerated | Cypress generic USB | DEWESoft TE03xx USB | Cypress generic USBTrenz 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)
| recovery driver (Cypress) | 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 files | Hardware Layer only (6) | Binary files available here | . | Binary files available here | . | Custom firmware (7) |
---|
recovery tool | Cypress USB Console, Cypress USB Control Center, C# OpenFutNet (advised) (5b) | not applicable | not applicable | not applicable |
---|
update tool | not applicable | Python Open_FUT (Gen2) (5b) | Cypress USB Console, Cypress USB Control Center , C# OpenFutNet | not applicable | update tool | not applicable , Python Open_FUT ( Gen2Gen 3), C# OpenFutNet (advised) (5b) not applicable | nothing or Cypress USB Console, Cypress USB Control Center , Python Open_FUT (Gen 3), C# OpenFutNet (advised) (5b) |
---|
|
(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. (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. |