Перейти к содержанию

FM24CL16B — сегнетоэлектрическая память FRAM с шиной I²C

FM24CL16B — энергонезависимая память FRAM ёмкостью 16 Кбит (2 Кбайта) с шиной I²C, сейчас её выпускает Infineon. Она ставится на место EEPROM 24C16, но пишет на скорости шины, без паузы после записи, и выдерживает 10¹⁴ циклов вместо миллиона. Разбираем по даташиту выводы, адресацию с выбором страницы в адресе устройства, запись и чтение, параметры, питание и чем FRAM отличается от EEPROM 24LC256.

Обновлено Редакция GAW

FM24CL16B (Cypress, теперь Infineon) — сегнетоэлектрическая память FRAM на 16 Кбит, организованная как 2048 × 8 бит, с шиной I²C. Как и EEPROM, она хранит данные без питания, но пишет так же быстро, как читает, и почти не изнашивается. Поэтому её ставят туда, где данные меняются часто: счётчики моточасов и импульсов, журналы событий, состояние устройства, которое должно пережить внезапное отключение.

Коротко

  • Объём — 2048 байт: 8 страниц по 256 байт, номер страницы — в адресе устройства.
  • Запись — на скорости шины, без паузы и опроса; ресурс 1014 циклов чтения и записи.
  • Хранение — не меньше 10 лет при 85 °C, 38 лет при 75 °C, 151 год при 65 °C.
  • Шина — I²C до 1 МГц, также тайминги 100 и 400 кГц; адреса 0x50–0x57 заняты целиком.
  • Питание — 2,7–3,65 В; ток до 100 мкА при 100 кГц, 3 мкА в покое (тип.).
  • Корпуса — SOIC-8 (150 mil) и DFN-8 4,0 × 4,5 мм; −40…+85 °C.

Выводы

FM24CL16B, вид сверху: 1 NC, 2 NC, 3 NC, 4 VSS, 5 SDA, 6 SCL, 7 WP, 8 VDDFM24CL16B1NC2NC3NC4VSS5SDA6SCL7WP8VDDвид сверху
FM24CL16B в корпусе SOIC-8, вид сверху; у DFN-8 те же номера плюс открытая площадка снизу
ВыводИмяНазначение
1–3NCне подключены (у EEPROM здесь A0–A2)
4VSSобщий провод
5SDAданные и адрес I²C, открытый сток, нужен подтягивающий резистор
6SCLтактовая линия I²C
7WPзащита от записи: 1 — запись запрещена во всю память, 0 — разрешена; внутри подтянут к земле
8VDDпитание 2,7–3,65 В
площадка (DFN)—не соединена с кристаллом, паять не нужно

Подтяжка WP к земле — нелинейная: 40 кОм и больше, пока на выводе ноль, и не меньше 1 МОм, когда единица (примечание 3 к табл. DC). Наш вывод: свободный WP — это разрешённая запись, а для защиты его надо соединить с VDD. Площадку корпуса DFN, в отличие от большинства безвыводных корпусов, Cypress прямо советует не паять (с. 3). Корпус SOIC-8 описан чертежом Cypress 51-85066 *I, DFN-8 4,0 × 4,5 × 0,8 мм — 001-85260 *B.

Адрес и обмен по шине

Первый байт после START — адрес устройства (рис. 7): биты 7–4 — 1010, биты 3–1 — номер 256-байтной страницы, бит 0 — направление (0 — запись, 1 — чтение). Второй байт при записи — младшие 8 бит адреса внутри страницы, вместе получается 11-битный адрес 000h–7FFh. Наш вывод: в 7-битной записи библиотек микросхема отвечает на все адреса от 0x50 до 0x57, по одному на страницу, поэтому на одной шине может быть только одна FM24CL16B и никаких других устройств на этих адресах. Как устроены адреса на шине, рассказано в статье «Адрес I²C».

  • Запись: START, адрес устройства с битом 0, адрес байта, данные — сколько угодно байт подряд, STOP. После 7FFh адрес переходит к 000h. Страничного буфера нет: каждый байт записывается в массив сразу после восьмого бита, ещё до подтверждения.
  • Чтение с текущего адреса: START, адрес устройства с битом 1, затем байты, пока ведущий отвечает ACK. Последний байт заканчивают NACK и STOP — иначе память продолжит выдавать данные и столкнётся с командой ведущего.
  • Чтение с произвольного адреса: начать запись (адрес устройства и адрес байта), затем повторный START и чтение с текущего адреса.

Наш вывод: код для 24LC256 и других EEPROM на 32 Кбайта с двумя байтами адреса здесь не подходит — нужен драйвер в стиле 24C16, где старшие биты адреса уходят в адрес устройства. Пошаговый разбор транзакций — в инструменте «Транзакция I²C».

Параметры

Условия — VDD 2,7–3,65 В, −40…+85 °C (табл. DC и AC, с. 9–11).

ПараметрМин.Тип.Макс.Условия
Питание VDD2,7 В3,3 В3,65 В
Ток при работе——100 / 170 / 300 мкАfSCL = 100 кГц / 400 кГц / 1 МГц
Ток покоя—3 мкА6 мкАSCL = SDA = VDD, после STOP
Единица на входе0,7 · VDD—VDD + 0,3 В
Ноль на входе−0,3 В—0,3 · VDD
Ноль на выходе SDA——0,4 В3 мА
Гистерезис входов0,05 · VDD——по проекту
Утечка входов (кроме WP)−1 мкА—1 мкА
Частота SCL——1 МГц
Задержка данных после спада SCL——0,55 мкс1 МГц (0,9 мкс при 400 кГц, 3 мкс при 100 кГц)
Хранение данных10 лет——85 °C
Ресурс1014 циклов——во всём диапазоне температур
Включение: от VDD мин. до первого START1 мс——tPU
Скорость нарастания и спада VDD30 мкс/В——не быстрее

Предельные режимы (с. 9): VDD от −1,0 до +5,0 В; входы от −1,0 до +5,0 В и не выше VDD + 1,0 В — кроме SCL и SDA, на которые это последнее ограничение не распространяется; ESD 2 кВ по модели тела человека и 500 В по CDM. Тепловое сопротивление кристалл — среда — 147 °C/Вт у SOIC-8.

Наш вывод: SCL и SDA выдерживают до 5,0 В, но это предельный режим, а единица по рабочим условиям — не выше VDD + 0,3 В. На шину с подтяжкой к 5 В память ставят через преобразователь уровней. Подтяжку выбирают по формуле на рис. 3: Rmin = (VDD − VOL max) / IOL; наш расчёт для 3,3 В — (3,3 − 0,4) / 3 мА ≈ 0,97 кОм; дальше помогает калькулятор подтяжки I²C.

Ресурс и хранение

FRAM читает с разрушением и сразу восстанавливает ячейки, поэтому ресурс тратят и чтения, и записи (раздел Endurance, с. 8). Обращение расходует один цикл целой строки: строка — 64 бита, новая начинается на каждой границе 8 байт. Совет даташита — разносить часто используемые данные по разным строкам. Пример оттуда: даже 3000 обращений в секунду к одной строке набирают 1012 циклов только за 10 лет.

Наш расчёт: при 1014 циклах и 3000 обращений в секунду до исчерпания ресурса — около 1057 лет; при записи раз в секунду — около 3 миллионов лет. У EEPROM с ресурсом 1 000 000 циклов запись раз в секунду в одну ячейку исчерпает её за 11,6 суток, поэтому для EEPROM пишут код выравнивания износа, а для FRAM он не нужен.

Хранение зависит от температуры: 10 лет при 85 °C, 38 лет при 75 °C и 151 год при 65 °C. Встроенной защиты от провалов питания нет, кроме простого сброса при включении: Cypress прямо пишет, что держать VDD в допуске — забота системы, а после провала ниже минимума перед следующей операцией нужно послать START (с. 4).

FRAM и EEPROM

ПараметрFM24CL16B (FRAM)24LC256 (EEPROM)
Объём2 Кбайта32 Кбайта
Адрес байта8 бит + 3 бита страницы в адресе устройствадва байта
Выводы адресанет, занимает 0x50–0x57A0–A2, восемь микросхем на шине
Записьна скорости шины, без паузыстраница 64 байта, до 5 мс
Ресурс1014 циклов, считая чтенияболее 1 000 000 циклов записи
Хранение10 лет при 85 °Cболее 200 лет
Питание2,7–3,65 В2,5–5,5 В
Шинадо 1 МГцдо 400 кГц (24FC256 — 1 МГц)

Наш вывод: FRAM выигрывает там, где пишут часто или нужно успеть записать данные при пропадании питания — запись байта на 1 МГц занимает микросекунды, а не миллисекунды. EEPROM дешевле на килобайт, допускает 5 В и дольше хранит данные. Для больших буферов, которым не нужна энергонезависимость, подходит SPI SRAM 23LC1024.

Расхождения в документации

  • Тепловое сопротивление DFN. Таблица на с. 10 даёт для DFN-8 θJA = 28 °C/Вт против 147 °C/Вт у SOIC-8, хотя на с. 3 сказано, что открытая площадка DFN не соединена с кристаллом и паять её на плату не нужно. Без пайки площадки такой отвод тепла в плату объяснить нечем; наш вывод — для DFN число 28 °C/Вт относится к другим условиям или ошибочно, и для расчёта надёжнее брать значение SOIC-8.
  • Пример ресурса. Раздел Endurance иллюстрирует ресурс 1012 циклами за 10 лет, хотя таблица на с. 10 обещает 1014; пример, по-видимому, остался от прежней версии.
  • Имя микросхемы. В разделе Endurance дважды написано FM24C16B (5-вольтовый вариант) вместо FM24CL16B, а рис. 3 подписан «Serial (I2C) nvSRAM».
  • Температура кристалла. История ревизий: в *D добавлена максимальная температура кристалла, в *I удалена; в текущих предельных режимах её нет.
  • Ток при работе. Свойства на с. 1 называют 100 мкА при 100 кГц «active current», в таблице DC это максимум, а не типовое значение.

Частые вопросы

Можно ли поставить FM24CL16B вместо EEPROM 24C16?

Да, Cypress называет её прямой аппаратной заменой EEPROM с шиной I²C и сравнивает с EEPROM той же разводки выводов: тот же протокол, адрес устройства 1010 и выбор 256-байтной страницы битами адреса устройства. Программа тоже работает без изменений: опрос готовности после записи у FRAM всегда сразу возвращает ACK. Но питание — только 2,7–3,65 В, поэтому на плату с 5 В её не поставить без стабилизатора и согласования уровней.

Какой адрес I²C у FM24CL16B?

Старшие четыре бита — 1010, следующие три — номер 256-байтной страницы, поэтому одна микросхема занимает все восемь адресов 0x50–0x57 в 7-битной записи. Выводов A0–A2 нет (выводы 1–3 не подключены), и вторую FM24CL16B или EEPROM серии 24 на те же адреса на одну шину не поставить — это наш вывод из рис. 7 даташита.

Сколько раз можно перезаписать FRAM?

10¹⁴ циклов, причём циклом считается и чтение: FRAM читает с перезаписью, и каждое обращение расходует ресурс целой строки из 8 байт. Наш расчёт: счётчик, который переписывается раз в секунду, исчерпает 10¹⁴ циклов примерно за 3 миллиона лет, а EEPROM на 1 000 000 циклов — за 11,6 суток.

Нужна ли пауза после записи в FM24CL16B?

Нет. Байт записывается в массив после восьмого бита, ещё до бита подтверждения, и следующую команду можно посылать сразу. У EEPROM 24LC256 после записи страницы нужно ждать до 5 мс или опрашивать ACK. Отменить запись байта можно только условием START или STOP до его восьмого бита.

Источники

  1. Cypress (Infineon). FM24CL16B 16-Kbit (2K × 8) Serial (I2C) F-RAM (Document Number 001-84456 Rev. *L, December 5, 2018) — с. 1 — свойства (10¹⁴ циклов, 151 год, 1 МГц, 100 мкА, 3 мкА, 2,7–3,65 В, −40…+85 °C, SOIC-8 и DFN-8); с. 3 — выводы и их назначение (площадка DFN не соединена с кристаллом); с. 4 — организация памяти, рис. 3 (формулы подтяжки); с. 5–8 — шина, адрес устройства (1010, три бита страницы), запись, чтение, ресурс; с. 9 — предельные режимы, рабочий диапазон, табл. DC; с. 10 — хранение данных, ресурс, ёмкости, тепловое сопротивление; с. 11 — тайминги для 100 кГц, 400 кГц и 1 МГц; с. 12 — включение и выключение питания; с. 13 — заказные номера, чертежи 51-85066 и 001-85260; с. 14–15 — чертежи; с. 17–18 — история документа
  2. Microchip. 24AA256/24LC256/24FC256 256K I2C Serial EEPROM (DS20001203W, 2019) — для сравнения (по карточке EEPROM I²C): запись страницы 64 байта до 5 мс, опрос ACK, более 1 000 000 циклов, хранение более 200 лет, два байта адреса

Нашли ошибку?