Datasheet

Migrating from EZ-USB
®
FX2LP™ Based Design to EZ-USB FX3 Based Design
www.cypress.com Document No. 001-76348 Rev. ** 4
In the case of FX2LP, we need to provide 0.1-μF ceramic
capacitors to decouple device power input pins. The
specific recommendation for the ceramic capacitor nearest
to each EZ-USB FX3 power pin is given in the following
table.
Cap Value (µF) Number of Caps Pin Name
0.1, 0.01 4 of each VDD
0.1, 2.2 1 of each AVDD
0.1, 22 1 of each U3TXVDDQ
0.1, 22 1 of each U3RXVDDQ
0.1, 0.01 1 of each CVDDQ
0.1, 0.01 1 of each per supply VIO1-5
Differences in Software Level
Development Tools
The FX2LP firmware frameworks were written using Keil
uVision2 IDE.
In the case of FX3, a set of development tools is provided
with the SDK, which includes the GPIF II Designer and the
third party ARM software development tool provides an
integrated development environment (Eclipse IDE) with
compiler, linker, assembler, and JTAG debugger. You can
download the FX3 SDK from the following link:
http://www.cypress.com/?id=3521&rtID=119
Details on the GPIF II designer are beyond the scope of
this document.
Applications in PC
CyControl.exe: We have a new Control Center
application that comes along with the FX3 SDK. The
application can be used to program both FX2LP and FX3.
Using this application we can download the code in to
RAM or program the EEPROM connected to FX3 device.
Streamer.exe: We have a streamer application for FX3,
similar to the one we have for FX2LP. Using this
application we can measure the throughput numbers for
ISO and BULK streams.
BulkLoop.exe: Additional to the two applications
mentioned previously, we have BulkLoop application for
FX3. This application can be used to test the bulkloop
example. The application also has options to send
different types of data to run this bulkloop test.
All these applications can be found in the below
mentioned path once you install the FX3 SDK in the
default location:
C:\Program Files\Cypress\EZ-
USB FX3 SDK\1.0\application\c_sharp
FX2LP and FX3 Firmware Framework
Any of our firmware examples will be frameworks based
so that you can start with one of those, or start by copying
one of the examples that has been given to you.
Differences in the firmware framework are explained
below using the bulkloop example.
Bulkloop example can be found in the location
(Cypress\USB\Examples\FX2LP\Bulkloop) after installing
the FX2LP DVK.
BulkLoop Example on FX2LP
If you look at the FX2LP’s firmware framework you will be
noticing the following mentioned files:
fw.c: This is the main frameworks source file. It
contains main(), the task dispatcher, and the SETUP
command handler. For most firmware projects, there
is no need to modify this file. There are total four
dispatcher functions called in the main(). They are
TD_Init(), TD_Poll(), TD_Suspend(), and
TD_Resume().
TD_Init() is called once during the initialization of the
frameworks. TD_Poll() is called repeatedly during
device operation. The function should contain a state
machine that implements the user's peripheral
function.
bulkloop.c: This source file contains initialization and
task dispatch function definitions that are called from
fw.c. This is where you will customize the frameworks
for your specific device. In this case, for bulkloop
transfers.
dscr.a51: Assembly file that contains your device's
custom descriptors.
USBJmpTb.OBJ: Object code that contains the ISR
jump table for USB and GPIF interrupts.
EZUSB.LIB: The EZ-USB library is an 8051 .LIB file
that implements functions that are common to many
firmware projects. Typically, there is no reason to
modify these functions so they are provided in library
form. However, the kit includes the source code for
the library in the event that you need to modify a
function or if you just want to know how something is
done.
The bulkloop application code is implemented in the
TD_Poll() function in bulkloop.c. Bulkloop is a simple
application that can be tested with the help of
CyConsole/Control Center and FX2LP DVK. You can see
EP2 and 4 are configured as OUT EPs, EP6 and 8 are
configured as IN EPs after downloading the bulkloop
firmware into FX2LP DVK using CyConsole. Now you can
test this example by sending some bytes of data into EP2