Programming 24LC256 I2C EEPROM

interfacing eeprom 24LC256

In many microcontroller projects, you need some non-volatile memory – which preserves data even when power is off. A most popular type of such memory is Flash or EEPROM. Many MCUs like AVR or PIC already have some EEPROM inside chip that may suit your needs. But in many cases, it is not included, and you may need to connect it externally. EEPROMs with I2C interface is very common in such situation as they don’t need lots of I/Os (only two wires). If you decided to add an EEPROM chip into your project, check out the handy guide on how it works written by Jesus Echavarria. As an example, he took 24LC256 EEPROM which capacity is 32K x 8 bytes. The chip works in pretty wide voltage range – between 1.7V and 5.5V which is great either for 3.3V or 5V setups. He covers all the basic things you need to consider, including selecting proper chip slave address in I2C line. Then performing reading and writing EEPROM data in byte and page modes. This guide might serve as a nice… Continue reading

Accessing AVR EEPROM memory in AVRGCC

AVR microcontrollers have some amount of EEPROM memory on-chip. For instance, Atmega328 has 1K of byte-addressable EEPROM. EEPROM memory can be used to store and read variables during program execution and is nonvolatile. It means that it retains values when the power supply is off. EEPROM memory comes in handy when we need to store calibration values, remember program state before powering off (or power failure) or store constants in EEPROM memory when you are short of program memory space, especially when using smaller AVRs. Think of a simple security system – EEPROM is the ideal place to store lock combinations, code sequences, and passwords. AVR Datasheets claim that EEPROM can withhold at least 100000 writes/erase cycles. Continue reading