View previous topic :: View next topic |
Author |
Message |
Stephen Guest
|
recover ICD-U40 firmware |
Posted: Thu Mar 04, 2004 9:54 am |
|
|
My ICD-U40 cannot be connected after I tried to upgrade it with the firamware come with the installation disks.
I have looked the ICD help saying that the bootloader is damaged and have to be rerturned to CCS. I have also survey the forum and seen someone reload the bootloader with the internal ICSP but without further details about the pins.
Is there someone can give me the step-by-step recovery of the ICD-U40?
I think I need
the definitions of those pins of internal ICSP.
and the location of files I should use. (I think they are those in the PIC-C folder.)
Please help.
Stephen |
|
|
wedilo
Joined: 16 Sep 2003 Posts: 71 Location: Moers, Germany
|
|
Posted: Fri Mar 05, 2004 2:02 am |
|
|
Hello Stephen,
I will try to remember, because I solved this problem some weeks ago:
Ok, first I started version 2.0 of ICD.exe and did an upload with the 'booload.hex'. ICD.exe send a messagebox with a warning, but I ignored it. After that, I can't see any function and I thought now it's final damaged. Then I tried to upload the 'icdfirmware-01-20.fw' but the ICD.exe announced 'Non valid format' or something like that. So I send the file 'Ccsicd40.hex' to the ICD and Oops, it still worked again.
After that all, I started the version 2.7 of ICD.exe again and tried to send the 'icdfirmware-01-20.fw'. That's all
The pin assignment is:
Code: |
internal connector of ICD hardware:
---- ---
! !---------------! !
! 1 2 3 4 5 6 !
------------------------
1 = RB7
2 = RB6
3 = n.c.
4 = GND
5 = +5V
6 = MCLR
I'm NOT absolutely sure about it. Please take a ohmmeter and the datasheet of the ICD internal PIC (Normally 18F252) and check it.
|
Hope that helps you
73 Sven |
|
|
agrj
Joined: 26 Sep 2003 Posts: 48
|
|
Posted: Fri Mar 05, 2004 8:28 am |
|
|
Hi I just check the pin out and the correct configuration is:
1 - RB6
2 - RB7
3 - nc
4 - MCLR
5 - GND
6 - 5vdc
Thanks
Dinho |
|
|
Stephen
Joined: 04 Mar 2004 Posts: 1
|
|
Posted: Sun Mar 07, 2004 6:28 pm |
|
|
Thanks for your kindly help. The correct pin-out is like what agrj provided. It is also confirmed by CCS. CCS also provided a copy of HEX file which is the same as the one we can download from the website of ICD-U software.
What I did to recover the ICD-U is that
1. Open the ICD-U box and make a connector.
2. Use another healthy ICD (such as ICD-S or ICD2) to load the firmware-01-03 to the ICD-U. (No bootloader is required)
3. ICD-U is alive again.
Funny thing is that I could not duplilcate what went wrong about ICD-U. I think the original firmware might have some conflicts with ICD software version 2.7.
By the way, during the recovery process, I found that only one of ICD-U and ICD-S can be installed with the C compiler. However, one can be installed in different directory but will not be linked with the compiler. _________________ Stephen |
|
|
agrj
Joined: 26 Sep 2003 Posts: 48
|
|
Posted: Mon Mar 08, 2004 8:46 am |
|
|
Hi,
could you send me this HEX file. the one I have it's not working properly. When I try to import it (using MPLAB) I receive a message saying that the HEX file may be corrupt because the Check sum does not match.
thanks
Dinho
my e-mail: [email protected] |
|
|
wedilo
Joined: 16 Sep 2003 Posts: 71 Location: Moers, Germany
|
Is here anybody else who can help ??? |
Posted: Mon Mar 08, 2004 10:20 am |
|
|
Hello folks,
Sorry about the wrong pin assignment, but I took it from my brain ;-)
I think I need a new one.
agrj, do you still have the problems? I can't believe it.
Try it like my description, it must work.
You posted that you are using MPLAB. Is your second ICD a Microchip ICD2?
Is here anybody else who can help ??? I mean we are not the only ones who have this trouble.
73 Sven |
|
|
agrj
Joined: 26 Sep 2003 Posts: 48
|
|
Posted: Tue Mar 09, 2004 8:54 am |
|
|
Hi,
I'm using MPLAB and PicStart +. the problem is when I'm trying to import the HEX file. I try to use CCSICD40.HEX, and I get a message saying this file may be corrupt. the check sum does not match.
I don't know what it coud be. if I import the one called just CCSICD.HEX I can get it into memory, but it's intend to use with PIC16F876.
any hints?
Thanks
Dinho |
|
|
wedilo
Joined: 16 Sep 2003 Posts: 71 Location: Moers, Germany
|
|
Posted: Wed Mar 10, 2004 1:50 am |
|
|
Hello agrj,
OK, I must recapitulate...
You use Microchip MPLAB 6.? with a connected and still working Microchip ICD2 hardware to reprogram the firmware of a CCS ICD hardware ?
Is that correct? Then we will try it step by step
73 Sven |
|
|
agrj
Joined: 26 Sep 2003 Posts: 48
|
|
Posted: Wed Mar 10, 2004 6:01 am |
|
|
Hello 73 Sven,
I'm using MPLAB 6.43 with PicStart Plus as programmer. it's functional and ready to program the firmware.
my problem is with the HEX file, I can not import it to memory.
thanks
Dinho |
|
|
wedilo
Joined: 16 Sep 2003 Posts: 71 Location: Moers, Germany
|
|
Posted: Thu Mar 11, 2004 6:21 am |
|
|
Hello agrj,
OK, now I understand.
You want to open the file 'Ccsicd40.hex' with File -> Import...
After you choose the filename, you get an error message like: "The format of the file ... can not be read ... was not recognized"
So, the header of 'Ccsicd40.hex' starts with something like that:
; $
; FIRMWARE_MAJOR = 0x01
; FIRMWARE_MINOR = 0x05
etc.
etc.
I'm not sure but this isn't a valid header for hex files and MPLAB refuse it.
I think you must try another way:
Either you use another CCS ICD hardware and the CCS IDE or you try to edit the 'Ccsicd40.hex'. I would delete the mentioned header with an hex-editor and hoping that's all. ;-))
MAKE A COPY OF THE HEX-FILE !!!
I hope you can do it in the first way.
adeus and until tomorrow...
73 Sven |
|
|
Lorix
Joined: 26 Apr 2004 Posts: 1
|
|
Posted: Sat May 08, 2004 8:43 am |
|
|
Please I can't find 'Ccsicd40.hex' in CCS site, can someone send me by email ?
thanks in advance
[email protected] |
|
|
Guest
|
|
Posted: Sun Jul 04, 2004 6:56 am |
|
|
agrj wrote: | Hi,
could you send me this HEX file. the one I have it's not working properly. When I try to import it (using MPLAB) I receive a message saying that the HEX file may be corrupt because the Check sum does not match.
thanks
Dinho
my e-mail: [email protected] |
could you send me this HEX file.... the one I have its not working properly.
thnx |
|
|
Guest
|
|
Posted: Sun Jul 04, 2004 6:57 am |
|
|
agrj wrote: | Hi,
could you send me this HEX file. the one I have it's not working properly. When I try to import it (using MPLAB) I receive a message saying that the HEX file may be corrupt because the Check sum does not match.
thanks
Dinho
my e-mail: [email protected] |
could you send me this HEX file.... the one I have its not working properly.
my email: [email protected]
thnx |
|
|
Patrick Frank Guest
|
|
Posted: Wed Jul 07, 2004 4:37 am |
|
|
Hello,
i have the same problem with my icd-s20.
I want to download the bootloader with my Microchip ICD1, but i have only the firmware, not the bootloader. Does anyone know where i can get it?
Thanks.
Patrick Frank |
|
|
kypec
Joined: 20 Sep 2003 Posts: 54
|
How to get ICD firmware in HEX format including bootloader |
Posted: Wed Jul 07, 2004 6:01 am |
|
|
I was recently forced to burn full firmware into my ICD-S40 because
the "update firmware via serial port" feature failed and here are the
steps which I had to do:
1. get some text editor which is able to handle also non-text files.
Crimson Editor just did the job fine for me
http://www.crimsoneditor.com/
2. get some binary viewer with which you can view the file
content in hexadecimal format
I used built-in viewer of Servant Salamander
http://www.altap.cz
3. examine the file icdfirmware-01-27.fw included in your
ICD installation package or PIC C installation package. These file
contains all HEX data for each particular ICD unit separated internally.
Look for string "ccsicd" and you will see how nicely it is organized inside
4. write down carefully the descriptions which are located 512 bytes
after the offset of "ccsicd...hex". They should look something like this:
Code: | ; FIRMWARE_MAJOR = 0x01
; FIRMWARE_MINOR = 0x27
; FIRMWARE_TYPES = 0x60
; TARGET_TYPES = 0x01, 0x02, 0
; CHIP_SPEED 40000000 |
5. open the *.fw file in Crimson Editor -> now you will be seeing only
the raw HEX data. Each HEX block begins with descriptions mentioned before and ends with PIC type for which this block is intended, e.g. ;PIC18F252
6. select the desired block and save it in some .HEX file.
7. use external programmer/other ICD unit to burn this HEX file into
your damaged ICD
Good luck to everybody
kypec |
|
|
|