1) The guaranteed temperature range is valid for the eeprom, too. Writing at higher values reduces the number of writ cycles.
2+3) From datasheet: "It is necessary to acquire the die temperature by calling the CySetTemp() before a series of EEPROM write operations."
4) Yes, that's correct.
5) The Write-APIs always write a row, ByteWrite uses a read-modify-write of a row
System Reference Guide discusses EE AND FLASH -
PSoC devices have an on-chip temperature sensor that is used to measure the internal die temperature.
You must acquire the temperature at least once to use Flash and EEPROM write functions. If the
application will be used in an environment where the die temperature changes 10 °C or more, the
temperature should be refreshed to adjust the write times to the Flash for optimal performance. The die
temperature is obtained by calling the CySetTemp() function. This function queries SPC for the die
temperature and stores it in a global variable, which is used implicitly while performing Flash and
EEPROM write operations.
Thanks for all the answers!
Dumb question #1: If CySetTemp() should be called before every write, shouldn't that be embedded into the API itself (perhaps in the future)? If not, any ideas why? Since writes are so slow, I'd expect that it shouldn't extend time that much to put it into blocking API. In addition, writing to the EEPROM generates heat, so I would expect you'd want to measure die temp between writes for part lifetime reasons.
Dumb question #2: Is there any info on the temperature at write vs EEPROM life from any sources?
We tend to use devices *past* their limits. The penalty we pay is that we purchase more of them for replacements. That is ok, is part of the business model. I'm just curious if it there is any curves in existence that could be extrapolated to destruction.
Dumb question #3: If an eeprom row dies, does it affect subsequent rows? (I'm hoping for someone out there that did an OOPS and found this out).
Re Dana's reply: The data sheet says 5 degrees C, not 10. Is there some updated information that hasn't made it to the data sheets in the latest PSoC Creator?
UPDATE: I was wrong, the PSoc Creator data sheet does say 10. The downloaded document from your Website, CyEEPROM_V_2.10_001-85001.pdf, says 5 degrees. It also says you have to acquire the temp before a "series" of write operations.
I'm assuming that for one write, it is not big deal. If it is a big deal, I guess I dramatically shortened a parts life today.
Just a part of your routine, call the temp API. In general if
you are at room temp no harm has been done, and even
if you werent no major damage to FLASH, it would just not
be optimal write that allows chip to program its FLASH properly,
the data that you wrote that is.