Utilisation de 2 lecteurs SD

Bonjour à tous,

C'est dans le titre, j'aimerais utiliser deux lecteurs SD, seulement je me demande si c'est possible... Pour l'instant je n'ai pas réussi à faire fonctionner les 2 en même temps. J'utilise le lecteur SD du shield Ethernet et un Shield SD connecté à la pin 53 de la mega.

Qu'en dites vous?

Merci d'avance

Les lecteurs SD se commandent en SPI.
En SPI :

  1. Un seul composant peut être commandé à la fois
  2. Chaque composant doit avoir son ChipSelect personnel.

Salut,
les cartes SD communiquent en SPI donc oui, tu peux en avoir plusieurs branchées en même temps sur le bus, l'important est qu'elles aient chacune une broche slave select dédiée. Ça c'est pour utiliser alternativement l'une ou l'autre des deux cartes, mais si ton but est de les utiliser toutes les deux en même temps alors non, ce n'est pas possible.

Edit: arf, battu de 28 secondes :slight_smile:

J'ai essayé d'instancier deux objets de type SDClass pour bien les différencier. Les chipselect sont respectivement 4 pour le shield Ethernet SD et 53 pour le shield SD. Aucun résultat dans cette configuration.
D'après ce post SD card multiple initialization - Storage - Arduino Forum la lib SD ne supporte pas la communication pour deux lecteurs SD, il faudrait utiliser SdFatLib, que je n'arrive pas à utiliser avec codeblocks...

Quelqu'un aurait il une idée ?
Est ce possible déjà d'utiliser seulement la librairie SD pour gérer deux shiled SD?

Bonjour,

Comme tu l'as dit toi même il faut utiliser Sdfatlib directement.

C'est possible mais je tient à émettre un doute qu'en à la faisabilité logicielle de la chose.
A voir si deux instances de SdCard peuvent cohabiter sans nécessiter plus de RAM que la carte mega possède.
En conclusion : à tester :wink:

Si tu utilises Code::Blocks pour compiler tes codes tu doit savoir utiliser un makefile :wink:
Copie les fichiers de la librairie dans ton dossier de compilation et met à jour ton makefile.
Ou sinon pré-compile la librairie en un fichier .a et link le tout avec ton programme.