Broches pour le SPI

Bonjour, je me heurte à un problème : j'ai créé un programme pour un écran tactile et je veux afficher des images.
Il faut donc les stocker dans une carte (micro-)SD pour ensuite les afficher.
Au moment ou il faut détecter la carte, en réfléchissant pourquoi ça ne fonctionne pas, je constate que les broches SPI ne sont pas les bonnes pour ma carte arduino Zéro et Méga2560. Or, pour l'Arduino Zéro, il y a une broche SPI qui est la même que pour afficher des choses à l'écran.
Donc, il faudait changer la broche pour choisir une autre pour enfin détecter la carte micro-SD !
Mais comment faire ? Quelle est la fonction ?

Bonjour techvij

Si j'ai bien compris, tu as, sur le même Arduino, un lecteur de cartes SD et un écran, les 2 ont un interface SPI.
Si oui, ces 2 périphériques on des broches communes qui sont
image
SCLK
MOSI
MISO
et propre à chaque périphérique SSn (Slave Select),

C'est cette broche qui permet de sélectionner un périphérique sur le bus.
Pour la carte SD, cette broche s'appelle CS.
image
Et ça s'utilise dans setup()

SD.begin(csPin);

Pour ton écran, il faut donner le type ou un lien.

Cordialement
jpbbricole

Merci. Tu pourra voir un autre sujet deja crée ou il y a le lien et d'autres informations :

Pour la broche cs, c'est bon, mais j'aimerais savoir pour MOSI, MISO et SCK.

Voici pour la méga

Et des infos sur le SPI ici
https://qastack.fr/arduino/16348/how-do-you-use-spi-on-an-arduino

Merci mais je voulais changer les broches MOSI, MISO et CLK. Malheureusement, je crois que c'est impossible.Si quelqu'un prouve le contraire, faites le moi savoir !

Ces broches sont partagées par tous les périphériques SPI.
Ce n'est pas clair, pourquoi veux-tu les changer?

Je voulais juste les changer pour ne pas avoir des branchements partout ! regardez par vous-même :
WIN_20211217_17_14_53_Pro

Et sans les câbles :
WIN_20211217_17_17_18_Pro

Une solution est de souder trois fils qui relient les bonnes sorties aux sorties souhaitées. Ces dernières n'étant pas utilisées, elles sont en forte impédance. Je l'ai fait sans souder avec une carte d'extension à bornes à visser. Cela fonctionne (voir Problème de la carte SD avec une Mega):

edit: note: on fait comment pour afficher une image quand on a le lien internet?

On fait un copié/collé de l'URL dans le corps du message dans une ligne vide.

Ca fonctionne maintenant, mais pas quand j'ai édité le message. Désolé.

Y a t-il un moyen logiciel et non physique de modifier les broches de MOSI, MISO et CLK ? La meilleure solution que j'ai c'est d'aller dans la librairie et de modifier la valeur.

Comme déjà expliqué plus haut les broches MOSI, MISO et CLK sont à des positions fixes et ne peuvent pas être changées.

Même en modifiant la librairie ?
Ce qui me fait penser que la raison pour laquelle on ne peut pas modifier ces broches est que ces broches sont associés physiquement et non logiciellement. J'ai juste ?
Si c'est physiquement alors il faudra souder, ou... créer ses propres fonctions pour faire MOSI, MISO et CLK, mais logiciellement. Si c'est logiciellement alors on pourra modifier la librairie.

Il y a effectivement des circuits spécialisés derrière les 3 broches. Pour les déplacer par soft, c'est en théorie possible MAIS il faut réécrire la bibliothèque SPI et cela va nécessairement limiter la vitesse. L'écran n'est pas très rapide en SPI hard, passer en soft risque d'être 10 fois plus lents.

C'est donc vrai, c'est logiciel. Mais aussi physique. Par contre il y a quelque chose que tu n'as pas compris :sweat_smile: : c'est que j'aimerais accéder aux fichiers de la carte micro-SD, par le bus SPI ! Oui c'est aussi ma faute, je l'ai mal expliqué. L'écran est juste là pour autre chose (ou plutôt pour afficher des choses et permettre d'insérer une carte micro-SD dedans pour pouvoir afficher des images).

En gros, pour envoyer un octet en SPI hard comme c'est fait actuellement, on écrit l'octet dans un registre et on donne l'ordre d'envoyer. Si on voulait le faire pas soft sur une autre broche, il faut prendre les bits l'ESS uns après les autres et les mettre sur la broche tout en gérant l'horloge. Cela pose plus de problèmes dans l'autre sens, car on ne sait pas quand on va recevoir quelque chose. Si on passe par interruption, on est limité à certaines broches aussi ( 2 broches sur une nano). Sinon il faut scruter sans arrêt la broche.

C'est beaucoup plus rapide de passer un mois pour apprendre à souder et de changer la place des broches qui ne vont pas.

Et il ne faut pas de grosses compétences en soudure pour fabriquer des câbles MISO MOSI CLK en Y, mâles ou femelles :

Je crois que j'ai un peu trouvé ! Une librairie nommée SdFat.

Je pense que ça va m'être très utile !

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.