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