CY4611B Cypress Semiconductor Corp, CY4611B Datasheet - Page 2

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
if it is time for USB suspend. The final function of
the main loop is to poll for new removable (CF)
devices.
The ISRs have two main functions. They handle
SETUP command processing and background
polling for events like VBUS removal, GPIO changes
and ATA_ENABLE changes.
Main()
This routine calls the TD_Init and ATAInit routines
and then starts the master while(1) loop. The
while(1) loop polls the sleep flag and calls TD_Poll,
the main command processing routine.
ATAInit()
On a hard reset, TD_init() is called, which initializes
the hardware using initUSB(). The
resetATAPIDevice() routine is called to reset the
drive. After the drive has been reset the drive
discovery algorithm, detectSCSIvsATA(), is called
once for the master device and again for the slave
device.
detectSCSIvsATA()
The detectSCSIvsATA routine determines whether
the attached device is IDE or ATAPI by reading the
byte count registers. The scsi flag is set to 1 to
indicate an ATAPI device, scsi is set to 0 on an IDE
device. This routine sets the bDevicePresent flag
when a drive is successfully detected.
ATAPIIdDevice()
This routine is called to collect information from the
drive into internal data structures. This information
includes the max PIO or UDMA speed supported
and the serial number of the drive. If the device
supports PIO-3, PIO-4 or UDMA, this routine will
program the drive to run at the new speed.
EZ-USB FX2LP USB to ATA Reference Design Notes
2
Figure 1: Overall program flow
generalIDEOutCommand
generalIDEInCommand
Translate ATAPI to IDE
Detect ATAPI vs IDE
Initalize ATA Device
[resetATAPIDevice]
[ideReadCommand
ideWriteCommand]
Initialize Hardware
Send command to
[TD_Init, initUSB]
LUN changed?
[processCBW]
Wait for CBW
SCSI device?
Reset of FX2
[TD_Poll()]
Hardware
command
device
No
No
Yes
(ATA_ENABLE -> disable)
[sendSCSICommand]
Read/WriteUDMA()]
(USB Reset) or
Send command to
[Read/WritePIO16
Transfer data via
in any state
Yes
TransferLen >
[sendUSBS()]
Change GPIF
PIO or UDMA
Send CSW
waveforms
device
data
Yes
0
No

Related parts for CY4611B