E’ la prima volta che faccio delle prove con queste schede
e subito ho dei problemi.
Ho utilizzato il codice qui sotto e non sono riuscito a superare
l’inizializzazione,
Sempre “Initialization failed!”.
Allego lo schema che ho utilizzato fatto con risorse che ho
trovato in rete.
La scheda è una mini di 2GB.
Io avrò pubblicato almeno 8 volte lo sketch funzionante, la libreria SD.h mi ha sempre dato problemi, per il pin avendo sd sulla ethernet è il 4, però come sempre ci vuole la sfera, non si specifica se è una ethernet shield + SD o una shield solo SD ....
pablos:
Io avrò pubblicato almeno 8 volte lo sketch funzionante, la libreria SD.h mi ha sempre dato problemi, per il pin avendo sd sulla ethernet è il 4, però come sempre ci vuole la sfera, non si specifica se è una ethernet shield + SD o una shield solo SD ....
@pablos
Non ho la ethernet shield, ho acquistato un socket per miniSD
e come si vede dallo schema l'ho interfacciata con un
HCF4050B per livellare i segnali a 3v3.
Il CS della schedina l'ho collegato al pin 10.
Ho trovato molti esempi in rete ma di chiari non molto,
poi ho trovato quello che ho postato perchè assomiglia
alla schedina che ho che è una SanDisk 2GB.
Sulla schedina ho messo un file "example.txt" con alcuni numeri
sulle prime righe.
Credo però che il problema sia ancora quello di rilevare
la presenza della scheda prima ancora di essere in grado
di leggerne il contenuto.
(ragazzi ma se guardate il pdf vedrete che non utilizza uno shield ma ha fatto i collegamenti "volanti")
se hai seguito lo schema che hai postato, il CS va correttamente impostato a 10 (è quello indicato come "SS").
lo schema mi pare corretto, c'è anche il chip che adatta la tensione (5v -> 3.3V)... come hai formattato la SD? Hai controllato che il PIN 4 sia correttamente a 3.3V? E l'integrato 4050 è alimentato a 3.3V? Verifica che 3.3V dovresti leggerli anche sul pin 2 della SD, tranne (ma non te ne dovresti accorgere se non hai un oscilloscopio) quando viene messo a low per inizializzare la scheda...
// initialize the SD card
pinMode(10, OUTPUT); // set the SS pin as an output (necessary!)
digitalWrite(10, HIGH);
card.init(SPI_FULL_SPEED, 4);
volume.init(&card);
root.openRoot(&volume);
void log_write()
{
//scrittura su file txt sd … eventi
file.open(&root, “datalog.txt”, O_APPEND | O_WRITE);// il file deve già esistere, non lo crea questa riga
file.println(log_riga); // ovviamente log_riga è una String
file.close();
}
(ragazzi ma se guardate il pdf vedrete che non utilizza uno shield ma ha fatto i collegamenti "volanti")
se hai seguito lo schema che hai postato, il CS va correttamente impostato a 10 (è quello indicato come "SS").
lo schema mi pare corretto, c'è anche il chip che adatta la tensione (5v -> 3.3V)... come hai formattato la SD? Hai controllato che il PIN 4 sia correttamente a 3.3V? E l'integrato 4050 è alimentato a 3.3V? Verifica che 3.3V dovresti leggerli anche sul pin 2 della SD, tranne (ma non te ne dovresti accorgere se non hai un oscilloscopio) quando viene messo a low per inizializzare la scheda...
1) Il CS lo collego al pin 10 di arduino.
2) Ma la SD va formattata? Non l'ho fatto.
Però riesco a leggerla e scriverla tramite il computer.
Utilizzo Linux ubuntu.
Se deve essere formattata come? FAT?
3) Sul pin 4 della scheda ci sono 3v3 creati con IC1.
4) Sul pin 2 ho provato con e senza resistenza di pull-up
N.B. Anche dopo le prove fatte riesco a leggere e scrivere
sulla SD tramite il computer, quindi la scheda è ancora OK.
Utilizzo i microcontrollori da un po di tempo (PIC).
Da qualche mese utilizzo Arduino UNO R3 e ancora
è la prima volta che provo le SD.
@pablos
Non ho ancora provato il tuo suggerimento perchè non ho la Ethernet,
però cerco le librerie che hai utilizzato e proverò.
Ma servono tutte queste?
carletto:
però cerco le librerie che hai utilizzato e proverò.
Ma servono tutte queste?
Hai un Arduino UNO Rev.3 ( cosi e' scritto piu' sopra )
La libreria SD.h dovrebbe avere tutto quello che serve
Almeno per far funzionare gli esempi sicuramente
<< lucadentella hai a disposizione un oscilloscopio
Ho un oscilloscopio molto vecchio 1977, comunque
vedo il clock (SCLK) abbastanza bene mentre
MOSI e MISO non sono ben chiari, ripeto il mio oscilloscopio
è molto vecchio tra l’altro ha un sincronismo che non
mi permette di vedere segnali molto brevi.