Arduino Pro Mini et micro SD

Bonsoir à tous,

J'ai réalise un logger sur un Arduino Nano avec sur une carte SD via un lecteur générique.
Aucun soucis, mais lorsque je porte cette réalisation sur un Arduino Pro Mini impossible d'accéder au lecteur SD.

Existe t il des préconisations ?

Par avance merci de votre aide
Bonne soirée

Vous programmez votre Pro Mini comme 5V 16MHz et pas 3.3V 8MHz ?

Merci de votre réponse.

J'ai étais vigilent sur ce point.

L'arduino Nano est alimenté en 5V. Le lecteur SD également.

L'arduino pro mini est un 5v 16Mhz alimenté lui aussi en 5v et le lecteur SD alimenté en 5V.

Je viens de tester et je n'ai aucun soucis (j'utilise la libraire SDFat qui est celle à utiliser, meilleure que la librairie SD standard)

Arduino Pro mini en 16MHz, 5V

je télécharge avec un adaptateur FTDI qui alimente aussi mon Pro Mini

j'alimente mon lecteur SD par une alimentation externe 5V et donc j'ai joint le GND de l'alimentation externe et le GND du pro mini (important!)

Donc:

Vcc de la carte SD sur 5V alimentation séparée
GND de la carte SD sur GND Alimentation séparée 5V
Pro mini GND --> GND Alimentation séparée 5V

Pro mini 10 --> Chip Select de la carte SD
Pro mini 11 --> MOSI de la carte SD
Pro mini 12 --> MISO de la carte SD
Pro mini 13 --> SCK de la carte SD

J'utilise ce bout de code qui me liste les fichiers présents sur la carte:

/*
  Listfiles

  This example shows how print out the files in a directory on a SD card

  The circuit:
   SD card attached to SPI bus as follows:
 ** MOSI - pin 11 on UNO
 ** MISO - pin 12 on UNO
 ** CLK  - pin 13 on UNO
 ** CS   - pin 10 on UNO

   SD card attached to SPI bus as follows:
 ** MOSI - pin 51 on MEGA
 ** MISO - pin 50 on MEGA
 ** CLK  - pin 52 on MEGA
 ** CS   - pin 53 on MEGA
 * 
 * POWER of course and GROUND needs to be joined
*/

#include <SPI.h>
#include "SdFat.h"               // https://github.com/greiman/SdFat

// SD card chip select pin.
const uint8_t SD_CHIP_SELECT = SS;

SdFat sd;

// fonction récursive
void afficherContenuRepertoire(FatFile* repertoire, byte tabulation)
{
  FatFile file;
  char nomDeFichier[20]; // prévoir au moins 13 charactères

  repertoire->rewind(); // on se met en début de répertoire

  while (file.openNext(repertoire, O_READ)) { // on parcourt le répertoire en cours

    if (!file.isHidden()) { // si ce n'est pas un élément caché on l'affiche

      file.getName(nomDeFichier, sizeof(nomDeFichier)); // on récupère le nom de fichier

      // on décalle l'affichage en fonction de la profondeur de répertoires
      for (uint8_t i = 0; i < tabulation; i++) Serial.print(F("\t"));

      //et on affiche le nom en cours
      Serial.print(nomDeFichier);

      // si c'est un répertoire, on appele récursivement la même fonctoin
      if (file.isDir()) {
        Serial.println(F("/")); // comme c'est un répertoire on met un / au bout du nom et on passe à la ligne
        afficherContenuRepertoire(&file, tabulation + 1); //on affiche le contenu de ce répertoire
      } else {
        // ce n'était pas un répertoire, on affiche la taille du fichier
        Serial.print("\t"); Serial.print (file.fileSize()); Serial.println(F(" octets"));
      }
    } // fin de si élément caché
    file.close();
  } // fin de while
}

//-------------------------------------------------------

void setup() {
  Serial.begin(115200);
  if (!sd.begin(SD_CHIP_SELECT, SPI_HALF_SPEED)) {
    Serial.println(F("erreur de begin\n"));
    return;
  }

  // on se met à la racine
  sd.chdir("/");

  // on afficher récurcivement depuis la racine
  afficherContenuRepertoire(sd.vwd(), 0);
}


//-------------------------------------------------------
void loop() {}

pour moi ça fonctionne sans soucis.... (avec un petit shield micro SD à moins d'un euro acheté en chine et une carte SD de 2Go formatée en FAT16)

avez vous vérifié la partie alimentation et surtout les GNDs?

Merci beaucoup pour ce test !!!

Oui le GND est bien relié à l'alimentation externe également.

Les PIN 10 11 12 13 sont cablées à l'identique...

Je vais tester avec votre code !

Cela fonctionne !!!
Je dispose d'un schéma PinOut du Pro Mini ou le MOSI et MISO sont inversé !!!

Un énorme merci pour cette précieuse aide

super!