EEPROM, NOR Flash, NAND, SRAM или FRAM
Слово «память» объединяет компоненты с принципиально разным поведением. SRAM быстро работает, но теряет данные без питания. EEPROM удобна для небольших настроек, однако запись выполняется медленнее чтения и имеет ограниченный ресурс. NOR Flash подходит для кода и сравнительно небольших массивов, NAND — для большого объёма данных при наличии контроллера и коррекции ошибок, а FRAM выдерживает очень частые записи и почти не требует ожидания между ними. Чтобы выбрать технологию, нужно описать данные: сколько их, как часто они читаются и изменяются, должны ли сохраняться после отключения питания, допустима ли потеря последних записей, как быстро система должна стартовать и сколько ресурсов можно отдать файловой системе, wear leveling и ECC. Нередко правильная архитектура использует два или три типа памяти одновременно.
Разделите данные по назначению
Сначала составьте карту данных. Загрузочный код и основная прошивка обычно читаются часто, а записываются редко. Настройки и калибровочные коэффициенты занимают мало места, но должны переживать выключение. Журнал событий пишется постоянно, иногда короткими записями. Большой архив измерений или изображений требует высокой плотности. Операционные буферы и стек протокола должны быть быстрыми, но не обязаны сохраняться.
Для каждого массива укажите объём сейчас и через весь срок развития изделия, максимальную частоту записи, размер одной транзакции, требуемое время доступа и допустимое время восстановления. Отдельно определите, что произойдёт при пропадании питания посередине записи. Эта таблица часто сразу исключает неподходящие технологии.
EEPROM — для небольших редко меняющихся данных
Последовательная EEPROM по I²C или SPI удобна для серийного номера, настроек, счётчиков с умеренной частотой обновления и калибровки. Она адресуется побайтно, но запись обычно организована страницами. После передачи данных микросхеме требуется внутренний цикл записи; следующую операцию нельзя начинать, пока устройство не готово. Если запись пересекает границу страницы без правильной обработки, адрес может завернуться внутри страницы.
Ресурс записи задаётся для ячейки или страницы при определённых условиях. Счётчик, обновляемый каждую секунду в одном адресе, способен выработать ресурс намного раньше остального изделия. Используют кольцевой журнал, распределение записей, контроль версии и CRC. Для параметров, которые меняются редко, EEPROM остаётся простым и предсказуемым решением.
NOR Flash — для кода, ресурсов и последовательного чтения
NOR Flash имеет удобный доступ к данным и часто используется для внешней прошивки, графических ресурсов, таблиц и журналов среднего объёма. Serial NOR по SPI, Dual или Quad SPI занимает мало выводов. Перед записью данные обычно стирают блоками или секторами, а программируют страницами. Нельзя считать её большой EEPROM: различия в гранулярности стирания и ресурсе требуют отдельного слоя управления.
Для исполнения кода из внешней памяти проверяют поддержку memory-mapped режима, пропускную способность, задержку, режимы XIP и время пробуждения. Для безопасного обновления нужны два образа, метаданные состояния и проверка подписи или контрольной суммы. Также учитывают защиту секторов, QE-бит, режим адресации свыше границы конкретного объёма и поведение после сброса.
NAND Flash — большой объём ценой сложности
NAND обеспечивает высокую плотность и хороша для больших архивов, файлов, журналов и мультимедиа. Её нельзя надёжно использовать как простой массив байтов без учёта bad blocks, ECC, wear leveling и управления блоками. Эти функции может выполнять контроллер внутри eMMC или другой управляемой памяти, контроллер процессора либо файловая система, рассчитанная на raw NAND.
Сравнивайте не только номинальный объём, но и размер страницы и блока, требуемую коррекцию ошибок, резервные области, ресурс P/E cycles, удержание данных после износа и гарантии производителя. Для небольшого MCU программная и аппаратная сложность raw NAND часто не оправдана; управляемая память или Serial NOR могут снизить риск, даже если цена за мегабайт выше.
SRAM — рабочая память без задержки записи
SRAM сохраняет данные только при наличии питания, зато не требует циклов стирания и не ограничивает ресурс записи обычным образом. Её используют для быстрых буферов, кадров, таблиц и расширения RAM микроконтроллера. Параллельная SRAM даёт высокую пропускную способность, но занимает много выводов; последовательные варианты экономят выводы ценой интерфейсной задержки.
Проверьте время доступа, напряжение, ток в активном и standby-режиме, организацию слов, уровни сигналов и совместимость с внешним шинным контроллером. Если данные нужно сохранять при пропадании основного питания, возможна battery-backed SRAM, однако тогда добавляются резервный источник, переключение питания и контроль срока службы батареи.
FRAM — для частых энергонезависимых записей
FRAM сочетает энергонезависимость с быстрыми записями и высоким ресурсом циклов. Она полезна для счётчиков наработки, журнала состояния, контрольных точек и данных, которые должны фиксироваться часто и быстро. Последовательная I²C FRAM внешне похожа на EEPROM, но записывает на скорости шины без длительного внутреннего цикла. Это уменьшает риск потерять данные при кратком отключении питания.
Ограничениями остаются цена за бит, доступные объёмы, напряжение и ассортимент корпусов. Кроме того, чтение некоторых FRAM-технологий является разрушающим внутри ячейки и автоматически восстанавливается контроллером; это нормальная архитектура компонента, но характеристики удержания и ресурса всё равно берут из документации конкретного артикула.
Рассчитайте ресурс журнала
Пусть устройство записывает 16-байтовую запись раз в секунду в одно фиксированное место. За год получится примерно 31,5 миллиона обновлений одной области. Даже если заявленный ресурс памяти кажется большим, постоянная запись в одну страницу может стать ограничением. Если распределить записи по 1024 слотам кольцевого буфера, нагрузка на каждый слот уменьшится примерно в 1024 раза.
В реальном расчёте учитывают фактическую гранулярность стирания или записи, служебные данные, сборку мусора и запас. Для Flash одна логическая запись может вызвать перенос целого сектора. Для критичных счётчиков применяют две копии, номер последовательности, CRC и процедуру восстановления после незавершённой транзакции.
Интерфейс и питание влияют на надёжность
У I²C проверяют адресные выводы, подтяжки, ёмкость шины и максимальную частоту. У SPI — режим, максимальную частоту, chip select и состояние линий при старте. Quad SPI требует дополнительных выводов и правильной инициализации. Параллельная память нуждается в согласовании временных диаграмм, трассировке и достаточном количестве GPIO.
Особое внимание уделяют brown-out. Если напряжение падает ниже рабочего диапазона во время записи, результат может быть неопределённым. Контроллер должен прекратить новые операции заранее, а запас энергии — позволить завершить критическую транзакцию. Нужны развязка, корректная последовательность питания и запрет записи до стабильного старта.
Примеры из каталога ChipBaza
Указанные компоненты не взаимозаменяемы по функции. Для закупки сверяют напряжение, организацию памяти, интерфейс, корпус, температурный диапазон и суффикс упаковки.
- Microchip 24LC256-I/SN — пример последовательной I²C EEPROM для настроек и небольших энергонезависимых данных.
- Winbond W25Q128JVSIQ TR — пример Serial NOR Flash, подходящей для внешней прошивки, ресурсов и блочного хранения.
- Infineon FM24CL64B-GTR — пример I²C FRAM для сценариев с частыми записями и коротким временем фиксации данных.
- ISSI IS62C256AL-45ULI-TR — пример параллельной SRAM, применяемой как оперативный буфер без сохранения данных после снятия питания.
Частые ошибки
- Считать килобиты килобайтами и не проверять организацию памяти.
- Обновлять счётчик в одном адресе без расчёта ресурса записи.
- Писать EEPROM или NOR Flash без учёта границы страницы и времени busy.
- Использовать raw NAND без ECC, bad-block management и устойчивой файловой системы.
- Забывать про двойной образ и откат при обновлении прошивки.
- Считать сохранность данных гарантированной при падении питания во время записи.
- Заказывать «W25Q128» или «24LC256» без полного суффикса напряжения, корпуса и температуры.
Чек-лист перед заказом
- Данные разделены на код, настройки, журнал, архив и временные буферы.
- Для каждого класса известны объём, частота записи, гранулярность и допустимая потеря.
- Рассчитан ресурс с учётом реального алгоритма wear leveling.
- Выбрана стратегия атомарной записи, CRC и восстановления после сбоя питания.
- Интерфейс, напряжение, уровни и временные диаграммы совместимы с контроллером.
- Проверены стирание, размер страницы/сектора, busy и защита областей.
- Для NAND определены ECC, bad blocks и программный стек.
- Полный MPN и статус жизненного цикла подтверждены производителем.
Источники для технической проверки
Параметры и ограничения сверяйте с актуальной документацией производителя для полного артикула и нужного исполнения.
Следующий шаг
Проверьте артикулы и количество до отправки заявки
Загрузите спецификацию в BOM-сервис или пришлите полный код производителя менеджеру. Если точное совпадение не доказано, позиция останется на ручной проверке.