Flash memory is widely used to store data and code used in embedded systems. It is a non-volatile storage medium, meaning that it can retain data without a power supply. Flash memory can be electrically erased and reprogrammed and it erases data in units called blocks and rewrites data at the byte level. Flash memory is often used in systems that frequently rewrite data, such as USB flash devices or SD cards.
Flash memory is a variation of EEPROM, or electrically erasable programmable read-only memory. EEPROM and Flash memory have many differences, with one being their reading, writing, and erasure procedures of stored data. For instance, EEPROM can read, write, and erase data at the byte level while Flash memory can also read and write at the byte level, but can only erase data at the block level.
Because erasing is a relatively slow operation and must be done before writing, performing the erase in a large block makes large write operations faster.
Flash memory devices are often I2C- or SPI-protocol based to facilitate communication between two devices or chips in an embedded system. Depending on the application of the memory device, there are certain advantages and disadvantages of using one over the other.
There are two types of Flash memory most commonly acknowledged: NAND and NOR Flash. NOR Flash was the first of the two to be introduced in 1988 by Intel, while NAND Flash was later introduced by Toshiba in 1989. Their main differences can be identified in their architecture.
NOR and NAND are named for the way the floating gates of the memory cells that hold data are interconnected in configurations that resemble a NOR or a NAND logic gate.
NOR Flash is optimized for random access capabilities where it is able to access data in any order and doesn’t require following a sequence of storage locations. In terms of its architecture, each of NOR Flash’s memory cells are connected in parallel where one end of the memory cell is connected to the source line and the other end is connected to the bit line. This allows the system to access individual memory cells.
Conversely, NAND Flash is optimized for high-density data storage and gives up the ability for random access capabilities. NAND Flash cells are connected, usually eight memory transistors at time, in a series to the bit line called a string. Here, the source of one cell is connected to the drain of the next one. This series connection reduces the number of ground wires and bit lines.
In summary, NAND-based Flash memory is ideal for high capacity data storage, while NOR-based Flash memory is best suited for code storage and execution, generally in small capacities.
Common examples of Flash memory include:
Flash memory is widely used for storage and data transfer in consumer devices, industrial applications, and enterprise systems.
In terms of consumer devices, Flash memory is often used in portable devices such as cell phones, digital cameras, tablets, and printers for fast and easy information storage. Flash memory is ideal for such electronics because it allows for mobility and miniaturization of the devices. With Flash memory, these devices can store data such as text, pictures, audio, and video files, and perform certain functions without the need for a traditional hard drive. Additionally, since Flash memory is non-volatile, these devices can store data without power, making it more efficient for consumers.
Flash memory is also often used in industrial computing applications, including scientific instrumentation, industrial robotics, space exploration, and medical electronics. Industrial systems often use Single-Level Cell (SLC) NAND Flash due to its reliability and endurance and its lessened susceptibility to power fluctuations. Incorporating such industrial-grade Flash storage is vital in these critical use cases as it minimizes risk of failures.
In enterprise applications, Flash storage refers to the use of solid-stage drives (SSDs) comprised of Flash memory for the mass storage of data or files. Enterprise computing platforms such as data centers benefit from SSDs as they offer high data throughput and low transaction latency. With the growth of hybrid and all-flash arrays, SSD storage serves intensive workloads with very high I/O performance.
Total Phase offers multiple host adapter tools that support reading, writing, erasing, and verifying I2C- and SPI-based Flash memory and EEPROM devices. Depending on the speed and application, embedded system engineers can select from the Aardvark I2C/SPI Host Adapter, Cheetah SPI Host Adapter, or the Promira Serial Platform to program and interface with such memory devices.
The Aardvark I2C/SPI Host Adapter is a general-purpose host adapter capable of signaling up to 8 MHz as an SPI master and up to 4 MHz as an SPI slave. It also can emulate an I2C master or slave device up to 800 kHz.
The Cheetah SPI Host Adapter is designed to support high-speed programming applications, allowing users to signal up to 40 MHz as a master SPI device. It is able to support up to 3 slave selects and features a pipelined architecture that enables command queuing for maximum throughput.
The Promira Serial Platform is an advanced host adapter tool that is capable of signaling up to 80 MHz as an SPI master and 20 MHz as an SPI slave, and up to 3.4 MHz as an I2C host or slave device. It offers multiple other features for advanced programming which include supporting up to 8 slave selects along with support for Dual and Quad I/O.
The Flash Center Software is a software package that allows engineers to quickly erase, program, and verify I2C- and SPI-based EEPROM and Flash memory chips that are interfaced through Total Phase's Aardvark I2C/SPI Host Adapter, Cheetah SPI Host Adapter, and Promira Serial Platform.
Unlike other programmers which can take minutes to program a memory device, the Flash Center Software can program the same device in seconds. The Flash Center Software natively supports a wide range of commonly used I2C- and SPI-based Flash memory and EEPROM devices, but it also allows users to easily add new parts if not already supported.
See how to easily program an SPI Flash memory device using the Promira Serial Platform:
For more information on flash programming using our tools, please email sales@totalphase.com.