shield SD sur arduino due

Bonsoir,

je possède une carte arduino due et un shield sd :

j’ai deja utilisé le shield avec une carte arduino uno et il fonctionne bien.

Je sais que sur la due il faut utiliser les broches ICSP, j’ai cependant pas réussi a utiliser le shield avec elle.

J’utilise une bibliotheque sd que j’ai trouvé sur ce topic : http://forum.arduino.cc/index.php/topic,135439.msg1018776.html#msg1018776

et la bibliothèque SPI d’origine que j’utilisais aussi pour l’arduino uno.

Pour le brochage je suis pas certain, avec la uno les pins pour le MISO, MOSI et SCK était 11, 12 et 13. Du coup je suppose que je dois relier les broches ICSP de la due au pins 11 12 et 13 du shield?

Et j’utilise la pin 10 pour le SS.

j’utilise ce code pour tester:

#include <SdFat.h>
#include <SPI.h>

SdFat sd;

void setup() 
{
  /* Initialisation du port série*/
  Serial.begin(9600);
  /* Initialisation du port SPI */
  pinMode(10, OUTPUT);

  if (!sd.begin(10, SPI_FULL_SPEED))
  {
    Serial.println("FAIL");
    for(;;);
  }
  else
  {
    Serial.println("SUCCES CONNEXION");
  }
}

merci

AMHA : --> Incompatibilité de niveaux électriques

La carte UNO fonctionne en 5V et délivre des signaux 5V
La carte DUE fonctionne en 3,3V et délivre des signaux 3,3V
La carte mémoire SD fonctionne en 3,3V et ne doit pas recevoir de signaux 5V

Le "shield" est présenté comme étant destiné à la carte UNO (et à toutes les cartes équipées de micro d'architecture avr) et non pas pour une DUE.

Caractéristiques :
Interface de carte SD fonctionne avec FAT16 ou FAT32 formaté cartes.
3.3 V circuit de niveau Shifter empêche des dommages à votre carte SD.
Horloge temps réel (RTC) maintient le temps va, même si l'Arduino est débranché.


Onboard régulateur de 3.3 V est à la fois une tension de référence fiable et aussi fiable gère les cartes SD qui nécessitent beaucoup d'énergie pour fonctionner.
Fonctionne avec Arduino UNO, duemilanove, diecimila, Leonardo ou ADK/Mega R3 ou supérieur.
ADK/Mega R2 ou moins ne sont pas pris en charge.

La très probable cause du non fonctionnement est dans le translateur de niveau 5V vers 3,3V qui affaiblissant les niveaux 3,3V de la DUE les rend trop faible pour la carte SD.

Sur Ebay il existe des modules avec adaptation de niveau et d'autres qui n'ont aucune adaptation de niveau, plus petits et reconnaissables parce qu'il n'ont aucun composant soudé.

Remarque : l'horloge est un DS1307 qui est pourrie par rapport à un DS3231 du même fournisseur et qui vaut le même prix (1€ -> Ebay)
Le DS1307 est une antiquité, il doit rester des gros stocks à écouler.

Je ne connais pas de shield SD spécifique à la DUE, mais ce type de lecteur de carte SD devrait faire l’affaire:

Un code basique pour lire/écrire sur une SD:

#include<SPI.h>   //sd cARD USES spi bUS
#include<SD.h>    //contains library functions

#if defined (ARDUINO_ARCH_SAM)
#define ARDUINO_DUE
#endif

#define CSPIN 4   //slecting DPin-4 does not require to set direction
File myFile;      //file pointer variavle declaration

void setup()
{
  Serial.begin(9600);
  SD.begin(CSPIN);        //SD Card is initialized
  SD.remove("Test1.txt"); //remove any existing file with this name
  myFile = SD.open("Test1.txt", FILE_WRITE);  //file created and opened for writing

  if (myFile)       //file has really been opened
  {
    myFile.println(4000);
    myFile.println(200);
    myFile.println(3000);
    myFile.close();

  }
  myFile = SD.open("Test1.txt", FILE_READ);  //file created and opened for writing

  if (myFile)       //file has really been opened
  {
    while (myFile.available())
    {
      Serial.print((char)myFile.read());
    }
    myFile.close();
  }
}

void loop()
{

}

Un tutoriel pour lire/écrire plus rapidement sur une carte SD:

Salut, hum d'accord donc c'est mort avec celui la.

Le post #4 du topic dont j'ai mit le lien indique qu'on peut relier directement la carte sd aux bus spi de la carte.

Si je fais ça, au niveau du code il y a pas de changement ? Et la sd doit recevoir du 3,3v ou du 5v? Parce-que la broches vcc SPI délivre du 5v

Merci à vous

j’ai fait comme ca : https://ibb.co/hx56GT

mais ca ne fonctionne pas encore, je ne sais pas du tout pourquoi