CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

Help with PIC24 and ICD3

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
Markdem



Joined: 24 Jun 2005
Posts: 206

View user's profile Send private message Send e-mail

Help with PIC24 and ICD3
PostPosted: Wed Nov 07, 2012 4:57 am     Reply with quote

Hi All,
I know this is not really a CCS question, but you guys are always so nice and helpful.

I have a PIC24FJ256DA210 on a board I made myself. When I connect an ICD3 it returns a device ID of 00000000 which normally means it can’t see a PIC. During my debugging I tried to see if the ICD is outputting a clock with my scope and all of the sudden I could see my PIC. As long as I hold the scope probe on the ICSP clock line I can program the pic fine. Once programed, the PIC will run without the probe.

I am not touching the pin on the pic or the ISCP connector so I don't think it is a bad solder join. I have soldered a wire going from the trace to the probe so I am not putting any presser on the trace in case it was board flex making it work.

In any other board I have here (PIC16, PIC18 and DSPIC) it works fine. MCLR is tied high via 10K.

PIC VDD = 3.32v
PIC VCAP = 1.81v

It is almost like some form of capacitive loading making the ICD work, but I am stuck trying to work this one out.

Has anyone seen anything like this before, or have any ideas on what I can try to fix the issue?

Thanks


Last edited by Markdem on Wed Nov 07, 2012 5:28 am; edited 1 time in total
Markdem



Joined: 24 Jun 2005
Posts: 206

View user's profile Send private message Send e-mail

PostPosted: Wed Nov 07, 2012 5:20 am     Reply with quote

Just a quick update,

Scope off with probe touchingthe clock track - PIC will program.
Scope probe disconnected from scope - PIC will not program.
Bill24



Joined: 30 Jun 2012
Posts: 45

View user's profile Send private message

PostPosted: Wed Nov 07, 2012 5:51 am     Reply with quote

Have you set a fuse for your clock e.g #use delay(clock=8000000).

Also try a PICKit 2.

I believe it possible to flash a PIC without this fuse set but not debug.
Markdem



Joined: 24 Jun 2005
Posts: 206

View user's profile Send private message Send e-mail

PostPosted: Wed Nov 07, 2012 4:31 pm     Reply with quote

Thanks Bill,

I don't think any of my code could be doing this as it happens before programming, but I do have a #delay int he code. I am not trying to use the debugger, just program at this point.

I will try a ICD2 today. I guess it will show if there is a problem with the ICD3.

Thanks
FvM



Joined: 27 Aug 2008
Posts: 2337
Location: Germany

View user's profile Send private message

PostPosted: Thu Nov 08, 2012 12:51 am     Reply with quote

Quote:
When I connect an ICD3 it returns a device ID of 00000000 which normally means it can’t see a PIC.

Yes, it means there's a serious problem with the ICSP interface. The only case where I observe this is with a
broken ICD cable. Unfortunately I don't have ICD3, but various other adapters (ICD2, PICkit, RealICE, ICD-U).
All are working fine with PIC24.

Of course there may be an ICD3 problem, but I rather expect problems with your hardware. Without seeing a
circuit diagram and layout photo, it can't be determined.
bkamen



Joined: 07 Jan 2004
Posts: 1615
Location: Central Illinois, USA

View user's profile Send private message

PostPosted: Thu Nov 08, 2012 1:40 am     Reply with quote

I use an ICD3 and typically, if the ICSP is mucked up in any way -- it can cause problems.

Microchip has very specific directions for implementing ICSP.

You should really post a schematic.
_________________
Dazed and confused? I don't think so. Just "plain lost" will do. :D
Markdem



Joined: 24 Jun 2005
Posts: 206

View user's profile Send private message Send e-mail

PostPosted: Thu Nov 08, 2012 2:13 am     Reply with quote

Hi Guys,

Thanks for the help. I don't think I have any connections the wrong way (PGD and PGC swapped) or anything as it would never work.

Not sure how to post a schematic here but it could not be simpler (it is a breakout board I use for testing.)

I have MCLR going to the MCLR on the ICD tied up to VDD via 10k. All VDD, AVDD and ENVREG connected to 3.3v and all VSS and AVSS to ground. All power pins are bypassed with .1uF. Vcap has a 10uF cap on it like the datasheet says. There is also a 10uF cap where the power comes onto the board.

I also have a 4MHz crystal with 18pF caps, but the problem is the same even if i remove this.

Besides the ICSP pins (RB1 and RB0) no other pins are connected to anything.

Like I mentioned before, everything works fine if I have a plugged in scope probe connected to PGC. I have tried a multimeter probe and it will make it work too. However a screwdriver (grounded or not) or finger don’t make it work. The scope probe will only work when it is plugged in but it does not matter if the scope is turned on.

I put the other channel of the scope in to VDD when I am connecting the ICD3 and can’t see any sags or spikes on the power rail. All nice and clean.

I check to see what would happen if I used the ICD3 to supply power. It did not work even with the scope probe but I have had some issues with this in the past so I will not put too much thought into it.

I tried my old trusty ICD2 and it works without a problem every time. To me it looks like an issue with the ICD3 but what could be doing this? This has me stumped.

Thanks
Ttelmah



Joined: 11 Mar 2010
Posts: 19538

View user's profile Send private message

PostPosted: Thu Nov 08, 2012 3:02 am     Reply with quote

You say 'no other pins are connected to anything'. There needs to be one. Ground.

Best Wishes
FvM



Joined: 27 Aug 2008
Posts: 2337
Location: Germany

View user's profile Send private message

PostPosted: Thu Nov 08, 2012 3:05 am     Reply with quote

If ICSP is connected correctly without "forbidden" components (e.g. capacitors at PGD, PGC or MCLR,
and supply levels are O.K., then interfering signals or insufficient ground connection of the ICSP interface
can be a problem, in other words, typical breakout-board effects. That's why I asked for a photo.

The different behaviour of ICD2 versus ICD3 may be caused by faster operation of ICD3, which is usually
more sensitive to signal quality issues.
Ttelmah



Joined: 11 Mar 2010
Posts: 19538

View user's profile Send private message

PostPosted: Thu Nov 08, 2012 3:16 am     Reply with quote

Yes, the obvious things that the scope introduces, is a capacitance to ground, 'if plugged in'. Tend to suppress very high frequency signals to some extent, and also (of course) the scope probe will introduce a ground.

Best Wishes
juliogtd



Joined: 01 Jan 2009
Posts: 6

View user's profile Send private message

Re: Help with PIC24 and ICD3
PostPosted: Mon Jul 29, 2013 2:16 am     Reply with quote

Hi All, I have a PIC24FJ256GB106 on a board I made myself.

It happens exactly the same as a Markdem, when I connect an ICD3 it returns a device ID of 00000000 and I can not program, verify or debug the device.

Well, I do not really like Markdem happens because, even connecting a probe get it to work (by the way, PGC and PGD electrical signals are clean and free from noise).

There is no component between ICD3 and programming pins PGD3 and PGC3, and Reset pin only has a 10K pull-up resistor, as shown in Figure 2-4 of MPLAB® ICD 3 In-Circuit Debugger User’s Guide for MPLAB X IDE
(http://ww1.microchip.com/downloads/en/DeviceDoc/52081A.pdf).

ENVREG pin is connected as is indicated in Figure 2-2 Regulator Enabled (ENVREG tied to VDD) of IC24FJXXXGA1/GB1 Families Flash Programming
Specification (http://ww1.microchip.com/downloads/en/DeviceDoc/39907a.pdf).

The only pins connected are those shown in Figure 2-3, i.e.: VDD, VSS, AVDD, AVSS, VUSB and ENVREG; and the remaining pins are off (high impedance).

PIN VDD= 3.3 V
PIN VCAP= 2.5 V

As discussed by the Engineering Technical Note ETN #29, MPLAB® ICD 3 VPP Increased Current Sink Modification (http://ww1.microchip.com/downloads/en/DeviceDoc/ETN29_MPLAB_ICD%20_%20VPP_CURRENT_SINK.pdf) ICD3 resistances have been replaced with values ​​of 100 ohms.

ICD3 works fine with other boards based on the dsPIC33FJ256GP506 (also self-made) and testing it with ICD 3 TEST INTERFACE MODULE indicates that everything is correct.

I also tested with Pickit 3 programmer and it gives me the same problem (when I connect it returns a device ID of 00000000 and it does not work).

I do not know what else to do...

Has anyone any idea?

Thanks Sad
Markdem



Joined: 24 Jun 2005
Posts: 206

View user's profile Send private message Send e-mail

PostPosted: Mon Jul 29, 2013 3:01 am     Reply with quote

I should of updated this post, but must of forgotten.

I "sort of" found what the issue was. Don't ask me why but reducing the VDD voltage to the PIC below 3v will make it work. I sort of lost interest in trying to work out why as I did not end up using the PIC24 after not been able to get the integrated GFX working with the LCD I had.

Just remember I did not need any "Increased Current Sink Modification" on my board.

Also, I think I remember that VCAP should ~1.8 volts. It is coming from the vreg for the core. Been that high, I would think you have some supply issues. Check the datasheet to make sure you have all the power pins right. What cap have you got on VCAP?

Lastly, remember that my ICD2 worked fine, as did my PICKIT3 when I finally got one. It was just the ICD3 that was giving me issues.

Might be useful to say that I have not had any issues since on any other of my boards. It just was with PIC24. I would love to make another one, but just don't have the time.

See how you go anyway. Would love to see if you have the same issue.
juliogtd



Joined: 01 Jan 2009
Posts: 6

View user's profile Send private message

PostPosted: Mon Jul 29, 2013 4:44 pm     Reply with quote

Hello, I have finally discovered what is the solution to the problem: it happens that I used the pin pair PGC3-PGD3 and, as I said, did not work (despite having the MPLAB option "Emulator functions are shared with PGEC3/PGED3" selected and also "#fuses ICSP3").

I changed the pair, I used PGC1-PGD1 and it all works correctly.

I do not understand why this happens because in the document "PIC24FJXXXGA1/GB1 Families Flash Programming
Specification" is said that:

"All of the devices in the PIC24FJXXXGA1/GB1 families
have three separate pairs of programming pins,
labelled as PGEC1/PGED1, PGEC2/PGED2, and
PGEC3/PGED3. Any one of these pin pairs may be
used for device programming by either ICSP or
Enhanced ICSP. Unlike voltage supply and ground
pins, it is not necessary to connect all three pin pairs to
program the device. However, the programming
method must use both pins of the same pair."

But ... the problem is solved (unfortunately I'll have to modify the PCB).

Thank you for your quick reply. Wink
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group