EEPROM (Electrically Erasable Programmable Read-Only Memory) is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, like calibration tables or device configuration. Unlike EPROM chips that had to be removed and reprogrammed with specialized equipment, EEPROMs can be erased and reprogrammed electrically while in circuit. This allows software updates and other changes to be made without physically replacing chips.
How EEPROM Works
The core of an EEPROM memory cell is a floating-gate MOSFET transistor. This is a normal MOS transistor with an extra electrically isolated gate inserted between the control gate and channel. The floating gate’s only link to the rest of the transistor is through capacitance. When the cell is read, the threshold voltage of the transistor will depend on the amount of charge stored on the floating gate. This charge modulates the flow of current through the transistor channel to represent digital 0 or 1 states.
To program an EEPROM cell, a large voltage is applied across the drain and source while another large voltage is applied to the control gate. This causes electrons to tunnel through the thin oxide layer onto the floating gate via Fowler-Nordheim tunneling. The cell can be erased by applying a large voltage to just the source while grounding the control gate and floating the drain. This removes electrons from the floating gate by tunneling.
EEPROM cells have a limited lifespan and can only endure about 1 million write/erase cycles before wear begins to deteriorate the oxide layer. However, this is enough for many non-volatile memory applications.
Types of EEPROM
There are several different types of EEPROM available today, differing in details of their cell design and behavior. These include:
NAND EEPROM memories are structured much like NAND flash memory, with floating-gate transistors arranged in a dense matrix and accessed via row/column addressing. They are erased in blocks rather than individual bytes. NAND EEPROMs are commonly used in digital cameras, USB flash drives, and solid-state drives.
NOR EEPROM acts similarly to NOR flash memory, with floating-gate cells connected between bit and source lines. This parallel connection means reads are very fast, although writes are slow. NOR EEPROM is frequently employed to store firmware code in embedded systems.
Serial EEPROMs connect to a two-wire bus protocol like I2C. They contain an on-chip address register and memory array that allow the device to operate independently. Only one device can use the bus at a time. Serial EEPROMs are often used in avionics, office equipment, and vending machines.
Parallel EEPROMs allow reads and writes on 8 or more pins simultaneously. They can transfer data much more quickly in exchange for requiring more device pins. Popular uses include storing BIOS settings and calibration data in printers, network cards, and graphics cards.
There are also hybrid architectures like AND and DINOR that combine features of NOR and NAND designs. Split-gate EEPROMs add an extra select gate transistor for improved control over tunneling. And one-time programmable (OTP) EEPROMs can only be written once for applications like device ID numbers and serial numbers.
Advantages of EEPROM
EEPROM offers several notable benefits that account for its popularity:
- Non-volatile storage – Data remains even when power is removed.
- Reprogrammable – Data can be erased and reprogrammed electrically.
- Small size – EEPROM cells are compact and do not require separate erase circuitry.
- Fast reads – Data can be read quickly at electronic speeds.
- Low power – Little power is needed for reads or writes.
- High endurance – Most EEPROMs can handle millions of erase/write cycles.
- Easy to use – Simple electrical interfaces make integration straightforward.
These traits make EEPROMs ideal for storing settings, counts, serial numbers, assembly-line calibration data, and other information that needs to persist reliably even after products are disconnected from power. The reprogrammable nature makes software changes easy without physical chip swaps.
Disadvantages of EEPROM
The downsides of EEPROM include:
- Limited capacity – EEPROMs generally max out at a few megabytes per chip.
- Slow writes – Reprogramming EEPROM cells is much slower than reads.
- Limited write cycles – EEPROMs wear out after around 1 million writes per cell.
- Single-byte erases – EEPROMs erase one byte at a time, which can be slow for large data amounts.
- Complex writes – Write routines in software are more complex than reads.
- Higher cost – EEPROMs cost more per bit than bulk storage like hard drives.
For large or frequently rewritten data sets, other storage mediums like hard disk drives or flash drives may be more suitable than EEPROMs. Slow write performance also limits their use for frequently updated data during runtime. Care must be taken in software to avoid excessive writes that wear EEPROM cells prematurely.
EEPROM vs. EPROM
EEPROMs are closely related to EPROMs, or Erasable Programmable Read-Only Memory. The key difference is that EPROMs had to be removed from a circuit and exposed to strong ultraviolet light for around 20 minutes to erase their contents. EEPROMs can be erased electronically in-circuit, allowing the devices to be reprogrammed without removal.
This makes EEPROMs much more suitable for applications like updating onboard calibration tables or patchable firmware. EPROMs had to be physically swapped out for updates, making the process much slower and inconvenient.
EEPROM vs. Flash
EEPROMs have similarities and differences compared to flash memory chips:
- Cost – Flash is cheaper per bit than EEPROM due to higher densities.
- Speed – NOR flash offers faster random reads than EEPROM.
- Writes – Flash write speed is generally faster than EEPROM.
- Endurance – EEPROMs offer more erase/write cycles before wear out.
- Erases – Flash erases in large blocks, EEPROMs erase byte-by-byte.
- Scale – Large flash drives now reach multiple gigabytes, dwarfing EEPROMs.
In general, flash offers faster performance and scales to higher capacities at lower cost. But EEPROMs provide greater endurance and more flexibility for writing small amounts of data. So each technology still fills important roles, depending on the use case.
Some of the most common uses of EEPROM memory include:
- Firmware storage – Many embedded systems use EEPROMs or flash memory to store firmware code required for the device’s operation.
- BIOS settings – Non-volatile BIOS parameters like boot order, overclocking, and hardware info are stored in EEPROM on the motherboard.
- Sensor calibration – Factory sensor calibrations for precision instruments are programmed into EEPROMs.
- Motor control – EEPROMs in electric motors hold control parameters for variable speed control.
- HID identification – USB and Bluetooth peripherals often contain EEPROMs with identification info and usage data.
- Gaming consoles – Game save data is kept in EEPROMs in game cartridges and other storage media.
- Networking hardware – MAC addresses, configuration, and firmware are stored inside EEPROMs.
- Automotive – Mileage, serial numbers, radio presets, and ECU data are stored in EEPROMs in cars.
These are just a sampling of the many embedded applications for EEPROM memory across consumer, industrial, and commercial electronics.
Interfacing With EEPROMs
There are standardized protocols for interfacing with and programming different types of EEPROM chips. Common examples include:
I2C is a popular two-wire serial bus used with many serial EEPROM chips. It requires pulling the data (SDA) and clock (SCL) pins high and low to initiate reads and writes. Devices have an addressing scheme based on device type and a slave address.
SPI is another common serial interface often used with EEPROMs. It uses four pins including clock (SCLK), master output/slave input (MOSI), master input/slave output (MISO), and slave select (SS). SPI allows faster transfers than I2C with clocks up to 50 MHz.
Microwire is a simpler three-pin protocol consisting of clock, data in, and data out lines. It is synchronous like SPI but lacks a slave select pin. Microwire is commonly used with small 8-pin EEPROM chips.
EEPROMs have standardized write, read, and erase access cycles. These involve sequences of applying voltages and polling status registers. Many devices also offer page write modes for writing multiple bytes at once.
EEPROM memory provides a versatile form of non-volatile storage useful for firmware, settings data, serial numbers, and other information that needs to persist when power is removed. Its electric reprogramming capability makes it unique compared to predecessor EPROM technology.
Understanding the capabilities and limitations of EEPROM vs flash memory and other storage mediums helps designers select the right non-volatile memory type for each application. With standardized interface options like SPI and software driver libraries available, EEPROMs are easy to integrate into new and existing embedded systems.