Arduino AT24C04

Arduino AT24C04
Артикул: 2505149

производитель: Arduino
Требуется установка или ремонт?

сервисный центр Kypidetali!

тел. +7(499)347-04-82

Описание Arduino AT24C04

Arduino и EEPROM AT24C04 — описание, характеристики, парт-номера, совместимость

1. Описание

AT24C04 — это последовательная EEPROM-микросхема на 4 Кбит (512 байт), произведённая компанией Microchip Technology (ранее Atmel). Относится к классическому семейству I²C EEPROM AT24Cxx. Широко используется в Arduino-проектах для энергонезависимого хранения настроек, калибровочных данных, счётчиков, логов и любых данных, которые должны сохраняться после отключения питания.

Микросхема работает по двухпроводному интерфейсу I²C (TWI) с адресацией до 2 устройств на одну шину (из-за того, что младший бит адреса используется как бит номера страницы A8).

Обмен по I²C происходит страницами по 16 байт.


2. Технические характеристики

| Параметр | Значение | |---|---| | Тип памяти | EEPROM (энергонезависимая) | | Ёмкость | 4 Кбит = 512 байт | | Организация | 512 × 8 бит | | Интерфейс | I²C / TWI, до 400 кГц (1 МГц для suffix «-M») | | Напряжение питания | 1.7 – 5.5 В | | Потребление (активное) | ~1 мА (чтение), ~3 мА (запись, при 5 В) | | Потребление (standby) | ~1 мкА | | Размер страницы записи | 16 байт | | Время записи байта | ≤ 5 мс (тип. 3.5 мс) | | Время записи страницы | ≤ 5 мс | | Ресурс перезаписи | 1 000 000 циклов | | Срок хранения данных | 100 лет | | Диапазон температур | −40…+85 °C (industrial), −55…+125 °C (extended) | | Адрес на шине | 7-бит: 1010 A2 A1 P0 → адреса 0x50…0x53 (реально только 2 устройства) | | Корпуса | DIP-8, SOIC-8, TSSOP-8, UDFN-8, SOT-23-5 |

Распределение адреса

  • A2, A1 — задаются выводами (обычно тянутся на GND); оба значения фиксированы → реально доступны только 2 разных адреса (0x50 и 0x51, плюс 0x52/0x53 для A1=1).
  • Младший бит адреса — номер блока (page select) внутри самой микросхемы (адреса 0..255 и 256..511).

На большинстве китайских модульных плат для Arduino выводы A1, A2 уже распаяны на GND, и адрес I²C = 0x50 по умолчанию.


3. Парт-номера (Part Numbers) Microchip/Atmel

Формируются по шаблону: AT24C04 + суффиксы (температура / корпус / упаковка).

Примеры действующих артикулов:

| Парт-номер | Корпус | Темп. диапазон | Примечание | |---|---|---|---| | AT24C04C-PUM | PDIP-8 | −40…+85 °C | Самый ходовой DIP-корпус | | AT24C04C-SSHM-T | SOIC-8 | −40…+85 °C | Промышленный SOIC, лента/рулон | | AT24C04C-SSHM-B | SOIC-8 | −40…+85 °C | SOIC, тубусы | | AT24C04C-XHM-T | TSSOP-8 | −40…+85 °C | Лента/рулон | | AT24C04C-MAHM-T | UDFN-8 | −40…+85 °C | Миниатюрный корпус | | AT24C04C-STUM-T | SOT-23-5 | −40…+85 °C | Самый маленький вариант | | AT24C04D-PUM | PDIP-8 | −40…+85 °C | Версия «D» — расширенный темп. до +125 °C в части вариантов | | AT24C04N-10SU-2.7 | SOIC-8 | 0…+70 °C | Устаревшая серия (2.7 В) | | AT24C04-10PC | DIP-8 | 0…+70 °C | Ранняя Atmel-версия, снят с производства |

Взаимозаменяемые аналоги от других производителей:

  • Microchip / Atmel: AT24C04, AT24C04C, AT24C04D
  • ST: M24C04, M24C04-F, M24C04-W, M24C04-R
  • ON Semiconductor: CAT24C04
  • NXP: PCA24C04, PCF24C04 (семейство PCF — частично несовместимо по таймингам)
  • Rohm: BR24C04, BR24L04
  • Giantec / GT: GT24C04, GT24C04A
  • HGSEMI: HX24C04 (полный клон Atmel)

4. Совместимые Arduino и модули

Платформы Arduino

Работает со всеми Arduino через штатную шину I²C (Wire):

  • Arduino Uno / Nano / Pro Mini — SDA = A4, SCL = A5
  • Arduino Mega 2560 — SDA = 20, SCL = 21
  • Arduino Leonardo / Micro — SDA = 2, SCL = 3
  • Arduino Due — SDA = 20, SCL = 21
  • Arduino Zero / MKR — SDA/SCL на разъёме SERCOM
  • ESP8266 / ESP32 / ESP32-S2/S3/C3 — любые GPIO с поддержкой I²C: по умолчанию обычно 21/22 (ESP32) или 4/5
  • STM32 BluePill и др. — через Wire.setSDA()/setSCL()

⚠️ Обязательны подтягивающие резисторы 4.7 кОм – 10 кОм на SDA и SCL к 3.3 или 5 В. На многих модулях они уже распаяны.

Готовые модули на AT24C04

  • Модуль I²C EEPROM AT24C04 (платка с колодкой для SDA/SCL/VCC/GND), питание 2.7–5.5 В
  • Модуль AT24C04 в составе DS1307 RTC + EEPROM (используется как хранилище батарейных данных)
  • GY-... серия EEPROM модулей (AT24C01/02/04/08/16/32/64/128/256 — распиновка идентична, только адрес меняется)
  • Любые I²C-шины, где уже есть другие устройства с адресами, не пересекающимися с 0x50

5. Краткий пример работы (Arduino IDE)

#include <Wire.h>

#define EEPROM_ADDR 0x50

void writeEEPROM(uint16_t addr, uint8_t data) {
  Wire.beginTransmission(EEPROM_ADDR);
  Wire.write((uint8_t)(addr >> 8) | ((EEPROM_ADDR & 0x01) << 3)); // для 4К страница/блок
  Wire.write((uint8_t)(addr & 0xFF));
  Wire.write(data);
  Wire.endTransmission();
  delay(5); // ожидание завершения записи
}

uint8_t readEEPROM(uint16_t addr) {
  Wire.beginTransmission(EEPROM_ADDR);
  Wire.write((uint8_t)(addr >> 8));
  Wire.write((uint8_t)(addr & 0xFF));
  Wire.endTransmission();
  Wire.requestFrom(EEPROM_ADDR, 1);
  return Wire.read();
}

void setup() {
  Serial.begin(9600);
  Wire.begin();         // на ESP32: Wire.begin(SDA, SCL);
  delay(10);

  writeEEPROM(0x0000, 123);
  Serial.print("Read: ");
  Serial.println(readEEPROM(0x0000));
}
void loop() {}

6. Библиотеки Arduino

| Библиотека | Описание | |---|---| | Wire (встроенная) | Прямой I²C-доступ | | ExtEEPROM | Универсальная поддержка 24LCxx/AT24Cxx | | I2C_EEPROM_I2Cx | H-серия, аналогичная AT24Cxx | | GitHub: julioterra/ExtEEPROM | Популярная, покрывает все 24Cxx | | GitHub: cyrob/I2C_EEPROM | Простой враппер для AVR |

Простой и надёжный путь на Uno/Nano: подключить внешнюю AT24C04 через Wire, т.к. это надёжнее штатной EEPROM микроконтроллера (100k циклов → 1M циклов, 512 Б против 1 КБ у Uno).


Если нужно — могу оформить сравнение AT24C04 vs AT24C08/AT24C32, расписать точные тайминги цикла записи или собрать полное тестовое скетч-меню с чтением/записью/сканированием шины I²C.

Совместимые модели для Arduino AT24C04

Arduino AT24C04