PDA

View Full Version : EEPROM life



Charles Linquis
- 11th February 2010, 17:11
I have to write often into on-chip EEPROM, and I need to guarantee a high MTBF. Microchip claims 1M hrs typical EEPROM Erase/Write cycles. My question is: What constitutes a WRITE cycle? I believe that even when I write one location, that a whole "block" is written. Does this mean that if I write 1M times to location 0, that I have also "worn out" addresses 0 - 63 (or whatever a block size is) as well?

mackrackit
- 12th February 2010, 16:47
It is my understanding that DATA EEPROM is written to in byte size chunks.

Program EEPROM on the other hand is made up of "blocks".

I have looked for the info to back this up but can not find anything to really make it clear.

Section 7.1 of DS33023A kind of says this.

Bruce
- 12th February 2010, 17:40
What constitutes a WRITE cycle
The completion of a successful write to the memory cell or block of cells.

Flash Program Memory is erased/written in blocks of 32 words - or 64 bytes. So you have up to 100K writes to here before it gets into the failure range.

Data EEPROM can be written in single bytes - with up to 1M writes 'per cell' before it gets near end-of-life.

Just testing, i've pushed EEPROM memory beyond 5M writes, and it kept working just fine, but I wouldn't shoot anything like that out onto the market.....:o

rmteo
- 12th February 2010, 18:07
Flash Program Memory is erased/written in blocks of 32 words - or 64 bytes. So you have up to 100K writes to here before it gets into the failure range.
Note that both of those parameters are device specific.

http://home.earthlink.net/~rmteo/sitebuildercontent/sitebuilderpictures/a_69n.jpg

Charles Linquis
- 12th February 2010, 19:11
Thanks guys!

I, too have pushed EEPROM cells to over 2M WRITES, but my military customers are interested in MTBF. If I use the "approved" tables, the
MTBF of my entire unit starts decreasing significantly if I have more
than 100K WRITES.
My plan was to write a word into two bytes, and when it overflowed,
increment another EEEPROM cell (which tells me the byte offset) and shift the WRITE up one byte.
That way, each cell would get 65536 + 256 WRITES.

I was worried that if I just shifted up one byte each time I overflowed,
I would actually be writing more times than I thought.

rmteo
- 12th February 2010, 19:42
Check out AN1095 from MC's website. Slightly different application (Emulating Data EEPROM for PIC18 and PIC24 Microcontrollers and dsPICŪ Digital Signal Controllers) but there are some interesting techniques in it, eg. increasing Total Effective Endurance by a factor of 1,000.