TTL Tester
TTL Tester

    Mantra: “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 because TTL 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.

TTL Tester Schematic

Assorted test ICs    The TTL Tester consists primarily of software (firmware). Three of the four main hardware components are mounted to the enclosure lid, while the ATmega328P microcontroller (MPU) is 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 a 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 chips without 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 consumes time.

    After the one second of pretend additional testing time has expired the LCD displays ‘passed’ or else it identifies the logic gate or subcomponent (e.g. driver or inverter) that failed testing. 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.
TTL Cookbook

    Extensible code: Although I 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 left.

    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 other devices that are more complex than simple logic gates or drivers, but as noted 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 reset, it would necessary to use an FTDI cable to program the MPU without removing 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 features.

    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 gate, the program sets all inputs high (true), and then sets all but one input high for each of the 4 inputs in turn. This would normally suffice to identify a logic failure.

    Project Box: 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 attached). In retrospect, the total effort would have been about the same to design and print a top panel, versus measuring, drilling and cutting the box lid.

    Demo: TTL_Tester.mp4

Projects Home

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.