Вам понадобится
  • - микросхема flash-памяти с поддержкой интерфейса SPI;
  • - переходник для памяти или панель с нулевым усилением (ZIF-панель);
  • - Arduino;
  • - компьютер;
  • - соединительные провода.
Инструкция
1
Сначала нам нужно сделать так, чтобы мы могли с лёгкостью подключиться к микросхеме. Для этого можно воспользоваться либо специальным переходником, к которому придётся припаять микросхему, либо (что предпочтительнее) использовать панель с нулевым усилением (т.н. панель ZIF).
2
Теперь соберём электрическую схему подключения микросхемы флеш-памяти к Arduino. Мы будем использовать для программирования памяти интерфейс SPI, поэтому подключимся к стандартным выводам:
- CS - цифровой пин 10,
- MOSI - цифровой пин 11,
- MISO - цифровой пин 12,
- SCK - цифровой пин 13.
3
Перед тем как записывать данные в память, необходимо стереть тот сектор или страницу, в который мы собираемся записывать. Если записываемых данных немного (в нашем учебном примере это будут всего 16 байт), то достаточно стереть 1 сектор. Из документации на микросхему мы видим, что последовательность стирания такая: выставить разрешение на запись (1 байт), послать команду на стирание (1 байт) и адрес (3 байта), выставить запрет записи (1 байт). Именно это и делает приведённый скетч. Загрузим его в Arduino. После того как скетч отработал, флешка готова к записи.
4
Теперь запишем данные. Для примера возьмём небольшой массив из 16-ти байтов. Как видно из документации, сначала нужно выставить разрешение на запись (1 байт), затем послать команду на запись (1 байт), начальный адрес (3 байта) и данные ( в нашем примере 16 байт), в конце выставить запрет записи (1 байт).

Загрузим скетч в Arduino. После выполнения данного скетча во флеш-память должен был записаться наш тестовый массив. Давайте проверим, так ли это.
5
Напишем скетч для чтения 16-ти байт из флеш-памяти. Загрузим его в Arduino и откроем монитор последовательных портов. В мониторе, как и ожидалось, 1 раз в секунду будет выводиться наш массив, считанный из памяти с помощью Arduino.