Problème NRF24L01 et lecteur SD

Bonjour, Je suis débutant dans le monde Arduino.

Voici plusieurs mois que j’essaye de faire fonctionner ensemble le module NRF24l01 et le lecteur de carte MicroSD. Ceci afin de compléter, mon projet « Monitoring installation chauffage », pour ajouter deux sondes de températures par transmission WiFi.

Avant d’adapter l’installation existante, je réalise des tests sur un banc d’essai composé de :

Côté émetteur
1 carte NANO
1 Sonde DS18B20
1 NRF24L01 + adaptateur d’alim YL-105
1 écran OLED (affichage de la t° de la sonde A)

Côté récepteur
1carte UNO
2 sondes DS18B20
1 bouton contact ON/OFF (relais)
1 Horloge DS3132
1 lecteur carte SD ( j’ai testé plusieurs modèles)
1 NRF24L01 + adaptateur d’alim YL-105
1 écran LCD 1620 (affichage de la date et heure + t° de la sonde A)

Voici le problème que je rencontre :

Module NRF et lecteur SD connecté :
o affichage sur écran récepteur de la t° sonde A = 0.00
o enregistrement sur SD, t° des sondes internes, ok
relais, Ok
T° sonde distante, « message non reçu »
CaD : erreur de transmission suivant le test
« (radio.available()) »

Module NRF connecté seul :
o affichage sur écran du récepteur de la t° = t° de l’émetteur , ok
o enregistrement sur SD, Rien, forcement la carte non connectée

En vérifiant sur la sortie série, toutes les données collectées sont correctes.
" date, heure, T° des 2 sondes du récepteur, excepté la t° de module NRF qui est égal à 0.00"

Après plusieurs essais , je me suis aperçu que le problème provenait du port MISO du BUS SPI.
Il y a un conflit quand la carte SD est connectée et plus précisément quand le port MISO (12) est connecté.

J’ai cherché sur le net, j’ai trouvé plusieurs discussions dans différents forums, mais cela ne m’a pas donné de solution pour remédier au problème rencontré.

En espérant que quelqu’un a la solution, cela me ferait plaisir de la recevoir.

Merci d’avance

Pour info
L’installation actuelle, qui fonctionne, est en filaire et est composée de :
1 Carte MEGA 2560
1 Horloge DS3231
1 Lecteur carte SD (CATALEX) { Enregistrement toutes les 5’ }
18 sondes DS18B20
5 relais (reprise de l’état de fonctionnement : circulateurs, chaudière et vanne 3 voies)

Bonjour @jnanoux

Après plusieurs essais , je me suis aperçu que le problème provenait du port MISO du BUS SPI.
Il y a un conflit quand la carte SD est connectée et plus précisément quand le port MISO (12) est connecté.

oui , tu a mis le doigt sur le coupable, le comportement anormal de la sortie Miso de ta carte Catalex

Les cartes SD Catalex , du moins certaines, sont connues pour leur grave défaut de conception : elles ne libèrent pas MISO quand elles ne sont pas activées, ce qui empêche donc le fonctionnement des autres esclaves présents sur le bus SPI

schéma :

la liaison entre la borne 13 de U1D et la masse est l'erreur de conception, ça laisse passer en permanence le signal D0 de la carte *SD > MISO
Il aurait fallu raccorder la borne 13 de U1D au signal CS ou CS_CARD pas à la masse.

(réserver ces cartes aux situations où elles sont seules sur le bus SPI !)

Merci pour votre réponse,
J'avais déjà lu qu'il y avait des cartes CATALEX ancienne version posaient problème.
J'ai également, en fonction de ce que j'ai pu trouver sur le net, bidouiller une carte MiniSD, sans succès. j'ai acquis d'autres modèles , le même problème se pose ...
Auriez-vous les références d'un lecteur SD compatible ?

Merci d'avance

faute d'avoir testé je n'ai pas de bonne référence à proposer , d'autres ici en auront.

Merci pour votre message.
je vais encore chercher, ou trouver un autre system d'enregistrement.

"bypasser les pins 11 et 12 du 74lvc125" , si on fait un pont de soudure entre les pins 11 et 12 c'est le meme résultat ?

les lecteurs sd non marquées catalex avec un 74xx125 sont des clones de catalex et ont le meme probleme

Bonjour, merci pour votre message.
Je vais réessayer la modification.

correction :
"SPI est censé être un bus multi-participant dans lequel plusieurs « esclaves » peuvent s'interfacer avec un ou plusieurs « maîtres ». Lorsqu'un module participant ne transmet pas d'informations au bus, il doit maintenir un état haute impédance (ou bien « high-Z ») pour éviter d'interférer avec les participants actifs. Malheureusement, dans ce module, la broche 13 du 74125 est liée en permanence à 0V, gardant le pilote actif et transmettant à la sortie MISO l'état logique de la broche de la carte SD MISO, qu'elle soit 0 ou 1. "

dans ce cas la modif de Splac.fr ne change rien, que le pilote soit actif ou bypassé le résultat est identique, MISO devant etre à l'état Z quand le sdcard n'est pas selectionné

Bonjour, merci pour le complément d'information.
Article fort intéressant et je vais suivre la proposition d'un lecteur SD LC Studio.
Encore merci pour votre implication dans mon problème.

Cordialement et bon we de Pâques.