Endurance optimization of EEPROM (~odometer implementation)

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

cross mob
WiFl_2253191
Level 2
Level 2

For maintenance purposes, I need to count and record operational cycles of a mechanical device that our PSoC5LP is controlling.

Power might be cut-off any time and I can't expect to reliably store the counter value in EEPROM as the supply voltage is falling (hardware limitation).  Therefor, I would like to continuously log cycles as they happen, but I worry about the endurance of the EEPROM over many years of operation.

The datasheet specifies 1M erase/program cycles at 25C, but we might have over 50M cycles that must be logged, so some questions arise about the details of the EEPROM implementation:

  1. Is the "EEPROM" component in PSOC5LP actually FLASH memory, where erased memory bits are '1' and bits get "programmed" to '0', but can only be set back to '1' if "erased"?
  2. If so, what exactly is a erase/program cycle?  If I erase a 16-byte row once and then "program" it 128 times, changing one, consecutive bit each time; does this count as just one erase/program cycle, or is it 128?

Thanks in advance!

0 Likes
1 Solution
RyanZhao
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

1. Is the "EEPROM" component in PSOC5LP actually FLASH memory, where erased memory bits are '1' and bits get "programmed" to '0', but can only be set back to '1' if "erased"?

- Yes. The "EEPROM" in PSoC5LP is actually Flash mememory.  'Erase' is clear every bit to 0, not 1. Can only clear it to '0' row by row. 

2.If so, what exactly is a erase/program cycle?  If I erase a 16-byte row once and then "program" it 128 times, changing one, consecutive bit each time; does this count as just one erase/program cycle, or is it 128?

- Its atomic  operation unit is 'row', which means, it is 128.

Thanks,

Ryan

View solution in original post

0 Likes
2 Replies
odissey1
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

It takes about 20ms to write to EEPROM, some electrolyte cap can hold power to psoc for that time. There is a component to simplify storage to EEPROM, a well as shifting address position

myEEPROM: component to save/recall application settings in EEPROM between power offs

/odissey1

0 Likes
RyanZhao
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

1. Is the "EEPROM" component in PSOC5LP actually FLASH memory, where erased memory bits are '1' and bits get "programmed" to '0', but can only be set back to '1' if "erased"?

- Yes. The "EEPROM" in PSoC5LP is actually Flash mememory.  'Erase' is clear every bit to 0, not 1. Can only clear it to '0' row by row. 

2.If so, what exactly is a erase/program cycle?  If I erase a 16-byte row once and then "program" it 128 times, changing one, consecutive bit each time; does this count as just one erase/program cycle, or is it 128?

- Its atomic  operation unit is 'row', which means, it is 128.

Thanks,

Ryan

0 Likes