“It’s not the chip.” Repeat frequently when
troubleshooting a circuit that includes TTL (Transistor-Transistor
Logic). But what if the
IC had been plugged in backwards? In many cases there would be no harm
devices have a powerful survival instinct. Well, sometimes—rarely— it
is the chip. And since a defective chip is conceivable, ruling out that
possibility may lead to improved
clarity of thought. At least one bothersome contingency should cease to
intrude on more rational hypotheses.
The TTL Tester
consists primarily of software (firmware). Three of the four main
mounted to the enclosure lid, while the ATmega328P microcontroller
socketed on a piece of old Radio Shack PCB. The PCB was cut to
fit one of the vertical slots of the Steren project box.
Turning the rotary encoder knob selects
chip to be tested from among the dozen or so that have been programmed.
During this selection phase MPU I/O pins that are connected to the
ZIF socket are set to INPUT pinmode, so it is generally safe to change
powering-off the tester. Although one test chip, the 7486, caused the
MPU to reset when inserted live. Once a chip has been
socketed, and its 74xx
number selected, pressing
the rotary encoder pushbutton commences the test.
Testing takes only milliseconds, but there is a one-second
programmed delay before results are displayed. This is to create the
illusion that the tester is doing some complicated thing that
After the one second of pretend
time has expired the LCD displays ‘passed’ or else it
the logic gate or subcomponent (e.g. driver or inverter) that failed
TTL IC sub-components are labeled ‘A’, ‘B’, ... counterclockwise
around the ZIF socket starting from pin 1 (lower left corner).
The ZIF socket accommodates 16-pin
as well as 14-pin chips. A jumper on the PCB shorts pins 7 and 8
(ground) for 14-pin devices . I have not
programmed any 16-pin chips for testing; however pins 7 and 9
are also wired to the MPU,
and can be used. When the ground shorting jumper is removed pin 7
becomes a programmable I/O channel, same as the others.
did not pay particular attention to coding
efficiency, the sketch consumes only about 25% of memory for devices
that are pre-programmed—basically those in the illustration on
The Arduino Uno sketch may be downloaded
or copy-pasted from this page.
I would have
liked to implement testing a 7474
flip-flop, as well as
devices that are more complex than simple logic gates or drivers, but
above there is plenty of memory available to experiment—not so much I/O
pins, however. When extending the sketch for additional devices note
that MPU pins that sense TTL open collector outputs must be set to
INPUT_PULLUP pinmode. Otherwise they won’t go high. The following is a
step-by-step procedure for adding a new IC type to the tester:
To re-program the
MPU it is necessary to
pull the chip. I did not bring out the reset pin. Other programming
pins are accessible via the ZIF socket. Pins 1 and 2 map to MPU pins 2
and 1 (serial Tx and Rx), while 16 and 8 are + and ground. Even with
would necessary to use an FTDI cable to program the MPU without
it. That said, making reset accessible would be a potential
improvement. Another possibility would be to skip the MPU board
entirely and use an Arduino for the project, perhaps mounting the
ZIF socket on a shield. The only reason I can think to use a bare
board in place of an Uno and shield is for the minor challenge of
making the project work without the aid of Arduino development
The posted program
tests only logic, not whether the IC meets load handling or other
specifications. It does
not report whether an open-collector output can tolerate 30 volts!
The power supply is 5 volts, and that is the only voltage that is used.
When gates have more than two inputs, not every combination
is tested, just the main ones. For example, when testing a 4-input NAND
the program sets all
inputs high (true), and then sets all but one input high for each of
inputs in turn. This would normally suffice to identify a logic failure.
My original intent was to 3D-print a panel to fit the Steren project
box in the same way the lid fits. I suffer a particular ineptitude for
drilling or cutting holes in plastic and, of course, holes cannot be
undone. However they can be covered. So instead of printing
an entire panel why not 3D-print a couple of bezels. The print time is
15 minutes versus 3 or 4 hours. That idea more or less worked out,
although I still made a visible error with the asymmetric mounting
holes for the ZIF socket (i.e., the substrate to which it was
retrospect, the total effort would have been about the same to design
and print a top panel, versus measuring, drilling and cutting the box
Project descriptions on this page are intended for entertainment only.
The author makes no claim as to the accuracy or completeness of the
information presented. In no event will the author be liable for any
damages, lost effort, inability to carry out a similar project, or to
reproduce a claimed result, or anything else relating to a decision to
use the information on this page.