Selles artiklis uurime, kuidas kirjutada välkmällu ja lugeda seda Arduino abil, kasutades näiteks mikrolülitust 25L8005.
Vajalik
- - SPI toega välkmälukiip;
- - mäluadapter või nulltugevusega paneel (ZIF-paneel);
- - Arduino;
- - arvuti;
- - juhtmete ühendamine.
Juhised
Samm 1
Esiteks peame selle tegema nii, et saaksime hõlpsalt mikrolülitusega ühenduda. Selleks võite kasutada kas spetsiaalset adapterit, millele peate mikrolülituse jootma, või (mis on eelistatavam) kasutada null-võimendusega paneeli (nn ZIF-paneel).
2. samm
Nüüd paneme kokku elektriskeemi välkmälukiibi ühendamiseks Arduinoga. Me kasutame mälu programmeerimiseks SPI-liidest, nii et ühendame standardsete tihvtidega:
- CS - digitaalne tihvt 10, - MOSI - digitaalne tihvt 11, - MISO - digitaalne tihvt 12, - SCK - digitaalne tihvt 13.
3. samm
Enne andmete mällu kirjutamist on vaja kustutada sektor või leht, kuhu kirjutame. Kui kirjutada pole palju andmeid (meie õpetuse näites on see ainult 16 baiti), siis piisab 1 sektori kustutamisest. Mikrolülituse dokumentatsioonist näeme, et kustutamisjärjestus on järgmine: määrake kirjutamisõigus (1 bait), saatke kustutuskäsk (1 bait) ja aadress (3 baiti), määrake kirjutamiskeeld (1 bait). Täpselt seda teeb ülaltoodud visand. Laadime selle Arduinosse. Pärast visandi valmimist on välkmäluseade salvestamiseks valmis.
4. samm
Nüüd kirjutame andmed. Võtame näiteks väikese 16-baidise massiivi. Nagu näete dokumentatsioonist, peate kõigepealt määrama kirjutamisõiguse (1 baiti), seejärel saatma kirjutamiskäsku (1 baiti), algusaadressi (3 baiti) ja andmed (meie näites 16 baiti) aadressil lõpp määras kirjutamiskeelu (1 bait).
Laadige visand üles Arduinosse. Pärast selle visandi teostamist oleks pidanud meie testimassiiv kirjutama välkmällu. Kontrollime, kas see nii on.
5. samm
Kirjutame visandi, et lugeda välkmälust 16 baiti. Laadime selle Arduinosse ja avame jadapordimonitori. Monitoril kuvatakse ootuspäraselt 1 kord sekundis meie Arduino abil mälust loetud massiivi.