Can't make RA1 a digital Input on (10 out of 20) 16F887.


Closed Thread
Results 1 to 17 of 17

Hybrid View

  1. #1
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default Re: Can't make RA1 a digital Input on (10 out of 20) 16F887.

    Quote Originally Posted by paulgrut View Post
    I thought I had my large code finalized, and now half of my boards have a problem.

    The RA1 input always reads 0. I have ANSEL = 0, ANSELH = 0, and have various settings of the other registers from the datasheet.
    I also tried using the alldigital.pbp include file.

    So in summary, You have 20 pics all programmed alike, and only half work as expected?
    Perhaps you have gotten some sour hardware . . . perhaps?
    Can you toggle those pins with a simple code, apart from this program?
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

  2. #2
    Join Date
    Sep 2013
    Posts
    6


    Did you find this post helpful? Yes | No

    Default Re: Can't make RA1 a digital Input on (10 out of 20) 16F887.

    Yes. I have 20 boards with the PIC soldered in. And on half the RA1 input does not work.

    I am able to make the RA1 act as an output and it works correctly on all of them.

    I am seeing 2 different silicon date codes on the chips, but the problem is with some of each.

    The circuit boards are all from the same batch.

    The RA1 input is held high with 10K pullup resistor to 5V. The switch pulls this to ground. I have verified the voltage on the chip pin
    and it changes from 5V to 0V with the switch. I am going to look over all the ground traces and make sure there isn't (as Henrik asked)
    a seperated ground. Although the boards all look to be in good shape.

    Thanks for any other ideas. I might order some new 887's and see what happens. And some sockets also...

    Paul
    Last edited by paulgrut; - 29th September 2013 at 20:32.

  3. #3


    Did you find this post helpful? Yes | No

    Default Re: Can't make RA1 a digital Input on (10 out of 20) 16F887.

    I realize it's a pain to unsolder two PICs but the obvious thing to try is swapping the PIC from a working board to with the PIC from a non working board. Cold comfort but at least you will have a better idea if its the board or the PIC. Are the PICs DIP or SMD? If they're SMD try ChipQuik. BTW there is an errata for the 887, didn't see anthing obvious. George
    Last edited by towlerg; - 29th September 2013 at 22:24. Reason: old and stupid

  4. #4
    Join Date
    Sep 2013
    Posts
    6


    Did you find this post helpful? Yes | No

    Default Re: Can't make RA1 a digital Input on (10 out of 20) 16F887.

    Update.

    All of the Ground traces are correct and tied together.

    But....After checking again. RA1 WILL NOT work as an output either.

    I will swap 2 of the chips. I agree, it is the next step. Not too bad...they are DIP.

    Paul
    Last edited by paulgrut; - 29th September 2013 at 22:33.

  5. #5
    Join Date
    Sep 2013
    Posts
    6


    Did you find this post helpful? Yes | No

    Default Re: Can't make RA1 a digital Input on (10 out of 20) 16F887.

    Swapped the pic on a working board and a not working board....

    Problem stayed with the pic. Must be a pic problem.
    Just can't help but think I have something configured wrong in the code.
    What could cause a pic failure? These boards were built then tested bad. (no extended use) .

    Paul

  6. #6


    Did you find this post helpful? Yes | No

    Default Re: Can't make RA1 a digital Input on (10 out of 20) 16F887.

    have you verified the code in the working and non working PIC's?

  7. #7
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default Re: Can't make RA1 a digital Input on (10 out of 20) 16F887.

    Quote Originally Posted by paulgrut View Post
    What could cause a pic failure? These boards were built then tested bad. (no extended use) .

    Paul
    Static Electricity, short circuit, overload, bad programmer (device). What was the source of those PICs ? Microchip, Mouser, FleaBay ? Lots of Fake Chips out there, maybe you got unlucky that way . . . you gotta ask yourself, "What do electronics manufacturers do with parts that do not meet their high standards?". I would bet they wholesale them to somewhere in unmarked condition as scrap and they mysteriously get marked and marketed as "genuine". I am very dubious about off list suppliers.
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

  8. #8
    Join Date
    Aug 2003
    Posts
    985


    Did you find this post helpful? Yes | No

    Default Re: Can't make RA1 a digital Input on (10 out of 20) 16F887.

    Code:
    %000000010
    %00000010
    They are both the same number.

    Google RA1 Digital, and you can see the pain!

    if portA are all digital inputs, what value do you get reading portA into a byte?
    Code:
    byte = PORTA;
    What happens if you do this:
    Code:
    HIGH PORTA.0
    PAUSE 250
    LOW PORTA.0
    PAUSE 250
    So that portA isn't powering an LED while A1 is being read?
    Last edited by Art; - 11th October 2013 at 05:25.

  9. #9
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default Re: Can't make RA1 a digital Input on (10 out of 20) 16F887.

    This is your code tweaked for a PIC16F690, and it works:
    Code:
    #CONFIG
        __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _BOR_OFF & _FCMEN_OFF & _IESO_OFF 
    ;__config _CONFIG2, _WRT_OFF & _BOR40V
    #ENDCONFIG
    
    
    DEFINE OSC 20
    
    ANSEL = 0
    ANSELH = 0
    ADCON0 = 0
    ADCON1 = 0
    CM1CON0 = 0
    CM2CON0 = 0
    CM2CON1 = 0
    CCP1CON = 0
    ;CCP2CON = 0
    portb=0
    portc=0
    porta=0
    TRISA = %00000010
    TRISB = 0
    TRISC = 0
    ;TRISD = 0
    ;TRISE = 0
    
    
    Startup:
    LOW PORTA.0
    PAUSE 250
    HIGH PORTA.0
    PAUSE 250
    
    IF PORTA.1 = 0 THEN
    LOW PORTc.1
    ELSE
    HIGH PORTc.1
    ENDIF
    GOTO Startup
    The registers a 690 does not have have been commented out. You will need a pull up on your input pin.
    Sorry I don't have an 887 to test upon.
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

Similar Threads

  1. 16f887 portc input problems
    By lockjawz in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 31st March 2011, 14:02
  2. Replies: 2
    Last Post: - 1st May 2009, 08:23
  3. Really slow digital input
    By mbw123 in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 30th March 2007, 04:06
  4. 18F4550 digital input
    By mbw123 in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 29th March 2007, 02:43
  5. Replies: 2
    Last Post: - 5th June 2005, 19:55

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts