Šajā rakstā mēs aplūkosim, kā rakstīt un lasīt no zibatmiņas, izmantojot Arduino, kā piemēru izmantojot 25L8005 mikroshēmu.
Nepieciešams
- - zibatmiņas mikroshēma ar SPI atbalstu;
- - adapteris atmiņai vai panelis ar nulles pastiprinājumu (ZIF panelis);
- - Arduino;
- - dators;
- - savienojošie vadi.
Instrukcijas
1. solis
Pirmkārt, mums tas ir jāveido tā, lai mēs varētu viegli izveidot savienojumu ar mikroshēmu. Lai to izdarītu, varat izmantot vai nu īpašu adapteri, kuram jums ir jālodē mikroshēma, vai (kas ir vēlams) izmantot nulles pastiprināšanas paneli (tā saukto ZIF paneli).
2. solis
Tagad saliksim elektrisko shēmu zibatmiņas mikroshēmas savienošanai ar Arduino. Mēs izmantosim SPI interfeisu atmiņas programmēšanai, tāpēc mēs izveidosim savienojumu ar standarta tapām:
- CS - digitālā tapa 10, - MOSI - digitālā tapa 11, - MISO - digitālā tapa 12, - SCK - 13. digitālā tapa.
3. solis
Pirms datu ierakstīšanas atmiņā ir jāizdzēš sektors vai lapa, uz kuru mēs rakstīsim. Ja nav daudz rakstāmo datu (mūsu apmācības piemērā tie būs tikai 16 baiti), tad pietiek ar 1 sektora izdzēšanu. No mikroshēmas dokumentācijas redzam, ka dzēšanas secība ir šāda: iestatiet rakstīšanas atļauju (1 baits), nosūtiet izdzēšanas komandu (1 baits) un adresi (3 baiti), iestatiet rakstīšanas aizliegumu (1 baits). Tieši to dara iepriekšminētā skice. Ielādēsim to Arduino. Pēc skices pabeigšanas zibatmiņas disks ir gatavs ierakstīšanai.
4. solis
Tagad uzrakstīsim datus. Kā piemēru ņemsim nelielu 16 baitu masīvu. Kā redzat no dokumentācijas, vispirms ir jāiestata rakstīšanas atļauja (1 baits), pēc tam jānosūta rakstīšanas komanda (1 baits), sākuma adrese (3 baiti) un dati (mūsu piemērā - 16 baiti), plkst. beigās iestatīts rakstīšanas aizliegums (1 baits).
Augšupielādējiet skici vietnē Arduino. Pēc šīs skices izpildīšanas mūsu testa masīvs bija jāieraksta zibatmiņā. Pārbaudīsim, vai tas tā ir.
5. solis
Uzrakstīsim skici, lai nolasītu 16 baitus no zibatmiņas. Ielādēsim to Arduino un atvērsim seriālā porta monitoru. Monitorā, kā paredzēts, mūsu masīvs, kas nolasīts no atmiņas, izmantojot Arduino, tiks parādīts 1 reizi sekundē.