Back to ESAcademy Home Page


www.philipsmcu.comUsing Flash Memory in Embedded Applications

By Olaf Pfeiffer and Andy Ayre

[ Introduction | ISP vs IAP | Self-Recovery | Storing Variables | Flash Life-Time | Summary ]

 

Home

News

Training Classes

Products

Consulting

Technical Library

Contact Us

Recommended Books

Flash Life-Time

Most Flash memories only guarantee a limited number of erase and re-write cycles. Typical values are guaranteed cycles of 10,000 times. Most parts will work far longer - it's just not guaranteed. So if your application counts on it - don't design it to do more than the maximum numbers of erase cycles over the entire lifetime of the product.

As long as this memory is used only for code storage it is very unlikely that an application will ever reach the maximum guaranteed erase cycles. Think about it - how often can you design new code to get uploaded?
However, if the Flash memory is used for data storage, the entire picture changes and we need to calculate the worst-case scenario.

As an example, let's pick a consumer electronics device that stores configuration settings with each power-down cycle. To optimize the code, only changes to the configuration data need to be stored.

Let's assume that the information is stored in a table as implemented by the Flash Variables Library as explained before. This implementation may be configured to use two 16k Flash sectors. If the configuration data occupies 32 bytes (including overhead bytes added by the library), then 10,000 entries can be made before both sectors have each been erased once. In total, 100 Million writes can be made, before the system reaches the maximum number of guaranteed erase cycles.

If we now assume our worst-case user is changing some configuration data (maybe including current volume setting) 100 times a day, the system could still operate for thousands of years before reaching this maximum number of cycles.

Let's also do a different approach - how often can we change data if we want to achieve a product lifetime of 10 years? With the example from above, we have 100 Million writes, or divided by 10 years, 10 Million per year. That allows for about 27,000 writes per day or 1,100 per hour.

As a rule of thumb: if you just write 10 or so data bytes to the Flash Variable table a few times per minute, your application can run for 10 years, before the guaranteed maximum erase/re-write cycle time is reached.

[ Introduction | ISP vs IAP | Self-Recovery | Storing Variables | Flash Life-Time | Summary ]
Copyright (c) 2000 by Olaf Pfeiffer and Andy Ayre

ESAcademy, 2000

All materials
provided 'as is'
see Disclaimer

www.esacademy.com
info@esacademy.com