Generation 2 and Generation 3 technology stacks share the same reference firmware but with two different VID/PID couples:
The firmware used (running on the FX2 microcontroller) is normally (EEPROM switch enabled) retrieved from EEPROM when a
occurs. It is also possible to directly write the RAM of FX2 microcontroller to change the current running firmware.For an introduction to recovery boot and regular/update boot: see sections "USB connection is unresponsive", "
",For custom firmware tips see section "
".
generation | 2/3/custom | 2 | 3 | custom |
---|---|---|---|---|
EEPROM switch (2) status | disabled (3) | enabled (4) | enabled (4) | 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 | 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 | recovery driver (Cypress) | regular driver (Gen 2) or WinUSB (5a) | regular driver (Gen 3) | 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, | not applicable | not applicable | not applicable |
update tool | not applicable | Python Open_FUT (Gen2) (5b) | Cypress USB Console, | nothing or Cypress USB Console, Cypress USB Control Center , Python Open_FUT (Gen 3), C# OpenFutNet (advised) (5b) |
These libraries are not yet officially supported under Windows, but they are already used with TE USB FX2 modules under Linux . Zadig is not yet officially supported under Windows.
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.