This is the AT24C256 that provides 32 Kbyte of serial, Electrically Erasable Programmable Read Only Memory (EEPROM) organized at 256Kbits WORDS of 8 BITS each. EEPROM can store data permanently unless you erase or write it and won’t lost the data when power off. Some of microcontroller have limited storage like Arduino it has only 512 bytes data space compare to AT24C256 has 256Kb EEPROM will be very suitable for small amount of data storage or extending data storage for your microcontroller. The 24C256 is optimized for use in minimal storage applications where low-power and low-voltage operation, driven using i2C serial communication bus to help you do much more multiple series of storage.

  • Maximum Writing Time: 5 mS
  • Read / Write Cycle: 100000
  • Data Retention: > 200 Years
  • Write Current Consumption: 3mA – 5VDC
  • Read Current Consumption: 400uA – 5VDC
  • Power Consumption on Standby: 100nA -5VDC
  • Temperature Range: -40*C to +125*C

Required Components

  • Arduino Microcontroller, Teensy, ESP8266, ATTINY, STM32
  • AT24C256 Chip / Module
  • Resistors (4k7, 10k, 220 Ohms)
  • Capacitor (0.1 uf)
  • 3mm LED
  • Solder Less Bread Board
  • Jumper Wire / DuPont Wire

Wiring Guide for Module

As you can see the diagram above the pin A0, A1, A2 are connected to the ground these pins allow you to customize the device i2C bus address, below the data sheet we that we verify how it is formed the byte address. For more details Please refer to the Datasheet below.

4 significant bits are present for the control code while bits A0, A1, and A2 are customizable. The least significant bit R/W is used to select a WRITE/READ operations, connected to GND PIN A0, A1, A2 fileds CHIP SELECT BITS are 0. See the address of the device below. we get a value of 0x50

To perform WRITING / READING the 24C256 you must submit in addition to CONTROL BYTE which is specifies the device address in i2C Bus, two bytes that indicate the address memory we what to write/read.

Schematics Diagram / Wiring Guide for Single and Multiple EEPROM

The Wire library allows you to pass an integer value so we could just make a bit-wise operation to device the integer variable into two bytes. There are already functions that simplify this operation HIGH BYTE and LOW BYTE. The following code allows you to write all the 32000 bytes of memory.

Source Code 1

Source Code 2

Writing 32000 bytes will take a few minutes to write because the code takes about 5 millisecond to write a byte 32000 x 0005 = > 160 Seconds. The serial reading is more fluid and influenced by the speed of the serial communication which is running to 9600 bytes per second.


  • Download 24C256 Code Libraries | Zip
  • Download AT24C256 Datasheet | Pdf
Working on 24C256 EEPROM 256Kbit / 32 Kbyte Serial Memory Data Storage on i2C Bus
Tagged on:             

3 thoughts on “Working on 24C256 EEPROM 256Kbit / 32 Kbyte Serial Memory Data Storage on i2C Bus

Leave a Reply

Your email address will not be published. Required fields are marked *