External Memory Components
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.
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.
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.
- Microchip 24LC1025 Product Page
- Microchip 24LC1025 Datasheet (PDF)
-
SparkFun Tutorial on Reading and Writing Serial EEPROMs
(See section Higher Capacity EEPROMs on how to use the 24LC1025 with an Arduino)
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.
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:
|
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.
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:
|
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.
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.
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.
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 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.
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.
(0) Comments
Sign in to leave a comment
Sign In