Problema con SD su Mega 2560

Buonasera a tutti.
Come scritto nel titolo non riesco a far funzionare la SD montata sul retro del display.
Ho controllato i collegamenti:

MISO : pin 50
MOSI : pin 51
SCK : pin 52
CS : pin 53

queste le righe di programma :

#include <SD.h>

const int chipSelect = 4;

void setup()
{
 Serial.begin(9600);
 pinMode(53, OUTPUT); 
 digitalWrite(53,HIGH);
  
 if (!SD.begin(chipSelect)) {Serial.println("Non va");}
 
 }
 
 void loop()
 {
 while(1);
 }

fatto ricerche sia sul web che nel forum ma non ho trovato soluzione .... continua a darmi errore.
Ho provato a cambiare il chipSelect ma niente.
La maggior parte dei pin sono occupati dai collegamenti del display ..... sul pin 4 del Mega è collegato il DIN del display.
Ho un dubbio .... la SD è formattata FAT ed è da 1Gb ..... potrebbe essere questo il problema ( da qualche parte ho letto 2Gb ) o sto sbagliando altro ?

Grazie in anticipo.

sul retro di quale display? che shield?

se il CS è 53, perchè dichiari chipSelect = 4??? (ah sì, CS = ChipSelect)

Ciao lesto.
Questo è il display

Veramente ho provato a mettere chipSelect= 53 ..... o 10 ..... 0 5 ..... insomma quasi tutti i pin :slight_smile: ma nessun risultato. :frowning:
Grazie per la risposta velocissima :slight_smile:

Non è che puoi mettere pin a caso... :astonished:
Devi impostare nello sketch il pin che è fisicamente collegato al pin CS dello shield... :roll_eyes:

Guardando il prodotto, vedo questo:

Pin 15: LCD_CS
...
Pin 24: SD_CS
...
Pin 39: TouchP _CS

Quindi il CS dell'LCD è il 15, quello della SD è il 24, il CS del touch è il 39.

PS:
vedo che c'è un pacchetto con la libreria e degli esempi:
http://www.henningkarlsen.com/electronics/library.php?id=52

Hai provato a lanciare un esempio? Ti funziona?

Si ho provato vari esempi ... il touch funziona .... altri no.
Provato anche esempi dell'Arduino con lo stesso risultato.
Il pin 24 è collegato al pin 53 del Mega e ho provato ma nessun risultato.
La capacità dell'SD potrebbe influire ?

Potrebbe influire il filesystem usato, con la libreria di serie puoi leggere solo FAT16 e FAT32. Supporta SD e SDHC, e nomi in formato vecchio DOS (8.3, ossia 8 caratteri per il nome e 3 per l'estensione). A parte questo, alcuni utenti hanno avuto problemi con varie schede, quindi se una non ti viene vista prova con una marca diversa.

Il nome del file è ok.
Ho provato prima con una SD da 16 mega e poi con una da 1Gb formattate di nuovo con FAT.
Proverò a prenderne un'altra.
Avevo il dubbio sulla capacità dell'SD perchè sul sito UTFT parla di 2Gb

Se formatti FAT16 il limite è infatti 2GB. Se formatti FAT32 no.

Allora provo a comprarne una da 2Gb e riprovo ..... sperando :slight_smile:
Intanto mi sono tolto il dubbio dei collegamenti.
Per ora molte grazie a tutti.
Buonanotte.

veramente il punto è che le SD non devono essere da PIU' di 2 o 4 GB se non erro, se no manca l'interfaccia SPI che è una interfaccia "secondaria", non è il vero protocollo delle SD, ed è tenuta per retrocompatibilità.

quindi nessuna necessità di schedina nuova in teoria

Il limite dei 2GB è per le schede SD. Le SDHC mi pare siano supportate fino a 32GB.

Buongiorno.
Ho trovato in un cassetto una SD da 4Gb, formattata FAT32 e provata ..... niente :frowning:
Vi allego lo sketch intero per vedere se sbaglio qlc.

#include <UTFT.h>
#include <SPI.h>
#include <Wire.h>
#include <SD.h>

#define RS 38
#define WR 39
#define CS 40
#define RST 41

UTFT myGLCD(ILI9325C,RS,WR,CS,RST); 

int SD_CS=53;

void setup()
 {
    Wire.begin();
    Serial.begin(9600); 
    pinMode(SD_CS,OUTPUT);  
    digitalWrite(SD_CS,HIGH);  

  if (SD.begin(SD_CS))
    {Serial.print("Trovata");}
  else {Serial.print("Non trovata");}
  }


void loop ()
{ 
  while(1);
  
}

Grazie.

Come detto, se è una SD classica, la lib di serie dovrebbe vederla solo fino a 2GB. Crea sulla scheda una partizione di 2 GB e riprova.

Ho fatto queste operazioni.
Formattato FAT32
Creata partizione primaria FAT32 di 2Gb
Provato lo sketch ....... ma nulla di nulla ...... unica cosa ci mette meno a dirmi che non la trova. :~
Leo ... pensi debbo buttare tutto ?

Cambia schedina, provane una di un'altra marca. Se anche questa non va, allora comincia a dubitare anche dello shield..

Ne ho una da 1Gb che ho già provato e non và, semmai provo a prenderne un'altra da 4Gb ( anche perchè da meno non si trovano più ) e riprovo.
Il problema è che lo slot per la SD è montato dietro al display, che funziona.
Nel caso valuterò di prendere una shield a parte anche se non so se poi volendo caricare delle immagini mi complico ancora di più la vita.
Intanto molte grazie .... ma sicuramente ci risentiremo .... non è mica finita qui. :smiley: :smiley:
Ciao.

pinciorillo:
non è mica finita qui. :smiley: :smiley:

+1