About flash and eeprom in microcontroller

Publisher:荒火Latest update time:2014-03-05 Source: elecfansKeywords:MCU Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

  The full name of FLASH is FLASH EEPROM, but the operation method is different from that of regular EEPROM.

  The biggest difference between FLASH and EEPROM is that FLASH operates by sector, while EEPROM operates by byte. The two have different addressing methods and different storage unit structures. FLASH has a simpler circuit structure, and the same capacity occupies a smaller chip area, so the cost is naturally lower than that of EEPROM, so it is suitable for use as a program memory, while EEPROM is more used as a non-volatile data memory. Of course, it is also possible to use FLASH as a data memory, but the operation is much more troublesome than EEPROM, so a more "humanized" MCU design will integrate two non-volatile memories, FLASH and EEPROM, while cheap designs often only have FLASH. Early electrically erasable MCUs all have EEPRM structures, which are now basically discontinued.

  As for what the "chief engineer" said, if Zhang Yidao didn't remember it wrong, then even the basic concept was wrong. It can only be said that the "chief engineer" not only did not understand chip design at all, but also did not grasp the basic structure of the MCU system. In the internal circuit of the chip, FLASH and EEPROM not only have different circuits, but also different address spaces, and naturally different operating methods and instructions, regardless of whether it is a von Neumann structure or a Harvard structure. Technically, both program memory and non-volatile data memory can use only FLASH structure or EEPROM structure, and even "flexible" technical means can be used to simulate the "data storage area" in the program storage area, but even so, the two are still different in concept, which is a matter of basic common sense.

  Without a rigorous work spirit, it is impossible to become a true technical expert.

  EEPROM: Electrically Erasable Programmable Read-Only Memory. The operating characteristics of Flash fully meet the definition of EEPROM, and it is undoubtedly EEPROM. When the first Flash was launched, its data sheet clearly indicated that it was EEPROM. Most Flash manuals now also indicate it this way. The relationship between the two is like "white horse" and "horse". As for why the industry needs to distinguish between the two, the main reason is that the operating method of Flash EEPROM is completely different from that of traditional EEPROM. The secondary reason is for the simplicity of language. In informal documents and spoken language, Flash EEPROM is simply called Flash. What needs to be emphasized here is the "white" attribute of the white horse rather than its "horse" attribute to distinguish Flash from traditional EEPROM.

  The characteristics of Flash are simple structure, higher capacity can be obtained under the same process and the same chip area, and the operation speed is faster under large data volume. However, the disadvantage is that the operation process is cumbersome, especially when small data volumes are repeatedly rewritten. Therefore, in MCU, the Flash structure is suitable for program memory that does not need to be rewritten frequently.

  In many applications, some small amounts of data need to be frequently rewritten and non-volatile when powered off. Traditional EEPROM is very suitable for this purpose. Therefore, many MCUs are designed with two EEPROM structures, FLASH and traditional, in order to achieve a balance between cost and function, which greatly facilitates users. With the popularity of ISP and IAP, especially in MCU systems where the program storage address space and data storage address space overlap, more and more MCU manufacturers are using program memory that supports IAP to simulate the data memory corresponding to EEPROM. This is a workaround to achieve non-volatile data memory at a low cost. In order to achieve "equivalence" with dual EEPROM technology in commercial publicity, many manufacturers who use Flash program memory to "simulate" (note that it is not a true simulation in technical concept) EEPROM data memory have claimed that their products are equipped with EEPROM. Strictly speaking, this is very imprecise, but businessmen have their own goals and methods. Using Flash to "simulate" EEPROM can obtain greater commercial benefits, so in fact, they are the initiators of the confusion of technical concepts.

  From a cost perspective, it is cost-effective to use Flash to "simulate" EEPROM. Otherwise, no one would do it. So what is the matter with the "chief engineer" and a netizen above who said that EEPROM is used to simulate Flash? This may be due to some MCUs with continuous program storage space and data storage space. Among these MCUs, especially low-end MCUs with small storage capacity, EEPROM is still used as non-volatile memory, which is lower in cost than the design using Flash and traditional EEPROM dual processes, but this phenomenon is limited to small capacity. Due to the popularity of Flash technology, many businessmen and less rigorous technicians now call program memory Flash. For those MCUs that only use traditional EEPROM technology, they do not understand it very well, so they mistakenly call EEPROM program memory "simulated Flash". The fundamental reason is that they do not understand that Flash is just a memory structure rather than the purpose of the memory. The wrong premise naturally leads to the wrong conclusion. Commercially speaking, using EEPROM to simulate Flash is a stupid act that no one would really do. It violates the principle of pursuing maximum commercial benefits and is not technically feasible. For technicians, especially "chief engineers" in the IC industry, if they continue to say so, it only means that he or she either does not understand the relevant technical details at all or is very sloppy, which is not in line with the identity of "chief engineer". The fundamental problem is that Flash is a type of memory rather than the program memory in the MCU. Even if the program memory of the MCU is Flash, the converse proposition does not hold.

  I wrote this article to clarify technical concepts on the one hand, and on the other hand I don’t want to mislead people with wrong statements. Technology also requires a rigorous scientific spirit.

  The 28 series is the earliest EEPROM, and the 28F is the earliest Flash. In fact, the word Flash was an "advertising name" given by Intel in the 1980s to promote its 28F series. It means "fast", nothing more. The Flash of that time was not larger than the traditional EEPROM, but the starting point of capacity was slightly higher. As for whether there is the word EEPROM in the current manual, it is not important. If you have to "compare", see if there is "electrically erasable" memory in the content. At least when I open the SST Flash manual, it is clearly written, but these are basically meaningless fur, a typical white horse is not a horse theory.

  As for the AVR address continuity issue, it was a mistake on my part, it should refer to the 68HC series, but even so, even if I have never used any MCU including AVR, it has nothing to do with the nature of Flash.

Keywords:MCU Reference address:About flash and eeprom in microcontroller

Previous article:Dedicated PLC design based on EASY CORE chipset
Next article:High-speed DS80C320 microcontroller soft core design

Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号