Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use 24LC1025: Examples, Pinouts, and Specs

Image of 24LC1025
Cirkit Designer LogoDesign with 24LC1025 in Cirkit Designer

Introduction

The 24LC1025 is a 1 Kbit (128 x 8) I2C-compatible EEPROM (Electrically Erasable Programmable Read-Only Memory) manufactured by Microchip Technology. This non-volatile memory device is designed for applications requiring reliable data storage even when power is removed. It operates on a wide supply voltage range of 1.8V to 5.5V and communicates via a 2-wire I2C interface, making it easy to integrate into microcontroller-based systems.

Explore Projects Built with 24LC1025

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32-Based Water Flow Monitoring System with OLED Display
Image of Copy of Copy of Flow: A project utilizing 24LC1025 in a practical application
This circuit features an ESP32 microcontroller interfaced with a water flow sensor to measure flow rates and an OLED display for visual output. A 4060 binary counter IC is configured for timing or frequency division, with its outputs connected to the ESP32. A SN74AHCT125N buffer is used for level shifting or driving capabilities.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Smart Energy Monitoring and Control System
Image of SMART SOCKET: A project utilizing 24LC1025 in a practical application
This circuit is designed to monitor AC voltage and current using ZMPT101B and ZMCT103C sensors, respectively, with an ESP32 microcontroller processing the sensor outputs. The XL4015 step-down module regulates the power supply to provide a stable voltage to the sensors, the ESP32, and an LCD I2C display. The ESP32 controls a 4-channel relay module for switching AC loads, and the system's operation can be interacted with via the LCD display and a push switch.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO WiFi Sensor Data Acquisition and Display System
Image of Senior Design: A project utilizing 24LC1025 in a practical application
This circuit features an Arduino UNO R4 WiFi microcontroller interfacing with a 4-channel ADC to read from various sensors and display data on an I2C LCD screen. A pushbutton provides user input, and a DC-DC buck converter regulates the power supply from a 12V source.
Cirkit Designer LogoOpen Project in Cirkit Designer
Teensy 4.0 and MAX7219-Based 7-Segment Display Counter
Image of dispay: A project utilizing 24LC1025 in a practical application
This circuit uses a Teensy 4.0 microcontroller to control a MAX7219 LED driver, which in turn drives three 7-segment displays. The microcontroller runs code to display numbers from 0 to 999 on the 7-segment displays, with the SN74AHCT125N buffer providing signal integrity and the necessary capacitors and resistors ensuring stable operation.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with 24LC1025

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Copy of Copy of Flow: A project utilizing 24LC1025 in a practical application
ESP32-Based Water Flow Monitoring System with OLED Display
This circuit features an ESP32 microcontroller interfaced with a water flow sensor to measure flow rates and an OLED display for visual output. A 4060 binary counter IC is configured for timing or frequency division, with its outputs connected to the ESP32. A SN74AHCT125N buffer is used for level shifting or driving capabilities.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of SMART SOCKET: A project utilizing 24LC1025 in a practical application
ESP32-Based Smart Energy Monitoring and Control System
This circuit is designed to monitor AC voltage and current using ZMPT101B and ZMCT103C sensors, respectively, with an ESP32 microcontroller processing the sensor outputs. The XL4015 step-down module regulates the power supply to provide a stable voltage to the sensors, the ESP32, and an LCD I2C display. The ESP32 controls a 4-channel relay module for switching AC loads, and the system's operation can be interacted with via the LCD display and a push switch.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Senior Design: A project utilizing 24LC1025 in a practical application
Arduino UNO WiFi Sensor Data Acquisition and Display System
This circuit features an Arduino UNO R4 WiFi microcontroller interfacing with a 4-channel ADC to read from various sensors and display data on an I2C LCD screen. A pushbutton provides user input, and a DC-DC buck converter regulates the power supply from a 12V source.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of dispay: A project utilizing 24LC1025 in a practical application
Teensy 4.0 and MAX7219-Based 7-Segment Display Counter
This circuit uses a Teensy 4.0 microcontroller to control a MAX7219 LED driver, which in turn drives three 7-segment displays. The microcontroller runs code to display numbers from 0 to 999 on the 7-segment displays, with the SN74AHCT125N buffer providing signal integrity and the necessary capacitors and resistors ensuring stable operation.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Configuration data storage for embedded systems
  • Calibration data retention in industrial equipment
  • Non-volatile storage for IoT devices
  • Data logging in portable devices
  • Firmware or parameter storage in consumer electronics

Technical Specifications

Key Technical Details

Parameter Value
Memory Size 1 Kbit (128 x 8)
Interface I2C (2-wire)
Operating Voltage Range 1.8V to 5.5V
Maximum Clock Frequency 400 kHz (Fast Mode I2C)
Write Cycle Time 5 ms (typical)
Data Retention > 200 years
Endurance 1,000,000 write/erase cycles (typical)
Operating Temperature Range -40°C to +85°C
Package Options PDIP, SOIC, TSSOP, DFN

Pin Configuration and Descriptions

The 24LC1025 is available in an 8-pin package. Below is the pinout and description:

Pin No. Pin Name Description
1 A0 Device address input (used for I2C addressing)
2 A1 Device address input (used for I2C addressing)
3 A2 Device address input (used for I2C addressing)
4 VSS Ground (0V reference)
5 SDA Serial Data (I2C bidirectional data line)
6 SCL Serial Clock (I2C clock line)
7 WP Write Protect (active HIGH; disables write operations when HIGH)
8 VCC Power supply (1.8V to 5.5V)

Usage Instructions

How to Use the 24LC1025 in a Circuit

  1. Power Supply: Connect the VCC pin to a power source within the range of 1.8V to 5.5V and the VSS pin to ground.
  2. I2C Connections:
    • Connect the SDA pin to the I2C data line of the microcontroller.
    • Connect the SCL pin to the I2C clock line of the microcontroller.
    • Use pull-up resistors (typically 4.7 kΩ) on both the SDA and SCL lines.
  3. Address Configuration: Use the A0, A1, and A2 pins to set the I2C address of the device. These pins can be tied to VCC or VSS to configure the address.
  4. Write Protection: If write operations are not required, set the WP pin HIGH to enable write protection.
  5. Data Communication: Use the I2C protocol to read from or write to the EEPROM. The device supports standard (100 kHz) and fast (400 kHz) I2C modes.

Important Considerations and Best Practices

  • Pull-Up Resistors: Ensure proper pull-up resistors are used on the I2C lines to maintain signal integrity.
  • Write Cycle Time: Allow a typical write cycle time of 5 ms before attempting to write new data.
  • Address Conflicts: Avoid address conflicts when using multiple I2C devices on the same bus by configuring unique addresses using the A0, A1, and A2 pins.
  • Write Protection: Use the WP pin to prevent accidental overwrites of critical data.
  • Bypass Capacitor: Place a 0.1 µF ceramic capacitor close to the VCC pin to filter noise and stabilize the power supply.

Example Code for Arduino UNO

Below is an example of how to interface the 24LC1025 with an Arduino UNO to write and read data:

#include <Wire.h> // Include the Wire library for I2C communication

#define EEPROM_I2C_ADDRESS 0x50 // Base I2C address of 24LC1025

void setup() {
  Wire.begin(); // Initialize I2C communication
  Serial.begin(9600); // Initialize serial communication for debugging

  // Write a byte to EEPROM
  writeEEPROM(0x00, 0x42); // Write 0x42 to memory address 0x00
  delay(10); // Wait for the write cycle to complete

  // Read the byte back from EEPROM
  byte data = readEEPROM(0x00);
  Serial.print("Read Data: 0x");
  Serial.println(data, HEX); // Print the read data in hexadecimal format
}

void loop() {
  // Nothing to do here
}

// Function to write a byte to the EEPROM
void writeEEPROM(unsigned int address, byte data) {
  Wire.beginTransmission(EEPROM_I2C_ADDRESS);
  Wire.write((address >> 8) & 0xFF); // Send the high byte of the address
  Wire.write(address & 0xFF);        // Send the low byte of the address
  Wire.write(data);                  // Send the data byte
  Wire.endTransmission();
  delay(5); // Allow time for the write cycle to complete
}

// Function to read a byte from the EEPROM
byte readEEPROM(unsigned int address) {
  Wire.beginTransmission(EEPROM_I2C_ADDRESS);
  Wire.write((address >> 8) & 0xFF); // Send the high byte of the address
  Wire.write(address & 0xFF);        // Send the low byte of the address
  Wire.endTransmission();

  Wire.requestFrom(EEPROM_I2C_ADDRESS, 1); // Request 1 byte from the EEPROM
  if (Wire.available()) {
    return Wire.read(); // Return the received byte
  }
  return 0xFF; // Return 0xFF if no data is available
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. EEPROM Not Responding on I2C Bus:

    • Cause: Incorrect I2C address or wiring.
    • Solution: Verify the I2C address configuration using the A0, A1, and A2 pins. Check the connections for SDA and SCL.
  2. Data Corruption:

    • Cause: Power loss during a write operation.
    • Solution: Ensure a stable power supply and avoid interrupting the write cycle.
  3. Write Operations Failing:

    • Cause: WP pin is HIGH (write protection enabled).
    • Solution: Set the WP pin LOW to enable write operations.
  4. Incorrect Data Read:

    • Cause: Address mismatch or timing issues.
    • Solution: Double-check the memory address being accessed and ensure proper delays between operations.

FAQs

Q1: Can I use the 24LC1025 with a 3.3V microcontroller?
A1: Yes, the 24LC1025 operates within a voltage range of 1.8V to 5.5V, making it compatible with 3.3V systems.

Q2: How many devices can I connect on the same I2C bus?
A2: Up to 8 devices can be connected by configuring unique addresses using the A0, A1, and A2 pins.

Q3: What happens if I exceed the write endurance limit?
A3: After exceeding the typical endurance of 1,000,000 write/erase cycles, the memory cells may begin to fail, leading to unreliable data storage.

Q4: Is the 24LC1025 backward compatible with standard I2C devices?
A4: Yes, it supports both standard (100 kHz) and fast (400 kHz) I2C modes, ensuring compatibility with most I2C devices.