IDE interface - Introduction
 Introduction | Register selection | IDE interface | Commands |
I had a problem of storing data with quick accessibility some time ago and I had the idea of using a hard disk for that purpose. As a result I implemented this small interface first to understand the operations of the IDE interface. But I was in really trouble when trying to get the interface details, how ever I managed to overcome those problems. So I put this information to you so that you can implement your own interfaces for hard disks with ease.
Hard disk interface is a 40 pin connector where you can write or read two bytes at once. Although the hard disk is considered as a random access media, it can access only blocks of data (512 bytes) at once but not bytes as in memory modules.
With the information that I have published here I think you can have a rough idea of the usage of this interface for your implementations.
I must tell you that the controlling the hard disk is very simple as reading or writing data to or from memory module.
 

IDE pin out diagram.
It has 40 pins and the pin 20 is unusually not shown on the IDE interface.

40-pin connector interface signals

Signal name

Connector contact

Conductor

Connector contact

Signal name

nRESET

1

1

2

2

Ground

DD7

3

3

4

4

DD8

DD6

5

5

6

6

DD9

DD5

7

7

8

8

DD10

DD4

9

9

10

10

DD11

DD3

11

11

12

12

DD12

DD2

13

13

14

14

DD13

DD1

15

15

16

16

DD14

DD0

17

17

18

18

DD15

Ground

19

19

20

20

(keypin)

DMARQ

21

21

22

22

Ground

nIOW

23

23

24

24

Ground

nIOR

25

25

26

26

Ground

nIORDY

27

27

28

28

CSEL

nDMACK

29

29

30

30

Ground

INTRQ

31

31

32

32

reserved

AD1

33

33

34

34

nPDIAG

AD0

35

35

36

36

AD2

nCS0

37

37

38

38

nCS1

nACT

39

39

40

40

Ground


Introduction

From a controller point of view an IDE interface could be described as a set of I/O ports. The IDE interface has a 8/16 bits I/O bus, two /CS lines, a /WR and /RD line, three address bits and one interrupt. In this description I assume the most traditional IDE interface. The data bus on an IDE interface is used mostly for 16 -bits transfers.
When implementing a 16-bits I/O port all you need is a bidirectional I/O port and some control bits (8 bits at least) to generate the /RD, /WR etc...

Pin description
 

 nRESET
 
 Resets the connected hard disk - All operations will be stopped.
 input to the hard disk.
 DD0 ~ DD7
 
 This part of the bus is used for Data and Command transfers among the two devices.
 Bi - directional
 DD8 ~ DD15
 
 This part of the bus is used for only for Data transfers among the two devices.
 Bi - directional
 AD0 ~ AD2
 
 Selects the IDE registers to read or write.
 All are inputs to the hard disk
 CS0, CS1
 
 These two lines are also used with A0 ~ A2 to select registers on IDE.
 All are inputs to the hard disk
 DACT

 
 Shows the activity of the hard disk. - This is the LED that shows the hard disk activity on
 you computer front panel.
 Out put from the hard disk.
 Other
 
 I did not use the other pins for my initial interface. So using only those I was able to 
 implement this simple interface.

 

Next  > >

18th January 2003 - Pubudu Goonetilleke

  Home | Science & Research

 

Hosted by www.Geocities.ws

1