V tomto článku se podíváme na to, jak zapisovat a číst z flash paměti pomocí Arduina pomocí mikroobvodu 25L8005 jako příklad.
Nezbytné
- - flash paměťový čip s podporou SPI;
- - adaptér pro paměť nebo panel s nulovým ziskem (panel ZIF);
- - Arduino;
- - počítač;
- - připojení vodičů.
Instrukce
Krok 1
Nejprve to musíme udělat, abychom se mohli snadno připojit k mikroobvodu. K tomu můžete použít buď speciální adaptér, ke kterému musíte pájet mikroobvod, nebo (což je vhodnější) použít panel s nulovým ziskem (takzvaný panel ZIF).
Krok 2
Nyní pojďme dohromady elektrické schéma pro připojení čipu flash paměti k Arduinu. Pro programování paměti budeme používat rozhraní SPI, takže se připojíme ke standardním pinům:
- CS - digitální pin 10, - MOSI - digitální pin 11, - MISO - digitální pin 12, - SCK - digitální pin 13.
Krok 3
Před zápisem dat do paměti je nutné vymazat sektor nebo stránku, do které budeme psát. Pokud není možné zapsat příliš mnoho dat (v našem příkladu tutoriálu to bude pouze 16 bajtů), stačí vymazat 1 sektor. Z dokumentace k mikroobvodu vidíme, že mazací sekvence je následující: nastavte oprávnění k zápisu (1 bajt), odešlete příkaz mazání (1 bajt) a adresu (3 bajty), nastavte zákaz zápisu (1 bajt). To je přesně to, co výše uvedená skica dělá. Načtěte to do Arduina. Po dokončení náčrtu je jednotka flash připravena k nahrávání.
Krok 4
Nyní zapíšeme data. Vezměme si jako příklad malé pole 16 bajtů. Jak vidíte z dokumentace, nejprve musíte nastavit oprávnění k zápisu (1 bajt), poté odeslat příkaz write (1 bajt), počáteční adresu (3 bajty) a data (v našem příkladu 16 bajtů), na konec nastavil zákaz zápisu (1 bajt).
Nahrajte náčrt do Arduina. Po provedení tohoto náčrtu by mělo být naše testovací pole zapsáno do flash paměti. Podívejme se, jestli je to tak.
Krok 5
Napíšeme náčrt, který přečte 16 bajtů z flash paměti. Načtěte jej do Arduina a otevřete monitor sériového portu. Na monitoru se podle očekávání zobrazí naše pole načtené z paměti pomocí Arduina 1krát za sekundu.