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.