En aquest article, veurem com escriure i llegir des de la memòria flash mitjançant un Arduino amb el microcircuit 25L8005 com a exemple.
Necessari
- - xip de memòria flash amb suport SPI;
- - un adaptador per a memòria o un panell amb guany nul (panell ZIF);
- - Arduino;
- - ordinador;
- - cables de connexió.
Instruccions
Pas 1
En primer lloc, hem de fer-ho perquè puguem connectar-nos fàcilment al microcircuit. Per fer-ho, podeu utilitzar un adaptador especial al qual heu de soldar el microcircuit o bé (el que és preferible) utilitzar un panell de guany zero (l'anomenat panell ZIF).
Pas 2
Ara reunim l'esquema elèctric per connectar el xip de memòria flash a l'Arduino. Utilitzarem la interfície SPI per a la programació de memòria, de manera que ens connectarem als pins estàndard:
- CS - pin digital 10, - MOSI - pin digital 11, - MISO - pin digital 12, - SCK: pin digital 13.
Pas 3
Abans d’escriure dades a la memòria, cal esborrar el sector o la pàgina on escrivim. Si no hi ha moltes dades per escriure (al nostre exemple de tutorial només tindran 16 bytes), n’hi haurà prou amb esborrar 1 sector. A partir de la documentació del microcircuit, veiem que la seqüència d’esborrat és la següent: definiu el permís d’escriptura (1 byte), envieu l’ordre borrar (1 byte) i l’adreça (3 bytes), configureu la prohibició d’escriptura (1 byte). Això és exactament el que fa l'esbós anterior. Carregem-lo a Arduino. Un cop finalitzat l'esbós, la unitat flaix ja està a punt per gravar-la.
Pas 4
Ara anem a escriure les dades. Prenem com a exemple una petita matriu de 16 bytes. Com podeu veure a la documentació, primer heu d’establir el permís d’escriptura (1 byte) i, a continuació, enviar l’ordre d’escriptura (1 byte), l’adreça inicial (3 bytes) i les dades (en el nostre exemple, 16 bytes), a al final s'estableix la prohibició d'escriptura (1 byte).
Pengeu l'esbós a Arduino. Després d’executar aquest esbós, la nostra matriu de prova s’hauria d’haver escrit a la memòria flash. Comprovem si és així.
Pas 5
Escrivim un esbós per llegir 16 bytes de la memòria flash. Carregem-lo a Arduino i obrim el monitor del port sèrie. Al monitor, com era d’esperar, la nostra matriu, llegida de la memòria mitjançant Arduino, es mostrarà 1 vegada per segon.