Микросхемы памяти
Когда встроенной памяти микроконтроллера не хватает, к нему подключают внешнюю: флеш-память SPI для прошивок, шрифтов и журналов, EEPROM для настроек. Здесь — чем эти микросхемы различаются и статьи о каждом типе с командами и таймингами по даташитам.
- SPI-флеш-памятьВыводы, страницы и секторы, команды, статус BUSY, время записи и стирания
- EEPROM с шиной I²CВыводы, адрес на шине, запись байта и страницы, опрос ACK, защита, чтение
- FM24CL16B (FRAM)FRAM 2 Кбайта по I²C: выводы, адрес 0x50–0x57, запись без задержки, 10¹⁴ циклов
- 23LC1024 и 23A1024SPI SRAM 128 Кбайт: выводы, команды, режимы байта и потока, SDI и SQI до 20 МГц
Внешняя память нужна, когда встроенной флеш-памяти и ОЗУ микроконтроллера не хватает или данные должны пережить смену прошивки: изображения и шрифты для дисплея, звук, журнал измерений, настройки устройства. Почти все такие микросхемы подключаются по последовательной шине — SPI или I²C — и занимают от 4 до 8 выводов микроконтроллера.
Что выбрать
| Тип | Шина | Запись | Для чего |
|---|---|---|---|
| Флеш-память NOR (серия 25) | SPI, Dual и Quad SPI | страница до 256 байт, только после стирания сектора 4 КБ | прошивки, шрифты, графика, звук, журналы |
| EEPROM | I²C, SPI | отдельными байтами и страницами, без отдельной команды стирания | настройки и калибровки |
| FRAM | I²C (FM24CL16B) | на скорости шины, без паузы; у FM24CL16B ресурс 1014 циклов | счётчики, журналы, данные, которые часто меняются и должны пережить выключение |
| SRAM | SPI, SDI, SQI (23LC1024) | на скорости шины, без ограничения циклов; данные теряются без питания | буферы кадра, звука, пакетов |
Главное различие — как память перезаписывается. У флеш-памяти программирование только сбрасывает биты в 0, а вернуть их в 1 может только стирание целого сектора, которое у W25Q128JV длится в среднем 45 мс, а в худшем случае до 400 мс. Поэтому флеш-память хороша для больших объёмов, которые пишут редко, и неудобна для данных, которые меняются по одному байту. Подробно о командах, выводах и таймингах — в статьях о SPI-флеш-памяти и EEPROM с шиной I²C, а также в карточках FRAM FM24CL16B, которая пишет без задержки и почти не изнашивается, и SPI SRAM 23LC1024 на 128 Кбайт.
Подключение
Флеш-память и EEPROM с шиной SPI подключаются к тем же линиям SCK, MOSI и MISO, что и другие устройства SPI, со своей линией выбора /CS — см. интерфейс SPI. Микросхемы с шиной I²C занимают две линии и отличаются адресом на шине — см. интерфейс I²C. Диапазон питания у каждой микросхемы свой: W25Q128JV и GD25Q128E работают от 2,7 до 3,6 В, поэтому с микроконтроллером на 5 В их соединяют через согласование уровней.
Готовятся к публикации
DataFlash AT45 · Карты SD и microSD
Частые вопросы
Чем флеш-память отличается от EEPROM?
Способом стирания. Флеш-память SPI программирует от 1 до 256 байт, но только в стёртые ячейки, а стирает минимум сектор 4 КБ: чтобы изменить один байт, сектор читают, стирают и записывают заново. EEPROM перезаписывает отдельные байты без отдельной команды стирания. Поэтому большие объёмы, которые меняются редко, — прошивки, шрифты, журналы — хранят во флеш-памяти, а небольшие настройки удобнее держать в EEPROM.
Сколько раз можно перезаписать SPI-флеш?
У W25Q128JV и GD25Q128E — не меньше 100 000 циклов стирания и программирования каждого сектора, данные хранятся 20 лет. Если программа часто пишет в одно место, например счётчик, ресурс сектора кончится быстро: такие данные разносят по разным секторам или хранят в памяти другого типа.
Смотрите также
- FM24CL16B (FRAM)FRAM 2 Кбайта по I²C: выводы, адрес 0x50–0x57, запись без задержки, 10¹⁴ циклов
- 23LC1024 и 23A1024SPI SRAM 128 Кбайт: выводы, команды, режимы байта и потока, SDI и SQI до 20 МГц
- КомпонентыВиды компонентов, даташиты, маркировка, подбор замены
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- Кадр SPIДиаграмма режимов 0–3, время передачи, предельная частота