CY4611B Cypress Semiconductor Corp, CY4611B Datasheet - Page 3

KIT USB TO ATA REFERENCE DESIGN

CY4611B

Manufacturer Part Number
CY4611B
Description
KIT USB TO ATA REFERENCE DESIGN
Manufacturer
Cypress Semiconductor Corp
Series
EZ-USB FX2LP™r
Datasheet

Specifications of CY4611B

Main Purpose
Interface, USB 2.0 to ATA/CF
Utilized Ic / Part
CY7C68013A, CY7C68014A, CY7C68015A, CY7C68016A
Silicon Manufacturer
Cypress
Silicon Core Number
UDMA-100
Kit Application Type
Interface
Application Sub Type
USB To ATA
Rohs Compliant
No
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Secondary Attributes
-
Embedded
-
Primary Attributes
-
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
TD_Poll()
As in all Cypress Frameworks based code, the main
code loop is called TD_Poll(). This routine is called
repeatedly until it detects a packet in the OUT buffer.
TD_poll() checks the received packet for a valid
CBW signature. If one is found, it calls
processCBW(). If the packet is not a valid CBW, the
device enters a “persistent stall” condition awaiting a
device reset. ProcessCBW() checks to see if the
LUN has changed from the previous command. If
so, it reloads the GPIF with the proper waveforms
for the new LUN. It then calls
generalIDEInCommand() or
generalIDEOutCommand() depending on the
direction flag in the CBW. If the dataTransferLength
is non-zero, the readPIO16() or writePIO16()
routines are called to pass data directly from the
USB buffers to the drive using the GPIF.
SETUP messages are handled in an ISR, so they
may be received and responded to at any time. The
entire SETUP message will be handled within the
ISR, therefore long SETUP traffic will adversely
affect disk performance. This is not expected to be
an issue since Windows does not use SETUP
Filename
Dscr.a51
memcmp.a51
reset.a51
Startup.a51
USBjmptbl.a51
Atacb.c
atareset.c
fw.c
gpif.c
Globals.c, Globals2.c
Purpose
Descriptor table containing product/vendor ID, endpoint descriptions and other
information reported to the host on startup.
Fast memory compare routine
Assembly routine used to branch to 0 on USB reset.
Modified Keil startup file that does not initialize any variables.
USB interrupt vector table and other fixed-address blocks including space
allocation for EEPROM loader.
Processes ATACB (ATA Command Block) requests. The optional ATACB facility
allows IDE commands to be embedded within CBWs. This enables ANY
command to be sent to the device. This facility is used to allow access to security
features and SMART commands that do not have analogous SCSI commands.
Contains hard reset routine, selection of IDE vs ATAPI protocol. Identifies device
characteristics, including serial number, capacity and transfer rate. Selects
transfer rate by loading new GPIF waveforms. Contains timer ISR that checks
VBUS and ATA_ENABLE.
Frameworks based main routine. This fw.c has major differences from the fw.c
released with the dev kit, since several implementation-specific functions have
been merged with the general startup code in this file.
EZ-USB FX2LP low level i/o routines. Waveform descriptors. Routines for
loading the GPIF memory with the waveform descriptors.
Global variable definitions. The globals are split into two files to help the linker.
The linker will place all of the variables in a .c file in a single block. Splitting the
globals into two files allows some variables to be placed below the bit-
addressable memory (at 0x20) and some to be placed above the bit-addressable
memory.
EZ-USB FX2LP USB to ATA Reference Design Notes
3
packets after enumeration except to clear STALL
conditions.
ReadPIO16(), WritePIO16(), ReadUDMA(),
WriteUDMA()
These data transfer routines activate the GPIF to
move data to/from the FIFO memory to/from the
ATA bus. The data is read from the drive to the EP6
buffer. Write data moves from the host through the
EP2 buffer.
Resets
The firmware performs a hard reset of the drive on a
hard reset (power on). The firmware performs a soft
reset of the 8051 and drives on a USB Reset or
Mass Storage Class Reset.
File Descriptions
The FX2LP firmware is stored in its own directory.
All of the FX2LP firmware is contained in the FX2LP
source directory on the CD.
The purpose of the files in the source directory is
shown in the following table:

Related parts for CY4611B