IC TESTER part-1

Simple function IC tester circuit using bi-directional LPT parallel port or serial port

LOGIC PROLOG

            What is mean logic-1 or logic-0? Logic-1 and logic-0 strongly connection between the state at one moment and one condition. Logic-1 means any states are in the condition of high voltage close to Vcc voltage, and logic-0 means any states that close to netral or ground voltage. Is that just right that?. What about logic philosophy? Logic philosophy are like this, at one state, logic-0 cannot be made to be come logic-1 but logic-1 can be made to be logic-0. So if we want to exam the output of any devices (like and gate, or gate, not gate, buffer, counter, etc.), the output logic must be keep to be logic-1, then the input logic can be applied and the output logic will be changed by the result.

 

SALUTATION

            This project was dedicated to Paul Stenning at http://www.paulandmark.u-net.com/electron/ where the idea come when I saw his project. The project used a standard serial port type. I got quiet difficult to find this type IC. So I made the parallel port version. The concept is still the same. I changed only the part of serial to parallel convertion data. But my program still can used both hardware, serial port type or parallel port version. Certainly I didn't try the serial version, because I didn't build it, so if someone have found any bugs, please report it to me. I will fix it. Thanks to Paul because of his great thinking. I myself already tried a long time ago to make a device like this (simple ic-tester) to test any other ICs in my junk trash can. Thank you very much Paul'S !!!

THE PARALLEL VERSION IC-TESTER

            Some part was changed to accomodate the parallel type port. The original clock circuit, RS-232 buffers and interface was omitted and replace with the parallel port interface and the flip-flop latch changed with 8-bit latch, so the circuit is more simpler. Other parts are still the same accept that the selector switch to select the IC power was changed to relay devices. So we can make the device a little automatic selecting pin power. Here is the complete circuit diagram 

click the below images for zooming  
 
   
The device must used bi-directional LPT parallel port (because the standard LPT parallel port can not accomodate the data interchange). All control signals are used to make the combination of control function for PPI-8255. More about explanation for this IC type can be seen at another topic, LPT extender and expander). This IC configured for port-A as output port, port-B as input port and port-C as output port. Port-A used to send logic state to IC under test, port-B used to read logic state from IC under test and port-C used for input decoder to select the enable function of latches and buffers of IC under test and also to activated the relay power circuits. Tabel I-1. shows the functional truth table for operational of this PPI-8255 for our purpose.
 








A1 A0 RD WR Reset CS Description
X X X X 0 1  DP side is tri-state (Hi-Z)
X X X X 1 X  All ports as input ports (reset)
0 0 1 0 0 0  DP side to port-A (write port-A)
0 1 0 1 0 0  Port-B to DP side (read port-B)
1 0 1 0 0 0  DP side to port-C (write port-C)
1 1 1 0 0 0  DP side to port-CW (write port-CW)
1 1 0 1 0 0  Not allowed for 8255A-5, but accepted for 82C55 type
 (read port-CW)
Tabel I-1. Control function of PPI-8255.
 
-->
            As usual, DP port LPT is used for data interchange, PS port LPT used partly for identify card, and PC port LPT used for controlling the PPI-8255. As for identify card, like EPROM Programmer Card application, I used 2-bits for this purpose. But in that card, PS-7 seems like a redundancy function. Because it is inverting input, so if the PS-7 bit is not connected/released or broken, the reading also true. So I make some advanced used for this PS-7 bit. In this IC-Tester card, this bit used for detecting power-on from the card. If the card is still connected but the power is off, the program can not continue. Please you compare this function with both card. All of PC port LPT are used for controlling. I already selected these bits for our used. PC-5 bit as usual used for bidirectional enable, PC-3 bit used for WR signal (note that PC-3 is inverting input), PC-2 bit used for RD signal (this is normal input), PC-1 bit used for selecting address A1 (note that PC-1 is inverting input) and PC-0 used for selecting address A0 (this also an inverting input). The others functions, reset and Chip Select (CS) enable by used the combination of PC-3 and PC-2 bits. The explanation of these functional utilization can be obtain at LPT extender and expander topic. Tabel I-2. shows the bits should be apply to this port for our purpose as needed by tabel I-1.
 
 








DP-7 ~ DP-0 8-bit data port
PS-7 (Inv.) PS-3 Card Identify
X 0 IC-Tester card detect
1 X Power-on detect
PC-7
(Unused)
PC-6
(Unused)
PC-5 (Bidirectional Enable) PC-4
(IRQ Enable)
PC-3 (Inv.)
Used for WR
PC-2
Used for RD
PC-1 (Inv.)
Used for A1
PC-0 (Inv.)
Used for A0
Control port
X X 0 0 0 1 X X Stand-by mode (Hi-Z)
X X 0 0 1 0 X X Reset
X X 0 0 1 1 1 1 Writing port-A
X X 1 0 0 0 1 0 Reading port-B
X X 0 0 1 1 0 1 Writing port-C
X X 0 0 1 1 0 0 Writing port-CW
Tabel I-2. Bits used by IC-Tester card toward LPT port.
 
            Port PC PPI-8255 (for not to be confused between PC port LPT and PC port PPI-8255, we used the state, PC port is for LPT port and C port for PPI-8255 for later used) are used for activated the latches, buffers and relays for IC test power. 3-bits lower used for binary decoder inputs. So we have 8-state from this 3-bits, 3 are used for latches enable, 3 for buffers enable and 1 for steady-state condition and 1 still spare/unused. Steady state condition used when there are no action or needs when changing state. The rest 5-bits of C port used for enable IC test power. Here I only selected 5 possible and general combination for IC's power pins, range for 24-pins to 14-pins IC. Many TTL's and CMOS's power pins are the last pin number for Vcc and the half pin number for Ground. So for 24-pins IC, ie.pin-12 and pin-24, for 20-pins IC, ie.pin-10 and pin-20, for 16-pins IC, ie.pin-8 and pin-16, for 14-pins IC, ie.pin-7 and pin-14. If we press the ground pin to pin-12, many connection are omitted. The last preserved for un-common combination,ie. if the power locate at another pins, but this is only for IC type less than 24-pins. Vcc locate at pin-24 and ground at pin-1. Connection must be made by manual (jumper). You can use some kind of clips with pointed clip. Fig.1-1. shows one of this clip kinds. For 24-pins IC type, we use nothing of this relay. This also needs manual conection (jumper) to the power circuit. Tabel I-3. shows the control function of C port bits.
 








C-7 C6 C-5 C-4 C-3 C-2 C-1 C-0 OUTPUT

0 0 0 Enable latch data pin-1 ~ pin-8
0 0 1 Enable latch data pin-9 ~ pin-16
0 1 0 Enable latch data pin-17 ~ pin-24
0 1 1 Enable buffer data pin-1 ~ pin-8
1 0 0 Enable buffer data pin-9 ~ pin-16
1 0 1 Enable buffer data pin-17 ~ pin-24
1 1 0 Spare (unused)
1 1 1 Stand-by mode (steady state)
1 1 1 1 1
User 24-pins IC power select
1 1 1 1 0 24-pins IC power select
1 1 1 0 1 20-pins IC power select
1 1 0 1 1 16-pins IC power select
1 0 1 1 1 14-pins IC power select
0 1 1 1 1 User-pins IC power select
Tabel I-3. Control function of port-C bits PPI-8255.

HARDWARE

            I already built this prototype by using double sided PCB using protel software design. The design was still crowded, but it worked. Many jumper must be made to both sides, because we didn't have a fabricate one (this create manually). I used a tiny email wire (or you may use wire from nyy cable). Even its already double layer, it needs also many jumper, so don't forget to put it in the right way.

Here is the PCB artwork looks like (35.800 Bytes).

            Note that the common copper clad of top layer is ground and the common copper clad of bottom layer is Vcc. Don't forget to test it with ohm tester (bell check). this copper side both layer must not short circuited. Also Vcc and ground for any IC must be checked there were connected or not. Its better if we used many socket for ICs, because if any IC known defect, it can be easyly replaced with the new one. Many hours must lost here if you didn't do it well, careful!!! Here also I made PCB adapter (8.349 Bytes) for 20-pins, 16-pins and 14-pins IC to 24-pins socket. View of these adapter constructions are as follow (8.968 Bytes).

 

SOFTWARE

            Original software written in Quick Basic style, I prever write it in Pascal style (may be later in Delphi for windows based). As usual the hardware can be connected to any LPT parallel port, and the software will automatically checking the card existence. For any one who has already built the serial version, still can use this software. But I did not tested the serial version by myself, please report it if you found any bugs. Below is part of the routine to detect the card, initialization it and routine for I/O transfer, implementation of the description before.
 
TYPE
    LPT_Port       = (LPT_1, LPT_2, LPT_3, No_LPT);
    Mode_PPI       = (Port_A, Port_B, Port_C, Port_CW, Port_Hi_Z, PPI_Rst);
    Dec_Port_C     = (Set_Latch_1, Set_Latch_2, Set_Latch_3,
                      Set_Buffer_1, Set_Buffer_2, Set_Buffer_3,
                      Set_Spare, Steady_State);
    Mode_Port      = (COM_1, COM_2, LPTs);
    Pin_IC         = (Pin_24, Pin_20, Pin_16, Pin_14, User_Pin, Not_Set);

CONST
     Ada_Port      : BOOLEAN = FALSE;
     Ada_Card      : BOOLEAN = FALSE;
     Bi_Direct     : BOOLEAN = FALSE;
     PC_Port       : ARRAY[0..2] OF WORD =
                     ($03F8,$02F8,$0278);   { 'COM1','COM2','LPT1' }
     DP : ARRAY[LPT_Port] OF WORD = ($3BC, $378, $278, $3BC); { Data Port }
     PS : ARRAY[LPT_Port] OF WORD = ($3BD, $379, $279, $3BD); { Status Port }
     PC : ARRAY[LPT_Port] OF WORD = ($3BE, $37A, $27A, $3BE); { Control Port }
     Port_PPI : ARRAY[Mode_PPI] OF WORD = ($000F,     { Port-A PPI as output port}
                                           $0022,     { Port-B PPI as input port}
                                           $000D,     { Port-C PPI as output port}
                                           $000C,     { Port-CW PPI as output port}
                                           $0004,     { Port-Hi-Z PPI }
                                           $0008);    { Reset PPI }
     Set_Mode_PPI  = $0082;                           { Port-A, Port-C = Output }
                                                      { Port-B = Input, Mode = 0 }
     Set_Dec_Port_C : ARRAY[Dec_Port_C] OF BYTE = ($F8,    { Latch 1 Aktif }
                                                   $F9,    { Latch 2 Aktif }
                                                   $FA,    { Latch 3 Aktif }
                                                   $FB,    { Buffer 1 Aktif }
                                                   $FC,    { Buffer 2 Aktif }
                                                   $FD,    { Buffer 3 Aktif }
                                                   $FE,    { Spare Bit }
                                                   $FF);   { Steady State }
     Tegangan_IC   : ARRAY[Pin_IC] OF BYTE = ($F7,    { Vcc=pin-24, Gnd=pin-12 }
                                              $EF,    { Vcc=pin-22, Gnd=pin-12 }
                                              $DF,    { Vcc=pin-20, Gnd=pin-12 }
                                              $BF,    { Vcc=pin-19, Gnd=pin-12 }
                                              $7F,    { Vcc=pin-24, Gnd=pin-1 }
                                              $FF);   { Vcc=none, Gnd=none, external supply }
     Port_A_PPI    = $03;    { Note that Port-A through Port-CW }
     Port_B_PPI    = $02;    { are inverting to PC-0 and PC-1 }
     Port_C_PPI    = $01;
     Port_CW_PPI   = $00;
PROCEDURE Cek_Card;
VAR
   Kode_1, Kode_2, Kode_3 : BYTE;
   Dummy : BYTE;
BEGIN
     Ada_Port := FALSE; Ada_Card := FALSE;Bi_Direct := FALSE;
     IF (Set_Port = LPTs) THEN         { Parallel Port }
     BEGIN
          FOR LPT := LPT_1 TO LPT_3 DO
          BEGIN
               IF (NOT Ada_Port) OR (NOT Ada_Card) THEN
               BEGIN
                    IF PORT[PC[LPT]] <> Set_Dec_Port_C[Steady_State] THEN Ada_Port := TRUE;
                    IF Ada_Port THEN
                    BEGIN
                         PORT[DP[LPT]] := $44;        { Send code byte 'Dummy' }
                         Dummy := PORT[PC[LPT]];
                         PORT[PC[LPT]] := Dummy OR $20;    { Cek bi-directional port }
                         IF PORT[DP[LPT]] <> $44 THEN Bi_Direct := TRUE;
                         PORT[PC[LPT]] := Dummy;
                         IF Bi_Direct THEN
                         BEGIN
                              IF ((PORT[PS[LPT]] AND $88) = $80) THEN Ada_Card := TRUE   { Cek IC-Tester Card }
                              ELSE Ada_Card := FALSE;      { PS_3 = normal, PS_7 = Inverting }
                         END;                              { When open, PS are all in hi-z }
                    END;
               END;
               IF Ada_Port AND Ada_Card THEN     { Normally PS[LPT] = $7F (?) }
               BEGIN
                    Port_DP := DP[LPT];
                    Port_PC := PC[LPT];
                    Port_PS := PS[LPT];
                    IF Bi_Direct THEN Inisialisasi_PPI;
               END;
          END;
     END;
END;

PROCEDURE Inisialisasi_PPI;
BEGIN
     IF Set_Port = LPTs THEN
     BEGIN
          PORT[PC[LPT]] := Port_PPI[PPI_Rst];    { Give a pulse }
          PORT[PC[LPT]] := Port_PPI[PPI_Rst];    { Give a pulse }
          PORT[PC[LPT]] := Port_PPI[Port_Hi_Z]+Port_CW_PPI;
          PORT[DP[LPT]] := Set_Mode_PPI;
          PORT[PC[LPT]] := Port_PPI[Port_CW];    { Give a pulse }
          PORT[PC[LPT]] := Port_PPI[Port_Hi_Z]+Port_CW_PPI;
          PORT[DP[LPT]] := Set_Dec_Port_C[Steady_State];
          PORT[PC[LPT]] := Port_PPI[Port_C];     { Give a pulse }
          PORT[PC[LPT]] := Port_PPI[Port_Hi_Z]+Port_C_PPI;
     END;
     Temp_Port := Set_Port;
END;

PROCEDURE Tulis_Port_A(Datanya : BYTE);
BEGIN
     PORT[DP[LPT]] := Datanya;
     PORT[PC[LPT]] := Port_PPI[Port_A];     { Give a pulse }
     PORT[PC[LPT]] := Port_PPI[Port_Hi_Z]+Port_A_PPI;
END;

PROCEDURE Tulis_Port_C(Datanya : BYTE);
BEGIN
     PORT[DP[LPT]] := Datanya;
     PORT[PC[LPT]] := Port_PPI[Port_C];     { Give a pulse }
     PORT[PC[LPT]] := Port_PPI[Port_Hi_Z]+Port_C_PPI;
END;

FUNCTION Baca_Port_B : BYTE;
VAR
   Temp : BYTE;
BEGIN
     PORT[PC[LPT]] := Port_PPI[Port_B];     { Give a pulse }
     Temp := PORT[DP[LPT]];
     PORT[PC[LPT]] := Port_PPI[Port_Hi_Z]+Port_B_PPI;
     Baca_Port_B := Temp;
END;
          

1 comment:

  1. i think this content is more benefit to the visitors , please comment your Queries about this post. "Thank You"

    ReplyDelete

Labels

PROJECTS 8086 PIN CONFIGURATION 80X86 PROCESSORS TRANSDUCERS 8086 – ARCHITECTURE Hall-Effect Transducers INTEL 8085 OPTICAL MATERIALS BIPOLAR TRANSISTORS INTEL 8255 Optoelectronic Devices Thermistors thevenin's theorem MAXIMUM MODE CONFIGURATION OF 8086 SYSTEM ASSEMBLY LANGUAGE PROGRAMME OF 80X86 PROCESSORS POWER PLANT ENGINEERING PRIME MOVERS 8279 with 8085 MINIMUM MODE CONFIGURATION OF 8086 SYSTEM MISCELLANEOUS DEVICES MODERN ENGINEERING MATERIALS 8085 Processor- Q and A-1 BASIC CONCEPTS OF FLUID MECHANICS OSCILLATORS 8085 Processor- Q and A-2 Features of 8086 PUMPS AND TURBINES 8031/8051 MICROCONTROLLER Chemfet Transducers DIODES FIRST LAW OF THERMODYNAMICS METHOD OF STATEMENTS 8279 with 8086 HIGH VOLTAGE ENGINEERING OVERVOLATGES AND INSULATION COORDINATION Thermocouples 8251A to 8086 ARCHITECTURE OF 8031/8051 Angle-Beam Transducers DATA TRANSFER INSTRUCTIONS IN 8051/8031 INSTRUCTION SET FOR 8051/8031 INTEL 8279 KEYBOARD AND DISPLAY INTERFACES USING 8279 LOGICAL INSTRUCTIONS FOR 8051/8031 Photonic Transducers TECHNOLOGICAL TIPS THREE POINT STARTER 8257 with 8085 ARITHMETIC INSTRUCTIONS IN 8051/8031 LIGHTNING PHENOMENA Photoelectric Detectors Physical Strain Gage Transducers 8259 PROCESSOR APPLICATIONS OF HALL EFFECT BRANCHING INSTRUCTIONS FOR 8051/8031 CPU OF 8031/8051 Capacitive Transducers DECODER Electromagnetic Transducer Hall voltage INTEL 8051 MICROCONTROLLER INTEL 8251A Insulation Resistance Test PINS AND SIGNALS OF 8031/8051 Physical Transducers Resistive Transducer STARTERS Thermocouple Vacuum Gages USART-INTEL 8251A APPLICATIONs OF 8085 MICROPROCESSOR CAPACITANCE Data Transfer Instructions In 8086 Processors EARTH FAULT RELAY ELECTRIC MOTORS ELECTRICAL AND ELECTRONIC INSTRUMENTS ELECTRICAL BREAKDOWN IN GASES FIELD EFFECT TRANSISTOR (FET) INTEL 8257 IONIZATION AND DECAY PROCESSES Inductive Transducers Microprocessor and Microcontroller OVER CURRENT RELAY OVER CURRENT RELAY TESTING METHODS PhotoConductive Detectors PhotoVoltaic Detectors Registers Of 8051/8031 Microcontroller Testing Methods ADC INTERFACE AMPLIFIERS APPLICATIONS OF 8259 EARTH ELECTRODE RESISTANCE MEASUREMENT TESTING METHODS EARTH FAULT RELAY TESTING METHODS Electricity Ferrodynamic Wattmeter Fiber-Optic Transducers IC TESTER IC TESTER part-2 INTERRUPTS Intravascular imaging transducer LIGHTNING ARRESTERS MEASUREMENT SYSTEM Mechanical imaging transducers Mesh Current-2 Millman's Theorem NEGATIVE FEEDBACK Norton's Polarity Test Potentiometric transducers Ratio Test SERIAL DATA COMMUNICATION SFR OF 8051/8031 SOLIDS AND LIQUIDS Speed Control System 8085 Stepper Motor Control System Winding Resistance Test 20 MVA 6-digits 6-digits 7-segment LEDs 7-segment A-to-D A/D ADC ADVANTAGES OF CORONA ALTERNATOR BY POTIER & ASA METHOD ANALOG TO DIGITAL CONVERTER AUXILIARY TRANSFORMER AUXILIARY TRANSFORMER TESTING AUXILIARY TRANSFORMER TESTING METHODS Analog Devices A–D BERNOULLI’S PRINCIPLE BUS BAR BUS BAR TESTING Basic measuring circuits Bernoulli's Equation Bit Manipulation Instruction Buchholz relay test CORONA POWER LOSS CURRENT TRANSFORMER CURRENT TRANSFORMER TESTING Contact resistance test Current to voltage converter DAC INTERFACE DESCRIBE MULTIPLY-EXCITED Digital Storage Oscilloscope Display Driver Circuit E PROMER ELPLUS NT-111 EPROM AND STATIC RAM EXCITED MAGNETIC FIELD Electrical Machines II- Exp NO.1 Energy Meters FACTORS AFFECTING CORONA FLIP FLOPS Fluid Dynamics and Bernoulli's Equation Fluorescence Chemical Transducers Foil Strain Gages HALL EFFECT HIGH VOLTAGE ENGG HV test HYSTERESIS MOTOR Hall co-efficient Hall voltage and Hall Co-efficient High Voltage Insulator Coating Hot-wire anemometer How to Read a Capacitor? IC TESTER part-1 INSTRUMENT TRANSFORMERS Importance of Hall Effect Insulation resistance check Insulator Coating Knee point Test LEDs LEDs Display Driver LEDs Display Driver Circuit LM35 LOGIC CONTROLLER LPT LPT PORT LPT PORT EXPANDER LPT PORT LPT PORT EXTENDER Life Gone? MAGNETIC FIELD MAGNETIC FIELD SYSTEMS METHOD OF STATEMENT FOR TRANSFORMER STABILITY TEST METHODS OF REDUCING CORONA EFFECT MULTIPLY-EXCITED MULTIPLY-EXCITED MAGNETIC FIELD SYSTEMS Mesh Current Mesh Current-1 Moving Iron Instruments Multiplexing Network Theorems Node Voltage Method On-No Load And On Load Condition PLC PORT EXTENDER POTIER & ASA METHOD POWER TRANSFORMER POWER TRANSFORMER TESTING POWER TRANSFORMER TESTING METHODS PROGRAMMABLE LOGIC PROGRAMMABLE LOGIC CONTROLLER Parallel Port EXPANDER Paschen's law Piezoelectric Wave-Propagation Transducers Potential Transformer RADIO INTERFERENCE RECTIFIERS REGULATION OF ALTERNATOR REGULATION OF THREE PHASE ALTERNATOR Read a Capacitor SINGLY-EXCITED SOLIDS AND LIQUIDS Classical gas laws Secondary effects Semiconductor strain gages Speaker Driver Strain Gages Streamer theory Superposition Superposition theorem Swinburne’s Test TMOD TRANSFORMER TESTING METHODS Tape Recorder Three-Phase Wattmeter Transformer Tap Changer Transformer Testing Vector group test Virus Activity Voltage Insulator Coating Voltage To Frequency Converter Voltage to current converter What is analog-to-digital conversion Windows work for Nokia capacitor labels excitation current test magnetic balance voltage to frequency converter wiki electronic frequency converter testing voltage with a multimeter 50 hz voltages voltmeter

Search More Posts

Followers