Professional Documents
Culture Documents
CF Industrial Data Sheet en
CF Industrial Data Sheet en
CF Industrial Data Sheet en
Technical Specification
Industrial Compact Flash Card
Preliminary
Product Specification
June 2005
S-CN : Single-Level-Cell-NAND
Document History
Version Description Date Approved by
1 New issue Apr. 2004 Debby Chang
1. Supported flash kind for block
size.
2.Capacity appearance modify
2 August. 2004 Xeras Xiang
3.Checking Product UDMA
function (announce not supported
multi word DMA)
1. Power Consumptions
2. Environment conditions
3. MTBF
4 June 2005 Verlaine Lin
4. R/W Test
5. Temp Flow Chart
6. PCB No
Contents
INDUSTRIAL APPLICATION.............................................................................................................................................................................1
1. INTRODUCTION.........................................................................................................................................................................................7
2. PRODUCT SPECIFICATION...................................................................................................................................................................9
5. BLOCK DIAGRAM...................................................................................................................................................................................14
7. PIN ASSIGNMENT....................................................................................................................................................................................31
1. Introduction
1.1 General Description
The S-CN CompactFlash Card uses NAND-Type flash memory devices, which leads to its
remarkable high performance and comes with capacities from 256 MB to 6GB unformatted.
Compliant with ISA (Industrial Standard Architecture) bus interface standard, the S-CN CompactFlash
Card performs sequential read/write for each sector (512 bytes) count. It also conforms to CompactFlash
Specification and is designed with precision mechanics to enable host devices to read/write from the
CompactFlash interface into Flash Media. It can operate with a 3.3V or 5V single power from the host
side.
The card provides extraordinary memory medium for PC or any other electric equipment and digital
still camera, and, in particular, the S-CN CompactFlash Card has been approved through various
compatibility tests to be used in numerous portable desktop, notebook computers and personal handheld
devices such as handheld audio recorders, PDAs, Palm sized PCs, Handheld PCs and Auto PCs under
industrial environment.
1.2 Features
PC Card compliant
Conforms to CompactFlash standard
Compatible with PCMCIA ATA specification
Support CIS implemented with attribute memory
Compatible with all PC Card Services and Socket Services
PCMCIA ATA / IDE interface
ATA command set compatible
Support for 8-bit or 16-bit host data transfer
Program and auto-wait-state initiation for compatibility with any IORDY supporting host
Compatibility with host ATA disk I/O BIOS, DOS/Windows file system, utilities, and application
software
Extremely rugged and reliable
Advanced defect block management
Support background erased operation
3.3/5 Volt power supply, very low power consumption
● Zero-power data retention, no batteries required
● Internal self-diagnostic program operates at VCC power on
● Auto sleep mode
High reliability based on internal ECC (Error Correcting Code) function
Zero-power data retention, no batteries required
3 variations of mode access
● Memory card mode
● I/O card mode
● True IDE mode
- PIO Mode 4
- UDMA mode 2
Not supported Multi word DMA formatted.
2. Product Specification
2.1 Operation and environment description
5V ± 10%
Operating Voltage DC Input Power
3.3V ± 5%
Read Mode: 40mA (Max)
Write Mode: 60mA (Max)
5V
Standby Mode:6.5mA(Approach alues)
Typical Power Read/ Write Peak: 100mA
Consumptions: Read Mode: 20mA (Max)
Write Mode: 35 mA (Max)
3.3V
Standby Mode: 1mA (Approach values)
Read/ Write Peak: 100mA
Extended Temp. -20°C to +85°C
Operating Temperature
Industrial Temp. -40°C to +85°C
Extended Temp. -40°C to +90°C
Storage Temperature
Industrial Temp. -50°C to +90°C
Humidity Operation 5% to 95% (Non-condensing )
Environment conditions
Humidity Non-operation 5% to 95% (Non-condensing )
Shock Operation 3000-G (Max.)
Shock Non-operation 3000-G (Max.)
Vibration Operation 30-G (Peak to peak to maximum)
Vibration Non-operation 30-G (Peak to peak to maximum)
Operation System supported DOS
Compatibility (Microsoft Windows 98 Windows ME
Product) Windows NT Windows 2000 Windows XP
CFA-XXXX-13T-00-CP
CF Type II (5.0mm)
Notes:
1. These data are written in Identify table.
2. Total tracks =number of head x number of cylinder.
3. Total sector/Card = sector/track x number of head x number of cylinder
4. Those are general unformatted capacity of all cards.
5. It’s the logical address capacity including the area which is used for file system.
5. Block Diagram
5.1 Controller Archive
Frequency Provider
Reset
Power Color
x51 Turbo base Micro processor
on Control
CompactFlash NAND
Host Data transfer Flash
Interface Type
Interface Control Memory
Flash
Interface
Data buffer Memory
CIS CCR ECC Logic Control/
Task Status
Controller
Flash Memory
6.1.12 True IDE Ultra DMA Mode I/O (Read/Write) Timing Specification
UDMA UDMA UDMA UDMA UDMA
Name
Mode 0 (ns) Mode 1 (ns) Mode 2 (ns) Mode 3 (ns) Mode 4 (ns)
Min Max Min Max Min Max Min Max Min Max
t2CYCTYP 240 160 120 90 60
CYC 112 73 54 39 25
t2CYC 230 153 115 86 57
tDS 15.0 10.0 7.0 7.0 5.0
tDH 5.0 5.0 5.0 5.0 5.0
tDVS 70.0 48.0 31.0 20.0 6.7
tDVH 6.2 6.2 6.2 6.2 6.2
tCS 15.0 10.0 7.0 7.0 5.0
tCH 5.0 5.0 5.0 5.0 5.0
tCVS 70.0 48.0 31.0 20.0 6.7
tCVH 6.2 6.2 6.2 6.2 6.2
tZFS 0 0 0 0 0
tDZFS 70.0 48.0 31.0 20.0 6.7
tFS 230 200 170 130 120
tLI 0 150 0 150 0 150 0 100 0 100
tMLI 20 20 20 20 20
tUI 0 0 0 0 0
tAZ 10 10 10 10 10
tZAH 20 20 20 20 20
tZAD 0 0 0 0 0
tENV 20 70 20 70 20 70 20 55 20 55
tRFS 75 70 60 60 60
tRP 160 125 100 100 100
tIORDYZ 20 20 20 20 20
tZIORDY 0 0 0 0 0
tACK 20 20 20 20 20
tSS 50 50 50 50 50
7. Pin Assignment
7.1 CompactFlash Pin Type
PC Card Memory Mode PC Card I/O Mode True IDE Mode
No. Pin Name I/O No. Pin Name I/O No. Pin Name I/O
1 GND 1 GND 1 GND
2 D03 I/O 2 D03 I/O 2 D03 I/O
3 D04 I/O 3 D04 I/O 3 D04 I/O
4 D05 I/O 4 D05 I/O 4 D05 I/O
5 D06 I/O 5 D06 I/O 5 D06 I/O
6 D07 I/O 6 D07 I/O 6 D07 I/O
7 CE1# I 7 CE1# I 7 CS0# I
8 A10 I 8 A10 I 8 A10 I
9 OE# I 9 OE# I 9 ATASEL# I
10 A09 I 10 A09 I 10 A09 I
11 A08 I 11 A08 I 11 A08 I
12 A07 I 12 A07 I 12 A07 I
13 VCC 13 VCC 13 VCC
14 A06 I 14 A06 I 14 A06 I
15 A05 I 15 A05 I 15 A05 I
16 A04 I 16 A04 I 16 A04 I
17 A03 I 17 A03 I 17 A03 I
18 A02 I 18 A02 I 18 A02 I
19 A01 I 19 A01 I 19 A01 I
20 A00 I 20 A00 I 20 A00 I
21 D00 I/O 21 D00 I/O 21 D00 I/O
22 D01 I/O 22 D01 I/O 22 D01 I/O
23 D02 I/O 23 D02 I/O 23 D02 I/O
24 WP O 24 IOIS16# O 24 IOCS16# O
25 CD2# O 25 CD2# O 25 CD2# O
26 CD1# O 26 CD1# O 26 CD1# O
27 D11 I/O 27 D11 I/O 27 D11 I/O
28 D12 I/O 28 D12 I/O 28 D12 I/O
29 D13 I/O 29 D13 I/O 29 D13 I/O
30 D14 I/O 30 D14 I/O 30 D14 I/O
Index Those bits are used for selecting an operation mode of the card as follows.
When Power on, Card Hard Reset and Soft Rest, this data is “000000” for the Memory mode
card interface recognition.
LevlREQ This bit sets to “0” when pulse mode interrupt is selected, and sets to “1” when level mode
interrupt is selected.
SRESET Setting this bit to “1”, places the card in the reset state (Card Hard Reset).This operation is
equal to Hard Reset, except this bit is not cleared. Card configuration status is reset and the
card internal initialized operation starts when Card Hard Reset is executed, so next access to
the card should be the same sequence as the power on sequence.
Index Bits Assignment
INDEX bits
Task File register address Mapping mode
5 4 3 2 1 0
INTR INTERRUPT: When set, indicates that the #IREQ pin is low. When clear, indicates that the
#IREQ pin is high. This bit state is available whether I/O card interface has been configured
or not. If interrupts are disabled by the #IEN bit in the Device Control Register, this bit is
zero.
PWD POWER DOWN: When set, the card enters sleep state (Power Down mode). When clear,
the card transfers to idle state (active mode).
IOIS8 I/O IS 8 bit: When set, indicates that the data bus width of the host is 8 bits (D0-D7). When
clear, indicates that the data bus width of the host is 16 bits (D0-D15).
SIGCHG SIGNAL CHGED: This bit is set and reset by the host to enable and disable a state-change
signal from the Status Register, the CHANGED bit control pin 46 and the CHANGED
Status signal. If no state change signal is desired, this bit should be set to zero (0) and pin 46
(#STSCHG) signal will be held high while thie card is configured for I/O.
CHGED Indicated that one or both of the pin Replacement Register (204H) Crdy, or CWProt bits are
set to one (1). When changed bit is set, #STSCHG pin 46 is held low if the SIGCHG bit is a
one (1) and the card is configured for I/O interface.
RWProt READ WRITE PROTECT: this bit indicates the write protect status. When set, indicates
write protect. When cleared indicates write is enable.
PRDY This bit is used to determine the internal state of the RDY/BSY signal. This bit may be used
to determine the state of the Ready/Busy as this pin has been reallocated for use as interrupt
Request on an I/O card.
CEProt This bit is set to one (1) when RWProt changes state. This bit may be written by the host.
CRDY CARD READY: This bit is set to one (1) when the READY bit changes state. This bit may
be written by the host.
0 0 0 DRV# 0 0 0 0
DRV# DRIVE NUMBER: This bit is set by the host and compared to the DRV bit (D4), in the
ATA Drive/Head Register. In this way, host can perform the card’s master/slave
organization.
09AH 08H Length in 256 bytes pages (LSB) Length of memory space is 2 KB Memory space description
structures (TPCE_MS)
09CH 00H Length in 256 bytes pages (MSB)
0A4H 00H I D Configuration Index Memory mapped I/O configuration Configuration table index
I=0: No interface byte TPCE_INDX
D=0: No Default entry
Configuration index=0
0A6H 01H M MS IR IO T P M=0: No misc info Feature selection byte
MS=00: No memory space inflo TPCE_FS
IO=0: No I/O port info present
T=0:No timing info present
P=0: Vcc only info
0A8H 21H R DI PI AI SI HV LV NV Nominal voltage only follows Power parameters for Vcc
R: Reserved
DI: Power down current info
PI: Peak current info
AI: Average current info
SI: Static current info
HV: Max voltage info
LV: Min voltage info
NV: Nominal voltage info
0AAH B5H X Mantissa E x p o n e n t Nominal Voltage=3.0V Vcc nominal value
A4 – A9
#REG A10 A3 A2 A1 A0 #IORD= “0” #IOWR =“0”
Primary Secondary
Even read data Even write
0 X 1FH 17H 0 0 0 0
data
0 X 1FH 17H 0 0 0 1 Error Feature
0 X 1FH 17H 0 0 1 0 Sector Count Sector Count
Sector Sector
0 X 1FH 17H 0 0 1 1
Number Number
0 X 1FH 17H 0 1 0 0 Cylinder Low Cylinder Low
0 X 1FH 17H 0 1 0 1 Cylinder High Cylinder High
0 X 1FH 17H 0 1 1 0 Drive/Head Drive/Head
0 X 1FH 17H 0 1 1 1 Status Command
Alternate Device
0 X 3FH 37H 1 1 1 0
Status Control
0 X 3FH 37H 1 1 1 1 Drive Address Reserved
Note: Addressing Mode Descriptions - The adapter, on a command by command basis, can operate in
either CHS or LBA addressing modes. Identify Drive Information tells the host whether the drive supports
LBA mode. The host selects LBA mode via the Drive/Head Register. Sector number, Cylinder Low,
Cylinder High, and Drive/Head Register bits HS3=0 contain the zero-based LBA. The drive's sectors are
linearly mapped with: LBA = 0 => Cylinder 0, head 0, sector 1. Regardless of the translation mode, a sector
LBA address does not change. LBA = (Cylinder * no of heads + heads) * (sectors/track) + (Sector - 1).
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Command 98H or E5H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
Sector Count Power Mode Code.(00H or 80H or FFH)
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command 90H
OUTPUTS: The diagnostic code written into the Error Register is an 8-bit code as shown in the table
below.
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V
Error Diagnostic code, see table below
Code Description
01H No error detected
02H Format Media error
03H Sector buffer error
04H ECC logic error
05H Controlling microprocessor error
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count [LBA mode only] The number of sectors to be formatted on the track, must be
set to FFH
Sector Number [LBA mode only] LBA[7:0] of the first sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the first sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LBA[27:24] of the starting
sector/LBA
Command C0H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V
Register 7 6 5 4 3 2 1 0
Features
Sector Count [LBA mode only] The number of sectors to be formatted on the track. Must be
set to FFH
Sector Number [LBA mode only] LBA[7:0] of the first sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the first sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LBA[27:24] of the starting
sector/LBA
Command 50H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command ECH
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Time-out Parameter. This parameter is ignored by the adapter
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command 97H or E3H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command 95H or E1H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Number of sectors
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV Max Head (no. of head = 1)
Command 91H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head LBA DEV
Command E4H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count The number of sectors/logical blocks to transfer. This should be set to 01 for
compatibility
Sector Number Sector[7:0] or LBA[7:0] of the sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LBA[27:24] of the
sector/LBA to transfer
Command 22H (retries enabled) or 23H (retries disabled)
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
Sector Count 00 if the command proceed without error, else the number of untransfered
sectors.
Sector Number Sector[7:0] or LBA[7:0] of the last sector read
Cylinder Low Cylinder[7:0] or LBA[15:8] of the last sector read
Cylinder High Cylinder[15:8] or LBA[23:16] of the last sector read
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count The number of sectors/logical blocks to transfer
Sector Number Sector[7:0] or LBA[7:0] of the sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the sector/LBA to transfer
Device/Head LBA DEV Head number or LBA
Command C4H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V V
Sector Count The first sector where the first unrecoverable error occurred
Sector Number Sector[7:0] or LBA[7:0] of the last good sector transferred
Cylinder Low Cylinder[7:0] or LBA[15:8] of the last good sector transferred
Cylinder High Cylinder[15:8] or LBA[23:16] of the last good sector transferred
Device/Head LBA DEV H[3:0] or LBA[27:24] last good sector transferred
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V V V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count The number of sectors/logical blocks to transfer
Sector Number Sector[7:0] or LBA[7:0] of the sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LBA[27:24] of the
sector/LBA to transfer
Command 20H (retry enabled) or 21H (retries disabled)
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V V
Sector Count The first sector where the first unrecoverable error occurred
Sector Number Sector[7:0] or LBA[7:0] of the last good sector transferred
Cylinder Low Cylinder[7:0] or LBA[15:8] of the last good sector transferred
Cylinder High Cylinder[15:8] or LBA[23:16] of the last good sector transferred
Device/Head LBA DEV H[3:0] or LBA[27:24] last good sector
transferred
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count The number of sectors/logical blocks to verify
Sector Number Sector[7:0] or LBA[7:0] of the first sector/LBA to verify
Cylinder Low Cylinder[7:0] or LBA[15:8] of the sector/LBA to verify
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to verify
Device/Head LBA DEV H[3:0] or LBA[27:24] of the
sector/LBA to verify
Command 40H (retries enabled) or 41H (retries disabled)
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V V
Sector Count The first sector where the first unrecoverable error occurred
Sector Number Sector[7:0] or LBA[7:0] of the sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the last good sector transferred
Device/Head LBA DEV H[3:0] or LBA[27:24] of the
sector/LBA to transfer
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command 1XH
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command 03H
OUTPUTS
The diagnostic code written into the Error Register is an 8-bit code as shown in the table below.
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V
Error Sense code, see table below
Code Description
00H No error detected
01H Self test OK (No error)
03H Write/Erase failed
09H Miscellaneous Error - N/A
20H Invalid Command
21H Invalid Address (requested Head or Sector invalid)
2FH Address Overflow (address too large)
35H, 36H Supply or generate Voltage Out of Tolerance
11H Uncorrectable ECC Error
18H Corrected ECC Error - N/A
05H, 30H-34H, 37H, 3EH Self Test Diagnostic Failed
10H, 14H ID Not Found - N/A
3AH Spare Sectors Exhausted
1FH Data Transfer Error / Aborted Command
0CH, 38H, 3BH, 3CH, 3FH Corrupted Media Format - N/A
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number (Valid in LBA mode only) LBA[7:0] of the track
Cylinder Low Cylinder[7:0] or LBA[15:8] of the track
Cylinder High Cylinder[15:8] or LBA[23:16] of the track
Device/Head LBA DEV H[3:0] or LBA[27:24] of the track
Command 7XH
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V
Register 7 6 5 4 3 2 1 0
Features Feature number according to the table below
Sector Count Configuration required
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command EFH
Feature Codes
Code Description
01H Enable 8-bit data transfers
55H Disable Read Look Ahead
66H Disable reverting to power on defaults
81H Disable 8-bit data transfers
BBH 4 bytes of ECC apply on read long/write long commands
CCH Enable reverting to power on defaults
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Sector Count per Block( = 1)
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command C6H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command 99H/E6H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Time period value
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command 96H or E2H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command 94H or E0H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Sector Count
Sector Number Sector[7:0] or LBA[7:0] of the first sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the first sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LBA[27:24] of the starting
sector/LBA
Command 87H
OUTPUTS
The diagnostic code written into the Error Register is an 8-bit code as shown in the table below.
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V
Address Information
00H - 01H Cylinder MSB (00H), Cylinder LSB (01H)
02H Head
03H Sector
04H - 06H LBA MSB (04H) - LSB (06H)
07H - 12H Reserved
13H Erased Flag (FFH) = Erased; (00H) = Not Erased
14H - 17H Reserved
18H - 1AH Hot Count MSB (18H) - LSB (1AH)
1BH - 1FFH Reserved
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command F5H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
Sector Count Always “00H”
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count N/A
Sector Number N/A
Cylinder Low N/A
Cylinder High N/A
Device/Head DEV
Command E8H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count “01h”
Sector Number Sector[7:0] or LBA[7:0] of the first sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the first sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LBA[27:24] of the starting
sector/LBA
Command 32H or 33H
OUTPUTS
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Sector Count
Sector Number Sector[7:0] or LBA[7:0] of the first sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the first sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LB[27:24] of the starting
sector/LBA
Command C5H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
Sector Count Bit-0 if the command proceeded successfully, other – untransferred sectors count
Sector Number Sector[7:0] or LBA[7:0] of the last good sector transferred
Cylinder Low Cylinder[7:0] or LBA[15:8] of the last good sector transferred
Cylinder High Cylinder[15:8] or LBA[23:16] of the last good sector transferred
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Sector Count
Sector Number Sector[7:0] or LBA[7:0] of the first sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the first sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LB[27:24] of the starting
sector/LBA
Command CDH
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
Sector Count Bit-0 if the command proceeded successfully, other – untransferred sectors count
Sector Number Sector[7:0] or LBA[7:0] of the last good sector transferred
Cylinder Low Cylinder[7:0] or LBA[15:8] of the last good sector transferred
Cylinder High Cylinder[15:8] or LBA[23:16] of the last good sector transferred
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Sector Count
Sector Number Sector[7:0] or LBA[7:0] of the first sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the first sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LBA[27:24] of the starting
sector/LBA
Command 30H or 31H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
Sector Count Bit-0 if the command proceeded successfully, other – untransferred sectors count
Sector Number Sector[7:0] or LBA[7:0] of the last good sector transferred
Cylinder Low Cylinder[7:0] or LBA[15:8] of the last good sector transferred
Cylinder High Cylinder[15:8] or LBA[23:16] of the last good sector transferred
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Sector Count
Sector Number Sector[7:0] or LBA[7:0] of the first sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the first sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LBA[27:24] of the starting
sector/LBA
Command 38H
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
Sector Count Bit-0 if the command proceeded successfully, other – untransferred sectors count
Sector Number Sector[7:0] or LBA[7:0] of the last good sector transferred
Cylinder Low Cylinder[7:0] or LBA[15:8] of the last good sector transferred
Cylinder High Cylinder[15:8] or LBA[23:16] of the last good sector transferred
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V
Register 7 6 5 4 3 2 1 0
Features N/A
Sector Count Sector Count
Sector Number Sector[7:0] or LBA[7:0] of the first sector/LBA to transfer
Cylinder Low Cylinder[7:0] or LBA[15:8] of the first sector/LBA to transfer
Cylinder High Cylinder[15:8] or LBA[23:16] of the first sector/LBA to transfer
Device/Head LBA DEV H[3:0] or LBA[27:24] of the starting
sector/LBA
Command 3CH
OUTPUTS
Register 7 6 5 4 3 2 1 0
BSY DRDY DWF DSC DRQ CORR IDX ERR
Status
V V V V V V
Sector Count Bit-0 if the command proceeded successfully, other – untransferred sectors count
Sector Number Sector[7:0] or LBA[7:0] of the last good sector transferred
Cylinder Low Cylinder[7:0] or LBA[15:8] of the last good sector transferred
Cylinder High Cylinder[15:8] or LBA[23:16] of the last good sector transferred
BBK UNC MC IDNF MCR ABRT TK0NF AMNF
Error
V V V V
Write Sector(s) 9 9 9 9 9 9 9 9
Write Sector w/o Erase 9 9 9 9 9 9 9 9
Write Verify 9 9 9 9 9 9 9 9
Invalid command Code 9 9 9 9 9
state of DD(15:0). The device shall generate a DSTROBE edge no more frequently than tCYC for the
selected Ultra DMA mode. The device shall not generate two rising or two falling DSTROBE edges more
frequently than t2cyc for the selected Ultra DMA mode.
c) The device shall not change the state of DD(15:0) until at least tDVH after generating a DSTROBE edge to
latch the data.
d) The device shall repeat steps (a), (b), and (c) until the Ultra DMA burst is paused or terminated by the
device or host.
c) The device shall stop generating DSTROBE edges within tRFS of the host negating HDMARDY-.
d) When operating in Ultra DMA modes 2, 1, or 0: If the host negates HDMARDY- within tSR after the
device has generated a DSTROBE edge, then the host shall be prepared to receive zero or one additional
data words; or, if the host negates HDMARDY- greater than tSR after the device has generated a
DSTROBE edge, then the host shall be prepared to receive zero, one or two additional data words.
While operating in Ultra DMA modes 4 or 3 the host shall be prepared to receive zero, one, two or three
additional data words after negating HDMARDY-. The additional data words are a result of cable round
trip delay and tRFS timing for the device.
e) The host shall assert STOP no sooner than tRP after negating HDMARDY-. The host shall not negate
STOP again until after the Ultra DMA burst is terminated.
f) The device shall negate DMARQ within tLI after the host has asserted STOP. The device shall not assert
DMARQ again until after the Ultra DMA burst is terminated.
g) If DSTROBE is negated, the device shall assert DSTROBE within tLI after the host has asserted STOP. No
data shall be transferred during this assertion. The host shall ignore this transition on DSTROBE.
DSTROBE shall remain asserted until the Ultra DMA burst is terminated.
h) The device shall release DD(15:0) no later than tAZ after negating DMARQ.
i) The host shall drive DD(15:0) no sooner than tZAH after the device has negated DMARQ. For this step, the
host may first drive DD(15:0) with the result of the host CRC calculation .
j) If the host has not placed the result of the host CRC calculation on DD(15:0) since first driving DD(15:0)
during (9), the host shall place the result of the host CRC calculation on DD(15:0).
k) The host shall negate DMACK- no sooner than tMLI after the device has asserted DSTROBE and negated
DMARQ and the host has asserted STOP and negated HDMARDY-, and no sooner than tDVS after the
host places the result of the host CRC calculation on DD(15:0).
l) The device shall latch the host’s CRC data from DD(15:0) on the negating edge of DMACK-.
m) The device shall compare the CRC data received from the host with the results of the device CRC
calculation. If a miscompare error occurs during one or more Ultra DMA burst for any one command, at
the end of the command, the device shall report the first error that occurred.
n) The device shall release DSTROBE within tIORDYZ after the host negates DMACK-.
o) The host shall neither negate STOP nor assert HDMARDY- until at least tACK after the host has negated
DMACK-.
p) The host shall not assert DIOR-, CS0-, CS1-, DA2, DA1, or DA0 until at least tACK after negating
DMACK.
d) The host shall repeat steps (a), (b), and (c) until the Ultra DMA burst is paused or terminated by the device
or host.
assert DDMARDY- again until after the Ultra DMA burst termination is complete.
e) If HSTROBE is negated, the host shall assert HSTROBE within tLI after the device has negated
DMARQ. No data shall be transferred during this assertion. The device shall ignore this transition on
HSTROBE. HSTROBE shall remain asserted until the Ultra DMA burst is terminated.
f) The host shall place the result of the host CRC calculation on DD(15:0)
g) The host shall negate DMACK- no sooner than tMLI after the host has asserted HSTROBE and STOP
and the device has negated DMARQ and DDMARDY-, and no sooner than tDVS after placing the result
of the host CRC calculation on DD(15:0).
h) The device shall latch the host’s CRC data from DD(15:0) on the negating edge of DMACK-.
i) The device shall compare the CRC data received from the host with the results of the device CRC
calculation. If a miscompare error occurs during one or more Ultra DMA bursts for any one command,
at the end of the command, the device shall report the first error that occurred.
j) The device shall release DDMARDY- within tIORDYZ after the host has negated DMACK-.
k) The host shall neither negate STOP nor negate HSTROBE until at least tACK after negating DMACK-.
l) The host shall not assert DIOW-, CS0-, CS1-, DA2, DA1, or DA0 until at least tACK after negating
DMACK.
device detects that a CRC error has occurred before data transfer for the command is complete, the device
may complete the transfer and report the error or abort the command and report the error.
7) For READ DMA, WRITE DMA, READ DMA QUEUED, or WRITE DMA QUEUED commands:
When a CRC error is detected, the error shall be reported by setting both ICRC and ABRT (bit 7 and bit 2
in the Error register) to one. ICRC is defined as the “Interface CRC Error” bit. The host shall respond to
this error by re-issuing the command.
8) For a REQUEST SENSE packet command (see SPC T10/955D for definition of the REQUEST SENSE
command): When a CRC error is detected during transmission of sense data the device shall complete
the command and set CHK to one. The device shall report a Sense key of 0Bh (ABORTED
COMMAND). The device shall preserve the original sense data that was being returned when the CRC
error occurred. The device shall not report any additional sense data specific to the CRC error. The host
device driver may retry the REQUEST SENSE command or may consider this an unrecoverable error
and retry the command that caused the Check Condition.
9) For any packet command except a REQUEST SENSE command: If a CRC error is detected, the device
shall complete the command with CHK set to one. The device shall report a Sense key of 04h
(HARDWARE ERROR). The sense data supplied via a subsequent REQUEST SENSE command shall
report an ASC/ASCQ value of 08h/03h (LOGICAL UNIT COMMUNICATION CRC ERROR). Host
drivers should retry the command that resulted in a HARDWARE ERROR.
10) A host may send extra data words on the last Ultra DMA burst of a data-out command. If a device
determines that all data has been transferred for a command, the device shall terminate the burst. A device
may have already received more data words than were required for the command. These extra words are
used by both the host and the device to calculate the CRC, but, on an Ultra DMA data-out burst, the extra
words shall be discarded by the device.
11) The CRC generator polynomial is: G(X) = X16 + X12 + X5 + 1. Table 46 describes the equations for
16- bit parallel generation of the resulting polynomial (based on a word boundary).
NOTE Since no bit clock is available, the recommended approach for calculating CRC is to use a word clock
derived from the bus strobe. The combinational logic is then equivalent to shifting sixteen bits serially through
the generator polynomial where DD0 is shifted in first and DD15 is shifted in last.
NOTE If excessive CRC errors are encountered while operating in an Ultra mode, the host should select a slower
Ultra mode. Caution: CRC errors are detected and reported only while operating in an Ultra mode.
15. Security CF
16.2Altitude Test
Altitude Product