The slave MCU is connected to 24 lines of the hard drive. The drive can be completely controlled from only these connections despite the 40 pins provided on the device. Of these 24, the majority correspond to the 16-bit bi-directional data bus (HD00-HD15) of the drive. By reconfiguring the direction of the port pins we were able to perform both reads and writes without the need for multiplexing or tri-state buffers. The remaining 8 pins corresponded to the 3 address select lines (HA00-HA02), the 2 chip select signals (HCS0-HCS1), reset (HRESET), read (HIOR), and write (HIOW). The signal CSEL was connected to ground to permanently configure the drive as device 0 or master. In addition the hard drive has 7 other pins that are grounded (pins 2, 19, 22, 24, 26, 30, and 40). The rest are left unconnected.
An important electrical consideration we encountered was the hard drive current spikes immediately after power up. As a result we had to use an AC/DC power adapter (5V) that could source at least 1 amp otherwise the drive would never initialize.
To establish communcation between the slave and master, the TXD pin of each MCU was connected to the RXD pin of the opposite device.
The LCD was connected to the master MCU and controlled using the LCD libraries provided by CodeVision. A potentiometer was installed across Vcc and ground to adjust the contrast of the display.
Finally, the GND, RESET, MISO, MOSI, and SCK pins supplied at the ISP header on the STK200 board used to program our target MCU, were connected to output pins of the master.