

The 11LC040 is a low-power, 4K-bit Electrically Erasable Programmable Read-Only Memory (EEPROM) manufactured by Microchip Technology. It operates with a supply voltage range of 2.7V to 5.5V and features a serial interface for efficient data communication. This EEPROM is ideal for applications requiring non-volatile data storage, such as configuration settings, calibration data, or small-scale data logging.








| Parameter | Value |
|---|---|
| Memory Size | 4 Kbits (512 x 8 bits) |
| Interface Type | Serial (Microwire-compatible) |
| Operating Voltage Range | 2.7V to 5.5V |
| Maximum Clock Frequency | 1 MHz |
| Write Cycle Time | 5 ms (typical) |
| Data Retention | 200 years |
| Endurance | 1,000,000 write/erase cycles |
| Package Options | PDIP, SOIC, TSSOP, DFN |
| Operating Temperature | -40°C to +85°C (Industrial) |
The 11LC040 is available in an 8-pin package. Below is the pinout and description:
| Pin No. | Pin Name | Description |
|---|---|---|
| 1 | CS | Chip Select: Activates the device when pulled low. |
| 2 | SO | Serial Data Output: Outputs data during read operations. |
| 3 | WP | Write Protect: Disables write operations when tied to Vcc. |
| 4 | Vss | Ground: Connect to system ground. |
| 5 | SI | Serial Data Input: Receives data during write operations. |
| 6 | SCK | Serial Clock: Synchronizes data transfer between the device and the host. |
| 7 | HOLD | Hold: Pauses communication without resetting the serial interface. |
| 8 | Vcc | Power Supply: Connect to a 2.7V to 5.5V power source. |
Below is an example of how to interface the 11LC040 with an Arduino UNO using SPI communication:
#include <SPI.h>
// Pin definitions for the 11LC040
const int CS_PIN = 10; // Chip Select pin connected to Arduino pin 10
void setup() {
// Initialize SPI communication
SPI.begin();
pinMode(CS_PIN, OUTPUT);
digitalWrite(CS_PIN, HIGH); // Ensure CS is initially high
Serial.begin(9600);
Serial.println("11LC040 EEPROM Example");
}
void loop() {
// Example: Write a byte to address 0x00
writeEEPROM(0x00, 0x42); // Write 0x42 to address 0x00
delay(10); // Wait for write cycle to complete
// Example: Read the byte back from address 0x00
byte data = readEEPROM(0x00);
Serial.print("Data read from EEPROM: 0x");
Serial.println(data, HEX);
while (1); // Stop the loop
}
// Function to write a byte to the EEPROM
void writeEEPROM(byte address, byte data) {
digitalWrite(CS_PIN, LOW); // Select the EEPROM
SPI.transfer(0x02); // Send WRITE instruction
SPI.transfer(address); // Send address
SPI.transfer(data); // Send data
digitalWrite(CS_PIN, HIGH); // Deselect the EEPROM
}
// Function to read a byte from the EEPROM
byte readEEPROM(byte address) {
digitalWrite(CS_PIN, LOW); // Select the EEPROM
SPI.transfer(0x03); // Send READ instruction
SPI.transfer(address); // Send address
byte data = SPI.transfer(0x00); // Read data
digitalWrite(CS_PIN, HIGH); // Deselect the EEPROM
return data;
}
No Data Read/Write:
Write Operations Failing:
Unstable Communication:
Q1: Can I use the 11LC040 with a 3.3V microcontroller?
A1: Yes, the 11LC040 operates within a voltage range of 2.7V to 5.5V, making it compatible with 3.3V systems.
Q2: How do I erase data on the 11LC040?
A2: Data can be overwritten directly by writing new data to the same address. There is no need for a separate erase operation.
Q3: What happens if the power is lost during a write operation?
A3: If power is lost during a write cycle, the data at the target address may become corrupted. Ensure a stable power supply during write operations.
Q4: Can I use the 11LC040 in high-temperature environments?
A4: The 11LC040 is rated for operation between -40°C and +85°C, suitable for most industrial and consumer applications.