Searching \ for 'EEPROM endurance' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/mems.htm?key=eeprom
Search entire site for: 'EEPROM endurance'.

Truncated match.
PICList Thread
'EEPROM endurance'
2002\12\07@124731 by Larry Bradley

flavicon
face
I've a question about EEPROM endurance and how it applies

The EEPROM on the 16F877 is rated at a minimum of 1 million erase/write
cycles, and typically 10 million.

I have a project in which I'd like to save 16 bytes of data into EEPROM,
once a minute (or maybe more often than that even). There are roughly 1/5
million minutes in a year, suggesting I can run the device for at least 2
years, and maybe 20 years. Obviously, I should plan for the worst case -
two years.

Now my question - does the cycle limit apply to only locations actually
being written, or to all of the EEPROM. Could I use the first 16 locations
for two years, then the next 16, etc, etc, with each new group having a 1
million cycle lifetime?

Thanks

Larry

Larry Bradley
Orleans (Ottawa), Ontario, CANADA

--
http://www.piclist.com hint: To leave the PICList
spam_OUTpiclist-unsubscribe-requestTakeThisOuTspammitvma.mit.edu


2002\12\07@130630 by stanton54

picon face
Atmel has an app note on this (called "high endurance" something
or another). This works, but a better way is to go through the entire
EEPROM, then start again at the beginning.

Larry Bradley wrote:
{Quote hidden}

--
http://www.piclist.com hint: To leave the PICList
piclist-unsubscribe-requestspamKILLspammitvma.mit.edu


2002\12\07@140907 by Spehro Pefhany

picon face
At 01:05 PM 12/7/02 -0500, you wrote:
>Atmel has an app note on this (called "high endurance" something
>or another). This works, but a better way is to go through the entire
>EEPROM, then start again at the beginning.

I think there are some notes about special refreshing procedures if your
required endurance exceeds 10% of the rated numbers.

You could always queue the numbers in RAM and write them once every 10
minutes (say). The only difference would be in case of a power failure you'd
lose a bit more data than otherwise.

Best regards,

Spehro Pefhany --"it's the network..."            "The Journey is the reward"
.....speffKILLspamspam.....interlog.com             Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog  Info for designers:  http://www.speff.com

--
http://www.piclist.com hint: To leave the PICList
EraseMEpiclist-unsubscribe-requestspam_OUTspamTakeThisOuTmitvma.mit.edu


2002\12\07@143449 by Larry Bradley

flavicon
face
Actually, that's what I'm doing now. And I have some hardware to detect
impending loss of power to tell the PIC to save the data to EEPROM. But I'd
like to avoid using the extra hardware if I can (it isn't much - a 78L05
powering the PIC from 12 volts, a diode and a 470 uf capacitor, and a
couple of resistors - but I'd like to keep things simple).

Losing up to 10 minutes of data is not acceptable - but 1 minute would be OK.

Larry

At 01:55 PM 12/7/2002 -0500, you wrote:


{Quote hidden}

Larry Bradley
Orleans (Ottawa), Ontario, CANADA

--
http://www.piclist.com hint: To leave the PICList
KILLspampiclist-unsubscribe-requestKILLspamspammitvma.mit.edu


2002\12\07@144524 by Bob Axtell

face picon face
We've never understood this endurance business, regardless
of who puts it out.

The standard way we handle this stuff is to write the 16 bytes
in 3 places in the EEPROM. This effectively triples the useable
lifetime of the EEPROM. It seems like a lot of work but actually
the routine can be looped to be very fast and small.

When we read it back, we read the first 16 and do nothing but
sum, then read the next 16 then sum; if both are the same, we
use the 2nd set (just read). If they are not the same, we read the
third set and sum. If 1st sum matches the 3rd sum, we use the
3rd set (just read); or if the 2nd sum matches the 3rd sum, we
also use the 3rd set. In essence, we are using the best 2 out of 3.

It's a simple system, works for all EEPROM chips, from PICs to
RAMTRON. With products in service over 8 years now, have
never had to change an EEPROM device.

--Bob

{Original Message removed}

2002\12\07@153153 by stanton54

picon face
Atmel app note "AVR101: High Endurance EEPROM Storage"
http://www.atmel.com/atmel/acrobat/doc2526.pdf

Uses a circular buffer so that instead of writing one location X times,
you write Y locations X/Y times.

Larry Bradley wrote:
{Quote hidden}

--
http://www.piclist.com hint: To leave the PICList
spamBeGonepiclist-unsubscribe-requestspamBeGonespammitvma.mit.edu


2002\12\07@155144 by Larry Bradley

flavicon
face
Thanks for the idea Bob.

Since you are writing the data in 3 places, don't all three places (48
bytes)  have the potential to fail?

Or is the failure mode such that there is a high probability that only one
location will fail, and thus your summing procedure will work OK.

What I had been thinking of was to write in different locations each time -
e.g. have 4 sets of 16 bytes, and alternately write in each set. The
problem I see here is that after a power failure, on powering back up you
don't know which of the 4 to use.

Larry

At 12:44 PM 12/7/2002 -0700, you wrote:
{Quote hidden}

>{Original Message removed}

2002\12\07@161434 by Kyrre Aalerud

flavicon
face
Simple.  Tag data with a timecode.

Run over the entire eeprom, tagging each write.
Then after a power-fail, just find the latest timecode.

For this to work, you will have to have some way of knowing when your
timecode has wrapped though...

   KreAture

{Original Message removed}

2002\12\07@163724 by A.J. Tufgar

flavicon
face
> For this to work, you will have to have some way of knowing when your
> timecode has wrapped though...

not really.
254
255
0
1
which is the latest one if you boot?  Only becomes a problem if you
have alot of entries.  I would just check for 255 in the timecodes, if
it exists and zero exists, there must be a wrap.

Aaron

--
http://www.piclist.com hint: To leave the PICList
TakeThisOuTpiclist-unsubscribe-requestEraseMEspamspam_OUTmitvma.mit.edu


2002\12\07@181453 by Wagner Lipnharski

flavicon
face
Larry Bradley wrote:
> I've a question about EEPROM endurance and how it applies
>
> The EEPROM on the 16F877 is rated at a minimum of 1 million
> erase/write cycles, and typically 10 million.
>
> I have a project in which I'd like to save 16 bytes of data into
> EEPROM, once a minute (or maybe more often than that even). There are
> roughly 1/5 million minutes in a year, suggesting I can run the
> device for at least 2 years, and maybe 20 years. Obviously, I should
> plan for the worst case - two years.
>
> Now my question - does the cycle limit apply to only locations
> actually being written, or to all of the EEPROM. Could I use the
> first 16 locations for two years, then the next 16, etc, etc, with
> each new group having a 1 million cycle lifetime?
>
> Thanks
> Larry Bradley

Did somebody really verified this information?

Repeated an erase/write over and over the same address location and count
how many times it goes until eeprom fails?  Of course 10 million erase
cycles is a nice number.

Let see, one erase/write each 10ms, 100/second, 360k/hour, 10 million in 30
hours...  So, if it still running after 24 hours of 10ms erase/write over
the same address, it means around 8 million cycles, and it will be pretty
acceptable.

Just built a loop routine that write its own count in 3 bytes, repeat it in
3 different locations, just to make sure it will not be messed up.  Step
the count and write to the eeprom every 10ms. This should be done in
temperature of 25°C (77°F). After 30 hours just check the eeprom contents,
the 3 areas should show almost equal numbers, variations will be
acceptable, but the number read can not be less than 4D0000h (5 million).

What kills more an eeprom is operation temperature.  If you could keep the
chip cool, it doubles or tripples the erase/write endurance count.

And yes, the life cycle limit is PER ADDRESS, at least based on everything
I already read about it.

--
http://www.piclist.com hint: To leave the PICList
RemoveMEpiclist-unsubscribe-requestspamTakeThisOuTmitvma.mit.edu


2002\12\07@182110 by Kyrre Aalerud

flavicon
face
What about incrementing a counter at each position for each time it is used?
Then, finding last used position would be very easy!
It would also allow the entire part of each block not used for data to be
used for the counter...

   KreAture


{Original Message removed}

2002\12\07@210357 by Mike Singer

picon face
> Larry Bradley wrote:
> > I've a question about EEPROM endurance and how it applies
> >
> > The EEPROM on the 16F877 is rated at a minimum of 1 million
> > erase/write cycles, and typically 10 million.


  Larry, where did you get 1 million?
From DS30292B-page 157:
Data EEPROM Memory Endurance  min 100K   25°C at 5V.


Wagner Lipnharski wrote:
> Did somebody really verified this information?


Wagner, by the way, what is  your answer to this question? Have look at Microchip's "Total Endurance Software", please.

  Mike.


> Repeated an erase/write over and over the same address location and
count
> how many times it goes until eeprom fails?  Of course 10 million erase
> cycles is a nice number.
>
> Let see, one erase/write each 10ms, 100/second, 360k/hour, 10 million
in 30
> hours...  So, if it still running after 24 hours of 10ms erase/write
over
> the same address, it means around 8 million cycles, and it will be
pretty
> acceptable.
>
> Just built a loop routine that write its own count in 3 bytes, repeat
it in
> 3 different locations, just to make sure it will not be messed up.
Step
> the count and write to the eeprom every 10ms. This should be done in
> temperature of 25°C (77°F). After 30 hours just check the eeprom
contents,
> the 3 areas should show almost equal numbers, variations will be
> acceptable, but the number read can not be less than 4D0000h (5
million).
>
> What kills more an eeprom is operation temperature.  If you could keep
the
> chip cool, it doubles or tripples the erase/write endurance count.
>
> And yes, the life cycle limit is PER ADDRESS, at least based on
everything
> I already read about it.

--
http://www.piclist.com hint: To leave the PICList
piclist-unsubscribe-requestEraseMEspam.....mitvma.mit.edu


2002\12\07@225605 by Larry Bradley

flavicon
face
I got it from the MidRange reference manual which I got from the Microchip web site a week or so ago. I can't find the publication DS3029 on the web site

Larry

At 04:06 AM 12/8/2002 +0300, you wrote:
{Quote hidden}

Larry Bradley
Orleans (Ottawa), Ontario, CANADA
--
http://www.piclist.com hint: To leave the PICList
RemoveMEpiclist-unsubscribe-requestEraseMEspamEraseMEmitvma.mit.edu


2002\12\08@002509 by Wagner Lipnharski

flavicon
face
Mike Singer wrote:
{Quote hidden}

There is no definite answer.

Make a board to log solar energy, insert into a pvc pipe, tie it up into a
pole, keep it running using a small solar cell to recharge NiMh batteries.
Temperature inside the pipe will cycle from +50°F at night to +120°F at
noon time (even using heat avoidance techniques.  In this project you will
get not even 40k erase/write cycles.  I did it.  But if I repeat it, will
get a different number everytime.

There is certain repeatability in a controlled environment.  Let say you
build 2 boards and make a loop to provide 10 million erase/write cycles to
the same address.  Make it run steady in 25°C all the time, but on board 1
you use a burst erase/write of 1000 cycles then relax for 60 seconds,
repeat the burst, etc.  On board 2, just do an erase/write every 60
seconds.

Of course, board 1 will fail first since it is bursting 1000 cycles at
once, but which one do you think will end up failing with a smaller count?

The only definite answer is;
If you need to rely on saving data, use what can erase/write a zillion
times... like a RAM with backup battery.  If you start to count bytes,
timing, expiration possibilities, and it is starting to make you redo
calculations because numbers are not so good, make sure you get a fire
extinguisher around, because you would be playing with fire.

Wagner.

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2002\12\08@034305 by Mike Singer

picon face
Larry Bradley wrote:
>
> I got it from the MidRange reference manual which I got from
> the Microchip web site a week or so ago. I can't find the
> publication DS3029 on the web site
>
> > > Larry Bradley wrote:
> > > > I've a question about EEPROM endurance and how it applies
> > > >
> > > > The EEPROM on the 16F877 is rated at a minimum of 1
> > > > million erase/write cycles, and typically 10 million.
> >
> >
> >    Larry, where did you get 1 million?
> > >From DS30292B-page 157:
> >Data EEPROM Memory Endurance  min 100K   25°C at 5V.

  Larry,    Please, read all the damned 31030a.pdf (MidRange Electrical Specifications) document:
---------------------------------------------------------------
30.1 Introduction
  This section is intended to show you the electrical specifications that may be specified in a particular device data sheet and what is meant by the specification. This section is NOT intended to
give the values of these specifications.    For the device specific values you must refer to the device’s data sheet. All values show in this section should be considered as Example Values...
  Note: Before starting any design, Microchip HIGHLY recommends
that you acquire the most recent copy of the device data sheet
and review the electrical specifications to ensure that they will
meet your requirements.
------------------------------------------------------------------

  I used DS30292B (I don't now the name of the file):
PIC16F87X     28/40-pin 8-Bit CMOS FLASH Microcontrollers
1999 Microchip Technology
Devices Included in this Data Sheet:
•PIC16F873
•PIC16F874
•PIC16F876
•PIC16F877

15.0 ELECTRICAL CHARACTERISTICS
15.3 DC Characteristics: PIC16F873/874/876/877-04 (Commercial, Industrial)
PIC16F873/874/876/877-20 (Commercial, Industrial)
PIC16LF873/874/876/877-04 (Commercial, Industrial)

page 157: Data EEPROM Memory Endurance  min 100K   25°C at 5V.

  Mike.

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2002\12\08@085329 by Larry Bradley

flavicon
face
OK found it on a different sheet - the 2001 sheet. It says 100k min, 1m typical, from -40 to +85 deg C

The mid-range manual show 1m to 10m at 25 deg C.

And I found the note about "example only - see data sheet - thanks. I had not read from cover to cover  - missed that

However, given Wagner's comments about temerature sensitivity, I suspect that 1m is not an unreasonable value.

I've modified my program to use 4 groups of locations which I timestamp when I save. On startup, I find the latest timestamp and use that group. I'm using 20 bytes per group, so I could use up to 12 groups. Saving once per minute means each group get used once every 12 minutes, or  100,000 times per year. This device will be used for 6 months each year, so even 100K would give two years. And the 1m typical would mean 20 years.

Thanks for everyone's ideas

Larry.




At 10:46 AM 12/8/2002 +0300, you wrote:
{Quote hidden}

Larry Bradley
Orleans (Ottawa), Ontario, CANADA
--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2002\12\08@114235 by Mike Singer

picon face
Larry Bradley wrote:
> I've modified my program to use 4 groups of locations which
> I timestamp when I save. On startup, I find the latest timestamp
> and use that group. I'm using 20 bytes per group, so I could
> use up to 12 groups. Saving once per minute means each
> group get used once every 12 minutes, or  100,000 times
> per year. This device will be used for 6 months each year,
> so even 100K would give two years. And the 1m typical would
> mean 20 years.

  Perhaps, the better way would be:
1. Dedicate one EEPROM location to store the address of
    a "current" group (pointer).
2. After each 256 "saves" the pointer should be incremented
   by some value cyclically from h'00' to, say, h'FF' - h'0C'

  Maybe timestamping overhead is not so necessary here.

  Mike.

---
P.S. Thanks for the idea. I have to implement something similar
  in my project, but didn't think of it before.

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2002\12\08@124155 by Larry Bradley

flavicon
face
I say time stamp - it really is just a 4 byte counter (4 bytes so I don't
have to worry about it ever wrapping).

It is a time stamp in the sense that my program saves every minute; the
value is on fact the number of minutes that the program has been running.
Every time my timing code (which is there for other reasons) count a
minute, it bumps the (double-precision) counter.

Larry


At 06:45 PM 12/8/2002 +0300, you wrote:


{Quote hidden}

Larry Bradley
Orleans (Ottawa), Ontario, CANADA

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2002\12\09@034438 by ISO-8859-1?Q?Ruben_J=F6nsson?=

flavicon
face
{Quote hidden}

I Actually did a very simple test for a 24LC16B I2C EEPROM once. It was for a project that had a serial interface to a PC and there were commands to write and read the on board EEPROM from the PC. I let it run on nights and weekends and the EEPROM failed after about 12 milion writes on one single address. The data sheet says minimum endurance is 100 000 erase/write cycles and typical 1 million.

Ruben

==============================
Ruben Jönsson
AB Liros Electronic
Box 9124, 200 39 Malmö, Sweden
TEL INT +46 40142078
FAX INT +46 40947388
RemoveMErubenspam_OUTspamKILLspampp.sbbs.se
==============================

--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics


More... (looser matching)
- Last day of these posts
- In 2002 , 2003 only
- Today
- New search...