|
|
View previous topic :: View next topic |
Author |
Message |
russk2txb
Joined: 30 Mar 2008 Posts: 109 Location: New Jersey
|
FUSE problem 18F6723 |
Posted: Mon Aug 10, 2009 3:43 pm |
|
|
Finally got my new hardware and tried programming the 18F6723. It seems to program ok but then get an error screen (from ICD) indicating some problems with fuses. But I do not understand, so hope someone can explain.
Code: | Actual data: 06 00 1E 19 80 F3 00 80 C0 FF E0 FF 40 FF
Expected data: 06 00 1E 19 80 00 00 80 C0 FF E0 FF 40 FF |
and below it shows two lines highlighted:
Code: | Actual Expected
CCP2C1 CCP2E7
MCLR NOMCLR |
The first line I can kind of understand. It is telling me that it expects CCP2 to be Pin E7 (correct) but the fuses are telling it to be pin C1. But I have not defined CCP2 with the fuses so shouldn't it default to correct? Also I tried adding the CCP2E7 fuse and nothing changes.
The second one confuses me more because it looks like it is telling me that the NOMCLR fuse is required. But the PIC has MCLR and I expect to use it. Adding the NOMCLR fuse also did not change anything, and I was still able to program it.
Can anyone explain what this all means and how to fix?
(Using compiler version 4.083, ICD-U40 version 1.39 rev# 99)
Thanks, Russ |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
|
russk2txb
Joined: 30 Mar 2008 Posts: 109 Location: New Jersey
|
FUSE problem 18F6723 |
Posted: Tue Aug 11, 2009 10:56 am |
|
|
Thanks for those links, PCM Programmer. I went through them carefully and cannot find a solution that works. I checked the data in the hex file and it is correct, according to the data that the ICD error says is expected. I tried changing it to the data that it says it got, correcting the checksum, thinking maybe I could fool ICD into passing the test, but then it comes back with different data and errors.
The PIC will run, if I start it manually using the full version of ICD. A lot of the functions work, but I really need the debugger to examine the contents of EEPROM, as it seems that my data tables are screwed up but I cannot see a program reason why.
The cables and test setup are identical to those used with a different PIC, and all works ok there. I am wondering if I just have a bad PIC, or if this is some software problem with the ICD. I won't have another board to test with for a day or two...
Thanks for any more insight you may have into this problem.
Russ |
|
|
russk2txb
Joined: 30 Mar 2008 Posts: 109 Location: New Jersey
|
FUSE problem 18F6723 |
Posted: Tue Aug 11, 2009 11:03 am |
|
|
I forgot to add to my last message, I have tried separating the FUSE statement into two parts, in various ways as implied by the first link you sent. It said some combinations of fuses have to be done in two steps. I am assuming that means I have to have two #fuses statements, one after the other. No help. but that message is talking about needing to use the H4 fuse, first using HS and then H4 afterwards. But my system uses HS anyway. Here are my fuses:
Code: | #fuses HS,NOWDT,NOPROTECT,BROWNOUT,NOLVP,PUT
|
I tried adding CCP2E7and NOMCLR because that is what the error message indicates is expected, but nothing changed.
Thanks again - Russ |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Aug 11, 2009 1:25 pm |
|
|
There's not a lot I can do here, because I don't have your development
environment. You're using the CCS ICD-U40. I'm using the Microchip
ICD2. |
|
|
russk2txb
Joined: 30 Mar 2008 Posts: 109 Location: New Jersey
|
FUSE problem 18F6723 |
Posted: Tue Aug 11, 2009 1:30 pm |
|
|
Ok, can anyone else suggest some help here? I am still having the problem although I am slowly making progress with the code. I really NEED to be able to debug.
Thanks, Russ |
|
|
russk2txb
Joined: 30 Mar 2008 Posts: 109 Location: New Jersey
|
FUSE problem 18F6723 |
Posted: Sat Aug 15, 2009 7:56 am |
|
|
Finally got this problem solved. Called CCS tech support and got the answer right away. The engineer there said that the problem was fixed in later compilers, but to make it work with my version 4.083, he had me changed the fuse specifications in the device editor, for the chip I am using 18F6723. I had to change the spec for the fuse called RESERVE, with a CW value of 3, so that Mask went from 0400 -> 04FF, and Value went from 0 -> F3. This fixed the problem, the ICD will now transfer the program without error, and the debugger now works!
I am not sure of all the logic behind this. The Value change from zero to F3 matches the error that I was seeing in the ICD error message (a sinble byte error, expecting 00, seeing F3). The Mask change makes sense too. But I am not sure how the engineer knew that it was the fuse called RESERVE, with a CW value of 3, that needed to be changed. But maybe this will help others who have this problem.
Thanks for your attempts to help.
Regards, Russ |
|
|
|
|
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
|