External Memory Components

Created:  
Updated:   27Aug2024   06:44:44   UTC 2024-08-27T06:44:44Z
Rating:   (0 reviewsThis article has not been rated yet)

If more memory is needed for your microcontroller application, then external memory ICIntegrated Circuits or modules are an option. These are available in different packages, memory size, interface protocol, page write capability (the amount of bytes per write), write speed, retention period, and endurance.

This external memory overview will cover different types of memory devices, such as EEPROMElectrically Erasable Programmable Read-Only Memory, Flash, FRAMFerroelectric Random Access Memory, and SDSecure Digital removable miniaturized flash memory cards Cards.

EEPROM

Electrically Erasable Programmable Read-Only Memory (EEPROMElectrically Erasable Programmable Read-Only Memory) can be erased and reprogrammed (written to) repeatedly. It consists of floating gate storage transistors that hold a charge while MOSMetal-Oxide-Semiconductor transistors are used to erase the charge.

EEPROM is type of non-volatile memory where the data storage persists even when the power is removed. EEPROM has per-byte erase-and-write capabilities, unlike flash memory that needs to be written in pages.

It is common for the EEPROM capacity to be measured or labeled in bits and not bytes. For example, a 256K EEPROM will hold 256Kbits of data which is 32KB.

Microchip 24LC256 IC

The Microchip 24LC256 IC shown in the figure below is an EEPROMElectrically Erasable Programmable Read-Only Memory compatible 2-wire serial EEPROM with 256kbits (32KB) of memory.

Microchip 24LC256 EEPROM 256Kbit (32KB) IC
Microchip 24LC256-I/P DIP-8 IC Specs
Parameter Spec
Operating Voltage 2.5V to 5.5V
Memory 256Kbit (32KB)
Number of Devices Up to 8 Devices
Interface 2-Wire Serial, I2C Compatible
Page Size 64 bytes
Page Write Time 5ms (max)
Max Clock Frequency 400kHz
Endurance More than One Million Erase/Write Cycles
Data Retention > 200 years
Power Consumption Write current: 3mA (max)
Standby current: 1μA (max)

The 24LC256 has a page write capability of up to 64 bytes of data and is capable of both random and sequential reads up to the 256K boundary. It will allow up to eight devices on the same bus.

More info on the 24LC256 IC can be found in the following links.

Microchip 24LC1025 IC

For more memory in the same package, the Microchip 24LC1025 shown in the figure below has 1024Kbits (128KB) of memory.

Microchip 24LC1025 EEPROM 1024Kbit (128KB) IC
Microchip 24LC1025-I/P DIP-8 IC Specs
Parameter Spec
Operating Voltage 2.5V to 5.5V
Memory 1024Kbit (128KB)
Number of Devices Up to 8 Devices
Interface 2-Wire Serial, I2C Compatible
Page Size 128 bytes
Page Write Time 3ms (typical)
Max Clock Frequency 400kHz
Endurance More than One Million Erase/Write Cycles
Data Retention > 200 years
Power Consumption Read current: 450μA (max)
Standby current: 5μA (max)

The 24LC1025 has a page write capability of up to 128 bytes of data. More info on the 24LC1025 IC can be found in the following links.

Adafruit 24LC32 I2C EEPROM Breakout

EEPROM also comes in modules like the Adafruit 24LC32 32Kbit (4KB) I2CInter-Integrated Circuit. Also referred to as IIC or I2C. EEPROM Breakout module shown in the figure below.

Adafruit 24LC32 I2C EEPROM 32Kbit (4KB) Module
Adafruit 24LC32 EEPROM Specs
Parameter Spec
Operating Voltage 1.7V to 5.5V
Memory 32Kbit (4KB)
Number of Devices Up to 8 Devices
Interface I2C
Page Size 32 bytes
Page Write Time 5ms (max)
Max Clock Frequency I2C protocol:
  • Standard (100kHz)
  • Fast (400kHz)
  • Fast-Plus (1MHz)
Endurance More than One Million Erase/Write Cycles
Data Retention 100 years
Power Consumption Read current: 1mA (max)
Write current: 2mA (max)
Standby current: 1μA to 5μA (max)

This module uses the Onsemi CAT24C32 IC, the equivalent to the now obsolete 24LC32 IC from Microchip. It has a 32 byte page write buffer, an endurance of 1,000,000 Program/Erase Cycles, up to 1MHz clocked I2C, and operates in the 2V to 5V range. It also has JSTJapan Solderless Terminal SH connectors on both ends allowing solderless connections between the board and external devices.

More info about the CAT24C32 IC and Adafruit breakout can be found in the following links.

SparkFun 512Kbit (64KB) EEPROM Breakout Module

An EEPROM module with more memory is the SparkFun COM-18355 512Kbit (64KB) EEPROM breakout module shown in the figure below.

SparkFun COM-18355 I2C EEPROM 512Kbit (64KB) Module
SparkFun CAT24C512 EEPROM Specs
Parameter Spec
Operating Voltage 3.3V
Memory 512Kbit (64KB)
Number of Devices Up to 8 Devices
Interface I2C
Page Size 128 bytes
Page Write Time 5ms (max)
Max Clock Frequency I2C protocol:
  • Standard (100kHz)
  • Fast (400kHz)
  • Fast-Plus (1MHz)
Endurance More than One Million Erase/Write Cycles
Data Retention 100 years
Power Consumption Read current: 1mA (max)
Write current: 1.8 mA (max)
Standby current: 2μA to 5μA (max)

This module uses the Onsemi CAT24C512 IC, which has a 128 byte page write buffer, an endurance of 1,000,000 Program/Erase Cycles, up to 1MHz clocked I2C, and operates in the 1.8V to 5V range. It also has JSTJapan Solderless Terminal SH connectors on both ends allowing solderless connections between the board and external devices.

More info on the CAT24C512 IC and SparkFun breakout can be found in the following links.

Flash

Flash memory ICs and modules are useful when the EEPROM storage is too small, but you don't need as much storage as a microSD card (i.e., you need on the order of megabytes).

GigaDevice GD25Q16C

The GigaDevice GD25Q16C 16Mbit (2048KB) SPISerial Peripheral Interface NOR Flash SOICSmall Outline Integrated Circuit shown in the figure below supports Standard, Dual, and Quad SPI.

Adafruit GigaDevice GD25Q16 2MB SPI Flash 8-Pin SOIC Package
GigaDevice GD25Q16C Flash IC Specs
Parameter Spec
Operating Voltage 2.7V to 3.6V
Memory 16Mbit (2048KB)
Interface Standard, Dual, and Quad SPI
Page Size 256 bytes
Page Write Time 0.6ms (typical)
Max Clock Frequency 120MHz for fast read,
Data transfers up 240Mbits/s (Dual I/O),
480Mbits/s (Quad I/O)
Endurance Minimum 100,000 Erase/Write Cycles
Data Retention 20 years
Power Consumption Read current: 20mA (max)
Write current: 25mA (max)
Standby current: 1μA (typical)
Deep power down current 1μA (typical)

The GD25Q16C has a page write capability of up to 256 bytes of data. You can also solder this IC on the back of some microcontrollers that have the pads available for it (QT Py board, Teensy 4.1, etc.).

More info on the GD25Q16C IC can be found in the following links.

SparkFun W25Q128JV 16MB Serial Flash Breakout

Flash memory also comes in modules like the SparkFun 128Mbit (16MB) Serial NOR Flash Breakout shown in the figure below.

SparkFun SPX-17115 W25Q128JV 128Mbit (15MB) Serial Flash Module
SparkFun W25Q128JV Flash Specs
Parameter Spec
Operating Voltage 2.7V to 3.6V
Memory 128Mbit (16MB)
Interface Standard, Dual, and Quad SPI
Page Size 256 bytes
Page Write Time 3ms (max)
Max Clock Frequency 133MHz Single, Dual, and Quad SPI,
66MB/s continuous data transfer rate
Endurance Minimum 100,000 Erase/Write Cycles
Data Retention > 20 years
Power Consumption Read current: 20mA (max)
Write current: 25mA (max)
Standby current: 60μA (typical)
Power-down: < 1μA (typical)

This module uses the Winbond W25Q128JV IC, which supports standard, dual, and quad SPISerial Peripheral Interface. It has 66MB/s continuous data transfer rate and 256 byte page write buffer.

More info on the W25Q128JV IC and the SparkFun module can be found in the following links.

FRAM

Ferroelectric RAM (FRAMFerroelectric Random Access Memory) is similar to DRAMDynamic Random-Access Memory used in computers, but with a ferroelectric layer instead of a dialectric layer that provides non-volatility and fast read/write. FRAM ICs are available with I2C and SPI interfaces.

Compared to EEPROM and Flash memory, FRAM has faster read/write speeds (up to 1000x faster than EEPROM/Flash), higher read/write endurance levels (up to 10 million times more Erase/Write Cycles than EEPROM/Flash), byte writes (you don't have to deal with page writes), and lower power usage. However, FRAM cost more than EEPROM and Flash.

Adafruit MB85RS4MT 512KB FRAM Breakout Module

FRAMFerroelectric Random Access Memory is available in modules like the Adafruit 4Mbit (512KB) FRAM Breakout shown in the figure below. This module uses the Fujitsu Semiconductor MB85RS4MT IC, which supports SPI.

Adafruit MB85RS4MT 4Mbit (512KB) FRAM Breakout Module
Adafruit MB85RS4MT 4 Mbit FRAM Breakout Module
Parameter Spec
Operating Voltage 1.8V to 3.6V
Memory 4 Mbit (512 KB)
Interface SPI
Correspondent to
SPI mode 0 (0, 0) and mode 3 (1, 1)
Write Time 200 ns, typical
Clock Frequency 40 MHz, maximum
Endurance 10 Trillion Erase/Write Cycles
Data Retention 10 years (+85 °C),
95 years (+55 °C),
over 200 years (+35 °C)
Power Consumption Supply current 2.6mA (Max @ 40MHz)
Standby current 50μA (Max)
Sleep current 8μA (Max)

The MB85RS4MT has a fast write time speed of 200ns with an endurance of up to 10 trillion Erase/Write Cycles.

More info on the MB85RS4MT IC and Adafruit breakout can be found in the following links.

SD Cards

SDSecure Digital removable miniaturized flash memory cards Cards are relatively inexpensive, durable, and easy to find in many different sizes and performance parameters. They usually have a larger storage capacity than EEPROM, Flash, and FRAM, but have slower read/write speeds. They can plug into any computer using a common SD card reader.

Adafruit Micro SD Card Breakout

SDSecure Digital removable miniaturized flash memory cards Card slot breakout boards are available in modules like the Adafruit microSDThe microSD is a Secure Digital (SD) removable miniaturized flash memory card that is the compact version of a standard SD card and is meant to be used with smaller devices. Card Breakout board. The interface of the board has support for either SPISerial Peripheral Interface or SDIOSecure Digital Input Output (SDIO) is a communication interface that allows devices to connect to an SD card and exchange data..

Adafruit MicroSD SPI or SDIO Breakout Module

Adafruit has two different modules for reading the microSD card that are built into CircuitPython 6.0 or later. The sdcardio module is for SD cards that use an SPI interface. The sdioio module is for SD cards that use an SDIO interface.

Adafruit does not have an Arduino SD card library because there is already one for SPI that you can install from Library Manager in the Arduino IDE (Arduino SD Card Library Reference).

If you plan on using SDIO, you need to check if your microcontroller supports it. SDIO is usually only available on higher end chips (e.g., RPi Pico, STM32). SDIO is a multi-pin data protocol (up to 4 data pins at once!) and also tends to be able to be clocked faster than SPI.

This board does not have level shifters so its only for direct use with with 3V power and logic microcontrollers only, not 5V microcontrollers.

More info on the Adafruit microSD Card Breakout can be found in the following links.

Adafruit SPI Flash Card - XTSD 512MB

SD cards are also available embedded in an SMTSurface Mount Technology chip within a module like the Adafruit SPI Flash Card - XTSD 512MB shown in the figure below.

Adafruit SPI Flash SD Card Breakout Module

This module includes a XTSD04GLGEAG NAND flash memory chip by XTX Technology Limited. This chip will act just like a 512MB sized card with FATFile Allocation Table formatting (pre-formatted). It is useful for data logging in a high vibration device where you don't want the SD card to come loose.

You can clock it up 50MHz and the write speed class is 8 (although you may not be able to get that fast with plain 1-bit SPI compared to SDIO).

More info on the Adafruit SPI Flash SD Card XTSD can be found in the following links.

Conclusion

In this external memory overview different types of memory devices were covered, such as EEPROM, Flash, FRAM, and SD Cards.

  • EEPROM would be a good choice for small amounts of storage under 128KB.
  • FRAM is good up to 500KB and has faster read/write speeds (up to 1000x faster than EEPROM/Flash), higher read/write endurance levels (up to 10 million times more Erase/Write Cycles than EEPROM/Flash), byte writes (you don't have to deal with page writes), and lower power usage.
  • Flash memory is useful when you need on the order of megabytes, where the EEPROM or FRAM storage is too small, but you don't need as much storage as a microSD card.
  • SD cards are for large amounts of storage on the order of Gigabytes, but has slower read/writes than the other forms of memory.

Related Content


Microcontroller Memory

Created:   26Aug2023   18:25:37   UTC 2023-08-26T18:25:37Z
Updated:   07Aug2024   03:48:24   UTC 2024-08-07T03:48:24Z
Rating:  (0 reviewsThis article has not been rated yet)

Covers the memory components of MCUs

  • Volatile Memory (RAM)
  • Non-Volatile Memory (Flash and EEPROM)

Single Board Computer Memory

Created:   29Mar2023   23:05:49   UTC 2023-03-29T23:05:49Z
Updated:   07Aug2024   01:10:17   UTC 2024-08-07T01:10:17Z
Rating:  (0 reviewsThis article has not been rated yet)

Covers the memory components of SBCs

  • Volatile Memory (RAM)
  • Non-Volatile Memory (Flash and microSD)

Products

Article Rating

Sign in to rate this article

Sign In


(0) Comments

Sign in to leave a comment

Sign In