ISSP programmer preserve EEPROM?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

First, how do you search the forum?  ( I tried to find the answer myself, but can't even figure out how to search within a forum)

   

Anyway, I need to reflash a lot of devices in the field, but preserve the EEPROM which contains calibration data.

   

It would save a lot of time (=$) if we don't have to repeat the calibration routine.

   

Is this possible with the ISSP programmer?

   

Thanks

0 Likes
2 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Hi,

   

at the right hand upper corner you find a "Keyword Search". The number of found articles are not only restricted to this community, so you'll have to read a bit to find what you're looking for.

   

 

   

The hex-file-format from which a PSoC1 is programmed allows for gaps (not programmed areas). When all other fails, you'll have to edit the file manually and delete the area where your EEProm-area lies.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Thanks for the suggestion, but it didn't seem to work.

   

Here's what I did:

   

I identified the EEPROM section of flash from E2PROM_1.h

   

#define  E2PROM_1_START_ADDR      (0xff * 64)                        // absolute address of E2PROM_1 EEPROM device
which is 0x3fc0.

   

In the .hex file, I deleted the following line.

   

:403fc00030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030c1

   

Then tried to load the hex file in the ISSP programmer, but it complained that the checksum was invalid.

   

So, I initialized the area to zeros in the C code with the following in main.c:

   

// clear the EEPROM space
#pragma abs_address 0x3fc0 //E2PROM_1_START_ADDR
    const char InitialValues[64] = {0x00};
#pragma end_abs_address
 

   

Now, the EEPROM area is all zeros, and I can delete the line without the ISSP programmer complaining.

   

:403fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1

   

But alas the EEPROM memory was still wiped when flashing.

   

Now that I think about it- I guess the chip has to do a full erase in order to be reflashed since it is secured.  Seems like there may be no solution to preserving the calibration data...

0 Likes