Package ztex

The Java API of the ZTEX EZ-USB SDK.

See:
          Description

Class Summary
ConfigData This class represents the configuration data space of ZTEX FPGA Boards that support it.
EzUsb Provides methods for uploading firmware to Cypress EZ-USB devices.
Fx3Errors FX3 error strings
ImgFile A class representing a firmware image.
JInputStream Creates an input stream from a regular file or a system resource file (i.e. a file from the current jar file).
Ztex1 This class implements the interface-independent part of the communication protocol for the interaction with the ZTEX firmware.
Ztex1v1 This class implements the communication protocol of the interface version 1 for the interaction with the ZTEX firmware.
ZtexDevice1 A class representing an EZ-USB device that supports the ZTEX descriptor 1 or an unconfigured EZ-USB device.
ZtexImgFile1 Represents a firmware image with ZTEX descriptor 1.
ZtexScanBus1 A class used for finding the EZ-USB devices on the USB.
 

Exception Summary
AlreadyConfiguredException Thrown if the FPGA is already configured.
BitstreamReadException Signals that an error occurred while attempting to read a bitstream.
BitstreamUploadException Signals that an error occurred while attempting to upload the bitstream.
CapabilityException Thrown is a required capability is not available.
DeviceLostException Thrown if a device went lost after renumeration.
DeviceNotSupportedException Thrown if a device is not supported, i.e. has the wrong USB ID's.
FirmwareUploadException Signals that an error occured while attempting to upload the firmware.
ImgFileDamagedException Signals that a firmware image is corrupt.
ImgParseException Signals that an error occurred while attempting to decode the firmware file.
IncompatibleFirmwareException Thrown while attempting to overwrite an existing firmware with an incompatible one.
InvalidFirmwareException Thrown if a device runs with no or the wrong firmware, i.e. if the ZTEX descriptor is not found or damaged.
UsbException Signals an USB error.
 

Package ztex Description

The Java API of the ZTEX EZ-USB SDK.

This API is the host-side counterpart of the Firmware-Kit and allows user software to interact with EZ-USB devices running with such firmware. It uses libusbJava, a Java wrapper for the libusb 0.1 and the libusb-win32 USB libraries. This API is known to run on Linux and Windows, but should work on every operating system which supports libusb and Java.

Features

The main features are:

Interaction with the firmware

Firmware built using the Firmware Development Kit supports an additional descriptor, the ZTEX descriptor 1. This descriptor identifies the device and firmware, provides compatibility information (e.g. to avoid that a device is loaded with the wrong firmware) and specifies the communication protocol. A description of the descriptor is given in ZtexDevice1.

The communication protocol defines how the functions provided by the firmware (see main features above) can be accessed. Currently there is only one protocol implemented, the so called interface 1. A description of the interface is given in Ztex1v1.

The most importand classes for the interaction with the EZ-USB device / firmware are

ZtexDevice1 Represents an EZ-USB device that supports ZTEX descriptor 1. These devices can be found using ZtexScanBus1.
Ztex1 Implementation of interface-independent part of the communication protocol, e.g. uploading the firmware to the EZ-USB and renumeration management.
Ztex1v1 Implemenetaion of the Interface 1, i.e. the interface dependent part of the communication protocol.

SDK overview

The following diagram gives an overview about the usage of the different parts of the ZTEX EZ-USB SDK.

ZTEX EZ-USB SDK overview for Linux and Windows

The host software usually consists of a single jar archive which contains

This single jar archive runs on both, Linux and Windows (or other OS's that support libusb and Java).

On Linux this jar archive has no additional software requirements. The libusb(Java) library communicates directly with the EZ-USB device using kernel routines.

On Windows a libusb driver is required. (This driver is a part of the ZTEX SDK package). The libusb(Java) library communicates with the EZ-USB device using that driver.

Related Resources

For more information about this project visit the ZTEX EZ-USB SDK page.