В тази статия ще разгледаме как да пишем и четем от флаш памет, като използваме Arduino, като използваме микросхемата 25L8005 като пример.
Необходимо
- - чип за флаш памет с поддръжка на 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 и отворим монитора на серийния порт. В монитора, както се очакваше, нашият масив, прочетен от паметта с помощта на Arduino, ще се показва 1 път в секунда.