RA.4 Open collector,...


Closed Thread
Results 1 to 15 of 15
  1. #1

    Default RA.4 Open collector,...

    First thing, yes I did search the forum on this question although I was certain I already was correct in my thoughts about ra.4 on my 16F628A. Melanie makes it quite clear especially with this post:
    http://www.picbasic.co.uk/forum/showthread.php?t=1642

    BUT!!!, Using and led with a resistor on my anode going to 3.3V and my cathode to ra.4, does not work, change processors and programmed with my replacement of the pickit3, my new favorite, the pickit2. I think I even made it as simple as possible with this code:

    DEFINE OSC 4
    CMCON = %00100101
    VRCON = %11101100
    PAUSEus 10
    TRISA = %00000110
    TRISB = %11110001
    PORTA = %00000000
    PORTB = %00000000
    OPTION_REG.7 = 0
    OPTION_REG.6 = 0
    rf var porta.4


    main:
    low rf
    pause 500
    high rf
    pause 500
    goto main

    And it still doesn't work. But I did move the cathode to ground and yes the led lit, so the led does work.

    Anyhow, this may have sounded like a stupid question but If I don't ask, I'll never learn anything
    Thanks again especially for all the knowledge I have gained here on this forum.
    Last edited by tazntex; - 24th August 2010 at 20:16.

  2. #2


    Did you find this post helpful? Yes | No

    Default Update

    I have it working with this code:
    DEFINE OSC 4
    CMCON=%00000111
    VRCON = 0
    PAUSEus 10
    TRISA = %00000110
    TRISB = %11110001
    PORTA = %00000000
    PORTB = %00000000
    OPTION_REG.7 = 0
    OPTION_REG.6 = 0
    rf var porta.4

    main:
    low rf
    pause 500
    high rf
    pause 500
    goto main

    Does it have something to do with me using the comparator on ra.1,ra.2? I have been reading the datasheet and it mentions ra.3,ra.4 in section5.1 PORTA and TRISA Registers, I am already using ra.3 with no problems as an output.
    Last edited by tazntex; - 24th August 2010 at 20:21.

  3. #3
    Join Date
    Aug 2008
    Location
    Portugal
    Posts
    240


    Did you find this post helpful? Yes | No

    Default

    Hi;

    Try this;

    1 - Connect the RA4 Pin with the resistor to VCC;
    2 - Connect the anode of the led beetwen the resistor and the RA4 Pin;
    3 - Connect the Cathode of the led to GND

    And post the result
    Thanks and Regards;
    Gadelhas

  4. #4
    Join Date
    Jan 2009
    Location
    Miami, Florida USA
    Posts
    638


    Did you find this post helpful? Yes | No

    Default

    The reason that you need a resistor between RA4 and Vcc, like Gadelhas mentioned above, is because RA4 in that chip is an Open Drain (OD) type.

    Name:  OpenDrain.GIF
Views: 854
Size:  31.7 KB

    Robert
    "No one is completely worthless. They can always serve as a bad example."

    Anonymous

  5. #5


    Did you find this post helpful? Yes | No

    Default

    Sorry about the delay getting back to ya'll. Ok, your instructions said:
    1 - Connect the RA4 Pin with the resistor to VCC;
    2 - Connect the anode of the led beetwen the resistor and the RA4 Pin;
    3 - Connect the Cathode of the led to GND

    with or without step 2 the led is illuminated.

    Thanks for the fast response.

  6. #6
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    RA4 is C2OUT with the 1st configuration you had so you couldn't use it for a digital output. With comparators disabled you can.

    This should work fine to drive your LED on RA4 ---|<|---/\/\/--VCC.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  7. #7


    Did you find this post helpful? Yes | No

    Default

    Bruce, thats how I have it, However, I have brown out reset enable on my winpic programmer software, tried it with PICkit3, PICkit2 and it won't work, BUT if I turn off the brown out reset manually in WINPIC programmer, It WORKS
    But I am going from 9v input to my breadboard, then LP2950ACZ-3.3 (3.3V) regulator to my processor, sure would be nice to use the low voltage (brown out).

    Any ideas?

    Thanks

  8. #8
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    If turning an LED on is tripping reset you might want a larger cap on the reg output or larger series resistor for the LED. BOR definitely shouldn't trip unless you're dropping a lot of power.

    Edit: Check the datasheet for Vbor. You may already be running marginal.
    Last edited by Bruce; - 24th August 2010 at 22:46.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  9. #9


    Did you find this post helpful? Yes | No

    Default

    I'll do that this evening, Thanks to everyone for your help.

  10. #10


    Did you find this post helpful? Yes | No

    Default

    I did read about the Vbor, but also in the electrical specifications, it state minimum brown out reset voltage is 3.65V. Using a 3.3V regulator I rekon that cuts that out of the picture.

    Well, I don't mean to get off of my original thread but since I am here and ya'll are reading this...
    When using Darryl Taylors Interrup's and MPASM how does one set the config bits,thats where I can turn it off, I have been using this PBP compiler with sucess :
    @ DEVICE PIC16F628a,XT_OSC
    @ DEVICE pic16F628a, WDT_OFF
    @ DEVICE pic16F628a, PWRT_ON
    @ DEVICE pic16F628a, MCLR_ON
    @ DEVICE pic16F628a, BOD_OFF
    @ DEVICE pic16F628a, LVP_OFF
    @ DEVICE pic16F628a, CPD_OFF
    @ DEVICE pic16F628a, PROTECT_OFF
    I have even opened the 16F628A.INC in the PBP directory and it is turned off with the above added to my code when I compile using MPASM it won't compile, I get a bunch of errors. If I delete the above it compiles fine.
    Meanwhile, I am reading Melanie's post again to see what I've missed: http://www.picbasic.co.uk/forum/cont...o-your-Program
    Thank you
    Last edited by tazntex; - 25th August 2010 at 15:58.

  11. #11
    Join Date
    Aug 2008
    Location
    Portugal
    Posts
    240


    Did you find this post helpful? Yes | No

    Default

    Hi;

    You must do it like this;
    Code:
    @ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF &_PWRTE_OFF
    See this post;

    http://www.picbasic.co.uk/forum/show...hlight=16f628a
    Thanks and Regards;
    Gadelhas

  12. #12


    Did you find this post helpful? Yes | No

    Default

    Thanks Gadelhas for the fast reply, I tried to compile using that and I get this error:


    @ __CONFIG _XT_OSC & _WDT_OFF & _MCLRE_ON & _LVP_OFF & _CP_OFF
    DEFINE OSC 4
    CMCON=%00000111
    VRCON = 0
    PAUSEus 10
    TRISA = %00000110
    TRISB = %11110001
    PORTA = %00000000
    PORTB = %00000000
    OPTION_REG.7 = 0
    OPTION_REG.6 = 0
    rf var porta.4

    main:
    low rf
    pause 500
    high rf
    pause 500
    goto main
    Error[118]c:\program~1\testled.asm 83 : overwriting previous address contents (2007)

    What does this mean?

    Many Thanks

  13. #13


    Did you find this post helpful? Yes | No

    Default

    Perhaps I could use the external brown out protection with the 3.3V regulator as shown on the datasheet, I like the Example2 version.

  14. #14
    Join Date
    Aug 2008
    Location
    Portugal
    Posts
    240


    Did you find this post helpful? Yes | No

    Default

    Hi;

    To not give that error you need to go to the file of your pic model in the PBP directory and comment that line, like this;
    Code:
    ;*  16F628A.INC                                                 *
    ;*                                                              *
    ;*  By        : Leonard Zerman, Jeff Schmoyer                   *
    ;*  Notice    : Copyright (c) 2003 microEngineering Labs, Inc.  *
    ;*              All Rights Reserved                             *
    ;*  Date      : 11/06/03                                        *
    ;*  Version   : 2.45                                            *
    ;*  Notes     :                                                 *
    ;****************************************************************
            NOLIST
        ifdef PM_USED
            LIST
            include 'M16F62xA.INC'  ; PM header
            device  pic16F628A, xt_osc, wdt_on, mclr_on, lvp_off, protect_off
            XALL
            NOLIST
        else
            LIST
            LIST p = 16F628A, r = dec, w = -302
            INCLUDE "P16F628A.INC"  ; MPASM  Header
            ;__config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF '- COMENT THIS LINE WITH ";" ATE THE BEGINNING
            NOLIST
        endif
            LIST
    Thanks and Regards;
    Gadelhas

  15. #15


    Did you find this post helpful? Yes | No

    Default

    I did see that but just thought that was to easy and I must have been missing something. But I have done what you said and it works.

    Thank you very much for your help

Members who have read this thread : 1

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