The Harris CDP6402 may be replaced with a Harris HD6402.
Over time many
of us accumulate a stock of components, including logic IC's (TTL and
CMOS). If you're anything like me, many of these will be secondhand
- salvaged from old projects and PCBs. The problem is checking which
of these devices actually work, particularly when they are removed from
faulty equipment.
The
ChipTester presented here is used with an IBM compatible PC, and will
test nearly all logic devices, providing they operate from a single 5V
supply and have no more than 24 pins. Devices with over 20 pins
must have the power pins on the usual diagonally opposite corners.
The only logic devices that cannot be tested are those incorporating analog
techniques, such as monostables and phase locked loops.
This system may also be useful for educational establishments, for checking
devices removed from students projects before returning them to the stores
for reuse.
The accompanying software is available on this website. The software
will operate on any PC running MS-DOS or PC-DOS version 3.0 or later and
having at least 512K of RAM and one RS232 serial port. A hard disk
and a colour monitor are strongly recommended. The software is written
in Microsoft QuickBASIC V4.5, and the full source code is supplied for
those wishing to enhance or modify it. This source code is also
compatible with QBASIC, as supplied with MS-DOS 5.0 and later. Several
sample device files for common logic devices are also included.
The software allows the creation of test parameters for new devices, which
can be saved to disk. Devices can be tested either once only, or
continuously to find intermittent faults. As the tests progress
the logic levels on each pin are displayed using colours. A detailed
description of the software operation is given later.
The unit may also be suitable for use with other types of home computer
having an RS232 serial port, although this has not been tested and no
software is available. It will definitely not work with Commodore
Amiga computers, due to a peculiarity in the serial port handling.
The Works
The circuit diagram is spread over a number of illustrations.
Although it may initially look complex, it is in fact relatively straightforward.
When a "-" follows a signal name (for example STROBE-), this shows that
the line is active low. When a number is followed by an "h" this
indicates that the number is hexadecimal.
The RS232 (serial) interface, buffering and clock are shown in figure
*. IC3 (6402) is a UART (Universal Asynchronous Receiver/Transmitter)
which basically converts serial data to parallel and vice-versa.
The device supports most common serial data formats, in this application
it is configured to give eight data bits, one stop bit and no parity checking.
The data rate is set by the crystal controlled clock circuit (IC2), which
in most cases will be set to 9600 Baud.
IC1 is the RS232 buffer, converting the 5V data from the UART to the +/-
10V RS232 standard, and vice-versa. This device contains a voltage
doubler and voltage invertor circuit, producing +/- 10V rails from a single
+5V input. The four external capacitors (C1 to C4) are required
for these circuits.
A byte of serial data arriving on pin 20 of IC3 will be converted to parallel
data, which will appear on pins 5 to 12. Pin 19 will go high, and
no further data can be received until pin 18 is taken low momentarily.
One gate of IC4 causes this to happen, R3 and C8 create a slight delay
giving the STROBE- pulse adequate width for clocking other devices.
When pin 23 is pulsed low, the parallel data on pins 26 to 33 is transmitted
in serial form from pin 25. R4, D1, C9 and one gate of IC4 produce
the power-on reset pulse for IC3.
Since the device being tested will have more than eight pins, we need
a method of connecting the eight input lines and eight output lines on
the UART to the 24 pins on the test socket. We also need to arrange
for the data to be transmitted by the ChipTester when required.
The data output from the UART is divided into two sections. Lines
R0 to R3 are used as four data lines, and lines R4 to R6 are used as three
address lines, to control where the four bits of data go to. The
eighth output line is not used.
The decoding and output buffering is shown in figure *. The three
"address" lines (R4-R6) are decoded by IC15. The STROBE- signal
is connected to one of the enable pins so that a short pulse appears on
the appropriate output (Y0-Y5). These pulses are used to clock the
four data bits into the appropriate 74LS75 latch (IC5 to IC10).
Thus, 24 bits of data can be sent in six bytes.
To load data into the first 4 latches, we send 0Xh, where X is the data
required. For the other latches the codes are 1Xh to 5Xh.
The outputs of the latches are connected to open collector inverting buffers.
Open collectors are used since they save us having to differentiate between
input and output lines. If the line is set high, it can be used
as an input, and pulled low by the device being tested. The pullup
4K7 resistors are shown in figure *. 220R current limiting resistors
are used to protect the ChipTester and the device being tested in case
of conflict. Only 23 of the 24 outputs are used, pin 12 of the socket
is connected directly to 0V. The power to the device under test
is set by SW1.
Devices with unusual power pin arrangements are accommodated by placing
them one position up from the bottom of the test socket, and linking the
power pins with wires. The software will give details when necessary.
To read back the state of the device pins, they are connected to three
tri-state buffers (IC17-IC19), shown in figure *. One of these is
selected by IC16, which is connected to three of our "data" lines.
A decoding device is used to ensure that no more than one tri-state buffer
is selected at a time. RN1 holds the lines high when no buffer is
selected.
When output Y7 of IC15 pulses high the appropriate byte is transmitted.
Thus to tell the Chiptester to send a byte of data, we send 70h, 71h or
72h, depending upon which 8 bits we need.
A spare gate on IC4 is used as a simple logic probe for testing the unit.
When pin 9 is taken high, pin 8 goes high turning on the LED.
The power into the unit is protected by a 500mA fuse, to (hopefully) protect
the unit and power supply if the device being tested is internally short-circuited
or inserted incorrectly. A separate regulated 5V supply is required
- a simple 7805 based circuit will suffice. You may be able to pick
up a 5V supply from a spare disk drive connector inside your PC, or from
the keyboard connector - but take great care not to cause any damage!
The Eprom PSU project on this website is suitable.
Construction
The unit is assembled on a double sided PCB. The copper track
layouts are shown in figure * and the component overlay is shown in figure
*.
The PCB does not have plated through holes, so you will need to solder
some component pins on both sides of the board. Because of this,
normal IC sockets cannot be used. Some turned pin sockets have metal
showing on the top of the board, alternatively the ICs can be soldered
directly into the PCB. There are also several through hole connections
that need to be fitted with track pins or short pieces of wire - these
are best left until after the components have been fitted.
I would suggest that the resistors (excluding R4) are fitted first, followed
by the ICs, then the capacitors, then the remaining parts. Fit a
link wire between COM and 96 to set the Baud rate to 9600. Fit SIL
header strip or Veropins for the off-board connections.
Fit a 24-way IC socket in the test socket position. Plug two more
sockets into this, then plug the ZIF (Zero Insertion Force) socket into
the top. If this stack feels unsteady use some Araldite or similar
to hold it together. When buying the ZIF socket, be sure to get
one with wide slots that will accept 0.3" and 0.6" devices.
The interwiring is shown in figure *. This should be carried out
at this stage, since it is necessary for testing. After testing
the board can be fitted into the case.
The connections for both 9 and 25 way serial connectors, use whatever
matches the socket on your computer. On the prototype a 9 way D
connector (serial) and a 6 way DIN socket (DC input) were fitted to the
case.
Connect a length of wire to the test pin, at least long enough to reach
pin 1 of the test socket.
Testing
Connect the unit to a 5V supply. If a test meter is to hand,
check for about +9V on pin 2 and -9V on pin 6 of IC1 (MAX232). Touch
the test lead onto the fuse holder contact to check the tester works -
the LED should light!
Connect the unit to the serial port on your PC, and run the program SER-TEST.EXE
on the software disk. When prompted, type "1" or "2" followed by
<Enter> to say which serial port you are using. The program
does nothing more exciting than wait for you to enter a 2-digit hex number
(followed by <Enter>) and then sends it to the programmer.
It then attempts to read back a number, if it's successful it prints the
number otherwise it prints "**". To exit just press <Enter>
on it's own. All the responses in this section will be shown with
quotes ("") around them - just type the number (followed by <Enter>),
don't type the quotes.
If you are using Windows, quit out to DOS (not a DOS window) before running
this program. It does not seem to run too reliably under Windows.
Set the power switch to pin 24 (fully clockwise). Enter "00", "10",
"20", "30", "40" and "50". In each case the program should respond
with "**". Try the test lead in each contact of the test socket,
all lines should be low (LED off) except pin 24. Set the switch
to a different position and check that pin 24 is now low.
Type "0F", "1F", "2F", "3F", "4F" and "5F". All lines on the socket
(apart from pin 12, which is connected to 0V) should now be high.
Now enter "0E", and pin one only should be low. Enter "0D" and pin
2 only should be low, "0B" for pin 3, "07" for pin 4, the "0F" to set
all four high again. Continue through this pattern, replacing the
"0" with "1", "2", "3", "4" and "5" - and check each pin in turn goes
low. Pin 12 is missed out of this, and "5B" will be the last one.
If one of the higher pins does not go low, check the power switch is not
set to that position.
Now set all pins low with "00" to "50". Enter "70", "71" and "72"
- each of these should bring the response "00". This proves the
unit is sending data. Typing "73" should bring the response "FF"
since none of the tri-states are enabled and the lines are pulled high
by RN1. Type "0A", "1A", "70" - the last entry should bring the
response "AA". Now try "05", "15", "70" - the response should be
"55".
If you've got to the end of this without problems the unit is working
fine. Remove the test wire (or insulate the end), and fit the unit
into the case.
The Case
The prototype was housed in a plastic case, 220 x 150 x 63mm in size.
It may be tidier to use the case upside down, with the removable panel
as the base. Cut a rectangular hole for the ZIF socket, then mount
the PCB on suitable spacers. You now need to make holes for the
switch and sockets.
Software
The software is supplied as-is, and Paul Stenning cannot accept any
liability for any loss or damage however caused. The source code
is supplied so that you may modify the software for your own use only.
The software may not be redistributed in either its original or in a modified
form. If you cannot accept these conditions please do not download
and use the software. That's the legal bit done!
A batch file is supplied on the disk to simplify installation. Insert
the disk in the drive, type "A:" then "INSTALL", and the batch file will
make a \CHIPTEST directory on your drive C:, and copy the software to
there. If you do not have a hard disk, make a working copy of the
disk using DISKCOPY, then put the original away. Do not write-protect
your working copy or the software will not work.
If you are using Windows 3.1, suitable icon and PIF files are supplied
on the disk. Some parts of the software will operate much slower
under Windows, particularly the initialisation when the serial port is
opened. However it will operate in the background (if you are using
386 Enhanced Mode) which can be useful when testing a device repeatedly.
Device Testing
To start the software type "CHIPTEST". If you are using COM2
type "CHIPTEST /2". After a few moments the main menu should appear.
Option 1 allows the creation of new device files, and option 3 allows
the editing of the currently loaded file. I will describe these
in detail later. For now choose option 2 (press "2"), to load an
existing device file. The available files will be listed on the
screen (in alphabetical order if you have DOS 5 or later); if there is
more than one screen full you will be prompted to press any key to see
the next part. Note that the files have only the device base number.
For example, 7432 is also suitable for 74LS32, 74HCT32, 5432 etc. from
any manufacturer. Similarly 4024 is also suitable for 14024, 74HCT4024
etc.
You will now be prompted to type in the name of a device. Type "7400"
if you have one of these devices (or enter the name of another basic logic
device that you have available). The file will load and the main
menu will reappear. The description below assumes a 7400.
Choose option 4 ("Test Device Once (Slow)"). A picture of a 14-pin
device will appear, with instructions about how to fit it into the socket.
Here you will be told to place it at the bottom of the socket, and set
the power switch to 14. Do as requested then press any key.
The device will be tested one step at a time, and the logic state of each
pin is shown using red for high and green for low. The test step
number and result of this step (Pass or Fail) is shown at the top of the
screen. At the end of the test the overall result is shown - accompanied
by a beep if it failed. Hopefully yours passed!
Press any key to get back to the main menu. Choose 5 ("Test Device
Once (Fast)") and the device will be tested again somewhat quicker, and
without the individual step results. Generally you would use option
4 for debugging test routines and option 5 for actual testing. Option
6 ("Test Device Continually Until Fail") and Option 7 ("Test Device Continually
Until Pass") are self explanatory - the number of complete tests completed
is shown at the top of the screen.
If you want to see how the unit handles a faulty device, link pins 1 and
2 with a screwdriver and test it again. This fault will be detected
because the inputs will not go to the levels they are set to. The
testing routine checks the logic levels on all input and clock pins to
make sure they are at the level they were set to.
Creating a new device file
We will now go on to create a new device file. We will stick
with our 7400 for now, since we know it works! If you don't know
this device, dig out a data book or the Maplin catalogue so you can follow
what we're doing. Choose option 1 from the main menu and you will
be prompted for a device name. Since you already have a good 7400
file which you probably don't want to overwrite, type "TEST" or something
similar. You will now be prompted to enter the number of pins, type
"14".
A picture of a 14-pin device will now appear, with a question mark by
pin 1. You will be prompted to enter a pin type for pin 1, from
the seven options at the bottom of the screen. "Input" and "Output"
are obvious, "+ve Clock" is a clock pin that is normally low but needs
high clock pulses and "-ve Clock" is the opposite of this. "VCC"
is the positive supply, "GND" is the negative supply and "Unused" is -
well - unused!
Press "1" to make pin 1 an input (no need to press <Enter>).
The word "Input" will appear by pin 1 and the question mark will move
to pin 2. Since this is also an input press "1" again. Pin
3 is an output so press "2". To finish the pin details enter "1",
"1", "2", "6", "2", "1", "1", "2", "1", "1", "5". If you've got
all this right, press "Y" to continue, otherwise press "N" to have another
go.
You will now see a screen with pin numbers at the top, and some column
dividing lines. Don't worry, it's not as bad as it looks!
If there were any clock pins these would be on the left, the inputs come
next, followed by the outputs. Dividing lines appear between each
group. On the extreme left is the step number.
On this screen you enter the individual steps of the device test.
In the input column you enter the logic levels required on the inputs,
and in the output column you enter the logic levels expected on the outputs.
The inputs may be either 1 or 0, and the outputs may be 1, 0 or X (X =
don't care). If there were any clock pins you would enter the number
of clock pulses required - the limits here are 9999 if there is one clock
input, or 99 if there is more than one.
On line 1, all inputs are low so the outputs are all high. On lines
2 and 3, only one input of one gate is high so in both cases all outputs
should still be high. On line 4, both inputs of one gate are high,
so that output should go low. The remaining lines repeat these input
combinations on the other three gates, and the final line sets all inputs
high so all outputs should be low. If you check the device pinouts
and truth table this should become clear. The output of a NAND gate
will be high unless all inputs are high.
Bear these points in mind when entering test values. The maximum
number of test steps is 200. As you go over 22, the screen will
scroll up to show the current data line. The arrow keys control
the cursor position, and <Enter> will move the cursor to the beginning
of the next line. The logic values can be changed by typing the
new value, and the cursor will move to the next position. Alternatively
tap the space-bar to step through the possible values. The clock
pulse numbers can be changed by using <Backspace> to delete the
old value then typing the new value. To delete the last line of
the test routine, move the cursor onto it and press <Delete>.
When testing the device, the inputs will not all change at exactly the
same time. This is not generally a problem, since they will all
be at the specified levels by the time the outputs are read back.
If it is necessary to change the inputs in a particular sequence this
should be done as separate steps.
Clock pulses are applied in pin number order (if there are values in more
than one position), and are always applied BEFORE the logic values in
that step are set. If it is necessary to set certain logic values
on other inputs before applying clock pulses, this should be done as separate
steps.
Tri-state output pins in the disabled state will always read high, due
to the pullup resistors in the Chiptester. If a device has bidirectional
pins it will be necessary to create different test files to accommodate
the different directions. See the "74245-A" and "74245-B" files
for an example of how to do this.
Type in the values shown, and press <Escape> when finished.
You will be asked if you wish to save the data. If you choose "Y"
the data will be saves in a file called "TEST.CHP" (all Chiptester data
files have the extension ".CHP"). If you chose "N" the data will
not be written to disk, but will still exist in memory and can be used
to test devices or edited and saved later.
Now try testing the device, to see if your test routine works. If
you typed it in correctly it should be OK, but don't worry if not.
Option 3 from the main menu allows the test routine to be edited.
This is useful if (or should I say "when") test routines do not work as
expected. The pin details cannot be edited since these are not likely
to change!
To quit from the software, press <Escape> at the main menu, then
answer "Y" to the "Are you Sure" question. Make sure you have saved
any changes you want to keep, otherwise your work will be lost.
Over 40 device files are supplied with the software. Some of these
have been tested, but there will inevitably be a couple of errors in the
others.
Parts
Resistors (all 5% 0.25W)
R1
4M7
R2
2K2
R3
1K0
R4,51
47K
R5-27 (23 off)
4K7
R28-50 (23 off)
220R
R52
330R
RN1
4K7 * 8 SIL Resnet
Capacitors
C1-5
22uF 16V
C6,7
22pF
C8
2n2F
C9
10uF
C10-14
100nF
C15
47uF 16V
Semiconductors
IC1
MAX232
IC2
4060 or 74HCT4060
IC3
CDP6402 (Maplin QQ04E)
IC4
74HCT14
IC5-10
74LS75 or 74HCT75
IC11-14
74LS05 or 7406
IC15
74LS238 or 74HCT238
IC16
74LS138 or 74HCT138
IC17-19
74LS244 or 74HCT244
D1
1N4148
D2
LED
Miscellaneous
XT1
2.4576MHz Crystal
SK1
9 or 25 Way D Connector
SK2
24 Way Universal ZIF Socket
SK3
DC Input Socket
SW1
6 Position Rotary with Knob
FU1
20mm T500mA with PCB holder
PCB, Software, Case, 5V regulated power supply (eg the EPROM PSU on this
website)