Types of Serial memory supported

TypePart Number*Ex. Part Num.Example Manufacturers
SPI Flash25QnnnW25Q128Winbond, Micron, GigaDevice, PUYA
SPI EEPROM25xnnn, 95xnnn25LC040, AT25040Microchip, Atmel, STMicroelectronics
I2C EEPROM24xnnn24LC20, AT24C02Microchip, Atmel, STMicroelectronics
1-Wire EEPROM243nDS2341, GX2341, DS24B33Dallas/Maxim, GX
Microwire EEPROM93xnnAT93C46, 93LC56CMicrochip, Atmel, STMicroelectronics
SPI FRAMFM25xnnn, MB85XnnnFM25CL64B, MB85RS512Ramxeed (Fujitsu), Infineon, ROHM
I2C FRAMFM24xnnn, MB85XnnnFM24CL64B, MB85RC64Ramxeed (Fujitsu), Infineon, ROHM

*n = device size in Kbits, usually.

SPI Flash Memory

SPI Flash chips use NOR memory, which is cheap, fast, and small. There are several trade offs though:

  • Size: 1 Mbit to 512 Mbit (128K - 64M)
  • Read: Not byte addressable, data must be read in whole pages (usually 256 bytes) at a time.
  • Write: Not byte addressable, data must be written in whole pages (usually 256 bytes) at a time and page aligned.
  • Erase: Data must be erased in whole sectors (usually 4K, 8K or 64K) at a time.
  • Cost: SPI Flash is cheap!
  • Write cycles: 10,000+
  • Data retention: 20 years

To update existing data, you must first read all the data in the erase sector, modify it in RAM, erase the whole 4K sector, and then write it back to the flash memory.

Identifying SPI Flash chips

A really common SPI Flash chip is the Winbond W25Qnnn series. It will be labeled with the Winbond logo and the part number will start with “W25Q” followed by a three digit number indicating the size in Mbits.

Most recent SPI flash chips have their characteristics stored in JEDEC standard SFDP (Serial Flash Discoverable Parameters) format. The flash command in SPI mode will automatically read the SFDP data and display the chip characteristics, including the manufacturer, size, erase sector size, and other parameters.

If SFDP data isn’t available, the flash command has a database of known chips and can identify them by their JEDEC ID.

EEPROM memory

Unlike Flash (NOR) memory, EEPROM memory is byte-addressable and can be written to one byte at a time.

  • Size: 1Kbit to 4 Mbit (128B - 512K)
  • Read: Byte addressable, can read any byte in the chip.
  • Write: 1 byte up to the page size (8 to 256 bytes, depending on chip) at a time. Writes must be aligned to the page size.
  • Erase: No separate erase process is needed, bytes are erased individually before writing.
  • Cost: EEPROM is generally more expensive than NOR Flash memory.
  • Write cycles: 1,000,000+
  • Data retention: 100-200 years

Identifying SPI EEPROM chips

SPI EEPROM chips are usually labeled with a part number starting with “25” or “95”. The “25” series is more common and includes chips like AT25C020, 25LC040, 25AA080, etc. The “95” series is STM’s name for their 25x compatible EEPROMs, just substitute the same sized 25x part, e.g. 25LC040 is equivalent to 95LC040.

DeviceDensitySize (bytes)Page Size (Bytes)Address BytesBlock Select BitsB.S. Offset
25X0101 Kbit1288(AT)/1610
25X0202 Kbit2568(AT)/1610
25X0404 Kbit5128(AT)/16113
25X0808 Kbit102416/32(AT,STM)20
25X16016 Kbit204816/32(AT,STM)20
25X32032 Kbit40963220
25X64064 Kbit81923220
25X128128 Kbit163846420
25X256256 Kbit327686420
25X512512 Kbit6553612820
25XM01, 25X10241 Mbit13107225630
25XM022 Mbit26214425630
25XM044 Mbit524288256/512(STM)30

SPI EEPROM voltage requirements

25x/95x FamilyMinimum VoltageMaximum Voltage
AT251.8V5.5V
25LC2.5V5.5V
25AA1.8V5.5V
25CS1.7V5.5V
M952.5V5.5V

Identifying I2C EEPROM chips

I2C EEPROM chips are usually labeled with a part number starting with “24”. The “24” series includes chips like 24LC02, 24AA04, AT2402 etc. The “24” series is the most common I2C EEPROM series.

DeviceSizeSize (bytes)Page SizeAddress BytesBlock Select BitsBlock Select Bit Offset
24x011 Kbit128810
24x022 Kbit256810
24x044 Kbit51216110
24x088 Kbit102416120
24x1616 Kbit204816130
24x3232 Kbit40963220
24x6464Kbit81923220
24x128128 Kbit163846420
24x256256 Kbit327686420
24x512512 Kbit6553612820
24x10251 Mbit131072128213
24x10261 Mbit131072128210
24xM011 Mbit131072256210
24xM022 Mbit262144256220

I2C EEPROM voltage requirements

24xx FamilyMinimum VoltageMaximum VoltageNotes
AT24C2.7V5.5V400kHz max
24C2.7V5.5V400kHz max
24LC2.5V5.5V400kHz max
24AA1.7V5.5V400kHz max
24FC1.8V5.5V1MHz max

Identifying 1-Wire EEPROM chips

1-Wire EEPROMs are slightly different than SPI and I2C EEPROMs. Writes must be a full page (8 or 32 bytes) at a time, and they have much lower write cycles and data retention than SPI or I2C EEPROMs.

  • Write: A full page (8 or 32 bytes), write aligned to the page size.
  • Write cycles: 200,000
  • Data retention: 10-25 years

1-Wire EEPROM chips are usually labeled with a part number starting with “243”. The “243” series includes chips like DS2431, DS2432, GX2341, DS24B33, etc. The “243” series is the only known series of 1-Wire EEPROMs.

DeviceSizeBytesPage SizeAddr BytesBlk Sel BitskHz max
DS24311K12882016
DS24B334K512322016

1-Wire EEPROM voltage requirements

FamilyMinimum VoltageMaximum Voltage
DS243X2.8V5.25V

Identifying Microwire EEPROM chips

Microwire EEPROM chips are ancient technology that persists today. Microwire EEPROMs are also byte-addressable and can be written to one byte at a time. They use a funky version of SPI and have a drastically different pinout.

Microwire EEPROM chips are usually labeled with a part number starting with “93”. The “93” series includes chips like 93C46A, 93C56B, 93C66C, etc.

alt text

For 93xxxC chips, the ORG pin determines the addressing mode:

  • LOW/GROUND: 8-bit addressing
  • HIGH/VCC: 16-bit addressing

Find and measure the ORG pin with a multimeter to determine the addressing mode. The most common pinout is the example on the right (PDIP/SIOC), though a rarer “rotated pinout” version seems to exist.

Image source: Microchip 93xx46 datasheet

DeviceSizeBytesOrganizationDummy bitsAddressTotal bits
93x46A1Kbit128x8 only07bits10
93x46B1Kbit128x16 only06bits9
93x46C/E1Kbit128x8 or x1607 or 6bits10 or 9
93x56A2Kbit256x8 only18bits12
93x56B2Kbit256x16 only17bits11
93x56C2Kbit256x8 or x1618 or 7bits12 or 11
93x66A4Kbit512x8 only09bits12
93x66B4Kbit512x16 only08bits11
93x66C4Kbit512x8 or x1610 or 9bits12 or 11
93x76A8Kbit1024x8 only110bits14
93x76B8Kbit1024x16 only19bits13
93x76-/C8Kbit1024x8 or x16110 or 9bits14 or 13
93x86A16Kbit2048x8 only011bits14
93x86B16Kbit2048x16 only010bits13
93x86-/C16Kbit2048x8 or x16011 or 10bits14 or 13

Microwire EEPROM voltage requirements

FamilyMinimum VoltageMaximum Voltage
93C4.5V5.5V
M93C2.5V5.5V
93LC2.5V5.5V
93AA1.8V5.5V
AT93C2.7V5.5V

FRAM Memory

SPI FRAM chips are a type of non-volatile memory that uses ferroelectric RAM technology. They are faster than EEPROM and Flash. FRAM can be written one byte at a time, or continuously without stop. FRAM has a very high write endurance and can be used in applications that require frequent writes.

  • Size: 1Kbit to 4 Mbit (128B - 512K)
  • Read: Byte addressable, can read any byte in the chip.
  • Write: Continuous write, can write any byte in the chip. No concept of pages or sectors.
  • Erase: No separate erase process is needed, bytes are erased individually before writing.
  • Cost: FRAM is the most expensive memory in wide spread use, but is becoming more affordable.
  • Write cycles: 10^15+ (1,000,000 times more than EEPROM)
  • Data retention: 100+ years

Identifying SPI FRAM chips

SPI FRAM chips are usually labeled with a part number starting with “FM25” or “MB85”. The “FM25” series includes chips like FM25CL64B, FM25L04B, etc. The MB85RS series is Infineon’s name for their FRAM chips, e.g. MB85RS512.

Identifying I2C FRAM chips

I2C FRAM chips are usually labeled with a part number starting with “FM24” or “MB85”. The “FM24” series includes chips like FM24CL64B, FM24L04B, etc. The MB85RC series is Infineon’s name for their FRAM chips, e.g. MB85RC64.

FRAM voltage requirements

FamilyMinimum VoltageMaximum Voltage
FM252.7V3.65
FM242.7V3.65
MB852.7V3.6V