Application Note
28 of 42
001-65209 Rev.*I
2021-03-19
Getting Started with FX2LP™
The Windows Side
Note:
WinUSB.sys
does not support ISOCHRONOUS transfers, while the Cypress driver supports all USB
transfer types.
Note:
Linux and
Mac users can investigate LIBUSB, a suite of open source user-mode USB routines.
Details can be f
o
und in the
In Linux machines, the CyUSB Suite for Linux software (provided as part of FX3 SDK for Linux and can be used
for FX2) enables you to download firmware images to FX2/FX3 devices and test the various interfaces on the
device. See
cyusb_linux_user_guide.pdf
available in the
fx3_sdk_v1.3_linux\cyusb_linux_1.0.4\cyusb_linux_1.0.4\docs
. This document describes how to install the
software, download firmware to FX2/FX3, test Vendor Extensions, BULK OUT/IN transfers, and ISOCHRONOUS
OUT/IN transfers. The CyUSB Suite for Linux - Programmers Reference Manual
(
cyusb_linux_programmers_guide.pdf
available in the same folder), describes the cyusb library for Linux and
how to build and integrate user-
written applications with the library”
FX2LP can also be programmed to be compliant with a standard Windows class, for example Human Interface
Device (HID), Communications (COMM) device or Mass-Storage (MSC) device. The Cypress web site has example
FX2LP programs for these common classes. The advantage of conforming to a Windows class is that no driver
installation is required when the device is first plugged in
—
the drivers are part of Windows.
6.2
Cypress Libraries
Figure 29
Detailed View of How Cypress Libraries Communicate with Applications
The
Bulkloop_VCS
application is an example of the software architecture used for any Windows-to-FX2LP
communication using the Cypress .NET library. A C# language program makes library calls that access the
Cypress driver to communicate with FX2LP (see
). The
CyUSB.dll
library supports the Microsoft .NET
Languages. Cypress also provides a C++ class library called
CyAPI.lib
. Both libraries are available with the
Just as the Cypress USB Firmware Frameworks simplifies code development at the FX2LP level, these libraries
simplify coding at the Windows level. The software model (based on
CyUSB.dll
) employs the following three
elements: