CYPRESS CY7C68310-80AC

CY7C68310
ISD-300LP™ Low-Power USB 2.0 to ATA/ATAPI Bridge IC
Cypress Semiconductor Corporation
Document 38-08030 Rev. *H
•
1.1
Functional Block Diagram
D+
D-
30MHz
Xtal
USB
2.0
Xcvr
USB
VBUS
USB HS/FS
Control Logic
OSC
nEJECT
LOWPWR
SYSIRQ
DRVPWRVLD
nPWR500
CY7C68310
Control Logic
DISKRDY
VBUSPWRVLD
VBUSPWRD
GPIO Pins (3)
3901 North First Street
SDA
EEPROM
Interface
Control
Bulk
ROM
SCL
Control
nRESET
64 Byte
RAM
2kByte FIFO
ATA Interface Logic
ATAEN
16-bit Data
• Fixed-function mass storage device–requires no firmware
code
• USB Mass Storage Class Bulk-Only specification-compliant
(version 1.0)
• USB 2.0-certified (TID# 40001426)
• Integrated USB transceiver
• High-speed (480-Mbit) and full-speed (12-Mbit) support
• USB Suspend/Resume, Remote Wakeup support
• Two power modes of operation–self-powered and USB buspowered
• Low power consumption allows for bus-powered operation
• VBUS-powered CF support
• True USB portable HDD support
• Compact 80-pin TQFP package with a Lead-Free option
• ATA/ATAPI-6 specification-compliant–provides support for
mass storage devices larger than 137GB
• 5V tolerant inputs, 3.3V output drive
• Flexible USB descriptor and configuration retrieval sources
2
• I C-compatible serial ROM interface
• ATA interface using vendor-specific ATA command (FBh)
implemented on ATAPI or ATA device
• Default on-chip ROM contents for manufacturing/development
• 2-Kbyte SRAM data buffer for ATA/ATAPI data transfers
• ATA interface supports ATA PIO modes 0–4, UDMA modes
0–4 (multiword DMA not supported). ATA interface
operation mode is automatically selected during device
initialization or manually programmed with I2C-compatible
configuration data
• Automatic detection of either Master or Slave ATA/ATAPI
devices
• Mode Page 5 Support–increased support for formatting
removable media devices
• ATA Interrupt support for ATAPI devices–offers more robust
ATA support across OS platforms
• System event notification via Vendor-specific ATA
command
• Input pin for media cartridge detection or ejection request
• USB bus state indications (Reset, FS/HS mode of operation, Suspend/Resume, Bus/Self-powered)
• Three General Purpose I/O (GPIO) pins
• Multiple LUNs supported within a single ATAPI device
• ATA translation provides seamless ATA support with
standard MSC drivers
• Additional ATA command support provided by vendorspecific ATACBs (ATA command blocks utilizing the MSC
Command Block Wrapper)
• Provisions to share ATA bus with other hosts (e.g.
USB/1394 dual device)
• Manufacturing interconnect test support provided with
vendor-specific USB commands:
• Read/Write access to relevant ASIC pins
• Manufacturing Interconnect Test Tools
• Utilizes inexpensive 30-Mhz crystal for clock source.
ATA Control
Features
256 Byte
EEPROM
1.0
Figure 1-1. Block Diagram
•
San Jose, CA 95134
•
408-943-2600
Revised June 28, 2004
CY7C68310
2.0
Applications
3.0
Introduction
The CY7C68310 implements a USB 2.0 bridge for all
ATA/ATAPI-6 compliant mass storage devices, such as:
• Hard drives, including small form factor drives (2.5”, 1.8”,
and 1.0”) designed for portable consumer electronics applications
• CD-ROM, CD-R/W
• DVD-ROM, DVD-RAM, DVD-R/W
• MP3 players
• Compact flash
• Microdrives
• Tape drives
• Personal video recorders.
The CY7C68310 implements a bridge between one USB port
and one ATA/ATAPI-based mass storage device port. This
bridge adheres to the Mass Storage Class Bulk-Only
Transport specification, version 1.0.
2.1
The device initialization process is configurable, enabling the
CY7C68310 to initialize most ATA/ATAPI devices without
software intervention. The CY7C68310 can also be configured
to allow software initialization of a device if initialization
requirements are not supported by CY7C68310 algorithms.
4.0
Pin Assignments
DD6
DD8
DD5
VSS
Pin Diagram
DD11
VDD33
DD3
DD2
DD12
DD13
DD14
DD1
DMARQ
DD15
DD0
VSS
VDD25
4.1
DD9
CY4617 – CY7C68310 Mass Storage Reference Design Kit
USB Specification version 2.0
ATA Attachment-6 with Packet Interface revision 3b
USB Mass Storage Class Bulk-Only Transport specification,
Rev. 1.0
The ATA/ATAPI port of the CY7C68310 is connected to a mass
storage device. A 2-Kbyte buffer maximizes ATA/ATAPI data
transfer rates by minimizing losses due to device seek times.
The ATA interface supports ATA PIO modes 0–4, and Ultra
Mode DMA modes 0–4.
DD4
DD10
•
•
•
•
Additional Resources
The USB port of the CY7C68310 is connected to a host
computer directly or via the downstream port of a USB hub.
Host software issues commands and data to the CY7C68310
and receives status and data from the CY7C68310 using
standard USB protocol.
60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41
VDD33
61
40
VDD25
nDIOW
62
39
DD7
nDIOR
IORDY
63
64
38
37
TMC2
TMC1
ATAPUEN
65
36
nATARST
nDMACK
66
35
nRESET
ATAIRQ
DA1
67
68
34
33
LOWPWR
SCANEN
VDD33
DA0
69
70
32
31
GPIO2_nHS
GPIO1
DA2
nCS0
71
72
30
29
GPIO0
ATAEN
CY7C68310-80AC
nCS1
73
74
28
27
DRVPWRVLD
nPWR500
SCL
SDA_nIMODE
75
76
26
25
nEJECT
TEST3
SYSIRQ
DISKRDY
77
24
VDD33
VBUSPWRD
78
23
XO
VBUSPWRVLD
VDD25
79
80
22
21
XI
VSS
TEST1
TEST2
TEST0
VDD25
AVDD25
AVSS
AVSS
RREF
PVDD25
AVSS
RSDM
VSS
DP
7 8 9 10 11 12 13 14 15 16 17 18 19 20
VDD33
DM
VSS
RSDP
VDD25
VSS
RPU
1 2 3 4 5 6
Figure 4-1. 80-pin TQFP
Document 38-08030 Rev. *H
Page 2 of 34
CY7C68310
4.2
Pin Overview
Pin
Number
Pin Name
Pin
Direction
Pin Type
Pin Description
2
RPU
O
USB Output
D+ pull-up source. Power source for 1.5k pull-up resistor attached
to D+ during full-speed operation.
5
RSDP
O
USB I/O
USB full-speed output buffer (D+). RSDP also functions as a
current sink for termination during high-speed operation.
6
DP
I/O
USB I/O
USB high-speed I/O buffer (D+).
8
DM
I/O
USB I/O
USB high-speed I/O buffer (D-).
9
RSDM
O
USB I/O
USB full-speed output buffer (D-). RSDM also functions as a
current sink for termination during high-speed operation.
18–20, 25
TEST[0:3]
I
22
XI
I
OSC input
(2.5V-tolerant)
23
XO
O
OSC output
30-MHz crystal output.
26
nEJECT
I
5V-tolerant
Schmitt input
Active LOW. Media eject or remote wakeup requested. Tie to +3.3V
if functionality is not used.
27
SYSIRQ
I
5V-tolerant
Schmitt input
Active HIGH. USB interrupt request. Tie to GND if functionality is not
used.
28
DRVPWRVLD
I
5V-tolerant
Schmitt input
Configurable polarity. Device Presence Detect. This pin must not
be allowed to float if functionality is not utilized.
29
ATAEN
I
5V-tolerant
Schmitt input
Active HIGH. ATA interface enable.
‘1’ = normal ATA operation
‘0’ = High-Z ATA interface pins and ATA interface logic halted
30–32
GPIO[0:1],
GPIO2_nHS
I/O
3.3V drive,
5V-tolerant,
6-mA IOL,
Schmitt input
General purpose I/O pins. The GPIO pins must be tied to GND if
functionality is not utilized. If the hs_indicator config bit is set, the
GPIO2_nHS pin will reflect the operating speed of the device.
‘1’ = full-speed operation
‘0’ = high-speed operation
33
SCANEN
I
5V tolerant
input buffer
Active HIGH. ASIC test pin. This pin must be tied to GND during
normal operation.
34
LOWPWR
O
high-Z driver,
5V-tolerant,
6-mA IOL
Active HIGH. USB suspend indicator.
‘0’ = Chip active. VBUS power up to 100 mA granted.
‘High-Z’ = Chip suspend. VBUS system current limited to USB
suspend mode value.
35
nRESET
I
5V-tolerant
Schmitt input
Active LOW. Asynchronous chip reset.
36
nATARST
O
3.3V drive,
5V-tolerant,
6-mA IOL
37, 38
TMC[1:2]
I
3.3V input
56, 54, 52,
49,46, 44,
42, 39, 41,
43, 45, 48,
51, 53, 55,
57
DD[0:15]
I/O
3.3V drive,
5V-tolerant,
6-mA IOL,
Schmitt input
ATA data signals.
58
DMARQ
I
5V tolerant
Schmitt input
ATA control signal.
62
nDIOW
O
3.3V drive,
5V-tolerant,
6-mA IOL
ATA control signal.
Document 38-08030 Rev. *H
5V-tolerant input Active HIGH. ASIC fabrication and manufacturing test mode select.
buffer
These pins must be tied to GND during normal operation.
30-MHz crystal input.
Active LOW. ATA reset signal.
Active HIGH. ASIC test pins. These pins must be tied to GND during
normal operation.
Page 3 of 34
CY7C68310
4.2
Pin Overview (continued)
Pin
Number
Pin Name
Pin
Direction
63
nDIOR
O
3.3V drive,
5V-tolerant,
6 mA IOL
ATA control signal.
64
IORDY
I
5V-tolerant
Schmitt input
ATA control signal.
65
ATAPUEN
O
3.3V drive,
5V-tolerant,
6 mA IOL
ATA IORDY pull-up connection. For VBUS-powered systems.
66
nDMACK
O
3.3V drive,
5V-tolerant,
6 mA IOL
ATA control signal.
67
ATAIRQ
I
5V-tolerant
Schmitt input
ATA interrupt request.
70, 68, 71
DA[0:2]
O
3.3V drive,
5V-tolerant,
6 mA IOL
ATA address signals.
72, 73
nCS[0:1]
O
3.3V drive,
5V-tolerant,
6 mA IOL
ATA chip select signals.
74
nPWR500
O
high-Z driver,
5V-tolerant,
6 mA IOL
Active LOW. VBUS power granted indicator.
‘0’ = VBUS power up to bMaxPower value
‘high-Z’ = bMaxPower value not granted (if more than 100 mA)
75
SCL
O
high-Z driver,
5V-tolerant,
6 mA IOL
I2C-compatible clock. This pin may be left as a no-connect pin if
the I2C-compatible interface is not utilized.
76
SDA_nlMODE
I/O
high-Z driver,
5V-tolerant,
6 mA IOL,
Schmitt input
I2C-compatible address/data or nIMODE select.
77
DISKRDY
I
5V-tolerant
Schmitt input
Configurable polarity. Device ready.
78
VBUSPWRD
I
5V-tolerant
Schmitt input
Active HIGH. Bus-powered operation select pin.
‘1’ = Bus powered
‘0’ = Self powered
79
VBUSPWRVLD
I
5V-tolerant
Schmitt input
Active HIGH. Indicates that VBUS power is present.
1, 4, 10,
21, 47, 60
VSS
Power
Digital ground.
3, 17, 40,
59, 80
VDD25
Power
2.5V digital supply.
7, 24, 50,
61, 69
VDD33
Power
3.3V digital supply.
11
PVDD25
Power
Analog 2.5V supply (PLL).
12,14,16
AVSS
Power
Analog ground.
13
RREF
Power
PLL voltage reference. Current source for 2.4k (1%) resistor
connected to AVSS.
15
AVDD25
Power
Analog 2.5V supply.
Document 38-08030 Rev. *H
Pin Type
Pin Description
Page 4 of 34
CY7C68310
4.3
Detailed Pin Descriptions
4.3.1
DP, DM
DP and DM are the high-speed USB signaling pins, and they
should be tied to the D+ and D– pins of the USB connector.
Because they operate at high frequencies, the USB signals
require special consideration when designing the layout of the
PCB. See section 15.0 for PCB layout guidelines.
4.3.2
RSDP, RSDM
RSDP and RSDM are the full-speed USB signaling pins, and
they should be tied to the DP and DM pins through 39Ω
resistors. RSDP and RSDM also function as current sinks for
termination during high-speed operation.
4.3.3
TEST[0:3]
The test pins control the various test modes of the
CY7C68310. Most test modes are reserved for ASIC fabrication, but the following table outlines the test modes available
for device manufacturing environments. The test pins must be
tied to GND for normal operation.
Table 4-1. CY7C68310 Test Modes
Test Mode
Description
0000
Normal Mode. This is the default mode of operation.
0001
Reserved.
0010
Limbo Mode. All output pins set to high-Z during Limbo mode operation with the exception of the XO pin. The XO
pin output cell does not have high-Z control (always enabled), and must be disabled or disconnected by other
means. To enter Limbo Mode, nRESET must be toggled after the Test pins are set to ‘0010’.
0011
Input xnorTree Mode. This mode tests the connectivity of all dedicated inputs and outputs. While in the Input
xnorTree Mode of operation, all bi-directional pins are wired as chain outputs. The results of the connectivity
procedure will be seen on all bidirectional pins. Chain Inputs (in order): VBUSPWRVLD, VBUSPWRD, DISKRDY,
ATAIRQ, IORDY, DMARQ, nRESET, ATAEN, DRVPWRVLD, SYSIRQ, nEJECT Chain Outputs (in order):
GPIO[2:0], DD[15:0], SDA_nIMODE.
0100
Bi-di xnorTree Mode. This mode test the connectivity of all bi-directional inputs. While in the Bi-di xnor Tree Mode
of operation, all bi-directional pins are wired as inputs and become part of the xnor Tree chain. The results of the
connectivity procedure will be seen on all output only pins. Chain Inputs: GPIO[0], GPIO[1], GPIO[2], DD[7], DD[8],
DD[6], DD[0], DD[5], DD[10], DD[4], DD[11], DD[3], DD[12], DD[2], DD[13], DD[1], DD[14], DD[0], DD[15],
SDA_nIMODE. Chain Outputs: nPWR500, nATARST, nDIOW, nDIOR, nDMACK, ATAPUEN, nCS[1:0], DA[2:0],
LOWPWR, SCL
0101–1111 Reserved.
4.3.4
XI, XO
The CY7C68310 requires a 30-MHz signal to derive internal
timing. Typically a 30-MHz (2.5V tolerant, parallel-resonant
fundamental mode) crystal is used, but a 30-MHz (2.5V, 50%
duty cycle) square wave from another source can also be
used. If a crystal is used, connect the pins to XI and XO, and
also through 20pF capacitors to GND as shown in Figure 8-1.
If an alternate clock source is used, apply it to XI and leave XO
open.
4.3.5
nEJECT
The nEJECT input pin provides a means to communicate an
Eject button push to the ATA/ATAPI device via event notification as well as a way to cause a USB Remote-wakeup.
During normal operation, asserting nEJECT for 10ms
indicates that a media eject has been requested. If the
CY7C68310 is in a suspend state, and if remote wakeup is
Document 38-08030 Rev. *H
enabled by the USB host, a state change on this pin will
immediately cause the CY7C68310 to perform a USB remote
wakeup event.
4.3.6
SYSIRQ
The SYSIRQ pin provides a way for systems to request service
from host software by use of the USB Interrupt pipe. If the
CY7C68310 has no pending interrupt data to return, USB
interrupt pipe data requests are NAKed. If pending data is
available, CY7C68310 returns 16 bits of data indicating the
state of the DISKRDY pin, the HS_MODE signal (that
indicates whether CY7C68310 is operating in high-speed or
full-speed), the VBUSPWRD pin, the User-Defined values
from bits [7:3] of address 0xE of the configuration space, and
the GPIO Pins. Table 4-2 shows the bitmap for the data
returned on the interrupt pipe, and the figure beneath it depicts
the latching algorithm incorporated by CY7C68310.
Page 5 of 34
CY7C68310
Table 4-2. USB Interrupt Pipe Data Bitmap
USB Interrupt Data Byte 1
USB Interrupt Data Byte 0
0
0
0
DISKRDY
USB High-Speed
6
5
4
3
2
1
0
GPIO[0]
0
7
GPIO[1]
0
0
GPIO[2]
1
USER_DEF[0]
2
USER_DEF[1]
3
USER_DEF[2]
4
USER_DEF[3]
5
USER_DEF[4]
6
VBUSPWRD
7
No
No
USB Interrupt
Pipe Polled?
SYSIRQ=1?
Yes
Yes
Yes
Int_Data = 1?
Latch State of IO Pins
Set Int_Data = 1
No
No
NAK Request
Yes
Int_Data = 0
and
SYSIRQ=0?
Return Interrupt Data
Set Int_Data = 0
Figure 4-2. SYSIRQ Latching Algorithm
4.3.7
DRVPWRVLD
DRVPWRVLD can be used with removable devices (such as
compact flash) to indicate that the media device is present. Pin
polarity and function enable are controlled by bits 4 and 2,
respectively, of EEPROM address 0x0B. When DRVPWRVLD
is deasserted, the CY7C68310 will remove the pull-up on D+
(causing the CY7C68310 to drop off the USB), suspend all
ATA state machine activity, drive all ATA interface signals to ‘0’
(assuming ATAEN = ‘1’), and enter into a low-power state. The
CY7C68310 will remain in this state until DRVPWRVLD is
asserted, at which time it will enable the D+ pull-up, allow
resume of ATA state machine activity, and begin to drive the
ATA interface pins (assuming ATAEN = ‘1’).
Document 38-08030 Rev. *H
4.3.8
ATAEN
The ATAEN pin allows ATA bus sharing with other host
devices. Deasserting ATAEN causes the CY7C68310 to highZ all ATA bus interface pins and suspend ATA state machine
activity, otherwise leaving the CY7C68310 operational (USB
operation continues). Asserting ATAEN causes the
CY7C68310 to reset the drive and resume normal operation.
To disable USB operation and the ATA interface, the
DRVPWRVLD signal can be used in conjunction with ATAEN
to force the CY7C68310 into a low-power state until normal
operation is resumed. Note that disabling the ATA bus with the
ATAEN pin during the middle of a data transfer will result in
Page 6 of 34
CY7C68310
data loss and may cause the operating system on the host
computer to crash.
4.3.9
GPIO Pins
The GPIO pins allow for a general purpose Input/Output
interface. Configuration bytes 0x0E and 0x0F contain the
settings for the GPIO pins. See section 6.3 for details of how
to use the vendor-specific commands to utilize the GPIO
functionality. The status of the GPIO pins is also returned by a
USB interrupt event. See section 4.3.6 for SYSIRQ details.
Alternatively, if the hs_indicator config bit is set (bit 4 of
EEPROM address 0x0F), the GPIO2_nHS pin will reflect the
operating speed of the device.
4.3.10
nRESET
Asserting nRESET for a minimum of 1 ms after power rails are
stable will reset the entire chip. An RC reset circuit should be
used that ensures that no spurious resets occur.
4.3.12
ATAPUEN
This output provides control for the required host pull-up
resistors on the ATA interface. ATAPUEN is driven ‘0’ when the
ATA bus is inactive. ATAPUEN is driven ‘1’ when ATA bus is
active. ATAPUEN is set to a high-Z state along with all other
ATA interface pins when ATAEN is deasserted.
4.3.13
nPWR500
nPWR500 is an external pin that, when asserted, indicates
VBUS current may be drawn up to the limit specified by the
bMaxPower field of the USB configuration descriptors.
nPWR500 will only be asserted if VBUSPWRD is also
asserted. If the CY7C68310 enters a low-power state,
nPWR500 is deasserted. When normal operation is resumed,
nPWR500 is restored accordingly. The nPWR500 pin should
never be used to control power sources for the CY7C68310.
4.3.14
4.3.16
SCL, SDA_nIMODE
If an external EEPROM device is used to store configuration
information, the clock and data pins for the I2C-compatible port
should be connected to the configuration EEPROM and to
VCC through 2.2kΩ resistors as shown in Figure 8-1. If configuration information is to be obtained from the attached
ATA/ATAPI device (IMODE), SCL should be left as a noconnect and SDA_nIMODE should be tied to GND.
4.3.17
DISKRDY
This input pin indicates the attached device is powered and
ready to begin communication with the CY7C68310.
DISKRDY polarity can be set using EEPROM address 0x05,
bit 0. DISKRDY qualifies the start of the CY7C68310 initialization sequence. A state change from ‘0’ to ‘1’ on DISKRDY
will cause the CY7C68310 to wait for 25 ms before asserting
nATARESET and re-initializing the device. The ATA interface
state machines remain inactive and all of the ATA interface
signals are driven logic '0' if DISKRDY is not asserted
Document 38-08030 Rev. *H
VBUSPWRVLD
VBUSPWRVLD (USB VBUS Power Valid) indicates that
VBUS power is present at the USB connector. VBUSPWRVLD
qualifies driving the system’s 1.5KΩ pull-up resistor on D+ (the
USB specification only allows the device to source power to
D+ when the host is powered). VBUSPWRVLD is conditioned
so that it is only detected after valid chip configuration bits
have been loaded.
5.0
5.1
Functional Overview
USB Signaling Speeds
The CY7C68310 operates at two of the three signal rates that
are defined in the Universal Serial Bus Specification Revision
2.0:
• Full-speed, with a signaling bit rate of 12 Mbits/sec.
• High-speed, with a signaling bit rate of 480 Mbits/sec.
5.2
ATA Interface
The ATA/ATAPI port on the CY7C68310 is compliant with the
Information Technology–AT Attachment with Packet
Interface–6 (ATA/ATAPI-6) Specification, T13/1410D Rev 2a.
The CY7C68310 supports both ATAPI packet commands as
well as ATA commands (by use of ATA Command Blocks), as
outlined in Sections 5.2.1 and 5.2.2. Refer to the USB Mass
Storage Class (MSC) Bulk Only Transport Specification for
information on Command Block formatting. Additionally, the
CY7C68310 translates ATAPI SFF-8070i commands to ATA
commands for seamless integration of ATA devices with
generic Mass Storage Class BOT drivers. The CY7C68310
also provides a vendor-specific “event notify” ATA command
to automatically communicate certain USB and system events
to the attached device.
5.2.1
4.3.15
VBUSPWRD
The VBUSPWRD input pin indicates whether the device will
report itself as bus-powered or self-powered. VBUSPWRD
also qualifies the use of nPWR500. Based upon the state of
this pin at start-up, the CY7C68310 will request the amount of
current specified in the bMaxPower field of the USB Configuration Descriptor. If VBUSPWRD is asserted, the CY7C68310
will report that the device is bus-powered. If VBUSPWRD is
deasserted, the CY7C68310 will report that the device is selfpowered.
LOWPWR
LOWPWR is an output pin that, when in a high-Z state,
indicates that the CY7C68310 is in a suspend state. When
LOWPWR output is driven ‘0’, the CY7C68310 is active.
4.3.11
(assuming ATAEN = '1'). DISKRDY is filtered for 25 ms on the
asserting edge and cleared asynchronously on the
deasserting edge.
ATA Command Block (ATACB)
The ATA Command Block (ATACB) functionality provides a
means of passing ATA commands and ATA register accesses
for execution. ATACB commands are transferred in the
Command Block Wrapper Command Block (CBWCB) portion
of the Command Block Wrapper (CBW). The ATACB is distinguished from other command blocks by the first two bytes of
the command block matching the wATACBSignature. Only
command blocks that have a valid wATACBSignature are
interpreted as ATA Command Blocks. All other fields of the
CBW and restrictions on the CBWCB remain as defined in the
Page 7 of 34
CY7C68310
USB Mass Storage Class Bulk-Only Transport Specification.
The ATACB must be 16 bytes in length. The following table and
text defines the fields of the ATACB.
Table 5-1. ATACB Field Descriptions
Byte
Field Name
Field Description
0
bVSCBSignature
This field indicates to the CY7C68310 that the ATACB contains a vendorspecific command block. This value of this filed must match the value in
EEPROM address 0x06h for this vendor-specific command to be recognized.
1
bVSCBSubCommand
This field must be set to 0x024h for ATACB commands.
2
bmATACBActionSelect
This field controls the execution of the ATACB according to the bitfield values:
Bit 7 IdentifyPacketDevice - This bit indicates that the data phase of the
command will contain ATAPI (0xA1h) or ATA (0xECh) IDENTIFY device data.
Setting IdentifyPacketDevice when the data phase does not contain IDENTIFY
device data will result in unspecified device behavior.
0 = Data phase does not contain IDENTIFY device data
1= Data phase contains ATAPI or ATA IDENTIFY device data
Bit 6 UDMACommand - This bit enables supported UDMA device transfers.
Setting this bit when a non-UDMA capable device is attached will result in
undetermined behavior.
0 = Do not use UDMA device transfers (only use PIO mode)
1= Use UDMA device transfers
Bit 5 DEVOverride - This bit determines whether the DEV bit value is taken
from the CY7C68310 configuration data or from the ATACB.
0 = The DEV bit will be taken from EEPROM address 0x05h, bit 5
1= The DEV bit will be taken from the ATACB field 0x0B, bit 4
Bit 4:3 DPErrorOverride - These bits control the Device and Phase Error
override feature. These bits shall not be set in conjunction with bmATACBTaskFileRead.
00 = Data accesses are halted if a device or phase error is detected
01 = Data accesses are halted if a device error is detected, but not a phase error
10 = Data accesses are halted if a phase error is detected, but not a device error
11 = Neither device or phase errors will result in halting of data accesses
Bit 2 PollAltStatOverride - This bit determines whether or not the Alternate
Status register will be polled and the BSY bit will be used to qualify the start of
ATACB operation.
0 = The AltStat register will be polled until BSY=0 before proceeding with the
ATACB operation
1= The ATACB operation will be executed without polling the AltStat register
Bit 1 DeviceSelectionOverride - This bit determines when the device selection
will be performed in relation to the command register write accesses.
0 = Device selection will be performed prior to command register write
accesses
1 = Device selection will be performed following command register write
accesses
Document 38-08030 Rev. *H
Page 8 of 34
CY7C68310
Table 5-1. ATACB Field Descriptions
Byte
Field Name
Field Description
Bit 0 TaskFileRead - This bit determines whether or not the taskfile register
data selected in bmATACBRegisterSelect is returned. If this bit is set, the
dCBWDataTransferLength field must be set to 8.
0 = Execute ATACB command and data transfer (if any)
1 = Only read taskfile registers selected in bmATACBRegisterSelect and return
0x00h for all others. The format of the 8 bytes of returned data is as follows:
• Address offset 0x00 (3F6h) - Alternate Status
• Address offset 0x01 (1F1h) - Features / Error
• Address offset 0x02 (1F2h) - Sector Count
• Address offset 0x03 (1F3h) - Sector Number
• Address offset 0x04 (1F4h) - Cylinder Low
• Address offset 0x05 (1F5h) - Cylinder High
• Address offset 0x06 (1F6h) - Device / Head
• Address offset 0x07 (1F7h) - Command / Status
3
bmATACBRegisterSelect
This field controls which of the taskfile register read or write accesses occur.
Taskfile read data will always be 8 bytes in length, and unselected register data
will be returned as 0x00h. Register accesses occur in sequential order as
outlined below (0 to 7):
Bit 0 (3F6h) Device Control / Alternate Status
Bit 1 (1F1h) Features / Error
Bit 2 (1F2h) Sector Count
Bit 3 (1F3h) Sector Number
Bit 4 (1F4h) Cylinder Low
Bit 5 (1F5h) Cylinder High
Bit 6 (1F6h) Device / Head
Bit 7 (1F7h) Command / Status
4
bATACBTransferBlockCount
This value indicates the maximum requested block size in 512-byte increments. This value must be set to the last value used for the “Sectors per block”
in the SET_MULTIPLE_MODE command. Legal values are 0, 1, 2, 4, 8, 16,
32, 64, and 128 where 0 indicates 256 sectors per block. A command failed
status will be returned if an illegal value is used in the ATACB.
5-12
bATACBTaskFileWriteData
These bytes contain ATA register data used with ATA command or PIO write
operations. Only registers selected in bmATACBRegisterSelect are required to
hold valid data when accessed. The registers are as follows:
• ATACB Address Offset 0x05h (3F6h) - Device Control
• ATACB Address Offset 0x06h (1F1h) - Features
• ATACB Address Offset 0x07h (1F2h) - Sector Count
• ATACB Address Offset 0x08h (1F3h) - Sector Number
• ATACB Address Offset 0x09h (1F4h) - Cylinder Low
• ATACB Address Offset 0x0Ah (1F5h) - Cylinder High
• ATACB Address Offset 0x0Bh (1F6h) - Device
• ATACB Address Offset 0x0Ch (1F7h) - Command
13-15
Reserved
These bytes must be set to 0x00h for ATACB commands.
Document 38-08030 Rev. *H
Page 9 of 34
CY7C68310
5.2.2
ATA Command Block 2 (ATACB2)
The ATA Command Block 2 (ATACB2) functionality provides a
means of passing ATA commands and ATA register accesses
for execution. ATACB2 allows for 48-bit commands. ATACB2
commands are transferred in the CBWCB portion of the CBW.
The ATACB2 is distinguished from other command blocks by
the first two bytes of the command block matching the
wATACB2Signature. Only command blocks that have a valid
wATACB2Signature are interpreted as ATACB2 commands.
All other fields of the CBW and restrictions on the CBWCB
shall remain as defined in the USB Mass Storage Class BulkOnly Transport Specification. The ATACB2 must be 16 bytes
in length. The following table and text defines the fields of the
ATACB2.
Table 5-2. ATACB2 Field Descriptions
Byte
Field Name
Field Description
0
bVSCBSignature
This field indicates to the CY7C68310 that the ATACB contains a vendorspecific command block. This value of this filed must match the value in
EEPROM address 0x06h for this vendor-specific command to be recognized.
1
bVSCBSubCommand
This field must be set to 0x025h for ATACB2 commands.
2
bmATACB2RegisterSelect
This field controls which of the taskfile register read or write accesses occur.
Taskfile read data will always be 12 bytes in length, and unselected register data
will be returned as 0x00h. Register accesses occur in sequential order as
outlined below (0 to 7):
Bit 0 (3F6h) - Alternate Status (read only, unaffected by write commands)
Bit 1 (1F1h) - Features / Error
Bit 2 (1F2h) - Sector Count
Bit 3 (1F3h) - LBA Low (Sector Number)
Bit 4 (1F4h) - LBA Mid (Cylinder Low)
Bit 5 (1F5h) - LBA High (Cylinder High)
Bit 6 (1F6h) - Device / Head (see bmATACB2ActionSelect1)
Bit 7 (1F7h) - Command / Status
3
bmATACB2ActionSelect1
This field controls the execution of the ATACB2 according to the bitfield values:
Bit 7 IdentifyDevice - This bit indicates that the data phase of the command will
contain ATAPI (0xA1h) or ATA (0xECh) IDENTIFY device data. Setting IdentifyDevice when the data phase does not contain IDENTIFY device data will result
in undetermined device behavior.
0 = Data phase does not contain IDENTIFY device data
1= Data phase contains ATAPI or ATA IDENTIFY device data
Bit 6 UDMACommand - This bit enables supported UDMA device transfers.
Setting this bit when a non-UDMA capable device is attached will result in
undetermined behavior.
0 = Do not use UDMA device transfers (only use PIO mode)
1= Use UDMA device transfers
Bit 5 DEVOverride - This bit determines whether the DEV bit value is taken from
the CY7C68310 configuration data or from the ATACB2.
0 = The DEV bit will be taken from EEPROM address 0x05h, bit 5
1= The DEV bit will be taken from bATACB2DeviceHeadData[5]
Bit 4 DErrorOverride - This bit controls the device error override feature. This
bit should not be set during a bmATACB2ActionSelect TaskFileRead.
0 = Data accesses are halted if a device error is detected
1 = Data accesses are not halted if a device error is detected
Bit 3 PErrorOverride - This bit controls the phase error override feature. This bit
should not be set during a bmATACB2ActionSelect TaskFileRead.
0 = Data accesses are halted if a phase error is detected
1 = Data accesses are not halted if a phase error is detected
Bit 2 PollAltStatOverride - This bit determines whether or not the Alternate Status
register will be polled and its BSY bit will be used to qualify the start of ATACB
operation.
0 = The AltStat register will be polled until BSY=0 before proceeding with the
ATACB operation
1= The ATACB operation will be executed without polling the AltStat register
Document 38-08030 Rev. *H
Page 10 of 34
CY7C68310
Table 5-2. ATACB2 Field Descriptions
Byte
Field Name
Field Description
Bit 1 DeviceSelectionOverride - This bit determines when the device selection
will be performed in relation to the command register write accesses.
0 = Device selection will be performed prior to command register accesses
1 = Device selection will be performed following command register accesses
Bit 0 TaskFileRead - This bit determines whether or not the taskfile register data
selected in bmATACB2RegisterSelect is returned. If this bit is set, the
dCBWDataTransferLength field must be set to 12.
0 = Execute ATACB2 command and data transfer (if any)
1 = Only read taskfile registers selected in bmATACBRegisterSelect and return
0x00h for all others. The format of the 12 bytes of returned data is as follows:
• Address offset 0x00h (3F6h) Alternate Status (HOB=0)
• Address offset 0x01h (1F6h) Device / Head (HOB=0)
• Address offset 0x02h (1F1h) Error (HOB=0)
• Address offset 0x03h (1F2h-M) Sector Count (HOB=1)
• Address offset 0x04h (1F3h-M) LBA Low (Sector Number) (HOB=1)
• Address offset 0x05h (1F4h-M) LBA Mid (Cylinder Low) (HOB=1)
• Address offset 0x06h (1F5h-M) LBA High (Cylinder High) (HOB=1)
• Address offset 0x07h (1F2h-L) Sector Count (HOB=0)
• Address offset 0x08h (1F3h-L) LBA Low (HOB=0)
• Address offset 0x09h (1F4h-L) LBA Mid (HOB=0)
• Address offset 0x0Ah (1F5h-L) LBA High (HOB=0)
• Address offset 0x0Bh (1F7h) Status (HOB=0)
4
bATACB2TransferBlockCount[7:4] These bits indicate the DRQ block size in 512-byte increments. This value is log
base 2 of the block size. Legal values are 0 (1 sector per block) through 8 (256
sectors per block). A command failed status will be returned if an illegal value
is used in the ATACB2. For commands using multiple sector PIO data transfers,
the number of sectors per block must equal the current Multiple Sector Setting
of the drive. These bits should be set to ‘0’ for non-multiple, non-UDMA
commands.
bmATACB2ActionSelect2[3:0]
This field controls the execution of the ATACB according to the bitfield values:
Bits 3-1 Reserved - These bits must be set to ‘0’
Bit 0 48-bit-write - Determines whether or not M data is used to read 1F2-1F5
0 = Do not read or write 1F2-1F5 with “-M” data
1 = Read or write 1F2-1F5 with “-M” data
5
bATACB2DeviceHeadData
The contents of this field are used for writing the Device Head register when
Byte 2, Bit 6 of the ATACB2 is set to ‘1’. Otherwise, the value written will be
determined by the bridge.
Bits 7-5 DevHead - Data used to write to Device Head register.
Bit 4 DEVOverride - This bit reflects the state of Byte 3, Bit 5 of the ATACB2.
Bits 3-0 DevHead - Data used to write to Device head register.
6-15
bATACB2TaskFileWriteData
These bytes contain ATA register data used with ATA command or PIO write
operations. Only registers selected in bmATACB2RegisterSelect are required
to hold valid data when accessed. The registers are as follows:
•
•
•
•
•
•
•
•
•
•
Document 38-08030 Rev. *H
ATACB2 Address offset 6h (1F1h) Features
ATACB2 Address offset 7h (1F2h-M) Sector Count
ATACB2 Address offset 8h (1F3h-M) LBA Low (Sector Number)
ATACB2 Address offset 9h(1F4h-M) LBA Mid (Cylinder Low)
ATACB2 Address offset Ah (1F5h-M) LBA High (Cylinder High)
ATACB2 Address offset Bh (1F2h-L) Sector Count
ATACB2 Address offset Ch (1F3h-L) LBA Low
ATACB2 Address offset Dh (1F4h-L) LBA Mid
ATACB2 Address offset Eh (1F5h-L) LBA High
ATACB2 Address offset Fh (1F7h) Command
Page 11 of 34
CY7C68310
5.2.3
Vendor-specific EVENT_NOTIFY Command
The vendor-specific EVENT_NOTIFY command enables the
CY7C68310 to communicate the occurrence of certain USB
and system events to the attached device if the device’s
firmware supports the EVENT_NOTIFY command. The
command code is specified by configuration address 0x02.
Setting this byte to 0x00 disables the EVENT_NOTIFY
feature.
Table 5-3. Notification Register Read Values
Register
7
6
5
4
Error
3
2
1
0
DRQ
N/A
N/A
N/A
N/A
Sector Count
N/A
LBA Low (Sector Number)
N/A
LBA Mid (Cylinder Low)
nSTATE0
LBA High (Cylinder High)
nSTATE1
Device/Head
N/A
Status
BUSY
N/A
N/A
The nSTATE0 and nSTATE1 values are read from the device
and stored for use as the STATE0 and STATE1 values during
the next execution of the event notification command. The
nSTATE0 and nSTATE1 values provide temporary non-volatile
storage for devices whose power is controlled by nPWR500
(typically bus-powered systems). This allows the device to
N/A
store information prior to entering a USB Suspend state for
retrieval after resuming from the USB Suspend state. Note that
a USB Reset from the host may interrupt the collection of data.
The device must accommodate the potential for this occurrence. The BSY and DRQ bits must be cleared by the device
upon the completion of an event notification command.
Table 5-4. Notification Register Write Values
Register
6
USB
Reset
Class
Specific
Reset
5
4
3
1
0
USB
Resume
Reserved
Reserved
Eject Button
Pressed
Reserved Reserved Reserved Reserved
SelfPowered
BusPowered
USB
High-Speed
USB
Full-Speed
USB
Suspend
LBA Low (Sector Number)
N/A
LBA Mid (Cylinder Low)
STATE0
LBA High (Cylinder High)
STATE1
Device/Head
Command
N/A
Specified in Configuration byte 0x02
The STATE0 and STATE1 values are written with the value of
nSTATE0 and nSTATE1 obtained from the previously
completed event notification command. Assertion of nRESET
resets STATE0 and STATE1 to 0x00.
6.0
2
Eject
Button
Released
Features
Sector Count
7
Configuration
Certain timing parameters and operational modes for the
CY7C68310 are configurable. Some USB configuration and
descriptor values are also configurable. CY7C68310 configu-
Document 38-08030 Rev. *H
ration data should not be confused with the USB Configuration
Descriptor data.
6.1
CY7C68310 Configuration and USB Descriptor Sources
CY7C68310 configuration and USB descriptor data can be
retrieved from three sources. Table 6-1 indicates the method
of determining which data source is used.
Page 12 of 34
CY7C68310
Table 6-1. CY7C68310 Configuration and USB Descriptor Sources
I2C-compatible I2C Signature
SDA_nIMODE = 0 Device Present Check Passes CY7C68310 Configuration and USB Descriptor Retrieval Method
6.1.1
No
No
N/A
In this mode, the CY7C68310 uses internal ROM contents for USB
descriptor information and configuration register values. This mode is
for debug/manufacturing operation only. Not for shipping products.
Yes
N/A
No
In this mode, the CY7C68310 uses internal ROM contents for USB
descriptor information. Configuration register values are loaded from
internal ROM. This is not a valid mode of operation.
Yes
N/A
Yes
The CY7C68310 retrieves all Descriptor and Configuration values from
the vendor-specific Identify (FBh) data. The CY7C68310 is configured
using internal ROM values until FBh data becomes available.
No
Yes
No
The CY7C68310 uses internal ROM contents for USB descriptor information. Configuration register values are loaded from internal ROM. In
this mode of operation, any CY7C68310 vendor-specific configuration
access causes the CY7C68310 to recheck the signature field. Once
the signature check passes, SROM data is returned for USB
descriptors requests. This is not a valid mode of operation.
No
Yes
Yes
The CY7C68310 retrieves all Descriptor and Configuration values from
the I2C-compatible memory device. The CY7C68310 is configured
using these values.
I2C-compatible Device
The CY7C68310 provides support for the 24LCXXB family of
EEPROMs. Following the release of nRESET, the
CY7C68310 waits 50 ms and then checks for I2C-compatible
device presence. If an I2C-compatible device is present but
does not pass signature check, the CY7C68310 re-tests the
signature with each vendor-specific USB load or read access
of configuration bytes 0 and 1. Once the signature check
passes, I2C-compatible data is returned for USB descriptor
requests. If an I2C-compatible device is detected initially, it is
always assumed present until the next reset cycle (nRESET).
If an I2C-compatible device is present, a lack of an ACK
response when required causes the CY7C68310 to stall that
USB request. The CY7C68310 will attempt the access again
with the next USB request.
6.1.2
IMODE
Configuration and descriptor data can also be supplied by an
attached mass storage device (IMODE) through a vendorspecific Identify (FBh) ATA command. The CY7C68310
provides 256 bytes of internal RAM for FBh data storage.
Unlike operation with an external I2C-compatible memory
device, IMODE operation requires the attached device first be
initialized and FBh data retrieved before the CY7C68310 can
allow USB enumeration. To meet USB specification requirements, IMODE operation must be limited to systems that draw
100 mA or less from VBUS prior to USB configuration.
Document 38-08030 Rev. *H
6.1.3
Internal ROM Contents
The CY7C68310 also contains an internal set of CY7C68310
configuration and USB descriptors. The internal descriptors
may only be used during manufacturing, as the internal ROM
values disable some features required for normal operation to
aid use in a manufacturing environment. Also, the internal
ROM descriptors do not provide a unique serial number
(required for USB Mass Storage Class compliance), and
therefore cannot be used for shipping products. See Table 62 for the organization of the internal ROM contents. An
external I2C-compatible memory device or utilization of the
vendor-specific FBh identify command is required to correctly
configure the CY7C68310 for operation and provide a unique
serial number for MSC compliance.
6.2
EEPROM Organization
CY7C68310 configuration and USB descriptor data can be
supplied from an I2C-compatible serial memory device. The
CY7C68310 can address 2 Kbytes of I2C-compatible data, but
CY7C68310 configuration and USB descriptor information are
limited to 512 bytes maximum. Unused register space in the
I2C-compatible serial memory device may be used for product
specific data storage. Note that no descriptor is allowed to
span multiple pages within the I2C-compatible serial memory
device.
Page 13 of 34
CY7C68310
Table 6-2. EEPROM Organization
I2C
Address
Field Name
Field Description
Required
I2C Data
Example
I2C Data
CY7C68310 Configuration Data
0x00
I2C memory device Signature LSB I2C memory device Signature byte.
(LSB)
0x4B
0x01
I2C memory device Signature MSB I2C memory device Signature byte.
(MSB)
0x50
0x02
Event Notification
Bits (7:0)
ATAPI event notification command. The value of this register
(if other than 0x00) is used to identify the vendor-specific
Event Notification command (see Section 5.2.3). Setting this
field to 0x00 disables this feature.
0x00
0x03
APM Value
Bits (7:0)
ATA device Automatic Power Management value. If an
attached ATA device supports APM and this field contains
other than 0x00, the CY7C68310 will issue a SET
FEATURES command to enable APM with this register
value during the drive initialization.
0x00
0x04
ATA Initialization Timeout
Time in 128-millisecond granularity before the CY7C68310
stops polling the ALT STAT register for reset complete and
restarts the reset process (0x80 = 16.4 seconds).
0x80
0x05
USB Bus Mode
Bit (7) – Read only
0x00
USB bus mode of operation.
‘0’ = USB is operating in full-speed mode (12 Mbit/sec)
‘1’ = USB is operating in high-speed mode (480 Mbit/sec)
ATAPI Command Block Size Bit (6)
CBW Command Block Size.
‘0’ = 12 byte ATAPI CB
‘1’ = 16 byte ATAPI CB
Master/Slave Selection
Bit (5)
Device number selection. This bit is valid only when “Skip
ATA/ATAPI Device Initialization” is active. Otherwise, the
value of this bit is ignored.
‘0’ = Drive 0 (master)
‘1’ = Drive 1 (slave)
ATAPI Reset
Bit (4)
ATAPI reset during drive initialization.
Setting this bit causes the CY7C68310 to issue an ATAPI
reset during device initialization.
ATA_NATAPI
Bit (3) – Read only.
Indicates if an ATA or ATAPI device is detected.
‘0’ = ATAPI device
‘1’ = ATA device or possible device initialization failure
Force USB FS
Bit(2)
Force USB full-speed only operation.
Setting this bit prevents the CY7C68310 from negotiating
HS operation during USB reset events.
‘0’ = Normal operation – allow HS negotiation during USB
reset
Document 38-08030 Rev. *H
Page 14 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Field Description
Required
I2C Data
Example
I2C Data
‘1’ = USB FS only – do not allow HS negotiation during USB
reset
VS/MSC SOFT_RESET
Bit(1)
Vendor-specific/MSC SOFT_RESET control.
‘0’ = Vendor-specific USB command utilized for
SOFT_RESET
‘1’ = Mass Storage Class USB command utilized for
SOFT_RESET
DISKRDY Polarity
Bit (0)
DISKRDY active polarity. DISKRDY Polarity is ignored if
IMODE is set to ‘1’. During IMODE operation DISKRDY
polarity is active HIGH.
‘0’ = Active HIGH polarity
‘1’ = Active LOW polarity
0x06
ATA Command Designator
Value in CBW CB field that designates if the CB is decoded
as vendor-specific ATA/CFG commands instead of the
ATAPI command block.
0x24
0x07
Reserved
Bits (7:1)– must be set to ‘0’.
0x01
Retry ATAPI
Bit (0)
This bit enables the CY7C68310 to accommodate ATAPI
devices that take longer to initialize than what is allowed in
the ATA/ATAPI-6 specification.
‘1’ = Retry ATAPI commands
‘0’ = Normal ATAPI timing
0x08
Initialization Status
Bit (7) – Read only
0x00
Drive Initialization Status.
If set, indicates the drive initialization sequence state
machine is active.
Force ATA Device
Bit (6)
Allows software to manually enable ATA Translation with
devices that do not support CY7C68310 device initialization
algorithms. Force ATA Device must be set to ‘1’ in
conjunction with Skip ATA/ATAPI Device Initialization and
ATA Translation Enable.
Skip ATA/ATAPI Device Initial- Bit (5)
ization
Forces the CY7C68310 to skip device initialization upon
startup. This bit should be cleared for IMODE operation. The
USB device driver must initialize the attached device (if
required) when this bit is set. For ATAPI devices, the host
driver must issue an IDENTIFY command utilizing ATA.
‘0’ = normal operation
‘1’ = only reset the device and write the device control
register prior to processing commands
Reserved
Last LUN Identifier
Bits (4:3) – must be set to ‘0’.
Bits (2:0)
Maximum number of LUNs device supports.
0x09
ATAEN
Bit (7) – Read only.
0x01
Holds the current logic state of the ATAEN pin.
Document 38-08030 Rev. *H
Page 15 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Field Description
Reserved
Bits (6:1) – must be set to ‘0’.
SRST Enable
Bit (0)
Required
I2C Data
Example
I2C Data
Soft-reset during drive initialization.
‘0’ = Disable soft-reset functionality
‘1’ = Enable soft-reset during drive initialization
0x0A
ATA Data Assert
Bits (7:4)
0x20
ATA cycle times are calculated using Data Assert and Data
Recover values.
Standard values for ATA-compliant devices and a 30.0-MHz
system clock (in binary):
ATA Data Recover
mode 0
0101
(5+1)*33.33 = 200 ns
mode 1
0011
(3+1)*33.33 = 133 ns
mode 2
0011
(3+1)*33.33 = 133 ns
mode 3
0010
(2+1)*33.33 = 100 ns
mode 4
0010
(2+1)*33.33 = 100 ns
Bits (3:0)
Standard recover values and cycle times for ATA-compliant
devices and a 30.0 MHz system clock (in binary):
0x0B
ATA Data Set-up
mode 0
1100
(4+1)+(12+1)*33.33 = 600 ns
mode 1
0111
(3+1)+(7+1)*33.33 = 400 ns
mode 2
0011
(2+1)+(3+1)*33.33 = 233 ns
mode 3
0010
(2+1)+(2+1)*33.33 = 200 ns
mode 4
0000
(2+1)+(0+1)*33.33 = 133 ns
Bits (7:5)
0x00
Set-up time is only incurred on the first data cycle of a burst.
Standard values for ATA-compliant devices and a 30.0 MHz
system clock are (in binary):
Drive Power Valid Polarity
mode 0
010
(2+1)*33.33 = 133 ns
mode 1
001
(1+1)*33.33 = 66 ns
mode 2
001
(1+1)*33.33 = 66 ns
mode 3
001
(1+1)*33.33 = 66 ns
mode 4
000
(0+1)*33.33 = 33 ns
Bit (4)
Controls the polarity of DRVPWRVLD pin.
‘0’ = Active LOW (“connector ground” indication)
‘1’ = Active HIGH (power indication from device)
Override PIO Timing
Bit (3)
This field is used in conjunction with ATA Data Set-up, ATA
Data Assertion, ATA Data Recover, and PIO Mode Selection
fields.
‘0’ = Use timing information acquired from the Drive
‘1’ = Override device timing information with configuration
values
Drive Power Valid Enable
Document 38-08030 Rev. *H
Bit (2)
Page 16 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Field Description
Required
I2C Data
Example
I2C Data
Enable for the DRVPWRVLD pin. DRVPWRVLD is typically
only be enabled in applications where the CY7C68310 is
VBUS powered.
‘0’ = pin disabled (most systems)
‘1’ = pin enabled
ATA Read Kludge
Bit(1)
PIO data read high-Z control. Enabling this will high-Z the
ATA data bus during PIO read operations while addressing
the data register. In most applications this bit is set to ‘0.’
‘0’ = Normal operation as per ATA/ATAPI interface specification
‘1’ = High-Z DD[15:0] during PIO data register reads
IMODE
Bit (0) – Read only
This bit reflects the state of the IMODE input pin at start-up.
0x0C
SYSIRQ
Bits(7) – Read only
0x3C
This bit reflects the current logic state of the SYSIRQ input.
DISKRDY
Bit(6) – Read only
This bit reflects the current logic state of the DISKRDY input.
ATA Translation Enable
Bit(5)
Enable ATAPI to ATA protocol translation enable. If enabled,
AND if an ATA device is detected, ATA translation is enabled.
If Skip ATA/ATAPI Device Initialization is set ‘1,’ Force ATA
Device must also be set ‘1’ in order to utilize ATA translation.
‘0’ = ATA Translation Disabled
‘1’ = ATA Translation Enable
ATA UDMA Enable
Bit(4)
Enable Ultra Mode data transfer support for ATA devices. If
enabled, AND the ATA device reports UDMA support, the
CY7C68310 will utilize UDMA data transfers.
‘0’ = Disable ATA device UDMA support
‘1’ = Enable ATA device UDMA support
ATAPI UDMA Enable
Bit(3)
Enable Ultra Mode data transfer support for ATAPI devices.
If enabled, AND the ATAPI device reports UDMA support,
the CY7C68310 will utilize UDMA data transfers.
‘0’ = Disable ATAPI device UDMA support
‘1’ = Enable ATAPI device UDMA support
ROM UDMA Mode
Bits(2:0)
ROM UDMA Mode indicates the highest UDMA mode
supported by the product. The CY7C68310 will utilize the
lesser of ROM UDMA Mode and the highest mode
supported by the device. UDMA read operation mode timing
is controlled by the device.
Document 38-08030 Rev. *H
mode 0
000
133.3 ns per 16-bit word write
mode 1
001
100 ns per 16-bit word write
mode 2
010
66.7 ns per 16-bit word write
mode 3
011
66.7 ns per 16-bit word write
mode 4
100
33.3 ns per 16-bit word write
Page 17 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
0x0D
Field Name
PIO Mode Selection
Field Description
Bits (7:5)
Required
I2C Data
Example
I2C Data
0x90
PIO Mode Selection. The PIO mode reported back to the
device if the Override PIO Timing configuration bit is set.
Skip Pin Reset
mode 0
000
mode 1
001
mode 2
010
mode 3
011
mode 4
100
Bit (4)
Skip nATARST assertion. Setting this bit prevents the
CY7C68310 from asserting nATARST during initialization of
the ATA/ATAPI device. If this bit is set to ‘1’, SRST Enable
(address 0x09, bit 0) must also be set to ‘1’.
‘0’ = Allow nATARST assertion
‘1’ = Disable nATARST assertion
Reserved
0x0E
SYSIRQ User-defined Bits
Bits (3:0) – must be set to ‘0’.
Bits (7:3)
0x00
SYSIRQ USER_DEF[4:0] bits.
The value of these bits will be returned to the host via the
USB interrupt pipe as stated in Section 4.3.6.
General Purpose IO
Bits(2:0)
GPIO[2:0] pin values.
When the GPIO pins are configured as outputs, writing to
these bits will set the logic value of the GPIO pins to ‘0’ or ‘1’.
Reading this address, regardless of whether the GPIO pins
are set to input or output, returns the logic value from the
GPIO pins.
0x0F
ATAPI IRQ Disable
Bit (7)
0x07
Disables the use of the ATAIRQ signal with ATAPI devices.
‘0’ = ATAIRQ use enabled
‘1’ = ATAIRQ use disabled
Reserved
Bit (6) – must be set to ‘0’.
Int Reason Disable
Bit (5)
Setting to a ‘1’ causes CY7C68310 to ignore the contents of
the interrupt reason register when talking to an ATAPI
device.
HS Indicator Enable
Bit (4)
Enables GPIO2_nHS pin to indicate the current operating
speed of the device (if output is enabled).
‘0’ = normal GPIO operation
‘1’ = high-speed indicator enable
Reserved
Bit (3) – must be set to ‘1’.
General Purpose IO Pin
Enable
Bits (2:0)
GPIO[2:0] high-Z control. These bits have precedence over
bit 4 of this byte.
‘0’ = Output enabled (GPIO pin is an output).
‘1’ = high-Z (GPIO pin is an input).
Document 38-08030 Rev. *H
Page 18 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Field Description
Required
I2C Data
Example
I2C Data
USB Device Descriptor
0x10
bLength
Length of device descriptor in bytes.
0x12
0x11
bDescriptor Type
Descriptor type for device descriptor.
0x01
0x12
bcdUSB (LSB)
USB Specification release number in BCD.
0x00
0x13
bcdUSB (MSB)
0x14
bDeviceClass
Device class.
0x02
0x15
bDeviceSubClass
Device subclass.
0x00
0x16
bDeviceProtocol
Device protocol.
0x00
0x17
bMaxPacketSize0
Maximum USB packet size supported.
0x18
idVendor (LSB)
Vendor ID.
0x19
idVendor (MSB)
0x1A
idProduct (LSB)
0x00
0x40
0xB4
0x04
Product ID.
0x31
0x1B
idProduct (MSB)
0x1C
bcdDevice (LSB)
Device release number in BCD lsb (product release
number).
0x68
0x00
0x1D
bcdDevice (MSB)
Device release number in BCD msb (silicon release
number). This field entry is always returned from internal
ROM contents, regardless of the descriptor source.
0x01
0x1E
iManufacturer
Index to manufacturer string. This entry must equal half of
the address value where the string starts or 0 if the string
does not exist.
0x49
0x1F
iProduct
Index to product string. This entry must equal half of the
address value where the string starts or 0 if the string does
not exist.
0x5F
0x20
iSerialNumber
Index to serial number string. This entry must equal half of
the address value where the string starts or 0 if the string
does not exist. The USB Mass Storage Class Bulk Only
Transport Specification requires a unique serial number.
0x73
0x21
bNumConfigurations
Number of configurations supported.
0x01
USB Device Qualifier Descriptor
0x22
bLength
Length of device descriptor in bytes.
0x0A
0x23
bDescriptorType
Descriptor type.
0x06
0x24
bcdUSB (LSB)
USB specification release number in BCD.
0x25
bcdUSB (MSB)
0x26
bDeviceClass
Device class.
0x00
0x27
bDeviceSubClass
Device subclass.
0x00
0x28
bDeviceProtocol
Device protocol.
0x29
bMaxPacketSize0
Maximum USB packet size supported.
0x2A
bNumConfigurations
Number of configurations supported.
0x01
0x2B
bReserved
Reserved. Must be set to 0.
0x00
0x00
0x02
0x00
0x40
USB Standard Configuration Descriptor (VBUSPWRD Asserted)
0x2C
bLength
Length of Configuration descriptor in bytes.
0x2D
bDescriptorType
Descriptor type.
0x02
0x2E
bTotalLength (LSB)
0x27
0x2F
bTotalLength (MSB)
Number of bytes returned in this configuration. This includes
the configuration descriptor plus all the interface and
endpoint descriptors.
Document 38-08030 Rev. *H
0x09
0x00
Page 19 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Field Description
Required
I2C Data
0x30
bNumInterfaces
Number of interfaces supported. The CY7C68310 only
supports one interface.
0x01
0x31
bConfiguration Value
The value to use as an argument to Set Configuration to
select the configuration. This value must be set to 0x02.
0x02
0x32
iConfiguration
Index to the configuration string. This entry must equal half
of the address value where the string starts or 0x00 if the
string does not exist.
0x33
bmAttributes
0x34
bMaxPower
Device attributes for this configuration. Configuration
characteristics:
Bit Description
On board default
7
Reserved. Set to ‘1’ ‘1’
6
Self powered
‘0’ = Bus-powered device
5
Remote wake-up
‘0’
4:0 Reserved. Set to ‘0’ ‘0’
Maximum power consumption for this configuration. Units
used are mA*2 (i.e., 0x31 = 98 mA, 0xF9 = 498 mA).
Example
I2C Data
0x00
0x80
or
0xA0
0xF9
USB Other Speed Configuration Descriptor (VBUSPWRD Asserted)
0x35
bLength
Length of Configuration descriptor in bytes.
0x09
0x36
bDescriptorType
Descriptor type.
0x07
0x37
bTotalLength (LSB)
0x27
0x38
bTotalLength (MSB)
Number of bytes returned in this configuration. This includes
the configuration descriptor plus all the interface and
endpoint descriptors.
0x39
bNumInterfaces
Number of interfaces supported. The CY7C68310 only
supports one interface.
0x01
0x3A
bConfigurationValue
The value to use as an argument to Set Configuration to
select the configuration. This value must be set to 0x02.
0x02
0x3B
iConfiguration
Index to the configuration string. This entry must equal half
of the address value where the string starts or 0x00 if the
string does not exist.
0x3C
bmAttributes
Device attributes for this configuration. Configuration
characteristics:
Bit Description
On board default
7
Reserved. Set to ‘1’ ‘1’
6
Self powered
‘0’ = Bus-powered device
5
Remote wake-up
‘0’
4:0 Reserved. Set to ‘0’ ‘0’
0x3D
bMaxPower
Maximum power consumption for this configuration. Units
used are mA*2 (i.e., 0x31 = 98 mA, 0xF9 = 498 mA).
0x00
0x00
0x80
or
0xA0
0xF9
USB Interface Descriptor (High-speed)
0x3E
bLength
Length of interface descriptor in bytes.
0x09
0x3F
bDescriptorType
Descriptor type.
0x04
0x40
bInterfaceNumber
Interface number.
0x00
0x41
bAlternateSettings
Alternate settings.
0x00
0x42
bNumEndpoints
Number of endpoints.
0x03
0x43
bInterfaceClass
Interface class.
0x08
0x44
bInterfaceSubClass
Interface subclass.
0x06
0x45
bInterfaceProtocol
Interface protocol.
0x50
0x46
iInterface
Index to first interface string. This entry must equal half of
the address value where the string starts or zero if the string
does not exist.
0x00
Document 38-08030 Rev. *H
Page 20 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Field Description
Required
I2C Data
Example
I2C Data
USB Bulk Out Endpoint (High-speed)
0x47
bLength
Length of this descriptor in bytes.
0x48
bDescriptorType
Endpoint descriptor type.
0x05
0x49
bEndpointAddress
This is an Out endpoint, endpoint number 1.
0x01
0x4A
bmAttributes
This is a bulk endpoint.
0x02
0x4B
wMaxPacketSize (LSB)
Max data transfer size.
0x00
High-speed interval for polling (max NAK rate).
0x01
Length of this descriptor in bytes.
0x07
0x4C
wMaxPacketSize (MSB)
0x4D
bInterval
0x07
0x02
USB Bulk In Endpoint (High-speed)
0x4E
bLength
0x4F
bDescriptorType
Endpoint descriptor type.
0x05
0x50
bEndpointAddress
This is an In endpoint, endpoint number 2.
0x82
0x51
bmAttributes
This is a bulk endpoint.
0x02
0x52
wMaxPacketSize (LSB)
Max data transfer size.
0x00
High-speed interval for polling (max NAK rate).
0x01
Length of this descriptor in bytes.
0x07
0x53
wMaxPacketSize (MSB)
0x54
bInterval
0x02
USB Interrupt Endpoint (High-speed)
0x55
bLength
0x56
bDescriptorType
Endpoint descriptor type.
0x05
0x57
bEndpointAddress
This is an In endpoint, endpoint number 3.
0x83
0x58
bmAttributes
This is an interrupt endpoint.
0x03
0x59
wMaxPacketSize (LSB)
Max data transfer size.
0x02
0x5A
wMaxPacketSize (MSB)
0x5B
bInterval
High-speed interval for polling (max NAK rate).
0x0C
0x00
0x5C
Reserved
Reserved.
0x00
USB Interface Descriptor (Full-speed)
0x5D
bLength
Length of interface descriptor in bytes.
0x09
0x5E
bDescriptorType
Descriptor type.
0x04
0x5F
bInterfaceNumber
Interface number.
0x00
0x60
bAlternateSettings
Alternate settings
0x00
0x61
bNumEndpoints
Number of endpoints.
0x03
0x62
bInterfaceClass
Interface class.
0x08
0x63
bInterfaceSubClass
Interface subclass.
0x06
0x64
bInterfaceProtocol
Interface protocol.
0x50
0x65
iInterface
Index to first interface string. This entry must equal half of
the address value where the string starts or zero if the string
does not exist.
0x00
USB Bulk Out Endpoint (Full-speed)
0x66
bLength
Length of this descriptor in bytes.
0x07
0x67
bDescriptorType
Endpoint descriptor type.
0x05
0x68
bEndpointAddress
This is an Out endpoint, endpoint number 1.
0x01
0x69
bmAttributes
This is a bulk endpoint.
0x02
0x6A
wMaxPacketSize (LSB)
Max data transfer size.
0x6B
wMaxPacketSize (MSB)
Document 38-08030 Rev. *H
0x40
0x00
Page 21 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
0x6C
Field Name
bInterval
Field Description
Required
I2C Data
High-speed interval for polling (max NAK rate). Does not
apply to FS bulk endpoints, set to zero.
0x00
Length of this descriptor in bytes.
0x07
Example
I2C Data
USB Bulk In Endpoint (Full-speed)
0x6D
bLength
0x6E
bDescriptorType
Endpoint descriptor type.
0x05
0x6F
bEndpointAddress
This is an In endpoint, endpoint number 2.
0x82
0x70
bmAttributes
This is a bulk endpoint.
0x02
0x71
wMaxPacketSize (LSB)
Max data transfer size.
0x40
0x72
wMaxPacketSize (MSB)
0x73
bInterval
0x00
High-speed interval for polling (max NAK rate). Does not
apply to FS bulk endpoints, set to zero.
0x00
USB Interrupt Endpoint (Full-speed)
0x74
bLength
Length of this descriptor in bytes.
0x07
0x75
bDescriptorType
Endpoint descriptor type.
0x05
0x76
bEndpointAddress
This is an In endpoint, endpoint number 3.
0x83
0x77
bmAttributes
This is an interrupt endpoint.
0x03
0x78
wMaxPacketSize (LSB)
Max data transfer size.
0x79
wMaxPacketSize (MSB)
0x02
0x00
0x7A
bInterval
High-speed interval for polling (max NAK rate).
0xFF
0x7B
Reserved
Reserved.
0x00
USB String Descriptor – Index 0 (LANGID)
0x7C
bLength
LANGID descriptor length.
0x04
0x03
0x7D
bDescriptorType
Descriptor type.
0x7E
LANGID (lsb)
0x7F
LANGID (msb)
Language supported (0x0409 = US English). CY7C68310
only supports one language code
0x09
0x04
USB Standard Configuration Descriptor (VBUSPWRD Deasserted)
0x80
bLength
Length of Configuration descriptor in bytes.
0x09
0x81
bDescriptorType
Descriptor type.
0x02
0x82
bTotalLength (LSB)
bTotalLength (MSB)
Number of bytes returned in this configuration. This includes
the configuration descriptor plus all the interface and
endpoint descriptors.
0x27
0x83
0x84
bNumInterfaces
Number of interfaces supported. The CY7C68310 only
supports one interface.
0x01
0x85
bConfigurationValue
The value to use as an argument to Set Configuration to
select the configuration. This value must be set to 0x02.
0x02
0x86
iConfiguration
Index to the configuration string. This entry must equal half
of the address value where the string starts or 0x00 if the
string does not exist.
0x87
bmAttributes
Device attributes for this configuration. Configuration
characteristics:
0x88
bMaxPower
Document 38-08030 Rev. *H
Bit Description
On board default
7
Reserved. Set to ‘1’ ‘1’
6
Self powered.
‘1’ = Self-powered device
5
Remote wake-up.
‘0’
4:0 Reserved. Set to ‘0’ ‘0’
Maximum power consumption for this configuration. Units
used are mA*2 (i.e., 0x31 = 98 mA, 0xF9 = 498 mA).
0x00
0x00
0xC0
or
0xE0
0x31
Page 22 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Field Description
Required
I2C Data
Example
I2C Data
USB Other Speed Configuration Descriptor (VBUSPWRD Deasserted)
0x89
bLength
Length of Configuration descriptor in bytes.
0x8A
bDescriptorType
Descriptor type.
0x07
0x8B
bTotalLength (LSB)
0x27
0x8C
bTotalLength (MSB)
Number of bytes returned in this configuration. This includes
the configuration descriptor plus all the interface and
endpoint descriptors.
0x8D
bNumInterfaces
Number of interfaces supported. The CY7C68310 only
supports one interface.
0x01
0x8E
bConfigurationValue
The value to use as an argument to Set Configuration to
select the configuration. This value must be set to 0x02.
0x02
0x8F
iConfiguration
Index to the configuration string. This entry must equal half
of the address value where the string starts or 0x00 if the
string does not exist.
0x90
bmAttributes
Device attributes for this configuration. Configuration
characteristics:
Bit
7
6
5
4:0
0x91
bMaxPower
Description
Reserved. Set to ‘1’
Self powered
Remote wake-up
Reserved. Set to ‘0’
0x09
0x00
0x00
0xC0
or
0xE0
On board default
‘1’
‘1’ = Self-powered device
‘0’
‘0’
Maximum power consumption for this configuration. Units
used are mA*2 (i.e. 0x31 = 98 mA, 0xF9 = 498 mA).
0x31
String descriptor length in bytes.
0x2C
USB String Descriptor – Manufacturer
0x92
bLength
0x93
bDescriptorType
Descriptor type.
0x94
bString
Unicode character LSB.
0x95
bString
Unicode character MSB.
0x00
0x96
bString
Unicode character LSB.
0x79 (“y”)
0x97
bString
Unicode character MSB.
0x00
0x98
bString
Unicode character LSB.
0x70 (“p”)
0x99
bString
Unicode character MSB.
0x00
0x9A
bString
Unicode character LSB.
0x72 (“r”)
0x9B
bString
Unicode character MSB.
0x00
0x9C
bString
Unicode character LSB.
0x65 (“e”)
0x9D
bString
Unicode character MSB.
0x00
0x9E
bString
Unicode character LSB.
0x73 (“s”)
0x9F
bString
Unicode character MSB.
0x00
0xA0
bString
Unicode character LSB.
0x73 (“s”)
0xA1
bString
Unicode character MSB.
0x00
0xA2
bString
Unicode character LSB.
0x20 (“ ”)
0xA3
bString
Unicode character MSB.
0x00
0xA4
bString
Unicode character LSB.
0x53 (“S”)
0xA5
bString
Unicode character MSB.
0x00
0xA6
bString
Unicode character LSB.
0x65 (“e”)
0xA7
bString
Unicode character MSB.
0x00
Document 38-08030 Rev. *H
0x03
0x43 (“C”)
Page 23 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Field Description
Required
I2C Data
Example
I2C Data
0xA8
bString
Unicode character LSB.
0x6D (“m”)
0xA9
bString
Unicode character MSB.
0x00
0xAA
bString
Unicode character LSB.
0x69 (“i”)
0xAB
bString
Unicode character MSB.
0x00
0xAC
bString
Unicode character LSB.
0x63 (“c”)
0xAD
bString
Unicode character MSB.
0x00
0xAE
bString
Unicode character LSB.
0x6F (“o”)
0xAF
bString
Unicode character MSB.
0x00
0xB0
bString
Unicode character LSB.
0x6E (“n”)
0xB1
bString
Unicode character MSB.
0x00
0xB2
bString
Unicode character LSB.
0x64 (“d”)
0x1B
bString
Unicode character MSB.
0x00
0xB4
bString
Unicode character LSB.
0x75 (“u”)
0xB5
bString
Unicode character MSB.
0x00
0xB6
bString
Unicode character LSB.
0x63 (“c”)
0xB7
bString
Unicode character MSB.
0x00
0xB8
bString
Unicode character LSB.
0x74 (“t”)
0x1B
bString
Unicode character MSB.
0x00
0xBA
bString
Unicode character LSB.
0x6F (“o”)
0xBB
bString
Unicode character MSB.
0x00
0xBC
bString
Unicode character LSB.
0x72 (“r”)
0xBD
bString
Unicode character MSB.
0x00
bLength
String descriptor length in bytes.
0x2A
0xBF
bDescriptorType
Descriptor Type.
0xC0
bString
Unicode character LSB.
0xC1
bString
Unicode character MSB.
0x00
0x1C
bString
Unicode character LSB.
0x53 (“S”)
0xC3
bString
Unicode character MSB.
0x00
0xC4
bString
Unicode character LSB.
0x52 (“B”)
0xC5
bString
Unicode character MSB.
0x00
0xC6
bString
Unicode character LSB.
0x20 (“ ”)
0xC7
bString
Unicode character MSB.
0x00
0xC8
bString
Unicode character LSB.
0x53 (“S”)
0xC9
bString
Unicode character MSB.
0x00
0xCA
bString
Unicode character LSB.
0x74 (“t”)
0xCB
bString
Unicode character MSB.
0x00
0xCC
bString
Unicode character LSB.
0x6F (“o”)
0xCD
bString
Unicode character MSB.
0x00
0xCE
bString
Unicode character LSB.
0x72 (“r”)
0xCF
bString
Unicode character MSB.
0x00
0xD0
bString
Unicode character LSB.
0x61 (“a”)
0xD1
bString
Unicode character MSB.
0x00
USB String Descriptor – Product
0xBE
Document 38-08030 Rev. *H
0x03
0x55 (“U”)
Page 24 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Field Description
Required
I2C Data
Example
I2C Data
0xD2
bString
Unicode character LSB.
0x67 (“g”)
0xD3
bString
Unicode character MSB.
0x00
0xD4
bString
Unicode character LSB.
0x65 (“e”)
0xD5
bString
Unicode character MSB.
0x00
0xD6
bString
Unicode character LSB.
0x20 (“ ”)
0xD7
bString
Unicode character MSB.
0x00
0xD8
bString
Unicode character LSB.
0x41 (“A”)
0xD9
bString
Unicode character MSB.
0x00
0xDA
bString
Unicode character LSB.
0x64 (“d”)
0xDB
bString
Unicode character MSB.
0x00
0xDC
bString
Unicode character LSB.
0x61 (“a”)
0xDD
bString
Unicode character MSB.
0x00
0xDE
bString
Unicode character LSB.
0x70 (“p”)
0xDF
bString
Unicode character MSB.
0x00
0xE0
bString
Unicode character LSB.
0x74 (“t”)
0xE1
bString
Unicode character MSB.
0x00
0xE2
bString
Unicode character LSB.
0x65 (“e”)
0xE3
bString
Unicode character MSB.
0x00
0xE4
bString
Unicode character LSB.
0x72 (“r”)
0xE5
bString
Unicode character MSB.
0x00
bLength
String descriptor length in bytes.
0x1A
0xE7
bDescriptorType
Descriptor type.
0x03
0xE8
bString
Unicode character LSB.
0xXX
0xE9
bString
Unicode character MSB.
0x00
0xEA
bString
Unicode character LSB.
0xXX
0xEB
bString
Unicode character MSB.
0x00
0xEC
bString
Unicode character LSB.
0xXX
0xED
bString
Unicode character MSB.
0x00
0xEE
bString
Unicode character LSB.
0xXX
0xEF
bString
Unicode character MSB.
0x00
0xF0
bString
Unicode character LSB.
0xXX
0xF1
bString
Unicode character MSB.
0x00
0xF2
bString
Unicode character LSB.
0xXX
0xF3
bString
Unicode character MSB.
0x00
0xF4
bString
Unicode character LSB.
0xXX
0xF5
bString
Unicode character MSB.
0x00
0xF6
bString
Unicode character LSB.
0xXX
0xF7
bString
Unicode character MSB.
0x00
0xF8
bString
Unicode character LSB.
0xXX
0xF9
bString
Unicode character MSB.
0x00
0xFA
bString
Unicode character LSB.
0xXX
0xFB
bString
Unicode character MSB.
0x00
USB String Descriptor – Serial Number
0xE6
Document 38-08030 Rev. *H
Page 25 of 34
CY7C68310
Table 6-2. EEPROM Organization (continued)
I2C
Address
Field Name
Required
I2C Data
Field Description
Example
I2C Data
0xFC
bString
Unicode character LSB.
0xXX
0xFD
bString
Unicode character MSB.
0x00
0xFE
bString
Unicode character LSB.
0xXX
0xFF
bString
Unicode character MSB.
0x00
6.3
Programming the EEPROM
2
Programming of the I C memory device can be accomplished
using an external device programmer, CY7C68310 supported
vendor-specific USB commands, or an in-system programmer
such as a bed of nails. Table 6-3 shows the format of the
vendor-specific commands used to program the EEPROM via
USB. Any vendor-specific USB write request to the Serial
ROM device configuration space will simultaneously update
internal configuration register values as well. If the I2C device
is programmed without vendor specific USB commands,
CY7C68310 must be synchronously reset (nRESET) before
configuration data is reloaded.
Table 6-3. EEPROM-related Vendor-specific Commands
Label
bmRequestType bRequest
LOAD_CONFIG_DATA
0x40
0x01
READ_CONFIG_DATA
0xC0
0x02
wValue
Data Source
This request enables configuration data writes to the data
source specified by the wValue field. The wIndex field
specifies the starting address and the wLength field denotes
the data length in bytes.
Legal values for wValue are as follows:
• 0x0000 Configuration bytes, address range 0x2 – 0xF
• 0x0002 External I2C memory device.
Configuration byte writes must be constrained to addresses
0x2 through 0xF, as shown in Table 6-2. Attempts to write
outside this address space will result in a STALL condition.
Configuration byte writes only overwrite CY7C68310 Configuration Byte registers, the original data source remains
unchanged (I2C-compatible memory device, FBh identify data,
or internal ROM).
Single byte writes to the I2C-compatible memory devices can
start at any address. Writes greater then a single byte must
only start on eight-byte boundaries, meaning that the address
Starting Address Data Length
Data
Configuration
Data
Configuration
Data
value must be evenly divisible by eight. Writes to I2Ccompatible memory devices must not cross 256-byte page
boundaries, i.e., start and finish write addresses must have
equal modulo 256 values. Write operations with beginning and
end addresses that do not fall in the same 256-byte page will
result in a STALL condition. Illegal values for wValue as well
as attempts to write to an I2C-compatible memory device when
none is connected will result in a STALL condition.
6.3.2
LOAD_CONFIG_DATA
Document 38-08030 Rev. *H
wLength
Data Destination Starting Address Data Length
The CY7C68310 supports a subset of the “slow mode” specification (100 KHz) required for 24LCXXB EEPROM family
device support. Features such as “Multi-Master,” “Clock
Synchronization” (the SCL pin is output only), “10-bit
addressing,” and “CBUS device support” are not supported.
Vendor-specific USB commands allow the CY7C68310 to
address up to 2 Kbytes of data (although configuration/descriptor information is limited to 512 bytes of register
space).
6.3.1
wIndex
READ_CONFIG_DATA
This USB request allows data retrieval from the data source
specified by the wValue field. Data is retrieved beginning at the
address specified by the wIndex field. The wLength field
denotes the length in bytes of data requested from the data
source.
Legal values for wValue are as follows:
• 0x0000 Configuration bytes, addresses 0x0 – 0xF only
• 0x0001 Internal ROM
• 0x0002 External I2C-compatible memory device
• 0x0003 Vendor-specific identify (FBh) data
Illegal values for wValue will result in a STALL condition on the
USB port. Attempted reads from an I2C-compatible memory
device when none is connected or attempted reads from FBh
data when not in IMODE will result in a STALL condition.
Attempts to read configuration bytes with starting addresses
greater than 0xF will also result in a STALL condition.
Page 26 of 34
CY7C68310
7.0
7.1
Timing Characteristics
I2C-compatible Memory Device Interface Timing
Thigh
Tlow
SCL
TSU:STA
THD:DAT
THD:STA
TSU:STO
TSU:DAT
SDA OUT
TBUF
TDSU
SDA IN
I2C-compatible Device Parameter
Symbol
Value
Clock high time
Thigh
5066 ns
Clock low time
Tlow
5066 ns
Start condition hold time
THD:STA
5066 ns
Start condition set-up time
TSU:STA
5066 ns
Data output hold time
THD:DAT
5066 ns
Data output set-up time
TSU:DAT
5066 ns
Stop condition set-up time
TSU:STO
5066 ns
TDSU
500 ns
TBUF
5066 ns
Required data valid before clock
Min time bus must be free before next transmission
Figure 7-1. I2C Interface Timing
7.2
USB Interface Timing
The CY7C68310 transceiver complies to the timing characteristics as stated in the USB Specification version 2.0. The
CY7C68310 can operate at either the high-speed or full-speed
signalling rate.
7.3
ATA/ATAPI Interface Timing
The ATA interface supports ATA PIO modes 0 to 4, and Ultra
DMA modes 0 to 4, per the ATA Attachment – 6 with Packet
Interface revision 3b. All input signals on the ATA/ATAPI port
are considered asynchronous and are synchronized to the
chip's internal system clock. All output signals are clocked
using the chip’s internal system clock, for which there is no
external reference. Thus, the output signals should also be
considered asynchronous. The PIO mode used for data
register accesses is retrieved from the device or specified in
the CY7C68310 configuration bytes.
7.4
External Clock Source Timing
frequency is measured at one half of the 2.5V power source
(VDD25). The CY7C68310 internal PLL can be clocked using
either a 30-MHz (±0.005%) fundamental-mode crystal or a
2.5V, 50% duty-cycle square wave. The recommended
external clock source for the CY7C68310 is the PRE
XH30PRF10BL crystal (10-pF load capacitance).
7.5
Reset Timing
The CY7C68310 requires an off-chip power-on reset circuit.
nRESET must be held asserted for a minimum of 1 ms after
power is stable to cause a chip reset.
8.0
External Circuitry Requirements
Certain external components are required for proper
CY7C68310 operation. The following figure details the
minimum required circuitry for normal operation. Additional
components may be required to support configurable
CY7C68310 features, if utilized.
The CY7C68310 derives its internal system clock from an
external clock source. The external clock input signal
Document 38-08030 Rev. *H
Page 27 of 34
CY7C68310
3.3V
1.5KΩ
3.3V
RPU
1.5KΩ
1.5KΩ
SDA
DP
SCL
RSDP
CY7C68310
39Ω
RREF
RSDM
D39Ω
39KΩ
VBUSPWRVLD
XO
XI
TMC[1:2]
AVSS
DM
SCANEN
2.4KΩ
(1%)
D+
VBUS
62KΩ
30MHz
0.1µF
100Ω
9pF
9pF
Figure 8-1. External Circuitry Requirements
8.1
ATA Interface Termination
Design practices as outlined in the ATA/ATAPI-6 specification
for signal integrity should be followed with systems that utilize
a ribbon cable interconnect between the CY7C68310’s ATA
interface and the attached ATA/ATAPI device, especially if
Ultra DMA Mode is utilized.
8.2
Power Supply Regulation
At no time should the 3.3V power rail drop below the 2.5V rail
for proper device operation. Care should be taken to ensure
that the power rails rise and fall without allowing the 3.3V supply
to drop below the 2.5V supply. The recommended method is
to cascade voltage regulating circuits such that the 2.5V supply
is powered from the 3.3V supply.
8.3
Pull-ups/Pull-downs on High-Z Pins
Certain output pins act as open-drain and remain at a high-Z
state unless asserting a ‘0.’ These pins include SCL, SDA,
LOWPWR, and nPWR500. If their functionality is utilized,
these pins must be tied to pull-up resistors to avoid floating
while in a high-Z state. These pins can be left as no-connects
if the functionality is not utilized.
9.0
port
Manufacturing Interconnect Test Sup-
Manufacturing Test Mode is provided as a means to implement
board- and system-level interconnect tests. During Manufacturing Test Mode operation, all outputs not associated directly
with USB operation are controllable. Normal state machine
and register control of output pins are disabled. Two vendorspecific
USB
requests
(LOAD_MFG_DATA
and
READ_MFG_DATA) are used in Manufacturing Test Mode
operation.
9.1
LOAD_MFG_DATA
This USB request is used to enable and control Manufacturing
Test Mode operation. While in Manufacturing Test Mode,
individual pins may be asserted or deasserted depending
upon the contents of the data field. The DD and GPIO pins may
also be set to a high-Z state in preparation for
READ_MFG_DATA command operations. Control of the
select CY7C68310 I/O pins and their high-Z controls are
mapped to the USB data packet associated with this request.
Table 9-1. LOAD_MFG_DATA Command Format
Label
bmRequestType
bRequest
wValue
wIndex
wLength
Data
LOAD_MFG_DATA
0x40
0x05
Disable/Enable
Starting Address
Data Length
Mfg. Test Data
Legal values for wValue are as follows:
• 0x0000
Normal operation mode – returns CY7C68310
to normal operation regardless of previous
command data sets (power-on reset default).
• 0x0001
Manufacturing Test Mode – manufacturing test
registers control specific CY7C68310 outputs
cells to enable board level testing in the manufacturing environment.
Document 38-08030 Rev. *H
Legal values for wLength are as follows:
• 0x0000
Valid only when wValue = 0x0000; used when
disabling Manufacturing Test Mode of operation
• 0x0007
Valid only when wValue = 0x0001. For proper
Manufacturing Test Mode operation, wLength must equal
0x0007. Any data packet lengths greater than 7 will result
in a STALL condition.
Page 28 of 34
CY7C68310
Table 9-2. Bit-wise Mapping of LOAD_MFG_DATA Test Data
Byte
Bit(s)
Test/High-Z Control Register Name
0
0
LOWPWR
0
1
Reserved – Value will not affect output
0
2
nPWR500
0
3
nATARST
0
4
nDIOW
0
5
nDIOR
0
6
nDMACK
0
7
ATAPUEN
1
0
Reserved – Value will not affect output
1
2:1
nCS[1:0]
1
5:3
DA[2:0]
1
6
SCL
1
7
DD_EN – ‘1’ = Enable output (set for writes), ‘0’ = high-Z DD[15:0] (set for reads)
2
7:0
DD[7:0]
3
7:0
DD[15:8]
4
2:0
GPIO[2:0]
4
3
Reserved – Value will not affect output
4
6:4
GPIO_EN[2:0] – ‘1’ = Enable output (set for writes), ‘1’ = high-Z GPIO[2:0] (set for reads)
4
7
Reserved – Value will not affect output
5
7:0
Reserved – Value will not affect output
9.2
READ_MFG_DATA
This USB request returns a “snapshot in time” of selected input
pins. The input pin states are bit-wise mapped to the USB data
packed associated with this request. CY7C68310 input pins
not associated directly with USB operation can be sampled at
any time during normal or Manufacturing Test Mode operation.
This request is independent of normal CY7C68310 state
machine control or Manufacturing Test Mode write operations.
Table 9-3. READ_MFG_DATA Command Format
Label
bmRequestType
bRequest
wValue
wIndex
wLength
Data
READ_MFG_DATA
0xC0
0x06
0x00
0x00
Data Length
Mfg. Test Data
Legal values for wValue are as follows:
•0x0000wValue must be set to 0x0000.
Legal values for wLength are as follows:
• 0x0001–0x0008 Any wLength value greater than 0x0008
will result in a STALL response.
Document 38-08030 Rev. *H
Page 29 of 34
CY7C68310
Table 9-4. Bit-wise Mapping of READ_MFG_Data Test Data
Byte
Bit(s)
Pin Name
0
0
DRVPWRVLD
0
1
VBUSPWRVLD
0
2
VBUSPWRD
0
3
DISKRDY
0
4
SYSIRQ
0
5
IORDY
0
6
DMARQ
0
7
nEJECT
1
0
ATAIRQ
1
1
Will always return ‘1’
1
2
LOWPWR
1
3
Reserved – Disregard value
1
4
nPWR500
1
5
nATARST
1
6
nDIOW
1
7
nDIOR
2
0
nDMACK
2
1
ATAPUEN
2
2
Reserved – Disregard value
2
4:3
nCS[1:0]
2
7:5
DA[2:0]
3
7:0
DD[7:0]
4
7:0
DD[15:8]
5
2:0
GPIO[2:0]
5
3
Will always return ‘0’
5
4
DD_EN
5
7:5
GPIO_EN[2:0]
6
0
MFG_SEL (manufacturing test mode enable)
6
1
ATAEN
6
2:7
Will always return ‘1’
7
7:0
Will always return ‘1’
10.0
Absolute Maximum Ratings
Storage Temperature ................................................................................................................................................ –65 to 150°C
Ambient Temperature with power supplied ..................................................................................................................... 0 to 70°C
Supply Voltage to Ground Potential ...........................................................................................................................–0.5 to 5.5 V
DC Input Voltage to Any Input Pin .............................................................................................................................–0.5 to 5.5 V
DC Voltage Applied to Outputs in high-Z ...................................................................................................................–0.5 to 5.5 V
Power Dissipation .............................................................................................................................................................235 mW
Static Discharge Voltage (Meets NEC ASIC ESD specifications IEC-GQ-6002-01 and IEC-6005-01) ...........................> 2000 V
Max Output Current per I/O port ..........................................................................................................................................20 mA
Latch-up Current .............................................................................................................................................................> 200 mA
Document 38-08030 Rev. *H
Page 30 of 34
CY7C68310
11.0
Operating Conditions
Operating temperature.................................................................................................................................................... 0 to 70°C
12.0
DC Characteristics
Min.
Typ.
Max.
Unit
VDD
Parameter
Digital voltage supply
Description
2.25
2.50
2.75
V
VDDA
Analog voltage supply
2.25
2.50
2.75
V
VDDIO
I/O cell voltage supply
3.0
3.3
3.6
V
VIH
Input high voltage
2.0
VDDIO + 0.5
V
VIL
Input low voltage
–0.5
0.8
V
2.4
VOH
Output high voltage at IOH
VOL
Output low voltage at IOL
IOH
Source current at VOH
6
mA
IOL
Sink current at VOL
6
mA
InCFG
Unconfigured Full-speed
current
High-speed
ICC
Configured
idle
mA
60
mA
2.5V Supply
36
mA
3.3V Supply
2
mA
2.5V Supply
55
mA
3.3V supply
2
mA
2.5V Supply
53
mA
3.3V Supply
11
mA
2.5V Supply
65
mA
3.3V Supply
6
mA
2.5” HDD
(See Note)
2.5V Supply
73
mA
3.3V Supply
9
mA
3.5” HDD
(See Note)
2.5V Supply
74
mA
3.3V Supply
19
mA
250
µA
High-speed
Full-speed
High-speed Compact
Flash
ISUP
Current in USB suspend
(inactive, connected)
ISLP
Current in Sleep mode
(inactive, unconnected)
V
40
Full-speed
Configured
operational
V
0.4
0.7
10
µA
Note: All values in this table assume 25°C ambient temperature and nominal voltage unless otherwise stated. All “Configured operational” measurements assume a 50/50 read/write duty cycle.
13.0
Ordering Information
Part Number
CY7C68310-80AC
CY7C68310-80AXC[1]
CY4617
[Package Type
80-Lead TQFP
80-Lead TQFP Lead-Free Package
CY7C68310 Mass Storage Reference Design Kit
Note:
1. The Lead-Free option should be used for new designs. It is recommended that existing designs migrate to Lead-Free parts.
Document 38-08030 Rev. *H
Page 31 of 34
CY7C68310
14.0
Package Diagram
80-lead Thin Plastic Quad Flat Pack (12 x 12 x 1.0 mm) A8012x12
51-85175-**
Figure 14-1. 80-pin TQFP Package Diagram
15.0
PCB Layout Recommendations
• Isolate the DP and DM traces from all other signal traces
by no less than 10 mm.
The CY7C68310 contains high-speed analog circuitry that is
• The DP and DM common mode trace impedance should be
sensitive to system noise. In particular, noise on both analog
controlled to 45Ω with total differential impedance controlled
and digital power supplies must be minimized to ensure
to 90Ω (±10%).
reliable, high-performance operation. Special attention should
•
The
VDD power plane should be as solid as possible with
also be given to the design of the frequency generation,
direct paths from the voltage regulator to all discrete comvoltage reference, and USB interface circuits. Cypress recomponents. A four layer board is required with inner layers
mends using the following guidelines in designing any product
dedicated to power and ground planes. Digital ground
that uses the CY7C68310.
should cover one entire layer of the design.
• The 3.3V power rail must remain above the 2.5V rail at all
•
Analog
and digital power planes must be isolated using intimes for proper device operation.
ductors.
• DP and DM trace lengths should be kept to within 2 mm of
• Ceramic or tantalum capacitors are required. Do not use
each other and must not exceed 37 mm in total length, with
electrolytic capacitors. Electrolytic capacitors have higher
a preferred length of 20–30 mm.
lead inductance and series resistance values that have
• Maintain a solid ground plane under the DP and DM traces.
been observed to contribute to increased power supply
Do not allow the plane to be split under these traces.
noise.
• Do not place vias on the DP or DM traces.
• Adequate bypass capacitance must be implemented very
near to the CY7C68310 power pins. One ceramic bypass
capacitor per power/ground pair is recommended.
• All termination and pull-up resistors (including DP and DM) should be placed within 5 mm of the CY7C68310 pins.
• The crystal and RREF external resistor components should be placed as near the CY7C68310 pins as possible.
Document 38-08030 Rev. *H
Page 32 of 34
CY7C68310
16.0
Disclaimers, Trademarks, and Copyrights
Purchase of I2C components from Cypress, or one of its sublicensed Associated Companies, conveys a license under the Philips
I2C Patent Rights to use these components in an I2C system, provided that the system conforms to the I2C Standard Specification
as defined by Philips. ISD-300LP is a trademark of Cypress Semiconductor. All product and company names mentioned in this
document are the trademarks of their respective holders.
Document 38-08030 Rev. *H
Page 33 of 34
© Cypress Semiconductor Corporation, 2004. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use
of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended to be
used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its
products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress
products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.
CY7C68310
Document History Page
Description Title: CY7C68310 ISD-300LP™ Low-Power USB 2.0 to ATA/ATAPI Bridge IC
Document Number: 38-08030
REV.
ECN No. Issue Date
Orig. of
Change
Description of Change
**
118297
09/18/02
BHA
New Data Sheet
*A
120307
12/12/02
GIR
Revised for Preliminary status
*B
123509
04/04/03
GIR
Revised to include first silicon information
*C
126049
04/07/03
CVR
Post to external website CY7C68310-80AC
*D
126323
05/21/03
GIR
Updated Suspend Current and included Sleep Mode in Section 12.0
Added ESD Testing Methodology and Power Dissipation values to Section 10.0
Revised for Final status
*E
127185
06/05/03
BEH
Changed Static Discharge voltage to > 2000V(1)
Replaced previous Status Discharge footnotes with the following: “1. Meets NEC
ASIC ESD specifications IEC-GQ-6002-01 and IEC-6005-01”
Changed DC Specification ISLP <10 uA typical to 10 uA max
*F
127739
09/03/03
GIR
Corrected formatting of all tables
Added sections on ATACB and ATACB2
Corrected pin descriptions in Sections 4.3.4, 4.3.6, 4.3.8, 4.3.15, 4.3.16, and 4.3.17
Corrected values/contents of some EEPROM table fields to clarify IROS contents
Divided 2.5V and 3.3V current consumption in Section 10
Swapped order of PCB Layout Guidelines and Package Diagram sections
Corrected spelling and grammar
Added USB certification logo to cover page
Added USB-IF test ID number to Section 1.1 list
*G
131946
02/06/04
KKU
Updated to include lead-free part numbers.
Section 1.1 changed “Compact 80-Lead TQFP” to “Compact 80-pin TQFP package
with a Lead-Free option”
Section 11.0 added: CY7C68310-80AZC 80-Lead TQFP Lead-Free Package with
footnote that new designs should use Lead-Free part and existing designs should
migrate to Lead-Free parts.
*H
234589
SEE ECN
KKU
Reformatted Data sheet to new standard.
Changed section 12.0 for lead free marketing part number in accordance to spec
change in 28-00054.
Document 38-08030 Rev. *H
Page 34 of 34