ICT is a tester for integrated circuits
ICT allows to identify and verify integrated circuits of the 4000 and 7400 series.
It also allows to test memory components.
- Dynamic memories 4116, 4164, 41256, 4416 and 44256.
- Static memories 2114, 6116 and 61256.
- Read-only memories 2764, 27128 and 27256.
- Ferroelectric random-access memories FM1608 and FM1808.
- Flash memories SST39SF010A, SST39SF020A and SST39SF040.
It is possible to handle new components by adding definitions into the files of parameters.
ICT is inspired by Smart IC Tester project from Akshay Baweja.
ICT is made of several items.
- An Arduino Mega 2560 card.
- A TFT touch screen with integrated micro SD card reader.
- The ICT version 2.0 extension card.
- A micro SD card.
As for the screen, there are many models with different controllers. It will therefore be necessary to adapt the management of the screen. The screen used is perfectly managed by the MCUFRIEND_kbv library for display and the Adafruit TouchScreen library for touch.
The files logic.ict, memory.ict and ict.ini must be copied to the root of the micro SD card.
To develop the application, the Eclipse IDE, the Sloeber plugin and the official Arduino core are used:
- Eclipse CDT 2020-06
- Sloeber 4.3.3
- Official core Arduino AVR 1.8.3
It is however possible to use the Arduino IDE to compile the application.
The application uses several libraries:
- Adafruit BusIO 1.7.5
- Adafruit GFX Library 1.10.10
- Adafruit TouchScreen 1.1.2
- MCUFRIEND_kbv 2.9.9
- SdFat 1.1.4 ou 2.0.6
It is necessary to modify the file SdFatConfig.h of the SdFat library to allow access to the micro SD card.
In version 1.1.4, you must set ENABLE_SOFTWARE_SPI_CLASS
to 1:
#define ENABLE_SOFTWARE_SPI_CLASS 1
In version 2.0.6, you must set SPI_DRIVER_SELECT
to 2:
#define SPI_DRIVER_SELECT 2
In case of problem accessing the SD card, it is recommended to format the SD card with the SD Card Formatter tool.
If your screen uses an HX8347 component, it is necessary to uncomment a line of the MCUFRIEND_kbv.cpp file to activate support for this component.
#define SUPPORT_8347D
In addition, depending on the screen used, the code may require adaptations to manage orientation and touch. These portions of code are indicated by a comment.
// TODO adapt code to your display
To improve touch accuracy, it is possible to increase the number of samples used in the TouchScreen.cpp file.
#define NUMSAMPLES 4
- The normal orientation of the tester in use is screen at the bottom, ZIF support at the top.
- Pin 1 of the component to be tested is positioned at the top, to the right of the ZIF support, towards the locking lever, as indicated by the pictogram, to the right of the ZIF support.
- Markings on the PCB at the upper edge of the ZIF support indicate the position of the component according to the number of pins.
- The push button to the right of the ZIF support is a user button that allows you to interrupt an operation.
- The push button at the top left below the screen is a reset button.
- Insert the component to be identified in the ZIF support.
- Select the option Logic.
- On the next screen, select the number of pins of the component.
- Component identification is performed.
- Insert the component to be tested in the ZIF socket.
- Select the option Logic.
- On the next screen, select Keyboard, then enter the code of the component to be tested. For example 74139 for a component 74LS139.
- Click on the ENTER button.
- Component test is performed. To interrupt the operation, tap the screen.
- Insert the component to be tested in the ZIF support.
- Select the option Memory.
- On the next screen, enter the code of the component to be tested. For example 4164 or tms4164 for a TMS4164 component.
- Click on the ENTER button.
- A read/write test with 4 different patterns of bits is performed.
- Insert the component to be tested in the ZIF support.
- Select the option Memory.
- On the next screen, enter the code of the component to be tested. For example 2764 or am27c64 for an AM27C64 component.
- Click on the ENTER button.
- On the next screen, select the options:
- Break on blank fail.
- Read to serial.
- Read to file.
- Click on the CONTINUE button.
- The selected actions are performed.
- Insert the component to be tested in the ZIF support.
- Select the option Memory.
- On the next screen, enter the code of the component to be tested. For example fm1608 for an FM1608 component.
- Click on the ENTER button.
- On the next screen, select the options:
- Read to serial.
- Read to file.
- Erase.
- Write.
- Click on the CONTINUE button.
- The selected actions are performed. If no option is selected, the component is tested like a RAM.
- If the Write option is selected, on the next screen, select a file. The component is written with the content of the selected file.
- Insert the component to be tested in the ZIF support.
- Select the option Memory.
- On the next screen, enter the code of the component to be tested. For example sst39sf040 for an SST39SF040 component.
- Click on the ENTER button.
- On the next screen, select the options:
- Read to serial.
- Read to file.
- Erase.
- Write.
- Click on the CONTINUE button.
- The selected actions are performed. If no option is selected, the component is tested like a RAM.
- If the Write option is selected, on the next screen, select a file. The component is written with the content of the selected file.
In general, if the ICT extension does not work properly, it is necessary to make each element work step by step. You have to start by using the screen on the Arduino Mega, without the ICT extension.
If you have a white screen, the screen may not be handled by default. On the serial monitor, the screen component identifier is displayed:
TFT initialized 0x9341
You can search for this identifier and check if it is possible to activate its support in the MCUFRIEND_kbv library. Another solution is to use the diagnose_TFT_support.ino sketch in the examples of the MCUFRIEND_kbv library and to follow the instructions.
The TouchScreen_Calibr_native.ino example sketch of the MCUFRIEND_kbv library is used to configure and calibrate the touch screen.
Problems accessing the SD card, apart from a correct configuration of the SdFat library, are linked to incompatible formatting of the card.
Once every element works, the last step is to integrate the extension. At this stage, the only point that can cause problems is improper insertion of the extension.
For help or to obtain the ICT extension, you can consult the thread [Arduino] ICT testeur de circuits intégrés, from the System.cfg site forum.