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 https://www.futurashop.it/componenti-elettronici/optoelettronica/display-lcd-tft/modulo-display-touch-screen-28%E2%80%9D-e-slot-sd-card-2846-tftlcd28sd

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

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 :) 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. :D :D

+1