|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 cjsb37 于 2013-4-29 09:13 编辑
In many designs, the system requirements call for programmable non-volatile memory for data storage; a bootstrap device for a microcontroller or DSP; or a configuration memory device for a FPGA. Depending on your application, the type of memory you select can vary from design to design, although multiple memory solutions are usually possible.
The system design usually specifies a serial or parallel interface, dependent upon the application requirements and your overall system costs.
For serial memory, a serial EEPROM or serial Flash could be selected, while a parallel EEPROM or parallel Flash is available to meet the parallel memory requirements.
For space-limited applications, a serial device uses fewer pins and is usually the best choice; however, if you are already using an external parallel memory device in the system design for program memory, you have the option to use the same memory device for both program and data memory. Each memory type has its own pros and cons, but the final selection is usually based on the importance of the overall system costs, memory density, battery life and the system's functional requirements.
Serial bootstrap PROM
For applications requiring an external boot PROM memory device that is programmable, using serial or parallel memory depends on the microcontroller or DSP selected. If the interface is serial, your memory selection could be either a serial EEPROM or a serial Flash device. Microcontrollers or DSPs with high-speed requirements can then boot from a serial interface and download the firmware into a separate high-speed volatile memory device such as SRAM or DRAM, for system operation. Using this technique, the operating speed or bus width of the processor is not limited by the non-volatile serial memory device.
Memory density and cost can be the deciding factor between using a serial EEPROM or a serial Flash device. If the memory density requirement is below 512 Mbits, a serial EEPROM can be selected, since there are no serial Flash devices available at these lower densities. At densities above 1 Mbit, there are no serial EEPROMs available, so you would select a serial Flash device. At densities of 512 Kbits and 1 Mbit, both memory types are available, and your decision would be based upon the functionality you require and your final system costs.
In FPGA designs, serial interface memory is used for configuration on power-up, since various densities are used. Depending upon the specific FPGA you select, the type of memory available could be limited by the serial interface. Today, FPGAs are designed with either an SPI interface or an interface that is specifically designed for FPGAs. In either case, your decision to use a serial EEPROM or serial Flash device is still based upon the density required and device costs.
Serial or parallel data memory
When programmable non-volatile data memory is needed in your design, you could select serial or parallel memory. Of the various types of memory available, your design could use a serial EEPROM, serial Flash, parallel EEPROM or a parallel Flash device. Whether you specify serial or parallel memory depends on the types of serial ports or spare I/O ports available in the microcontroller, the availability of an external parallel Flash device for program memory and the overall system design costs.
Consider whether the program memory should reside internal or external to the microcontroller in your system design. If it resides in an external parallel memory device, are there spare memory sectors available in the device for data memory? If there are not, an external serial memory device would be necessary. If sectors are available for data memory, the system requirements should be reviewed to determine if it is an option to use this memory. These requirements include memory endurance, battery life and the amount of available SRAM in the design. The temperature profile of the system must also be taken into account, since it affects these requirements.
* Typical endurance levels for parallel Flash devices are 10 000 cycles, serial Flash devices can range from 10 000 to 100 000 cycles and serial EEPROMs can exceed 1 million cycles. These levels can decrease substantially as temperature increases, so you might want to be conservative when making a decision based upon endurance.
* If battery life is the most important specification, your system should be designed to minimise power consumption. In a system using an external parallel Flash device for both program and data memory, the power drawn to update this type of memory would be higher than a serial device. For a small number of updates, the amount of power drawn may not have a big impact, but as the number increases, it could become substantial and could be a limiting factor. The reason for the higher current draw is that data modifications in Flash are performed a sector at a time, so more devices must remain in the ON state to make any updates. The system then draws more overall power for a longer period of time and reduces the battery charge at a faster rate. In a serial EEPROM, the data can be modified a byte at a time, so less power is consumed.
* In addition to the higher power consumption in a system using parallel Flash for program and data memory, additional SRAM may be required for data modifications. To change a single byte of data, a sector of data within the Flash must first be downloaded into SRAM and modified while it still resides in SRAM. Then, the Flash sector is erased so that the modified data in SRAM can be loaded back into the Flash device. To save overall costs and space, you can choose a parallel device for both program and data memory, but you should be aware of its limitations.
Serial EEPROM or Serial Flash
If you specify a serial memory device in your system, selecting an EEPROM or Flash device can depend on the density required. Today, any density above 512 Kbits or 1 Mbit is serviced with a Flash device, but an EEPROM can be selected if the density is below this range.
* The types of serial ports available in the microcontroller can help you select your memory device, since serial Flash devices are only available with an SPI port. This means that the microcontroller will also require an SPI port or it must have four or five spare I/O ports and some available program space to emulate an SPI port if serial Flash is selected. Also, a specific amount of SRAM that is larger than a Flash sector must be available for data modifications. EEPROMs within this density range are available with an SPI or an I2C port.
* When modifying the data in the Flash device, the amount of current drawn from the battery is higher than an EEPROM, because the data is modified a sector at a time. This means that several devices in the system design are ON for a longer period of time. If minimising power drawn from the battery is critical, then it will be advantageous to select an EEPROM.
* Operating voltage is important, since the current Flash devices operate over a voltage range of 2,7 to 3,6 V, while EEPROM devices operate over the range of 1,8 to 5,5 V.
* If cost is your only concern, the serial Flash device is usually selected, since it is less expensive per bit than a serial EEPROM.
Summary
The selection of EEPROM or Flash memory can be a simple decision determined by the system design parameters. In other cases, there are design trade-offs that take place before this selection is made. For this reason, cost should not be the deciding factor, because it could mean that some of the design parameters are not met and the end application does not operate as expected. In today's market, more portable devices are available and battery life has become a very important requirement in the usefulness and attractiveness of the product. Therefore, make sure all design trade-offs have been studied before selecting the type of memory to use.
|
|