ZTEX

 
Products
FPGA Boards
  USB-FPGA Module 1.15
  USB-FPGA Module 1.15x
  USB-FPGA Module 1.15y
  USB-FPGA Module 1.11
  Experimental Board 1.3
  Experimental Board 1.2
  Analog Experimental Board
  Power Supply Module 1.1
  Reference designs
Microcontroller Boards
  USB-XMEGA Board
To the ZTEX Shop ZTEX Shop
 SDK and Examples 
  Overview
  Documentation
  Downloads
  Example
  Release history
  ZTEX Wiki
 
  BTCMiner - Bitcoin Miner
OS Discount Program
 
Downloads
 
Contact
Impressum
Terms and Conditions
RoHS
 
    Home / Products         SDK    
    To the ZTEX Shop Shop   
    Wiki / Forums         Downloads    
    deutsch     englisch    

ZTEX EZ-USB FX2 SDK

This SDK is especially designed for the ZTEX boards, but also works with other EZ-USB FX2 based hardware. The SDK consists in a Firmware Development Kit for EZ-USB FX2 devices and a Java API for the development of the host software.

The package is Open Source and distributed under the GPLv3. A unique macro approach gives developers a maximum of flexibility in endpoint setup just by calling a few macros and without the need of studying the USB specification. These features distinguish the ZTEX SDK from the products of competitors.

The package is known to work under Linux and Windows (both 32 and 64 Bit), but should work on every operating system which supports libusb and Java, see also the porting page on the Wiki. The Java API allows the development of platform-independent host software.

Features

The main features are:
  • Firmware Kit (for EZ-USB FX2 Microcontrollers) is written in C (requires SDCC compiler).
  • Firmware is assembled using a powerful macro processor which allows to specify all required settings by a few macros. The necessary USB descriptors and the descriptor handling routines are generated automatically.
  • Host software API is written in Java and allows platform independent host software. It is possible to pack all necessary files (libusb libraries, firmware, bitstream) into one single jar archive which runs on both, Linux and Windows
  • Licensed as Open Source under GPLv3
  • Main functions of the Firmware Kit / Java API are:
    • Firmware upload directly into the EZ-USB FX2 Microcontroller
    • Access to EEPROM memory
    • Firmware upload to EEPROM
    • Access to microSD/*SD/MMC Flash cards in SPI mode
    • Bitstream upload directly to the FPGA (all USB-FPGA Boards)
    • Bitstream upload to Flash memory and autonomous FPGA configuration using Bitstream from Flash memory (all USB-FPGA Boards)
    • Support of the Configuration-Booster-CPLD of Spartan 6 LX45 to LX150 USB-FPGA Modules 1.15 (up to 24MByte/s via USB, up to 2.5MByte/s from microSD
    • AVR ATxmega support: Programming of the firmware, access to the non volatile memories (NVM)
    • MAC-EEPROM support
  • Many examples (interfacing SDRAM, high speed USB transfers via EZ-USB FX2, accessing Flash memory)

SDK overview

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

ZTEX EZ-USB FX2 SDK overview for Linux and Windows

The firmware of the EZ-USB FX2 device is developed using the Firmware Development Kit. It can be uploaded either by a utility which is a part of the SDK or by the host software itself using the Java API.

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

  • all necessary Java bytecode;
  • the libusb Java wrapper libraries for Linux (libusbJava.so) and Windows (libusbJava.dll), which are statically linked against libusb (no libusb installation required);
  • the firmware for the EZ-USB FX2 device (unless not installed in EEPROM);
  • Bitstream for the FPGA (if required).
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 FX2 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 FX2 device using that driver.

Other programming languages

The JAVA API is required in order to include things like uploading Firmware and Bitstream into the host software. If the external upload utility FWLoader is used instead the host software can be developed in any other programming language.

A C example using the libusb library for the USB communication can be found in the SDK and on the examples page.

System requirements

The system requirements for the compilation of the firmware and the host software are The system requirements for the execution of the examples or the self-developed software are


[Home]  [Impressum]   
© ZTEX GmbH