EEPROM and flash memory are electrically writable and erasable PROMs (programmable read only memories) used both alongside microcontrollers and as the microcontroller's on-chip memory. What, then, is the difference between EEPROM and flash memory?
[Difference in configuration]
Flash memory is a type of EEPROM, but because data can be erased in block units, it has a simpler structure. Flash memory can therefore provide a larger memory capacity and costs less to manufacture.
Consequently, whereas the capacity of a microcontroller's on-chip EEPROM is usually several tens of bytes, the capacity of the on-chip flash memory can be several tens or hundreds of thousand bytes.
|For reference: Part 1 |
As a single component, EEPROM usually has a capacity of several ten to several thousand bytes and comes in a small 8-pin package that uses a serial interface. The applications of this type of EEPROM are mainly devices such as TVs, in which they are used to store information such as the TV channel or volume level when the power is turned off, and to restore this information when the power is turned on again.
EEPROM with megabyte capacity is available, but flash memory tends to be used in large-capacity applications. Recently, various new memory applications have emerged, such as memory audio players, USB memory, and memory cards. These new applications mainly use NAND-type flash memory.
[Difference in write function]
With EEPROM, old data can be overwritten simply by writing new data to the required address. With flash memory, however, data can be written from an erased state (for example, changing from "1" to "0"), but not in the opposite direction (changing from "0" to "1"). In this case, the data must be erased in block units.
[Difference in number of rewrites]
EEPROM usually guarantees at least 100,000 rewrites. Flash memory, on the other hand, guarantees far fewer: between 100 and 1000 in 78K All Flash products (the actual number differs depending on the device). It might seem that this number is very small, but consider the following points: The program is not rewritten that often after mass production, and maintaining the data securely is really more important than the possible number of rewrites. In the development stage, however, flash memory can be rewritten many more times than the aforementioned limit (the number of rewrites can be increased because the frequency of rewrites means that data does not need to be retained for any length of time).
EEPROM:Used as an extension of RAM to store a small amount of data when the power is turned off in applications where the data is overwritten relatively frequently.
Flash memory:Used as a ROM for storing programs or large-capacity (static or semistatic) data in applications where the data does not need to be overwritten so frequently.
|For reference: Part 2 |
The appearance of EEPROM and flash memory has made it possible for memory contents to be rewritten while the memory is inside the application system (product). This of course is beneficial in the development stage and at mass production startup. But an even greater benefit is the facilitation of maintenance following shipment. Just as bugs are bound to occur in programs, defects are bound to be found and specification changes are bound to occur following shipment. Being able to update a program in the field eliminates the need to send out staff to change parts or ship another product. Moreover, programs can now be updated automatically via the Internet or digital broadcasts.
(It must be noted, however, that when a program is updated, the previous settings are sometimes initialized, requiring the settings to be redone from the beginning. Being able to update a program easily is therefore not always a godsend.)