Wifishield: utilizzo del modulo wifi e sd in contemporanea

La shield  8190-WIFI_SHIELD di  Futura Elettronica mette a disposizione assime al modulo wifi una slot per MicroSD, proprio come le recenti ethernet shield (7300-SHIELDETHERNET). Così  come per la ethernet anche per la wifi bisogna prendere degli accorgimenti nell’utilizzare questi due in contemporanea dato che entrambe utilizzano la stessa linea di comunicazione ICPS. Per fare ciò, quindi, bisogna disabilitare la comunicazione sullo stesso bus nel momento in cui uno dei due deve trasferire qualcosa. Questa mutua esclusione viene data dal chip select il quale, lavorando in logica negativa per entrambe, mandato alto disabilita la comunicazione. Per la MicroSD si tratta del pin 4 mentre per il modulo wifi si tratta del pin 10 ( per l’arduno Mega è il pin 52 ). Si tratta di un’operazione relativamente semplice che consiste nell’inserire queste semplice istruzioni nel setup: pinMode(10, OUTPUT);         // Impostare il pin SS come output indispensabile)  digitalWrite(10, HIGH);                          // Disabilito il modulo wifi alla comunicazione

Gli esempi di libreria della SD card sono molto chiari e semplici da capire. Il suo utilizzo non è complesso. Per avvicinarci all’applicazione del datalogger fingiamo di leggere dei valori totalmente casuali da uno dei pin analogigi e scriviamo tale valore in un file all’interno della SD. Qui lo sketch per tale operazione. Ora la pubblicazione di questi dati in una ipotetica pagina web, implementando all’esempio il discorso precedentemente fatto sull’esclusione del modulo sarebbe fattibile ma ecco arrivare un problema piuttosto difficile da risolvere . La libreria WiServer.h della wifishield sviluppata da asynclabs, non prevedeva la lo slot per l’SD card e di conseguenza utilizza probabilmente dei pin essenziali, rendendo così l’utilizzo della SD impossibile. Ci basta includere la libreria perchè lo sketch non funzioni. Testandolo ulteriormente proviamo ad includere la Ethernet.h ( che lavora esattamente con la logica qui descritta ) e con questa nesssun problema. Si evince quindi che il problema deriva dalla libreria della wifishield, scritta senza un minimo di documentazione esterna e quindi difficile trovare il punto da correggere. Si è pensato di conseguenza di proseguire appoggiandosi ad altre memorie su schede esterne  che vedremo in futuro.

Daniele Ruffo

 

Lascia un commento