Ciao a tutti.
Sono da poco entrato nel forum e non sono ancora un esperto utilizzatore di Arduino.
Tuttavia devo lavorare con una board Arduino Mega ADK per un prototipo, in parte gia' realizzato.
Al momento, chi si occupa del prototipo, dice di aver usato la ADK in modo tale che con l'utilizzo
della porta USB aggiuntiva (quella per collegarci eventualmente dispositivi Android) e' possibile
accedere ai dati di una memory card SD che viene gestita dal seguente shield:
Ora ho letto che le memorie SD (quindi inteso le relative shield boards) di fatto vengono interfacciate, si comunica
con esse mediante i segnali per SPI, nativamente disponibile sulla scheda Mega ADK.
Pero', per quanto ho letto fino ad ora e per quanto posso aver visto riguardo le funzioni messe a disposizione
dalla libreria per la gestione della SD (funzione per scrittura FAT16), NON mi pare possibile che dalla
porta USB si possa accedere in lettura / scrittura alla memoria SD.
Mi sbaglio ? Oppure esiste, prorgrammandolo opportunamente, un modo che faccia vedere via USB la memoria SD ?
No; non é possibile leggere direttamente la SD attraverso la USB HOST.
Puoi comunque programmare un trasferiemnto dati dalla SD alla USB ma é lentissimo. (teoreticamente 10kByte al secondo).
Ciao Uwe
Ma "programmare trasferimento dati" cosa si intende ?
Mi spiego meglio: posso trasferire dati da USB --> a SD e anche viceversa ?
Se si trasferiscono i dati, ad esempio da USB a SD, non essendo leggibile la SD come
un "hard disk" (Mass Storage per intenderci) i dati sulla SD dove vanno ? Nella directory
principale (supponendo sia naturalmente formattata FAT16) ?
alfmyk:
Mi spiego meglio: posso trasferire dati da USB --> a SD e anche viceversa ?
Con la ADK hai due modi per accedere alla SD da USB, quello più semplice è passare attraverso la normale connessione con emulazione seriale, devi scrivere un programma che legge/scrive la SD in risposta a comandi che arrivano dal pc, cosa facile da implementare però la comunicazione è molto lenta, al massimo 10 kByte/sec come ti ha già detto Uwe.
La seconda soluzione è implementare sul 16u2 della Mega una emulazione mass storage, che va sempre supportata con apposito software sulla mega per farlo dialogare con la SD, in questo caso il pc vede la SD come un normale driver usb e la comunicazione è più veloce, al massimo puoi arrivare a 200 kByte/sec, per contro non puoi più programmare l'ADK da USB, devi usare una interfaccia USB-UART esterna.
Pero', se non sbaglio, mi pare tu ti riferissi nella tua risposta alla USB standard, quella
che si usa normalmente collegando il PC ad Arduino. Quella che di fatto diventa per il PC
"vista" come una porta seriale COM, normalmente.
A me interessava invece se e cosa si puo' fare, a livello di lettura / scrittura su SD, mediante la
porta Host USB che ha la ADK.
Spero di aver capito bene, nel senso che siccome tu ti riferivi alla programmazione del 16U2 allora
ho pensato, a maggior ragione, che fosse la USB standard per collegamento PC. In quanto USB Host
e gestita tramite un integrato della Maxim che se ricordo bene e' il MAX3421E.
In sostanza mi pare di comprendere che, come immaginavo, si possa fare molto poco con USB Host
(sulla ADK) per poter "vedere" (scrivere / leggere, ecc.) la SD, vero ?
alfmyk:
In sostanza mi pare di comprendere che, come immaginavo, si possa fare molto poco con USB Host
(sulla ADK) per poter "vedere" (scrivere / leggere, ecc.) la SD, vero ?
La USB Host è per l'appunto una porta HOST, ovvero non la puoi collegare ad un PC visto che pure lui dispone di porte HOST, è fatta per collegarci USB di tipo device, p.e. una tastiera, un mouse, una memory key, etc.