Conflit spi, utlisation carte sd et ecran tft

Bonjour à tous,
Je viens auprès de vous, car j’ai un petit soucis je remarque un conflit entre ma carte SD et l’écran ILI9341

  1. J’utilise la bibliothèque Adafruit pour l’écran
  2. Mon câblage est parfait. j’utilise une carte Méga avec les broches SPI (50 = Mosi, SS=53,Miso =51…)
  3. Mon écran utilise la broche 53 comme chipselect et ma carte SD le pin 4

Le problème est que, quand j’initialise ma carte SD , il y a mon écran qui s’y met en Blanc.
J’ai essayé de désactivé de moi même la CS de la carte SD pour donner à nouveau l’accès à l’écran mais rien ne marche .

Tant que les codes pour la SD n’est pas commenter rien ne marche , que le matériel(SD) soit alimenter ou pas l’écran s’y met en blanc l’effet simplement que j’initialise la SD.

j’ai conclu que le problème ne vient pas de la carte SD ou tft mais de leurs bibliothèques.
Si vous pouvez donc m’aider, je ne sais pas s’il faut utiliser les interruptions SPI ( SPISetings()).

Ici, il est dit :

Arduino / Genuino Board MOSI MISO SCK SS (slave) SS (master) Level
Mega1280 or Mega2560 51 or ICSP-4 50 or ICSP-1 52 or ICSP-3 53 - 5V

Donc MOSI = 51, MISO = 50

Oui c’est bien ça, j’ai fait une erreur quand j’écrivais mais c’est bien ce que j’ai fait.

Questions :

  1. Si le lecteur SD est déconnecté, est-ce que l’écran fonctionne (par exemple avec les exemples de la bibliothèque) ?
  2. Si l’écran est déconnecté, est-ce que le lecteur SD fonctionne ?
  3. Y a-t-il autre chose connecté sur la carte Méga ?
  4. Est-ce la carte Méga qui alimente le tout ?

Que la carte SD soit alimentée ou pas l’écran est blanc l’effet simplement de créer un test si la carte est présente

Donc avant de connecter le lecteur SD, il faut faire fonctionner l’écran.
Tu peux t’inspirer de ce tuto : est-ce le même écran ? l est dispo ici aussi en 4 parties

Quand j’ai vu le problème avant d’initialiser ma carte SD, je commence d’abord par initialiser l’ecran mais des qu’il trouve l’instruction :

 if (!SD.begin(CS_sd)) { 
    Serial.println("Erreur SD");
  } else {
    Serial.println(" Detection SD OK!!!");
  }

l’écran plante il devient tout blanc

J’essaye de t’expliquer qu’il faut commencer par faire fonctionner l’écran (sans le lecteur) : pour ça il faut trouver les bonnes connexions et faire tourner un des exemples de la bibliothèque. Est-ce que ça marche ?

Ensuite, il faut tester le lecteur SD (sans l’écran) : pour ça, pareil, tu trouves les bons branchements (en évitant les conflits qui pourraient exister avec l’écran) et tu essayes un des exemples de la bibliothèque. Est-ce que ça marche ?

On verra ensuite comment faire fonctionner les deux en même temps.

La question des conflits : il faut comprendre comment fonctionne un bus SPI avec plusieurs périphériques. Voici un schéma qui explique ce qui doit être partagé et ce qui est spécifique :

Les 3 lignes CLK, MISO et MOSI sont les mêmes pour l’écran et le lecteur SD. Il te faut ensuite un SS (ou CS) pour chacun des périphériques. Donc dans la démarche que je te propose, tu choisis d’abord un SS1 pour l’écran et tu fais fonctionner l’écran seul. Ensuite, tu déconnectes l’écran, tu connectes le lecteur SD avec un autre SS (SS2 donc) mais les mêmes MISO, MOSI et SCK. Et tu testes avec un exemple de la bibliothèque.
Enfin, tu peux rebrancher l’écran et tester l’ensemble.

Salut @lesept ,
C’est exactement ce que j’avais fait. J’ai testé l’écran sans SD ça marche et après la SD sans écran ça marche aussi si tu revois ce que j’avais dit au départ tu vas voir que j’avais déjà fait ce que tu me conseil de faire. Et sur ton illustration j’ai fait la même chose pour mess connexions les deux utilises ma même connexion MOSI,MISO,CLK la seule différence est au niveau de leurs chipselect pour l’écran j’utilise le pin 53 cependant pour la SD j’utilise le pin 4.
Des remarques ?

Impec !
Il faudrait voir le code maintenant.

Edit : regarde cette discussion, ça peut t’aider. Ce tuto aussi

@lesept J’ai utilisé sa bibliothèque je n’ai plus de soucis merci pour ton aide.
Adafruit est limitée il crée un conflit, cependant la bibliothèque ILI9341kbv est vraiment puissante.
mais après que j’ai fouiné dans son fichier d’entête tu sais ce que j’ai trouvé :grinning:ce n’est que le complément de la Bibliothèque Adafruit :grinning:
encore de plus merci beaucoup!!!

De rien, bonne suite