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 the EEPROM when a
occurs. It is also possible to directly write the RAM of the FX2 microcontroller to change the current running firmware.For here.
considerations and advices seeEEPROM switch (2) status | 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 | recovery driver (Cypress default, | regular driver (Gen 2, using Cypress or TE SW libraries) or WinUSB (using libusbx library) (5a) | regular driver (Gen 3, | 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 | Cypress USB Console, | not applicable | not applicable | not applicable |
update tool | not applicable |
| Cypress USB Console, | nothing or (only if custom firmware is compatible with ): 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 | is compatible with ) | (only if custom firmware
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.