Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Resolving programming problems of PIC18F2550.

Status
Not open for further replies.

electrodarkness

Member level 1
Joined
May 2, 2010
Messages
39
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Location
Ganesti, Transylvania, Romania
Activity points
1,649
Hello everyone!

Recently I stumbled upon a PIC18F2550 on my shelf which was used only a few times in some prototypings, and I wanted to create an Oven temperature controller. I've designed the board (attached the schematic), populated it, and wanted to program the mcu. The only problem was, upon connecting the PICkit3 with MPLAB IPE, the program receives 0xe0 as the device ID instead of 0x1240.

The same results with MPLAB IDE, with either PICkit3 or external power supply. The board was tested and there are no shorts or faulty components ( besides the PIC maybe...), the programmer is working, since I could use it with a PIC32 and dsPIC.

There were only 2 miscalculations that I made: not testing the PIC out of circuit, and inserting the PIC under an 8x2 LCD, so desoldering would be troublesome, but managable if everithing else fails.

Any help would be appreciated in solving the ID problem.

Thanks in advance,
Fehér Áron.
 

Attachments

  • ovencontr.pdf
    120.7 KB · Views: 118

hello,


NO capacitors accross ICSP lines !
remove C10,C11,C12

you have push buttons .. does it means they are some pullup resitors elsewhere ?
 
  • Like
Reactions: Alloy

    Alloy

    Points: 2
    Helpful Answer Positive Rating
The problem is due to C12. You must not have caps on the programming pins. It is a very bad idea to put capacitors in parallel with a switch as it can shorten the life of the switch. You should de-bounce the switch in software and remove the caps. You need pull ups on these lines, you should enable the PIC's internal week pull up resistors.
 

Are you sure that you do not have a PIC18C858 instead of a PIC18F2550? This has the id code 0xe0
 
It's definitely not a 18C858. So I will try somehow to desolder the PIC, and to take it out of the board without removing my display. If it's damaged, I will get a PIC16F1513 or 1713 since they are pin compatible but cheaper.
 

Ok guys, I'm back with new information. The short version is: sometimes I'm dumb. Someone (or me) swiched compartiments in the IC drawer, , and I used a PIC16F876A instead of 18F2550 without checking. Fortunately now the circuit works.
I have to work on my routines.
One last question. If I use the internal weak pull-ups should I use external capacitors parallel to the switches, or I must use only soft debouncing?
 

You can't have capacitors on the program pin, and putting capacitors in parallel with a switch is a bad idea as it can damage the switch over time. I don't see your problem with software de-bouncing as it would save you the cost of the capacitors and board space, weight etc. There are a number of ways to implement software de-bouncing depending on you application and can be as simple as adding a delay.
It does not matter to the internal pull_ups if there are capacitors on the pin or not, it will only take a longer time for the logic levels to change if there are capacitors. You cannot rely on the time of the capacitors charging as the value of the pull up resistors varies greatly between devices. So you design may not be repeatable.
 
Last edited:
Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top