Overview

The 24LC256 (commonly 24LC256-I/P in DIP-8 or 24LC256-I/SN in SOIC-8) is a 256 Kbit256\text{ Kbit} (32,768 Bytes32,768\text{ Bytes}) I2C serial non-volatile EEPROM IC manufactured by Microchip Technology. Organised as 32,768 8-bit bytes with a 64-byte page write buffer, it operates across a supply range of 2.5 V2.5\text{ V} to 5.5 V5.5\text{ V} DC.

Featuring 400 kHz400\text{ kHz} Fast-Mode I2C bus compatibility, three hardware chip-address pins (A0,A1,A2A_0, A_1, A_2), and a Hardware Write Protect pin (WP), the 24LC256 is widely used in microcontrollers (Arduino, ESP32, STM32) for persistent configuration storage, calibration parameters, and offline sensor data logging.

Quick reference

Memory Type256-Kbit Serial I2C Non-Volatile EEPROM
Package8-Pin DIP (Through-Hole) / SOIC-8 / TSSOP-8
Supply Voltage Range (VCCV_{CC})2.5 V2.5\text{ V} to 5.5 V5.5\text{ V} DC (1.7V1.7\text{V} for 24AA256 series)
Memory Capacity256 Kbits256\text{ Kbits} (32 Kbytes32\text{ Kbytes} / 32,768 Bytes32,768\text{ Bytes})
Page Write Buffer64 Bytes64\text{ Bytes} page write buffer
I2C Clock Speed400 kHz400\text{ kHz} Fast Mode (100 kHz100\text{ kHz} Standard Mode)
Write Cycle Time5.0 ms5.0\text{ ms} max self-timed page write cycle
Endurance & Retention1,000,000 write cycles / >200 years>200\text{ years} data retention

Pinout (8-Pin DIP Package)

text
        ┌──────────┐
     A0 ─│ 1      8 │─ VCC
     A1 ─│ 2      7 │─ WP
     A2 ─│ 3      6 │─ SCL
    VSS ─│ 4      5 │─ SDA
        └──────────┘
PinNameDescription
1A0Hardware I2C Chip Address bit 0 input
2A1Hardware I2C Chip Address bit 1 input
3A2Hardware I2C Chip Address bit 2 input
4VSSGround reference (0 V)
5SDAI2C Serial Data bidirectional line (Open-drain)
6SCLI2C Serial Clock input line
7WPHardware Write Protect pin (High = Write Protect ON, Low/GND = Write Enable)
8VCCPositive power supply (+2.5V to +5.5V DC)

Hardware I2C Address Mapping

The 7-bit I2C device address consists of a fixed 4-bit control code (1010 / 0xA) followed by the 3 hardware address pin states (A2,A1,A0A_2, A_1, A_0):

I2C Address=1 0 1 0 A2 A1 A0\text{I2C Address} = 1\ 0\ 1\ 0\ A_2\ A_1\ A_0

Pin A2A_2Pin A1A_1Pin A0A_07-Bit Hex Address8-Bit Read Address8-Bit Write Address
GND (0)GND (0)GND (0)0x500xA10xA0
GND (0)GND (0)VCC (1)0x510xA30xA2
VCC (1)VCC (1)VCC (1)0x570xAF0xAE

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply Voltage RangeVCCV_{CC}2.53.3 / 5.05.5VOperational range
Read CurrentICC_READI_{CC\_READ}4001000μA\mu\text{A}VCC=5.5V,fSCL=400kHzV_{CC} = 5.5\text{V}, f_{SCL} = 400\text{kHz}
Write CurrentICC_WRITEI_{CC\_WRITE}1.53.0mAVCC=5.5VV_{CC} = 5.5\text{V}
Standby CurrentICCSI_{CCS}1001000nAVCC=5.5V,I2C idleV_{CC} = 5.5\text{V}, I2C\text{ idle}
Write Cycle TimeTWCT_{WC}2.05.0msSelf-timed page write

Common mistakes

  • Writing across 64-byte page boundaries: The internal page write buffer holds 64 bytes. If a multi-byte write crosses a 64-byte address boundary (e.g. starting at byte address 62 for 5 bytes), the memory address wraps around to the beginning of the SAME page (byte 0), overwriting previous data!
  • Not waiting for write cycle completion: Self-timed page writes take up to 5 ms5\text{ ms}. Sending a new I2C read/write command immediately without delay or I2C ACK polling will result in NAKs from the chip.

Notes

  • Up to 8 EEPROMs on one bus: Connecting combinations of A0,A1,A2A_0, A_1, A_2 to GND or VCCV_{CC} allows operating up to 8 ×\times 256Kbit chips (256 KB256\text{ KB} total) on a single I2C bus.

Assets & downloads