Different ICs come with different specifications. Thus, it becomes imperative to apply different hardware configurations and feed all possible inputs for checking different ICs. We need some easy and useful techniques to check the functionality of different kinds of ICs. This article represents an arduino based digital IC tester that is highly capable, highly reliable as well as cost-effective. Here, we develop a program with different functions for checking different ICs. We systematically analyse and test the prototype for several ICs, accessing each individual pin with all possible inputs. We also investigate truth tables associated with different ICs over a display channel. Author’s prototype is shown in Fig. 1 and block diagram of the IC tester is shown in Fig. 2.
Arduino based digital IC tester circuit
Circuit diagram of the digital IC tester is shown in Fig. 3. It is built around Arduino Mega ADK board (BOARD1) based on ATmega2560 microcontroller (MCU), Nokia 5110 LCD connected at CON1, 5×3 matrix keypad (S1 to S15), ZIF socket (ZIF1), 12V/1-amp adaptor and a few other components.
ATmega2560 in Arduino Mega is equipped with a bootloader which enables new codes to be uploaded into the MCU without using an external hardware programmer.
The LCD screen used in this prototype has 48×84 pixels. It uses a low-power CMOS LCD controller (PCD8544) with a moderate power requirement of 3.3V. This can be adjusted to MCU power requirements with suitable resistors. For controlling the LCD, a simple library named lcd with some basic functions has been designed.
The purpose of using keypad matrix principle is to reduce the required number of input/output (I/O) pins for controlling the keys. While taking an input, only one column is read at a time. The column to be read is connected to logical 0V.
Now, while checking the state of rows, it is possible to detect which key is pressed from that particular column. After reading one column, the MCU immediately goes for the next one by connecting the new column to logical 0V. It is very important that only that particular column (under checking) is connected to logical 0V. Otherwise, it will not be possible to detect proper input. In this manner, all columns are read one by one to obtain one complete cycle of the matrix scan.
With a clock speed of 16MHz, ATmega2560 is capable of scanning the whole matrix thousands of times per second. Note that diodes are added along all switches in order to eliminate unexpected results due to simultaneous multiple pressing of keys. For controlling the keypad, another library named keypad enables the user to feed different inputs to the MCU.
In the circuit, each I/O pin (associated with ZIF socket) is connected to 1-mega-ohm pull-down resistor. These resistors (R1 to R20) prevent the floating condition of input pins when these are not connected to any state (high/low). For the code designed for this IC tester to work perfectly, it is recommended that all connections to Arduino pins are made exactly as in the circuit diagram. If anything in the circuit diagram is changed, one must modify the code for the same.
Author’s prototype was used to test the following ICs successfully: 4000, 4001, 4002, 4011, 4012, 4023, 4025, 4029, 4030, 4049, 4050, 4068, 4069, 4070, 4071, 4072, 4073, 4075, 4077, 4081, 4082, 4093, 5408, 5409, 5411, 5421, 5479, 7266, 7400, 7401, 7402, 7403, 7404, 7405, 7408, 7409, 7410, 7411, 7412, 7414, 7420, 7421, 7427, 7430, 7432, 7473, 7474, 7476, 7478, 7479, 7486, 74132 and 74393.
ICs 4011, 4023, 4029, 4030, 4069, 4093, 7402, 7404, 7414, 7476 and 74393 were tested in EFY lab.
The number of supported ICs can be enhanced with the incorporation of new functions and libraries to the program. As ATmega2560 MCU has 256kB of flash memory, a program for very large number of ICs can be uploaded.
Unlike a typical IC tester, this device provides many useful features to its user. Nokia 5110 display panel and a 15-key keypad were used in this device for designing a suitable user interface, which enables the truth table exhibition possible.
Users can find help on the testing procedure. While entering the inputs (for example, IC number and time interval), they can clear the digits if entered incorrectly and re-enter the correct ones. Truth tables for each individual gate can be paused for better observation and can be skipped for saving time. There is feasibility of reproducing the previous stage (for re-entering the data) without resetting the device.
16MHz of processing speed makes the time response of this IC tester pretty good. No time-lag is observed while accepting data from the keypad and displaying information over the LCD panel. In case of auto-search, this prototype takes about 0.5 seconds on an average to detect the IC. All these features make this device powerful and user-friendly. A comparison of its features and specifications with two other branded IC testers (DICT-02 (Brand: Kitek) and Leaper-1A (Brand: Leap)) is shown in Table I.
A brief note on the coding is shown in Table II with different uses of variables and in Table III with uses of important functions.
Construction and testing
A single side PCB of the transmitter unit is shown in Fig. 4 and its component layout in Fig. 5. One can use this PCB as Arduino shield with Arduino Mega ADK board using 12V power supply at CON2. Otherwise, Arduino Mega ADK board can be interfaced with the PCB using cable connectors and power supply from 12V/1-amp adaptor.
As shown in block diagram (Fig. 2), the MCU is interfaced through an LCD, a keypad and an IC ZIF socket. The flow chart corresponding to the basic working process is shown in Fig. 6. As shown in the flow chart, this prototype is equipped with two methods for checking a particular IC. Both of these are elaborated below.
As different ICs come with their own specifications, checking process for each may vary. Here, we take an example of a common NAND gate IC 4011, whose truth table is shown in Table IV.
In this process, the number of pins of the IC to be checked is entered first. The device then starts manifesting all possible input signals to the IC and takes back its response for each possible input. If a response matches the output of a particular IC in its database, then it declares that IC as good (Figs 7 and 8).
In this method, the IC number is entered first (for example, 4011 as shown in Fig. 9). On continuation, basic detail of that IC is displayed (Fig. 10). At the start of the checking process, an option for truth table is provided for the user (Fig. 11). For viewing the truth tables, this option must be selected. At the next stage, the MCU initialises the signal-processing task.
In case of this specific NAND gate IC 4011, the MCU provides 5V supply to pin 14 and 0V to pin 7. As this IC has four NAND gates, each of these is checked one by one. The MCU provides the necessary combination of inputs to each gate as per the truth table (Table IV) and takes back outputs from the IC (4011) as its input.
Then, by comparing these observed results with expected results as per IC specifications, the MCU yields its conclusion on that particular gate (Fig. 12 shows the result for the first gate along with the corresponding truth table). Finally, the number of good and bad gates is displayed, in addition to the overall condition of the IC (Fig. 13).
Download PDFs and component layout PDFs: click here
Download source code: click here