- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Labels:
-
PSoC 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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...