CY4611B Cypress Semiconductor Corp, CY4611B Datasheet

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
Introduction
Cypress has two USB 2.0 High Speed Mass Storage
solutions. The AT2LP is a low-power fixed-function
Mass Storage solution for ATA devices. The
CY4611B is a flexible bridge solution that enables
additional features to be added to a USB 2.0 bridge
device. The Cypress EZ-USB FX2LP Mass Storage
reference design connects the EZ-USB FX2LP to
the following device types:
Reference Design Contents
Background Information
You should be familiar with the USB Mass Storage
Class specification and general operation of
Cypress’ EZ-USB FX2LP to get the most from this
document. For more information please refer to
these specifications or Cypress’s EZ-USB FX2LP
Technical Reference Manual.
Mass Storage Class Specification
The USB Mass Storage Class specification contains
two subclasses, the CBI (Command, Bulk, Interrupt),
and the newer Bulk Only Transport. This reference
design complies with the Bulk Only subclass of the
USB Mass Storage Specification. The Bulk Only
Cypress Semiconductor Corporation • 3901 North First Street • San Jose • CA 95134 • 408-943-2600
CY4611B – FX2LP USB to ATA/CF Reference Design Notes
IDE devices
Compact Flash & micro drives
ATAPI devices
FX2LP Mass Storage Reference Design
PCBA
Reference Design Schematic in both PDF
and OrCAD source files
Reference Design BOM
Firmware source and object code
Reference Design Notes (this document)
UDMA White Paper
Driver INF and .SYS files
Operating Instructions
Manufacturing tools
Release Notes
Errata
3.5”, 2.5” Hard disk drives
ZIP drives
CD-ROM/R/RW drives
DVD-ROM/RAM/RW drives
subclass is supported by the Windows XP, 2000 and
ME drivers as well as MacOS 9 and X. Cypress
provides custom drivers for Windows and Macintosh
operating systems to add support for security and
SMART monitoring. The latest driver versions are
available on the Cypress website.
Firmware Overview
Note: CBW, CSW, dataTransferLength, and
“Persistent Stall” are defined in the “USB Mass
Storage Class, Bulk Only Transport” document
referenced below.
The firmware for the device is a straightforward
implementation of a USB Bulk Only Mass Storage
Device. After reset, it waits for a CBW packet,
checks it and then executes the data phase of the
command (if any). Once the data phase is
complete, the firmware sends a CSW packet to the
host. SETUP commands are handled in an ISR. A
timer ISR is used to poll VBUS and GPIOs. The
only commands that the firmware generates on its
own are SCSI Identify Device (to get the device
name) and ATA Identify Device (to get the device
serial number).
The CY4611B firmware supports both high speed
(480Mbps) and full speed (12Mbps) hosts.
Firmware Details
Refer to the flowchart on the following page for more
details.
There are three main sections in the firmware:
The initialization code sets up the hardware, reads
the EEPROM configuration and detects the attached
drives. Initialization routines include
resetATAPIDevice, ATAInit, initUSB, TD_Init,
detectSCSIvsATA, and ATAPIIdDevice. When the
initialization code is complete, the hardware is set
up, drives are fully enumerated, GPIF is loaded and
the firmware is ready to accept CBW commands.
The CBW processing takes place in the TD_Poll()
loop. This loop also polls the sleep flag to determine
Initialization
Command (CBW) processing
ISRs
7/11/05

Related parts for CY4611B

CY4611B Summary of contents

Page 1

... CY4611B – FX2LP USB to ATA/CF Reference Design Notes Introduction Cypress has two USB 2.0 High Speed Mass Storage solutions. The AT2LP is a low-power fixed-function Mass Storage solution for ATA devices. The CY4611B is a flexible bridge solution that enables additional features to be added to a USB 2.0 bridge device ...

Page 2

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 ...

Page 3

TD_Poll 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 ...

Page 4

... EEPROM binary image EEPROM configuration area Many of the commonly changed items in the CY4611B configuration have been moved to a dedicated EEPROM configuration area. Locating these items in a dedicated area allows customization of many firmware attributes like Vendor ID and Product ID without compiling the firmware. ...

Page 5

... Figure 3: MFG Mode jumper location The default build script will automatically build a unified image by combining cy4611b.hex with either AT2_legacy_pinout.iic or AT2LP_pinout.iic to produce CY4611B_AT2_PINOUT.iic or CY4611B_AT2LP_PINOUT.iic. The configuration section of the EEPROM can also be modified without using the Keil tools. This enables you to modify some settings (like the Vendor ID and device name) without buying the Keil tools ...

Page 6

... Default Setting: FALSE Build Targets There are two build targets for the CY4611B. They use exactly the same options for everything except one item. The CY4611B_AT2LP_PINOUT target EZ-USB FX2LP USB to ATA Reference Design Notes includes the AT2LP_PINOUT ...

Page 7

... Debugging without the Mass Storage Driver Debugging specific commands requires a different approach because the Mass Storage driver will timeout while you are single stepping and may lock up or reboot the host machine. The CY4611B firmware can be bound to the Cyusb generic driver by following these steps: 7 ...

Page 8

Unplug the EEPROM jumper (J22) 2) Turn on power to your board. The board will enumerate and bind to the generic driver (CYUSB.sys). 3) Plug the EEPROM jumper back in so your code can access the config data in ...

Page 9

Windows Boot Support The current level of boot functionality will allow you to boot to DOS or Win9x Safe Mode from a Hard Drive or CDROM. You cannot currently boot to Windows due to issues with the way Windows attempts ...

Page 10

EZ-USB FX2LP USB to ATA Reference Design Notes Bit 4 DErrorOverride This bit controls the device error override feature. This bit should not be set during a bmATACBActionSelect TaskFileRead Data accesses are halted if ...

Page 11

Reserved EEPROM configuration format EEPROM Field Name Address AT2LP Configuration 2 0x00 I C EEPROM signature byte 0x01 I C EEPROM signature byte 1 I 0x02 APM Value 0x03 Unused 0x04 bVSCBSignature Value 0x05 ...

Page 12

Short Packet Before Stall SRST Enable Skip Pin Reset 0x06 ATA UDMA Enable ATAPI UDMA Enable UDMA Modes 0x07 Reserved EZ-USB FX2LP USB to ATA Reference Design Notes CY7C68300B/CY7C68301B to work with most devices that incorrectly clear the BUSY bit ...

Page 13

Multiword DMA mode PIO Modes 0x08 Pin Configurations BUTTON_MODE SEARCH_ATA_BUS BIG_PACKAGE ATA_EN DISKRDY Polarity HS Indicator Enable Drive Power Valid Polarity Drive Power Valid Enable 0x09 Reserved EZ-USB FX2LP USB to ATA Reference Design Notes Bit (2) This bit selects ...

Page 14

General Purpose IO Pin Output Enable 0x0A Reserved General Purpose IO Pin Data 0x0B Identify Device String Pointer LUN0 0x0C Identify Device String Pointer LUN1 0x0D Delay after reset 0x0E Reserved Enable CF UDMA Fixed number of logical units = ...

Page 15

Device Qualifier 0x22 bLength 0x23 bDescriptor 0x24 bcdUSB (LSB) 0x25 bcdUSB (MSB) 0x26 bDeviceClass 0x27 bDeviceSubClass 0x28 bDeviceProtocol 0x29 bMaxPacketSize0 0x2A bNumConfigurations 0x2B ...

Page 16

Interface and Endpoint Descriptors Interface Descriptor 0x35 bLength 0x36 bDescriptorType 0x37 bInterfaceNumber 0x38 bAlternateSetting 0x39 bNumEndpoints 0x3A bInterfaceClass 0x3B bInterfaceSubClass 0x3C bInterfaceProtocol 0x3D iInterface USB Bulk Out Endpoint 0x3E bLength 0x3F bDescriptorType 0x40 bEndpointAddress 0x41 bmAttributes 0x42 wMaxPacketSize (LSB) 0x43 ...

Page 17

USB Interrupt In Endpoint 0x5E bLength 0x5F bDescriptorType 0x60 bEndpointAddress 0x61 bmAttributes 0x62 wMaxPacketSize (LSB) 0x63 wMaxPacketSize (MSB) 0x64 bInterval (Optional) HID Descriptor 0x55 bLength 0x56 bDescriptorType 0x57 bcdHID (LSB) 0x58 bcdHID (MSB) 0x59 bCountryCode 0x5A bNumDescriptors 0x5B bDescriptorType 0x5C ...

Page 18

Logical_Maximum 0x80 0x81 Report_Size 0x82 0x83 Report_Count 0x84 0x85 Output 0x86 0x87 (optional) Standard Content Security Interface Descriptor 0x88 bLength 0x89 bDescriptorType 0x8A bInterfaceNumber 0x8B bAlternateSetting 0x8C bNumEndpoints 0x8D bInterfaceClass 0x8E bInterfaceSubClass 0x8F bInterfaceProtocol 0x90 iInterface Channel Descriptor ...

Page 19

CSM Descriptor 0x9B bLength 0x9C bDescriptorType 0x9D bMethodID 0x9E iCSMDescriptor 0x9F bcdVersion (LSB) 0xA0 bcsVersion (MSB) 0xA1 Terminator USB String DescriptorIndex 0 (LANGID) 0xA2 bLength 0xA3 bDescriptorType 0xA4 LANGID (LSB) 0xA5 LANGID (MSB) USB String DescriptorManufacturer 0xA6 bLength ...

Page 20

USB String DescriptorProduct 0xD2 bLength 0xD3 ...

Page 21

0XEC bString 0XED bString 0XEE bString 0XEF bString 0XF0 bString 0xF1 bString 0xF2 bString 0xF3 bString 0xF4 bString 0xF5 bString 0xF6 bString 0xF7 bString 0xF8 bString 0xF9 bString 0xFA bString 0xFB bString 0xFC bString 0xFD bString 0xFE bString 0xFF bString ...

Page 22

Device name byte 21 0X119 Device name byte 22 0X11A Device name byte 23 0X11B Device name byte 24 0x11C to Unused ROM Space 0x1FF Note: More than 0X100 bytes of configuration are shown for example only. The firmware ...

Related keywords