U ovom ćemo članku pogledati kako pisati i čitati iz fleš memorije koristeći Arduino koristeći primjer mikrocirkela 25L8005.
Potrebno
- - flash memorijski čip sa SPI podrškom;
- - adapter za memoriju ili ploču sa nultim pojačanjem (ZIF-ploča);
- - Arduino;
- - računar;
- - spojne žice.
Instrukcije
Korak 1
Prvo, moramo to napraviti tako da se lako povežemo s mikrovezom. Da biste to učinili, možete upotrijebiti ili specijalni adapter na koji morate lemiti mikrovezje ili (što je poželjnije) koristiti ploču s nula-pojačanjem (tzv. ZIF ploča).
Korak 2
Sad ćemo sastaviti električni dijagram za povezivanje flash memorijskog čipa na Arduino. Za programiranje memorije koristit ćemo SPI sučelje, pa ćemo se spojiti na standardne pinove:
- CS - digitalni pin 10, - MOSI - digitalni pin 11, - MISO - digitalni pin 12, - SCK - digitalni pin 13.
Korak 3
Prije upisivanja podataka u memoriju potrebno je izbrisati sektor ili stranicu na koju ćemo upisati. Ako nema mnogo podataka za pisanje (u našem primjeru tutorijala to će biti samo 16 bajtova), tada je dovoljno izbrisati 1 sektor. Iz dokumentacije za mikrovezje vidimo da je slijed brisanja sljedeći: postavite dozvolu za pisanje (1 bajt), pošaljite naredbu za brisanje (1 bajt) i adresu (3 bajta), postavite zabranu pisanja (1 bajt). Upravo to čini gornja skica. Učitajmo ga u Arduino. Nakon završetka skice, fleš disk je spreman za snimanje.
Korak 4
Sada napišimo podatke. Uzmimo za primjer mali niz od 16 bajtova. Kao što možete vidjeti iz dokumentacije, prvo morate postaviti dozvolu za pisanje (1 bajt), a zatim poslati naredbu za pisanje (1 bajt), početnu adresu (3 bajta) i podatke (u našem primjeru 16 bajtova) na kraj je postavio zabranu pisanja (1 bajt).
Prenesite skicu na Arduino. Nakon izvođenja ove skice, naš testni niz trebao je biti zapisan u flash memoriju. Provjerimo je li to tako.
Korak 5
Napišimo skicu za čitanje 16 bajtova iz flash memorije. Učitajmo ga u Arduino i otvorimo monitor serijskog porta. Na monitoru će se, kako se očekuje, naš niz, očitan iz memorije pomoću Arduina, prikazivati 1 put u sekundi.