What is causing my problem?


Closed Thread
Results 1 to 10 of 10
  1. #1
    Join Date
    Sep 2004
    Location
    Mentor, Ohio
    Posts
    352

    Default What is causing my problem?

    Hello all!
    It’s been a long time since I’ve posted here but I’ve still stayed in touch. I just made a project using a 16F87 and set 2
    Outputs to 0 and I am getting voltage out of the pin that’s enough to turn the output transistors on. Can anybody give me a reason why a zero on a pin is not a zero? The original project I made back in 2005 was done with a 16F84a and is suppose to be pin compatible with the F87. The original project still works fine but I need another. Help, please!
    Thank you, BobK

  2. #2
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    947


    Did you find this post helpful? Yes | No

    Default Re: What is causing my problem?

    Is it possible you did not set the TRISx register (where x is the port name) ? Perhaps the pin is an analog one by default and you haven't configured it for digital use?

    these are what I can think of just now.

  3. #3
    Join Date
    Sep 2004
    Location
    Mentor, Ohio
    Posts
    352


    Did you find this post helpful? Yes | No

    Default Re: What is causing my problem?

    Thank you for the fast reply, Jerson.
    I have 2 inputs on port A and the Tris A is =00000011 and the outputs are on port B and the Tris B is =00000000. I have the comparators disabled with CMCON = 7. Is there something missing here? Thank you!
    BobK.

  4. #4
    Join Date
    Aug 2011
    Posts
    408


    Did you find this post helpful? Yes | No

    Default Re: What is causing my problem?

    ... set outputs to 0 and I am getting voltage out of the pin that’s enough to turn the output transistors on.
    What voltage are you measuring? Which PORTB pins are you using?

  5. #5
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    947


    Did you find this post helpful? Yes | No

    Default Re: What is causing my problem?

    Related to PORTB, I can see that only the ANSEL register is different.

    I have some doubt if the ANSEL needs to be set to 0 on this chip.

    If that does not help, then perhaps you can try by disconnecting the driven load and check if the outputs are following your code intent.

  6. #6
    Join Date
    Aug 2011
    Posts
    408


    Did you find this post helpful? Yes | No

    Default Re: What is causing my problem?

    PORTB has no analog functions on the 16F87.

    Have you disabled the WDT?

  7. #7
    Join Date
    Sep 2004
    Location
    Mentor, Ohio
    Posts
    352


    Did you find this post helpful? Yes | No

    Default Re: What is causing my problem?

    No I did not disable the WDT. Is that necessary?
    Last edited by BobK; - 11th July 2022 at 16:50.

  8. #8
    Join Date
    Aug 2011
    Posts
    408


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: What is causing my problem?

    If you don't disable it you'll be getting resets when the wdt times out.
    That'll set the pins as inputs, so they'll be floating instead of low.

  9. #9
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,516


    Did you find this post helpful? Yes | No

    Default Re: What is causing my problem?

    For trouble shooting purposes, sure try disabling it but I'd be very surprised if has any impact on the issue.
    Generally speaking, you don't need to disable the WDT. Unless you're code includes the line DEFINE NO_CLRWDT 1 PBP adds code to reset it periodically so it should not time out during execution.
    If the WDT does time out and resets the PIC then yes, the TRIS bits gets set back to 1 but the code starts to execute from the beginning where one usually has it's initialization code to, for example, clear TRIS. In that case, yes, the pins does float but only until the the uC executes the TRISB = 0 again.

    As have been suggested, disconnect the load from the I/O pin and measure the voltage on the pin and on whatever connects to the pin (which is now floating).

    Post a schematic of the circuit and the shortest piece of code you can come up with that still shows the issue.

  10. #10
    Join Date
    Apr 2014
    Location
    OK
    Posts
    557


    Did you find this post helpful? Yes | No

    Default Re: What is causing my problem?

    I had a similar experience with some PIC18F45K22 dip-40 parts I had laying around for many years. I couldn't get clean digital outputs to the point where things didn't work properly. After spending way too much time trying different things, I swapped in a K40 part and it worked perfectly. I therefore concluded that the K22 parts were defective. Now, were they defective when I bought them about a decade ago, or did they "rust" sitting in a drawer that long?

Similar Threads

  1. Replies: 5
    Last Post: - 5th January 2018, 14:46
  2. Argument out of range - how to find what is causing it?
    By BrianT in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 3rd November 2011, 03:00
  3. Fan causing noise in audio circuit
    By The Master in forum Off Topic
    Replies: 11
    Last Post: - 28th August 2011, 12:47
  4. MCLR causing trouble . .
    By shahidali55 in forum General
    Replies: 10
    Last Post: - 21st December 2007, 13:20
  5. Issue with Array causing PauseUS to have 16uS overhead
    By bcd in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 10th November 2007, 09:41

Members who have read this thread : 3

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