Problème bus SPI - LoRa & Module SD

Bonjours, je voudrais utiliser un module SD ainsi qu'un LoRa via bus SPI mais je rencontre des difficultés.

Tout d'abord voici mon programme qui me sert seulement à initialiser mes composants ainsi que mon schéma de câblage :

#include <SD.h>
#include <LoRa.h> 

const int SDcs = 5; // Broche cs de la carte SD

void setup() {
 Serial.begin(9600);

  if (!LoRa.begin(433E6)) {
    Serial.println("Initialisation LoRa échouée.");
    while (1);
  }
  
Serial.println("Init LoRa réussie");
  

  if (!SD.begin(SDcs)) {
    Serial.println("Echec de l'initialisation ");
   while (true);
  }
  
  Serial.println(" Init SD réussie");
}

void loop() {
  // put your main code here, to run repeatedly:

}

Maintenant je vais vous expliquer ce que je rencontre.

Lorsque je lance le programme avec mon câblage ci-dessus, le Lora échoue (et donc bloque mon programme), mais lorsque j'initialise en débranchant la pin SCK du module SD mon LoRa s'initialise correctement (pas le SD évidemment).

Autre test, lorsque je fais un programme avec uniquement mon module SD j'arrive de temps en temps à l'initialiser (je ne comprends pas pourquoi des fois cela échoue).

Et enfin mon module LoRa tout seul s'initialise sans aucun problème.

J'ai vu sur d'autres topics qu' un certain type de module SD peut créer des interférence au niveau du bus SPI, je ne sais pas si mes modules SD font partie de ceux qui posent problème. (J'ai 2 modules SD différents)

Un microSD :

Et un SD normal :

ME126_01

Si vous avez des pistes que ce soit au niveau de mon programme, du câblage ou des composants je suis preneur, merci.

Bonjour

Ta carte SD est visiblement d'un genre qui ne sait pas cohabiter !
il a été souvent question sur ce forum des cartes SD Catalex qui ont un défaut de conception empêchant le fonctionnement d'autres périphériques sur le bus SDPI en monopolisant en permanence la ligne MISO

En faisant une recherche sur ce forum francophone avec le mot clef 'Catalex' on doit pouvoir trouver des échanges ou une petite modification matérielle de la carte SD est proposée afin de libérer MISO quand elle n'est pas selectionnée. Ces cartes auraient du être retirées du marché depuis plusieurs années.

Autre solution : prendre un 'breakout SD 'd'Adafruit, sans défaut de conception

D'accord je vais donc prendre le SD Adafruit merci

J'ai regardé les instructions et j'ai des questions.

Les instructions sont : * Pour l'utiliser avec un Arduino, connectez GND à la terre, 5 V à 5 V, CLK à la broche 13, DO à la broche 12, DI à la broche 11 et CS à la broche 10.

Du coup le DO correspond MISO et DI au MOSI c'est bien ca ?

Et il raccorde le chipSelect à la broche 10, mais ca n'a pas d'importance il me semble, sachant que le chipSelect de mon LoRa est déjà raccordé à la broche 10. Il me suffira de déclarer le SC du module SD comme je fais déjà dans mon programme c'est ca ?

Et pour finir cette microSD est compatible avec le module SD ?

Si le CS du module LORA est la pin 10 il faut en choisir une autre pour la SD. C'est le principe du SPI.