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

Beware ICD-U40 will destroy chips.
Goto page 1, 2  Next
 
Post new topic   Reply to topic    CCS Forum Index -> CCS ICD / Mach X / Load-n-Go
View previous topic :: View next topic  
Author Message
Hans Wedemeyer



Joined: 15 Sep 2003
Posts: 226

View user's profile Send private message

Beware ICD-U40 will destroy chips.
PostPosted: Mon Aug 02, 2004 11:28 am     Reply with quote

I have been using the ICD-U40 on a 3.3V project for some time.
Yesterday I needed to program some protection fuses, and later I changed my mind...

It is not possible to erase the fuses if the target is 3.3V it has to be a 5 Volt Target.

So, two PIC18F6720 chips bite the dust...

CCS tech. support confirms (by email) this is a problem.

Conclusion : When it comes to changing fuses, treat the chip as a OTP device.

This stinks... the ICD-U40 is sold as a 3.3V and 5Volt unit...
Mark



Joined: 07 Sep 2003
Posts: 2838
Location: Atlanta, GA

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

PostPosted: Mon Aug 02, 2004 12:06 pm     Reply with quote

Are you using Low Voltage ICSP programming?
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Mon Aug 02, 2004 1:03 pm     Reply with quote

I'm not sure this is a CCS issue. According to the 18F6720
programming specification, Bulk Erase is the only way to re-program
the Code Protect bits. (Section 3.1) Also, Bulk Erase must be
done with VDD at 5v nominal. This is shown in parameter D111
in the AC/DC Timing requirements section.
http://ww1.microchip.com/downloads/en/DeviceDoc/39583b.pdf

So if your circuit is designed to use a VDD = +3.3v for the PIC,
and has no way to temporarily change that to +5v, then I don't
think you can do a Bulk Erase.

I don't own the CCS ICD, but they have a Trouble-shooting guide
available for download here: http://www.ccsinfo.com/ccs_icd_trblsht.zip
To answer Mark's question, on page 2 of the guide, it says:
Quote:
The ICD does not use the Low Voltage Programming mode.


Here's some more information from the Microchip user forum.
User tjdiamond is also running a 18F6720 at +3.3v. His Promate
programmer can't erase the protection bits. Apparently, he is
using the Promate to supply +3.3v power to the board. So he
concludes that he must set the Promate to +5v and erase the
PIC. He hopes that the 250ms erase time at +5v will not damage
the other chips on the board. He didn't post an update to
say if it worked. But if you login to the forum, you should be
able to email him. He was still active on the forum as of June 15, 2004.
http://forum.microchip.com/tm.asp?m=34395
Guest








PostPosted: Mon Aug 02, 2004 1:59 pm     Reply with quote

PCM programmer wrote:
I'm not sure this is a CCS issue. According to the 18F6720
programming specification, Bulk Erase is the only way to re-program
the Code Protect bits. (Section 3.1) Also, Bulk Erase must be
done with VDD at 5v nominal. This is shown in parameter D111
in the AC/DC Timing requirements section.
http://ww1.microchip.com/downloads/en/DeviceDoc/39583b.pdf

So if your circuit is designed to use a VDD = +3.3v for the PIC,
and has no way to temporarily change that to +5v, then I don't
think you can do a Bulk Erase.

I don't own the CCS ICD, but they have a Trouble-shooting guide
available for download here: http://www.ccsinfo.com/ccs_icd_trblsht.zip
To answer Mark's question, on page 2 of the guide, it says:
Quote:
The ICD does not use the Low Voltage Programming mode.


Here's some more information from the Microchip user forum.
User tjdiamond is also running a 18F6720 at +3.3v. His Promate
programmer can't erase the protection bits. Apparently, he is
using the Promate to supply +3.3v power to the board. So he
concludes that he must set the Promate to +5v and erase the
PIC. He hopes that the 250ms erase time at +5v will not damage
the other chips on the board. He didn't post an update to
say if it worked. But if you login to the forum, you should be
able to email him. He was still active on the forum as of June 15, 2004.
http://forum.microchip.com/tm.asp?m=34395


They are selling the ICD-U40 for 3Volt systems...

I'm mad about this because it would take about 5 minutes to program a dialog telling the user that the fuses cannot be erased.

I had the same crap wit the ICD-U40 reporting wrong Vdd for this 3.3V system. After complaining I was told it cannot read the Vdd of the target.... My reply was simply, then don't make that feature available.

They took my advice and added a message.

There should also be a LARGE text notice to all ICD-U40 users to "NOT PROGRAM the fuses on 3.3Volt systems" because they cannot be erased...

I may be cabbage looking but I'm not completely green.... Not way will I risk putting 5Volt on the remaining components (Blue tooth, GPS most critical) My solution was remove the chip and replace it.

Now I need to wire up a pcb to bulk erase the chips on a 5V system, what a waste of time... maybe I'll just trash can these...
Mark



Joined: 07 Sep 2003
Posts: 2838
Location: Atlanta, GA

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

PostPosted: Mon Aug 02, 2004 2:03 pm     Reply with quote

Don't suppose you could cut a trace to the power as a short term solution? A long term would be to provide a jumper or a means to isolate the 5V from the other components.
Darren Rook



Joined: 06 Sep 2003
Posts: 287
Location: Milwaukee, WI

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

PostPosted: Mon Aug 02, 2004 2:24 pm     Reply with quote

Doesn't ICD-2 have the same problem?
bdavis



Joined: 31 May 2004
Posts: 86
Location: Colorado Springs, CO

View user's profile Send private message

PostPosted: Mon Aug 02, 2004 3:18 pm     Reply with quote

I'm also using 3.3 Volts for Vdd and the ICD-U40, but the boards aren't completed yet, so I haven't gotten to try it out yet.

The ICD-U40 should put 12 to 13 volts on /MCLR (Vpp) when programming, and you should be able to clear or reset the fuses due to this. In our design, we put a schottky diode between /MCLR and Vdd to protect Vdd from 13V supply of the ICD-U40. CCS recommends a 47K ohm resistor to limit the current (and protect your chips). Did you put a 47K ohm resistor between /MCLR and Vdd ?

I have had a difficult time finding information on 3.3V stuff, since so few use it, and I haven't built a prototype running at 3.3V yet.

This is what I found out so far - please let me know if I heard wrong on any of this:
-> Vdd of 3.3V should be connected to RJ-12 Target Pin 2 (the FAQ said +5V, which is wrong if your design is running below 5V). The PIC isn't 5V tolerant when running at 3.3V, so the chip may be damaged.

-> FAQ states RJ-12 Target Pin 1 should have a pullup of +5V - I think this is also wrong if running at 3.3V and using the ICD-U40 - should be 3.3V.

-> I could not find out what the jumper is for inside the ICD-U40 - if you know, please share the knowledge. (Maybe programming the internal PIC or to enable/disable sourcing Vdd to your target ?).

-> The ICD-U40 does not require power from the target - it gets it from the USB interface. (Can the ICD-U40 provide power to your target ?)

-> The RJ-12 Target Pin 2 is used to source pullups on RB6 and RB7.

-> CCS posted a new (EXCELLENT Very Happy ) pdf on using and troubleshooting the ICD. (in the download section - highly recommended).

-> Any other issues of working with 3.3V that some guru's are aware of?
bdavis



Joined: 31 May 2004
Posts: 86
Location: Colorado Springs, CO

View user's profile Send private message

PostPosted: Mon Aug 02, 2004 3:32 pm     Reply with quote

Programming Voltage -

Another thing I found very confusing:
- The ICD-U40 uses High Voltage Programming - Good for me, it's faster and can clear or change the fuses and use block programming. (I'm planning on using this to program all parts with a bootloader using ICSP).

- The Low Voltage Programming may be used by setting a fuse, and setting one of the pins on Port B low. (I'm not planning to ever use this, and it is NOT used by the ICD-U40, even if running Vdd at 3.3V)

- The bootloader does NOT use Low Voltage Programming mode, but can write to program memory (flash) when powered at 3.3V. That is what I found the most confusing. Also, the bootloader or any code can't change the fuses when running at Vdd less than about 5V. I'm planning on having FW upgrades or updates downloaded via RS-232 (using a bootloader) while the PIC is running at 3.3V.

Does anyone see any issues with this?
Guest








PostPosted: Mon Aug 02, 2004 4:14 pm     Reply with quote

Mark wrote:
Don't suppose you could cut a trace to the power as a short term solution? A long term would be to provide a jumper or a means to isolate the 5V from the other components.

Not on this board. However when I make another board I can plan for it.
Guest








PostPosted: Mon Aug 02, 2004 4:29 pm     Reply with quote

bdavis wrote:
I'm also using 3.3 Volts for Vdd and the ICD-U40, but the boards aren't completed yet, so I haven't gotten to try it out yet.

The ICD-U40 should put 12 to 13 volts on /MCLR (Vpp) when programming, and you should be able to clear or reset the fuses due to this. In our design, we put a schottky diode between /MCLR and Vdd to protect Vdd from 13V supply of the ICD-U40. CCS recommends a 47K ohm resistor to limit the current (and protect your chips). Did you put a 47K ohm resistor between /MCLR and Vdd ?

I have had a difficult time finding information on 3.3V stuff, since so few use it, and I haven't built a prototype running at 3.3V yet.

This is what I found out so far - please let me know if I heard wrong on any of this:
-> Vdd of 3.3V should be connected to RJ-12 Target Pin 2 (the FAQ said +5V, which is wrong if your design is running below 5V). The PIC isn't 5V tolerant when running at 3.3V, so the chip may be damaged.

-> FAQ states RJ-12 Target Pin 1 should have a pullup of +5V - I think this is also wrong if running at 3.3V and using the ICD-U40 - should be 3.3V.

-> I could not find out what the jumper is for inside the ICD-U40 - if you know, please share the knowledge. (Maybe programming the internal PIC or to enable/disable sourcing Vdd to your target ?).

-> The ICD-U40 does not require power from the target - it gets it from the USB interface. (Can the ICD-U40 provide power to your target ?)

-> The RJ-12 Target Pin 2 is used to source pullups on RB6 and RB7.

-> CCS posted a new (EXCELLENT Very Happy ) pdf on using and troubleshooting the ICD. (in the download section - highly recommended).

-> Any other issues of working with 3.3V that some guru's are aware of?

I have a 22K ... and that has protected the other chips...
bdavis



Joined: 31 May 2004
Posts: 86
Location: Colorado Springs, CO

View user's profile Send private message

PostPosted: Tue Aug 03, 2004 7:04 am     Reply with quote

Can you swap out the 22K for a 47K resistor?
Guest








PostPosted: Tue Aug 03, 2004 7:21 am     Reply with quote

bdavis wrote:
Can you swap out the 22K for a 47K resistor?

There is no magic about 47K.... even 10K would have protect the rest of the circuit....
bdavis



Joined: 31 May 2004
Posts: 86
Location: Colorado Springs, CO

View user's profile Send private message

PostPosted: Tue Aug 03, 2004 8:44 am     Reply with quote

If the 22K (or 47K) can protect your PIC from the 13V Vpp, what is frying the chip? I'm a little concerned about a board that will be going to production soon.
Darren Rook



Joined: 06 Sep 2003
Posts: 287
Location: Milwaukee, WI

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

PostPosted: Tue Aug 03, 2004 9:54 am     Reply with quote

The chip isn't being fried. You just can't bulk erase a chip when it's running at 3.3V. And the only way to erase a chip fuse settings is to do a bulk erase. You can take your pick - blame the PIC or the ICD.
Guest








The blame game
PostPosted: Tue Aug 03, 2004 5:31 pm     Reply with quote

Darren Rook wrote:
The chip isn't being fried. You just can't bulk erase a chip when it's running at 3.3V. And the only way to erase a chip fuse settings is to do a bulk erase. You can take your pick - blame the PIC or the ICD.


I prefer to blame myself for being silly enough to trust the ICD :-)

The ICD is sold as workig with 3 Volt systems, it should also be clearly stated that with 3 volt operartion there are limitations.

It would be a better public relations exercise for CCS to take proactive steps to avoid this kind of hassle for the customers.

It would take me about 15 minutes to add code to check the fuses, if they have changed and if the target is a 3Volt system, warn the operator about the problem.

The warning box could have a "check box" for thoses that don't like warnings to "not display this message in the future" and then when they "destroy" the chip they have themselves to blame....

I use the term "destroyed" simply becasue it's not that easy to bulk erase this kind of chip. It's 64 pin TQFP and not everyone has the equipment to safely remove them without the addional risk of destroying the PCB. To bulk erase these chips I would have to solder them to a special PCB that has a 5 Volt supply and then unsolder them for future use...

Frankly that will stress the chip so much it is hardly worth using for anything.

So the term "destroyed" is still valid...

With ICSP one does NOT expect to remove a chip for bulk erasing...

However someone pointed out a jumper scheme for isolating the chip could be a solution. I don't like that idea, but it may be OK for prototypes.

If there is blame to be heaped upon anyone, I'd say Microchip are a prime candidate... Why make a chip that can operate at 2 Volts and them require 5 Volts to erase the fuses.
If the rest of the registers can be programmed with VPP then the Fuses should have the same option.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> CCS ICD / Mach X / Load-n-Go All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
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