Tags: EEPROM, Memory, Module, I2C, Interface, AT24C256,

EEPROM Data Module - AT24C256

  • 9.00 AED

    15.00 AED

    • Ex Tax:9.00 AED
    • Brands RobotDYN
    • Product Code: RobotDYN
    • Availability: In Stock
    For storage of data in for your projects this I2C EEPROM module is your best choice. This module is based on the EEPROM chip AT24C256, which has 256k bit capacity. It communicate with Arduino with I2C bus, helps you do much more data storage easily.The Microchip AT24C256C is a 256Kb Serial EEPROM ut..

    For storage of data in for your projects this I2C EEPROM module is your best choice. This module is based on the EEPROM chip AT24C256, which has 256k bit capacity. It communicate with Arduino with I2C bus, helps you do much more data storage easily.

    The Microchip AT24C256C is a 256Kb Serial EEPROM utilizing an I2C (2-wire) serial interface. The device is organized as one block of 32K x 8 and is optimized for use in consumer, industrial, and automotive applications where reliable and dependable nonvolatile memory storage is essential. The EEPROM is available in a variety of space-saving packaging options.


    Additional Features

    32K x 8 (256 Kbit)

    2-Wire Serial Interface, I2C Compatible

    400 kHz and 1 MHz clock compatibility

    Self-Timed Erase and Write Cycles (5 ms max.)

    Low Power Consumption

    Read current 1 mA (Typ), 2 mA (Max)

    Write current 2 mA (Typ), 3 mA (Max)

    Standby current 6 uA (Max)

    Hardware Write-Protect Pin

    More than 1 million erase/write cycles

    Data retention > 100 years

    Extended Temperature Ranges Available (Grade 1, 2, and 3 as defined in AEC-Q100)

    Grade 1 Temperature Range: -40°C to 125°C

    Grade 2 Temperature Range: -40°C to 105°C

    Grade 3 Temperature Range: -40°C to 85°C

    Qualified for Automotive Applications

    Factory Programming Available


    نتيجة بحث الصور عن EEPROM Data Module - AT24C256


    نتيجة بحث الصور عن EEPROM Data Module - AT24C256


    Documents

    Dimensional drawing

    Dimensions EEPROM Data Module - AT24C256Dimensions EEPROM Data Module - AT24C256

    Pinout

    Pinout EEPROM Data Module - AT24C256Pinout EEPROM Data Module - AT24C256

    Schematic

    Schematic of EEPROM Data Module - AT24C256

    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

    Address Truth Table

    Address Configuration Truth Table

    Sample Code

    
    /*
      *  Use the I2C bus with EEPROM 24LC64
      *  Sketch:    eeprom.pde
      *
      *  Author: hkhijhe
      *  Date: 01/10/2010
      *
      *
      */
    
      #include <Wire.h> //I2C library
    
    
    
      void i2c_eeprom_write_byte( int deviceaddress, unsigned int eeaddress, byte data ) {
        int rdata = data;
        Wire.beginTransmission(deviceaddress);
        Wire.send((int)(eeaddress >> 8)); // MSB
        Wire.send((int)(eeaddress & 0xFF)); // LSB
        Wire.send(rdata);
        Wire.endTransmission();
      }
    
      // WARNING: address is a page address, 6-bit end will wrap around
      // also, data can be maximum of about 30 bytes, because the Wire library has a buffer of 32 bytes
      void i2c_eeprom_write_page( int deviceaddress, unsigned int eeaddresspage, byte* data, byte length ) {
        Wire.beginTransmission(deviceaddress);
        Wire.send((int)(eeaddresspage >> 8)); // MSB
        Wire.send((int)(eeaddresspage & 0xFF)); // LSB
        byte c;
        for ( c = 0; c < length; c++)
          Wire.send(data[c]);
        Wire.endTransmission();
      }
    
      byte i2c_eeprom_read_byte( int deviceaddress, unsigned int eeaddress ) {
        byte rdata = 0xFF;
        Wire.beginTransmission(deviceaddress);
        Wire.send((int)(eeaddress >> 8)); // MSB
        Wire.send((int)(eeaddress & 0xFF)); // LSB
        Wire.endTransmission();
        Wire.requestFrom(deviceaddress,1);
        if (Wire.available()) rdata = Wire.receive();
        return rdata;
      }
    
      // maybe let's not read more than 30 or 32 bytes at a time!
      void i2c_eeprom_read_buffer( int deviceaddress, unsigned int eeaddress, byte *buffer, int length ) {
        Wire.beginTransmission(deviceaddress);
        Wire.send((int)(eeaddress >> 8)); // MSB
        Wire.send((int)(eeaddress & 0xFF)); // LSB
        Wire.endTransmission();
        Wire.requestFrom(deviceaddress,length);
        int c = 0;
        for ( c = 0; c < length; c++ )
          if (Wire.available()) buffer[c] = Wire.receive();
      }
    
    
    
    
      void setup()
      {
        char somedata[] = "this is data from the eeprom"; // data to write
        Wire.begin(); // initialise the connection
        Serial.begin(9600);
        i2c_eeprom_write_page(0x50, 0, (byte *)somedata, sizeof(somedata)); // write to EEPROM
    
        delay(10); //add a small delay
    
        Serial.println("Memory written");
      }
    
      void loop()
      {
        int addr=0; //first address
        byte b = i2c_eeprom_read_byte(0x50, 0); // access the first address from the memory
    
        while (b!=0)
        {
          Serial.print((char)b); //print content to serial port
          addr++; //increase address
          b = i2c_eeprom_read_byte(0x50, addr); //access an address from the memory
        }
        Serial.println(" ");
        delay(2000);
    
      }

    There are no reviews for this product.

    Write a review

    Please login or register to review