Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Note
Even in the case the API command is executed by Xilinx MicroBlaze, it is USB FX2 microcontroller to receive and dispatch the command to Xilinx MicroBlaze. For more information see here.

Generation 2

DLL files:

Documentation:

...

A binding from Python to DEWESoft TE USB API is possible through the ctypes function library.

Generation 3

Trenz Electronic USB FX2 APIs

...


TE_USB_FX2_CyAPI APIs are not pure extern C code libraries because an external creation of a class instance defined in CyAPI.h (CyAPI.lib) is required.
Advantage:

  • possible Possible to directly access CyAPI.lib classes and functions to extend Trenz Electronic TE_USB_FX2_CyAPI.dll libraries with other classes and functions (for example Plug and play functions and asynchronous multithread bulk data trasfers).
  • Support support of multi-thread and multi-process programming.

...

A pure extern C code library version of TE_USB_FX2_CyAPI APIs (codename: simplified TE_USB_FX2_CyAPI APIs) is available for developers.
Advantage:

  • binding Binding to Python requires just the ctypes function library rather than by resorting to a wrapper.

Disadvantages:

  • impossible Impossible to directly access CyAPI.lib classes and functions to extend Trenz Electronic TE_USB_FX2_CyAPI.dll libraries with other classes and functions;
  • no No support of multi-thread programming (but still support of multi-process programming).

...

  • is a dynamic library;
  • has only one version for both Microsoft Windows 32 and 64 bit;
  • is not a COM (Component Object Model) object, so it cannot be called by C++ or Python code;
  • is a managed Microsoft .NET class library that can be used with any programming language of the .NET Framework (Visual Basic, Managed C++, C#, …);
  • is open source (can be modified and extended).

Advantage:

  • Possible to directly access CyUSB.dll classes and functions to extend Trenz Electronic TE_USB_FX2_CyUSB.dll

...

  • libraries with other classes and functions (for example Plug and play functions and asynchronous multithread bulk data trasfers)
  • Support of multi-thread and multi-process programming.
  • It is a managed Microsoft .NET class library that can be used with all languages of the NET Framework (Visual Basic, Managed C++, C#, …) or other .NET infrastructures (such as IronPython).

Disadvantage:

  • TE_USB_FX2_CyUSB.dll has no binding to Python because it is pure .NET CLR code that cannot be compiled as a COM object.  If the user application is mainly made of C# code, it is convenient to use IronPython.If the user application is mainly made of Python, it is convenient to use Python for .NET package.

Differences Between TE_USB_FX2_CyAPI (C++) APIs and TE_USB_FX2_CyUSB (.NET) API

...

At this moment a simplified TE_USB_FX2_CyAPI (C++) API is used with Open_FUT (gen3) tool but it is not thread safe.

Libusb and libusbx libraries

Info
titlelibusb and libusbx merged
libusb and libusbx release will be officially merged from v1.0.19. These two project/libraries are already actually ("unofficially") merged.

For Windows, see section "WinUSB driver and Zadig (Generation2, Generation 3, Cypress default and/or custom firmware)" of  Device Driver Layer.

For Linux, see Linux_FUT.

For Mac OS X, see "AN74505 - EZ-USB® FX2LP™ - Developing USB Application on MAC OS X using LIBUSB".

Info

These libraries are not yet officially supported under Windows, but they are already used with TE USB FX2 modules under Linux (see the comunity contribution Linux_FUT).