please help me... IC tester using microcontroller

be80be

Joined Jul 5, 2008
2,072
I can use that too LOL C, asm, jalv2, pascal,

Did you look at the video I posted I ran the test in a loop but it worked out of the box when i realized I had Uart backward
I had rx to rx LOL

Thats some nice code you got going there. Here my idea let's test 14 pin chips only and get that to work for basically 7400 to 7436 I think that's right.

This is what I came up with 7 and 14 are power only pins so you would want them limited to a safe level. Resistor on them to keep it at less then 8 mA I tested at 5 mA all was good.

I then limited output and input to a max of .5 mA , reason I picked this value is most of these chips can only put out .8 mA

Looked like a nice limit to me.

Now if you look as the pinout link I posted you will see that this range of chips could be tested with just three pins

to give what type of gate it is after you find a match you test the whole chip.

I'll post you a pin sample for the 74ls11
 
Last edited:

be80be

Joined Jul 5, 2008
2,072
Here what one gate test would look like for the 74ls11

Rich (BB code):
//Triple 3-input AND gates 74ls11

// Your code would be something like this 

//test one 
Dim pin1 as portB.0
dim pin2 as portb.1
dim pin3 as portb.2
dim pin4 as portb.3
dim pin5 as portb.4 
dim pin6 as portb.5
dim pin8 as portb.6
dim pin9 as portb.7
dim pin10 as portc.0
dim pin11 as portc.1
dim pin12 as portc.2
dim pin13 as portc.3

Dim good As Boolean 
Low (pin1) 
Low (pin2)
Low (pin13) 
    If pin12 = 0 Then
       good = true
    EndIf 
          DelayMS(500) //so we don't miss ant thing 
high (pin1) 
Low (pin2)
Low (pin13) 
    If pin12 = 0 Then
        good = true
    EndIf 
         DelayMS(500) //so we don't miss ant thing 
high (pin1) 
high (pin2)
high (pin13)
     If pin12 = 1 Then
         good = true
     EndIf
     If good = true Then 
        High (PORTA.0)
     Else 
           good = false // was bad
          Low (PORTA.0)
     EndIf 

// Next test
 

Thread Starter

gracey

Joined Feb 19, 2011
14
Hello ... I just wanna ask about 3 x 4 keypad and LCD...

Im planning use it to input what IC is to be tested...
Is it safe to use only one PIC for these??
 

be80be

Joined Jul 5, 2008
2,072
I would probably just set for chip type myself. I played with this last night and you can pick the gates out but not really tell the chip Id nand gate and gate . It is easy to test the chip if you no the one your testing. You could add a keypad and lcd but that would be all the pins on a 40 pin chip almost.
 

DumboFixer

Joined Feb 10, 2009
217
1 small code addition

after
Rich (BB code):
dim good as Boolean
you should add

Rich (BB code):
good = false
The code assumes that the compiler initialises the variable good to false. You shouldn't assume this.
 

be80be

Joined Jul 5, 2008
2,072
Good was set in main code I just posted the sub. But it should be placed in the sub. I moved the dim's to the main code so the subs could reuse them.
Here what I have tested so far.

Rich (BB code):
 Device = 18F2550
 Clock = 8
 Config FOSC= INTOSCIO_EC
 Include "usart.bas"
 Include "Utils"
 Include "convert.bas"
 Include "intosc8"

//Triple 3-input AND gates 74ls11

// Your code would be something like this 

//test one 
Dim pin1 As PORTB.0
Dim pin2 As PORTb.1
Dim pin3 As PORTb.2
Dim pin4 As PORTb.3
Dim pin5 As PORTB.4 
Dim pin6 As PORTB.5
Dim pin8 As PORTB.6
Dim pin9 As PORTB.7
Dim pin10 As PORTC.0
Dim pin11 As PORTC.1
Dim pin12 As PORTC.2
Dim pin13 As PORTC.3

 // Your code would be something like this 

//test one 

Sub T74ls00 ()
Dim good As Boolean  
good = false 
Input (pin3)
Output (pin1)
Output (pin2)
Low (pin1)         
Low (pin2)            
  If pin3 = 1 Then
       good = true
    EndIf 
          DelayMS(500) //so we don't miss any thing 
High (pin1) 
Low (pin2) 
        DelayMS(50)
    If pin3 = 1 Then
        good = true
    EndIf 
         DelayMS(500) //so we don't miss any thing 
High (pin1) 
High (pin2)
         DelayMS(50)
     If pin3 = 0 Then
         good = true
     EndIf
     If good = true Then 
        USART.Write("good 74ls00", 13, 10)                // string
        DelayMS(500)
     Else 
           good = false // was bad
         USART.Write("bad 74ls00", 13, 10)                // string
     EndIf  
End Sub   
//Triple 3-input AND gates 74ls11
Sub T74ls11 ()
Dim good As Boolean 
good = false
Input (pin3)
Output (pin1)
Output (pin2)
Output (pin13)
Low (pin1) 
Low (pin2)
Low (pin13) 
    If pin12 = 0 Then
       good = true
    EndIf 
          DelayMS(500) //so we don't miss ant thing 
High (pin1) 
Low (pin2)
Low (pin13) 
    If pin12 = 0 Then
        good = true
    EndIf 
         DelayMS(500) //so we don't miss ant thing 
High (pin1) 
High (pin2)
High (pin13)
     If pin12 = 1 Then
         good = true
     EndIf 
     If good = true Then 
         USART.Write("good 74ls11", 13, 10)                // string
     Else 
          good = false // was bad
          USART.Write("bad 74ls11", 13, 10)                // string
         
     EndIf 
End Sub
// Next test 
ADCON1 = $FF
CCP2CON = $0
SetAllDigital
SetBaudrate(br9600)
 
      DelayMS(50)
 USART.Write("I'm ready", 13, 10)                // string
        DelayMS(50) 
        
 T74ls00      //test 74ls00          
 T74ls11      // test 74ls11
 End
 
Last edited:

Thread Starter

gracey

Joined Feb 19, 2011
14
good eve... I tried loading the program to the PIC using programmer w/ parallel port.. there was an error "fuse error".. I am using mikrobasic for the program..Is there a need to install additional drivers or softwares??
 

Thread Starter

gracey

Joined Feb 19, 2011
14
we used programmer w/ parallel port..

what programmer or loader that is suitable for mikrobasic compiler?
 
Last edited:

be80be

Joined Jul 5, 2008
2,072
What you program in don't really matter.

What programming software your using?

And the type of programmer?

Then I could help you figure it out
 
Top