This is the fourth step in the Handy Board assembly. In this sequence, the chip used to control peripheral input and output, the digital input circuitry, and the motor output circuitry is installed.
For this assembly sequence, collect the following parts:
U6, the 74HC138, is used to create a memory-mapped addressing for up to four input latches and four output latches. One of each of these is implemented on the main Handy Board (i.e., the digital input circuit and motor output circuit); the remaining six addressing outputs of U6 are available via the Handy Board's expansion connector. U9, the 74HC04 hex inverter chip, is used as glue logic in this peripheral addressing circuit.
Install U6* (74HC138) in the socket, making sure to line up the notch on the chip and the notch on the socket/printed legend.
Install DIP4, the 14--pin socket for U9. Align the notch in the socket with the notch in the printed component legend.
Install U9* (74HC04) in the socket, making sure to line up the notch on the chip and the notch on the socket/printed legend.
Plug the LCD screen back into the board. Connect the Handy Board to the computer via the Interface/Charger board; run DL to load the Handy Board runtime file (pcode_hb.s19). Restart the Handy Board and verify the Interactive C boot beep and LCD screen message.
While the board is running, examine pin 9 of U6 (the 74HC138). This pin should be continuously pulsing, with a duty cycle indicating a predominantly high state and repetitive logic low pulses. Make sure the pulse memory feature of the logic probe is turned off.
Using the logic probe, examine the signals at pins 1, 2, 3, 4, 5, and 6 of U6. These should all be pulsing continuously. If any of these lines is not pulsing, check its solder connections and trace its continuity.
Turn board power off and check for short circuits between all combinations the same pins. There should be no shorts.
In this step, U5, the digital input latch, is installed, along with the header connectors for the digital inputs and the START pushbutton switch.
Install U5* (74HC244) in the socket, making sure to line up the notch on the chip and the notch on the socket/printed legend.
Install resistor packs RP1* (47K x 9, 10 pins) and RP2* (1K x 5, 6 pins). These are pullup resistors for the input latch to give a default value to the inputs when nothing else is plugged in. Make sure to get the pin 1 markings on the resistor packs lined up with the square pads.
Install SW2*, the START switch. The value of this switch is read through the digital input latch.
Get three strips of 9--long female header socket and install in the J2 position. If the female socket header is not precut to the correct length, the socket strip must be cut to size. See the Assembly Tips for instructions on how to do this.
Boot the Interactive C application on the host computer. It should communicate with the Handy Board, download some library files, and display the ``C>'' prompt.
Now load the Handy Board testing file. Type at the IC prompt:
load hbtest.cIC should display a message like the following:
Loading hbtest.c.(The number of bytes downloaded will probably not match, allowing for updates to the hbtest.c file.)
Initializing interrupts
Downloading 2517 bytes (addresses 8000-89D4): 2517 loaded
Globals initialized.
If IC is unable to find the hbtest.c file, go back to the section on Configuring IC and make sure all Handy Board library files are on the host computer, and IC is correctly configured to point to them.
After hbtest.c is loaded into the Handy Board, type at the IC prompt:
testdigitals();(This runs the function testdigitals(), which is defined in the hbtest.c file.)
Look at the Handy Board LCD screen. It should be displaying the message ``Press START ...''; it is waiting for you to press the START button. Do so, and the board should beep, and prompt you to press the STOP button. If this works, the digital input circuit is at least partly functional---the START button is scanned through the digital input circuit.
Press the STOP button (this is wired directly to a 6811 digital input), and the test program should display a screen like this:
Digital inputs:This will be on the Handy Board LCD screen, not the IC console window. The display should be flashing gently, indicating that the Handy Board is repeatedly updating the screen.
000000000
Each of the 0's corresponds to a digital input. The left-most zero corresponds to the left-most digital input---the one labelled ``15'' on the printed Handy Board legend. The right-most zero corresponds to the digital input labelled ``7.''
To test the inputs, get a scrap piece of a component lead and bend it into the shape of a ``U.'' Insert the ends of the wire into a digital input column, connecting a pin of the uppermost header to the corresponding pin of the lowermost header. When the two header pins are shorted together, the LCD display should show the numeral ``1'' in the appropriate bit position.
With the scrap piece of wire, systematically test all nine digital inputs, verifying correct operation.
There are at least two failure modes from this point:
Determine which digital inputs are not working, and trace their wiring. For inputs stuck on zero, check for bad solder joints and damaged PC board traces. For inputs stuck on one, check for solder bridges and other shorts.
Refer to the Digital Input schematic; note that the three right-most inputs (labelled 7, 8, and 9) are wired directly to 6811 inputs and not through the 74HC244 input latch. Also note that the START and STOP buttons are wired to the two high bits of the latch.
While the testdigitals() is running, examine pin 1 and pin 19 of U5 (the 74HC244) with the logic probe. Both of these pins should be pulsing with a pattern of mostly logic high. If these pins are not flashing, check pin 7 of U6 (the 74HC138). If it is flashing, then the connection between these two chips is suspect. If pin 7 of U6 is not flashing, then the U6 circuit is faulty. Go back to the Peripheral Selector Testing.
The motor output circuit consists of a digital output latch (U8, a 74HC374), two high-current motor driver chips (U10 and U11, L293D's), and eight LEDs to indicate motor state.
Install U8* (74HC374) in the socket, making sure to line up the notch on the chip and the notch on the socket/printed legend.
Install DIP7 and DIP8, the 16--pin sockets for U10 and U11. Align the notches in the sockets with the notches in the printed component legends.
Install U10* and U11* (L293D) in their sockets, making sure to line up the notches on the chips and the notches on the sockets/printed legends.
Get a 12--long female header socket strip and install it in the J4 position. If the female socket header is not precut to the correct length, the socket strip must be cut to size. See the Assembly Tips for instructions on how to do this.
Install L1 (1 uH iron core inductor). Orientation is not important.
Install LED1R*, LED2R*, LED3R*, LED4R*, LED5G*, LED6G*, LED7G*, and LED8G*. Be sure to get the orientation correct; see the Assembly Tips for instructions.
The motor LEDs should begin flashing one at a time, beginning with Motor 0--green, Motor 0--red, Motor 1--green, etc. After Motor 4--red, the cycle should repeat with Motor 0--green.
With the logic probe, examine pin 1 of U8 (the 74HC374 output latch). It should be pulsing continuously. If not, trace the signal back to pin 9 of U6.
If you do not have a logic probe, turn the board power off and measure the resistance between pin 1 of U8 and pin 9 of U6. It should be zero ohms. If it is an open circuit (infinite resistance), check the two pins' solder joints and then look for a PC board defect in the trace connecting these two pins.
Verify motor supply voltage on pin 8 of U10 and U11. There should be about 9.6 volts at these pins.
With board power off, check continuity across component L1. It should read a resistance of near zero ohms (i.e., less than 10 ohms).