blemasle / arduino-e24

EEPROM like library for Microchip 24LC series

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status License

E24

This library allows to store and read arbitrary data from the Microship's 24LCxxx series using I2C. It supports all the available EEPROM sizes from 8K to 512K, although only 256K and 512K have been tested.

Each instance only use two bytes of memory.

Features

  • Single byte read & write
  • Multiple bytes read & write
  • Structured block read & write
  • Adaptative buffers size to match chip pages boundaries

Usage

Unlike most Arduino library, no default instance is created when the library is included. It's up to you to create one with the appropriate chip I2C address.

#include <Arduino.h>
#include <E24.h>

#define CONFIG_ADDR 0xF8

struct config_t {
    uint8_t seed;
    char version[5];
};

E24 e24 = E24(E24Size_t::E24_512K, E24_DEFAULT_ADDR);

void setup() {
    config_t config = {};
    config.seed = 123;
    strcpy(config.version, "1.00");

    Wire.begin();
    //write a structured block to the suplied address
    e24.writeBlock(CONFIG_ADDR, config);

    //read back the block into the variable
    e24.readBlock(CONFIG_ADDR, config);
}

void loop() {}

About

EEPROM like library for Microchip 24LC series

License:MIT License


Languages

Language:C++ 100.0%