MyTetra Share
Делитесь знаниями!
Когда использовать FM24CL64B?
Время создания: 24.05.2025 13:13
Автор: alensav
Текстовые метки: FM24CL64B
Раздел: FRAM
Запись: alensav/MyTetra2/main/base/17480815826a71so7wc4/text.html на raw.githubusercontent.com

ОТ QWEN

Микросхема FM24CL64B — это FRAM (Ferroelectric Random Access Memory) объемом 64 Кбит (8 КБ) , работающая через шину I²C . Это энергонезависимая память, которая объединяет в себе преимущества оперативной и флэш-памяти.



✅ Когда использовать FM24CL64B?

1. Частая запись данных

  • FRAM позволяет выполнять миллиарды циклов записи , в отличие от EEPROM (~100 000 циклов) или флэш-памяти (~10 000–100 000).
  • Идеально подходит для хранения часто изменяемых данных:
  • Счетчики событий
  • Логирование показаний датчиков
  • Параметры настроек устройства

2. Надежное хранение данных без питания

  • Не требует резервного питания (в отличие от SRAM с батарейкой).
  • Сохраняет данные при выключении питания (как EEPROM/флэш).

3. Быстрая запись и чтение

  • Запись происходит так же быстро, как и чтение.
  • Нет задержек, связанных с "стиранием" блоков (как в флэш-памяти).
  • Полезно для систем реального времени.

4. Энергоэффективность

  • Потребляет меньше энергии по сравнению с EEPROM при частой записи.



🔧 Как использовать FM24CL64B с ESP8266 / ESP32 / Arduino?

1. Подключение (I²C интерфейс)


FM24CL64B

ESP8266 / ESP32 / ARDUINO

VCC

3.3 В

GND

GND

SDA

GPIO4 (D2 на NodeMCU)

SCL

GPIO5 (D1 на NodeMCU)

WP

GND (если нужна защита от записи — подтянуть к VCC)

A0-A2

GND (или по схеме адресации)

⚠️ ESP8266 и ESP32 работают с I²C только на 3.3 В , поэтому не подключайте напрямую к 5 В логике!


2. Пример кода (Arduino IDE)

Используется библиотека Wire.h + специальная обвязка для FRAM:

cpp

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

#include <Wire.h>


#define FRAM_ADDR 0x50 // Адрес FRAM (A0-A2 = GND)


void setup() {

Serial.begin(115200);

Wire.begin();


// Записываем байт

writeByte(0x0000, 0xA5);


// Читаем байт

byte value = readByte(0x0000);

Serial.print("Read value: ");

Serial.println(value, HEX);

}


// Функция записи одного байта

void writeByte(int address, byte data) {

Wire.beginTransmission(FRAM_ADDR);

Wire.write((int)(address >> 8)); // старший байт адреса

Wire.write((int)(address & 0xFF)); // младший байт адреса

Wire.write(data);

Wire.endTransmission();

}


// Функция чтения одного байта

byte readByte(int address) {

Wire.beginTransmission(FRAM_ADDR);

Wire.write((int)(address >> 8));

Wire.write((int)(address & 0xFF));

Wire.endTransmission();


Wire.requestFrom(FRAM_ADDR, 1);

return Wire.read();

}



📦 Преимущества FRAM (FM24CL64B) перед другими типами памяти


ТИП ПАМЯТИ

EEPROM

FLASH

FRAM (FM24CL64B)

Циклы записи

~100 000

~10 000

~10¹⁴

Скорость записи

Медленная

Медленная

Быстрая

Энергопотребление

Среднее

Среднее

Очень низкое

Поддержка случайного доступа

Да

Нет

Да

Нужно стирать перед записью

Нет

Да

Нет

Цена

Дешевле

Дешевле

Дороже



🛠 Где применяется FM24CL64B?

  • Умный дом : хранение настроек, счетчиков энергии, температурных профилей.
  • Сенсорные узлы IoT : логирование данных с датчиков каждые несколько секунд.
  • Техника безопасности : хранение журналов ошибок, аварийных событий.
  • Автомобильная электроника : надежное хранение параметров даже при скачках напряжения.



📌 Советы

  • Используйте I²C уровень-шифтер , если микроконтроллер работает на 5В, а FRAM — на 3.3В.
  • Для увеличения объема можно использовать несколько FRAM-чипов с разными адресами (через A0-A2).
  • Для проектов с высокой интенсивностью записи FRAM предпочтительнее EEPROM и флэш.



📬 Если хочешь пример проекта:

Попробуй собрать логгер температуры с DS18B20 , который пишет показания каждую минуту в FM24CL64B. Это покажет преимущества FRAM: долговечность, скорость и надежность.

Если интересно — могу скинуть полный пример кода и схему подключения.



Хочешь, чтобы я помог тебе реализовать конкретный проект с FM24CL64B?

 
MyTetra Share v.0.67
Яндекс индекс цитирования