Page 1 of 1

How to connect devices to the IDE/ATA bus

Posted: Sun Feb 08, 2009 2:16 pm
by cp
What is this thing called bus?
When connecting drives to a bus like IDE/ATA some basic rules have to be taken into consideration. Bus means that there is one cable with many connectors on which the devices sit. The typical IDE/ATA controller has two identical independant busses which are called primary and secondary. For each of them the same rules apply. SATA is not a bus as there is a point to point connection from the controller to each drive.

Bus bandwidth
The bandwidth of the bus is always shared between all devices sitting on it. There can only be one sender at a time who puts information on the bus. All other devices on the bus can receive the information. If only one device should receive the information put on the bus it needs to be addressed directly. On the IDE/ATA bus this addressing scheme is done via setting a device to either master or slave. As those terms are only used to determine the receiver of information they have absolutely no impact on means of bus related things like transfer speed or position of the device on the cable.

Bus termination
A bus always needs to be terminated on both ends which means that there must be a device with termination on either end of the cable. A controller and each device is terminated by default. If there is no termination on one end it's called an open end. On open ends signals are reflected back on the bus and thus can disturb (data loss) or even shut down communication completly (no device found). Open ends are strictly forbidden on the IDE/ATA bus aswell as on all other busses, too. If no device is connected it is sufficient to remove the cable from the controller.
On UltraDMA capable controllers the device terminating the other end of the cable must be UltraDMA capable if UltraDMA modes should be used.

Cables and the need for shielding
The bus bandwidth kept increasing during the evolution of IDE/ATA which unavoidably led into problems. Since the bus design itself stayed the same for backward compatibility, faster transmission was achieved by raising the bus clock. The higher clocks led to higher crosstalk between the signal lines of the cable which could lead to data loss.

Starting with IDE/ATA-66 a new cable type (80 pin cable) was required which shielded each signal line separately. With the old cable type (40 pin cable) the bus speed is limited to IDE/ATA-33 by hardware. An old cable is sufficient if either controller or all devices sitting on this cable are capable of anything upto IDE/ATA-33. A new cable is required if the controller and at least one device on this cable is capable of anything from IDE/ATA-66 upwards. The 80 pin cables generally work for every device, controller and speed.

Valid controller/device connections
The following controller/device combinations are valid. All other combinations are forbidden and result in possible data loss or other malfunctions. please remember that master/slave are only addresses and have nothing to do with where the device is connected on the bus!

One device:

Code: Select all

#--------------#---#
C                  D
Two devices:

Code: Select all

#--------------#---#
C              D   D
Explanation of symbols:

Code: Select all

C = controller on motherboard or add-on card
D = device
-  = cable
# = connector