What is the main difference Bet. 16f877 vs 16f877A


Closed Thread
Results 1 to 33 of 33
  1. #1
    Join Date
    Apr 2005
    Posts
    32

    Default What is the main difference Bet. 16f877 vs 16f877A

    I couldn't see any differenece!!

  2. #2
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Go look again... how about Comparators and a Voltage Reference Module as a start...

  3. #3
    Join Date
    Apr 2005
    Posts
    32


    Did you find this post helpful? Yes | No

    Default

    does it work properly with my ex program which is writen for 16f877 ..!!

  4. #4
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Do I have a crystal ball? Actually yes, there's one next to my monitor, but when I look in it I can see all kinds of things but unfortunately your program isn't one of them!

    If you are blinking a LED on PortB, you got no worries...

    If you are using any pin that is shared with a Comparator, then just like the Datasheet says... it's not going to work without adding code to disable those comparators first.

  5. #5
    Join Date
    Apr 2005
    Posts
    32


    Did you find this post helpful? Yes | No

    Default

    thanks for your kind response
    !

  6. #6
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Default interested

    I also have the same problem,i have a code compiled for pic16f877
    the data,clock pin is on porta pin,when i program it on pic16f877a i did not work.
    how would i disable the comparator.

  7. #7
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Comming from the migration sheet...
    <img src="http://www.picbasic.co.uk/forum/attachment.php?attachmentid=863&stc=1&d=1146485135 ">
    Attached Images Attached Images  
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  8. #8
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Default Thanks all

    The problem is this,i connected as follows to pic16f877a
    porta.0 = clock to 74hc
    porta.1 = clock to 74hc
    porta.2 = clock to 74hc
    porta.3 = input..
    porta.4 = input..
    porta.5 = output..

    portb.0 - 7 = outputs.
    portc.0 - 7 = outputs.

    i have tried to ,cmcon = 7
    adcon1 = 7
    still is not working .
    but the code work on pic16f876.

  9. #9
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Is your programmer support the 16F877a as it can have some programming time difference.

    Also, the A serie are bit much noise sensitive, be sure you place the proper psu filtering cap close to your PIC.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  10. #10
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Default Fine.

    i will try to fit in the capacitor,.
    is there any other thing i can do to make it work.?

  11. #11
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Default yes

    my programmer supports 16f877a, and i buld it my self and i use it with winpic800 software or icprog, it works very fine i have been programming 16f877a and 16f628a with it works fine.

  12. #12
    Join Date
    Feb 2003
    Location
    Salt Lake City, Utah USA
    Posts
    517


    Did you find this post helpful? Yes | No

    Smile

    If the registers are wrong, your PIC could be running and not doing what you want it to do. If the A part is more sensitive to noise, you might be having hardware issues (as Steve noted). Attack your problem systematically.

    The first thing I would do is make sure the PIC (same one you are using in the same setup) was alive after programming. If you have an unused Pin that is not hardwired to one of the rails, toggle it and see if your PIC is alive.

    Insert something like this near the top of the code you are trying to make work. Place after you set the Port values and directions. For example is PortB.7 is unused ..

    Add this ....

    TRISB.7 = 0

    AliveTest:
    PortB.7 =1
    Pause 1000
    PortB.7 = 0
    Pause 1000
    goto AliveTest

    The rest of your code is still here

    Recompile and reprogram you PIC. Monitor PortB.7 with a voltmeter and see if your PIC is alive. If a Pin on PortB toggles, repeat with an unused pin on PortA. If neither toggles, you have hardware or config issues. If they both toggle or only PortB toggles, you probably have register setting problems. Report back with your findings for more ideas of how to debug your problem.

    Paul Borgmeier
    Salt Lake City, Utah
    USA

  13. #13
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Default right

    i will just do that right away.

  14. #14
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Default same

    i have run the alive test i didnt work, and what surprise me is when i run another code on the pic it works..
    any solution or do i post the source here.

  15. #15
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Sounds weird to me so just post your Whole code AND the according .HEX compiled file to compare.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  16. #16
    Join Date
    Feb 2003
    Location
    Salt Lake City, Utah USA
    Posts
    517


    Did you find this post helpful? Yes | No

    Smile

    Great information (and you are closer to a solution) -
    Let me make sure I understand

    - The code works on a 16F876 but not a 16F877A
    - The alive test does not work on the 16F877a when inserted into your code and the PIC inserted into your circuit
    - The same16F877A works when tested with other code in another circuit

    If the above is all true, it sure sounds like a hardware / config issue.

    What do you have connected to pin 1 of the 877A

    Describe your power supply?

    Do you have all four Vdd and Vss pins connected?

    Do you have decoupling caps between each pair of Vdd and Vss?

    What are your config setting?

    What are you using for an oscillator?

    What registers are you using and how are they set?

    If we cannot find the problem with this information, the nest step is to post a schematic and code.

    Paul Borgmeier
    Salt Lake City, Utah
    USA

  17. #17
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Default Hi

    this is my connection

    On porta.0 = clock of 74hc574
    On porta.1 = clock of 74hc574
    On porta.2 = clock of 74hc574
    On porta.3 = cts
    On porta.4 = serialin
    On porta.5 = serialout

    I use three 74hc574
    portb.0-7 = pin2 -pin8 of 74hc574
    portc.0-7 = pin2 - pin8 of 74hc574

  18. #18
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Default Thanks

    I thank everybody in the forum who contributed to make my effort to become succesful.
    the code now is working perfect.
    filter caps,and cmcon = 7
    adcon1 =7
    and configuration,and a little hardware fault,.

  19. #19
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Default eeprom 24c16

    How can i read the whole byte on the i2c 24c16?
    The code i wrote is this,"i2cread dpin,cpin,$a0,char,[char2disp]"
    It only reads the first 256bytes,only, i am using the code to display moving sign display on led matrix.

  20. #20
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Your variables declaration and a snip of your code woud help!
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  21. #21
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Smile Hi, steve

    Can you please give me some example,.

  22. #22
    Join Date
    Apr 2006
    Posts
    21


    Did you find this post helpful? Yes | No

    Thumbs up Hello

    I decleared ,,char var byte
    char2disp var byte.
    Please shed more light on this.

  23. #23
    sandeepdevang's Avatar
    sandeepdevang Guest


    Did you find this post helpful? Yes | No

    Default help me!!!!

    hi... i am working on a project called "sms based device control".... i am done with the circuit and have started working on the codes... i have written the codes keeping pic16f877a in mind... but the debugger available in the college is MPLAB ICD2.. which contains the pic16f877 IC.... is it possible for me to run the same pic16f877a code here... otherwise what do i do?

  24. #24
    Join Date
    Mar 2007
    Posts
    3


    Did you find this post helpful? Yes | No

    Default 16F877A pin 7, PortA.5 not like the 16F877

    Quote Originally Posted by uludere72 View Post
    I couldn't see any differenece!!
    I have had code running in 16F877 for years. I have PortA.5 as input I have a 1K pullup on A.5. I have a push button that connects A.5 to ground when the button is pressed. I have set the lower 3 bits of CMCON = 1. I have set ADCON1 = 7. I have placed a .1 cap from pin 7 to ground. Any press of the button results in a RESET of the 16F877A.
    There are no problems when I use 16F877 but the 16F877A resets ever time.
    What do I try next ???

  25. #25
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Try CMCON=7 instead of 1.

    Do you have a pull-up of around 470 from MCLR to VDD?
    Dave
    Always wear safety glasses while programming.

  26. #26
    Join Date
    Mar 2007
    Posts
    3


    Did you find this post helpful? Yes | No

    Default Strike the Brownout reset and fix problem on PortA.5

    Dave,
    Thanks for the input.
    When I said that the lower 3 bits of CMCON were set = 1
    I SHOULD have said that Each of the lower 3 bits is set to 1
    which makes CMCON = %00000111 which = 7.

    I do have a 1K pullup to +5 on MCLR.

    I have also discovered that if I set the config bits for the 16F877A
    to turn the Brownout reset = OFF the code I have been running in
    the 16F877 now also runs perfectly in the 16F877A.

    What is it about pulling PortA.7 to ground with a pushbutton switch that
    could lead to a system reset ??? And why would turning the brownout
    reset OFF correct that problem ???

    Thanks,
    Dan

  27. #27
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Sounds like a power supply problem or maybe something causing a short when the button is pushed.

    The data sheet states when VDD drops to 4V a you have a brown-out.
    Are both VDDs powered? Check the voltage on VDD when the button is pushed.

    Two points to clarify.
    Why the .1 cap to ground and not a pull-up of say 10k?
    PORTA.7??? pin 7 is PORTA.5.
    Dave
    Always wear safety glasses while programming.

  28. #28
    Join Date
    Mar 2007
    Posts
    3


    Did you find this post helpful? Yes | No

    Default Sorry about confusion of Pin number and Port number

    Dave,

    Sorry about the mistakes in my typing . . .
    I have TRIED a .1 cap to ground on PortA.5 because some comments in this thread indicated that might be of benefit. And it sort of makes sense as a method for smoothing out the switch bounce noise generated by a push button switch.

    And there IS a 1K pullup on PortA.5.

    It was my confusion that typed PortA.7 in the previous text.
    I SHOULD have typed PortA.5 and got that mixed up with the pin number which resulted in my typing PortA.7.

    This whole thing is about PortA.5 which is also Pin 7.

    I do have +5 to both VDD pins and the 5 volt source is a 150 watt switching supply.

    I have had a friend of mine look at VDD and Master Clear with his scope and both of these are steady as a rock when the push button is pressed and the whole thing RESETS.
    Pressing the pushbutton to pull PortA.5 to ground does create a little noise from the switch bounce but I cannot see that any amount of noise on an input should result in a reset ??? Do you think ??

    Thanks again,
    Dan

  29. #29
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Time to show us the schematic of the whole thing I suppose...

  30. #30
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    I assume this is all on a test bench. I have had noise problems with switches when the device in the field next to a plasma cnc. Switch in question would start the torch.

    Tell us a little more about the project along with the schematic.
    Dave
    Always wear safety glasses while programming.

  31. #31
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    to answer the original question What is the main difference Bet. 16f877 vs 16f877A

    The answer is 1588F03
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  32. #32
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mister_e View Post
    to answer the original question What is the main difference Bet. 16f877 vs 16f877A

    The answer is 1588F03
    Only a real GEEK would get that!

  33. #33
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    I figure the difference is FFFEA770FD.

    That is being the 16F877 came first.
    Dave
    Always wear safety glasses while programming.

Similar Threads

  1. HSEROUT and Commas, What? Help Me Understand
    By altech6983 in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 20th July 2009, 19:12
  2. 16F877 vs. 16F877A
    By DavyJones in forum General
    Replies: 12
    Last Post: - 11th April 2009, 18:22
  3. GOTO main or RETURN - Question
    By studysession in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 31st January 2009, 16:13
  4. Clock connection to DS1802 from 16F877A
    By coyotegd in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 3rd January 2006, 18:52

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