Микросхемы памяти
Когда встроенной памяти микроконтроллера не хватает, к нему подключают внешнюю: флеш-память SPI для прошивок, шрифтов и журналов, EEPROM для настроек. Здесь — чем эти микросхемы различаются и статьи о каждом типе с командами и таймингами по даташитам.
Внешняя память нужна, когда встроенной флеш-памяти и ОЗУ микроконтроллера не хватает или данные должны пережить смену прошивки: изображения и шрифты для дисплея, звук, журнал измерений, настройки устройства. Почти все такие микросхемы подключаются по последовательной шине — SPI или I²C — и занимают от 4 до 8 выводов микроконтроллера.
Что выбрать
| Тип | Шина | Запись | Для чего |
|---|---|---|---|
| Флеш-память NOR (серия 25) | SPI, Dual и Quad SPI | страница до 256 байт, только после стирания сектора 4 КБ | прошивки, шрифты, графика, звук, журналы |
| EEPROM | I²C, SPI | отдельными байтами и страницами, без отдельной команды стирания | настройки и калибровки |
Главное различие — как память перезаписывается. У флеш-памяти программирование только сбрасывает биты в 0, а вернуть их в 1 может только стирание целого сектора, которое у W25Q128JV длится в среднем 45 мс, а в худшем случае до 400 мс. Поэтому флеш-память хороша для больших объёмов, которые пишут редко, и неудобна для данных, которые меняются по одному байту. Подробно о командах, выводах и таймингах — в статьях о SPI-флеш-памяти и EEPROM с шиной I²C.
Подключение
Флеш-память и EEPROM с шиной SPI подключаются к тем же линиям SCK, MOSI и MISO, что и другие устройства SPI, со своей линией выбора /CS — см. интерфейс SPI. Микросхемы с шиной I²C занимают две линии и отличаются адресом на шине — см. интерфейс I²C. Диапазон питания у каждой микросхемы свой: W25Q128JV и GD25Q128E работают от 2,7 до 3,6 В, поэтому с микроконтроллером на 5 В их соединяют через согласование уровней.
Готовятся к публикации
FRAM · DataFlash AT45 · Карты SD и microSD
Частые вопросы
Чем флеш-память отличается от EEPROM?
Способом стирания. Флеш-память SPI программирует от 1 до 256 байт, но только в стёртые ячейки, а стирает минимум сектор 4 КБ: чтобы изменить один байт, сектор читают, стирают и записывают заново. EEPROM перезаписывает отдельные байты без отдельной команды стирания. Поэтому большие объёмы, которые меняются редко, — прошивки, шрифты, журналы — хранят во флеш-памяти, а небольшие настройки удобнее держать в EEPROM.
Сколько раз можно перезаписать SPI-флеш?
У W25Q128JV и GD25Q128E — не меньше 100 000 циклов стирания и программирования каждого сектора, данные хранятся 20 лет. Если программа часто пишет в одно место, например счётчик, ресурс сектора кончится быстро: такие данные разносят по разным секторам или хранят в памяти другого типа.