Modifier un lecteur de carte SD pour bus SPI Arduino

Dans certains projets Arduino, il est nécessaire d’utiliser un lecteur de carte SD pour stocker des informations. Le lecteur de carte SD communique alors avec l’Arduino via le protocole SPI.

Il est alors possible que plusieurs capteurs ou actionneurs Arduino communiquent via ce même protocole SPI. Il est donc nécessaire de créer un bus SPI.

De par leur mauvais design, certains lecteurs de cartes SD, perturbent le fonctionnement des autres esclaves du bus SPI sur lequel ils sont connectés.

Dans cet article, je vous présente la modification hardware qu’il a été nécessaire de réaliser pour que le bus SPI ne soit plus perturbé par le lecteur de carte SD.

Bus SPI

Le bus SPI est un ensemble de composants tous reliés entre eux et communiquant via le protocole SPI.

Les composants et l’Arduino ont en commun 3 fils. L’horloge CLK et les ports de communication MISO et MOSI.

En revanche, chaque composant et relié par son port CS (Chip Select) à une sortie digitale de l’Arduino différente. (Fils bleu et jaune du schéma).

Schéma d'un bus SPI

L’Arduino joue le rôle de maître et distribue tour à tour le droit de communiquer aux autres composants via le port CS.

Si l’Arduino alimente (digitalWrite(port_CS, HIGH); ) le port CS d’un composant, le composant considère que le maître (l’Arduino) ne communique pas avec lui.

Si au contraire, l’Arduino n’alimente pas (digitalWrite(port_CS, LOW); ) le port CS d’un composant, le composant considère que le maître (l’Arduino) communique avec lui.

C’est de cette manière que l’Arduino sélectionne avec qui il communique.

Défaut de certains lecteurs de carte SD

Certains lecteurs de carte SD ont un défaut de conception faisant qu’ils ne font plus attention à ce qu’ils reçoivent sur leur port CS.

Ils cherchent en permanence à communiquer avec l’Arduino, venant perturber la communication entre l’Arduino et les autres composants du bus.

Pour y remédier, il faut refaire le câblage de la broche MISO.

Voici un exemple de circuit imprimé avec défaut. Il marche très bien seul mais fait planter un bus SPI.

Exemple de circuit avec défaut

Modification hardware

D’après le schéma électrique du lecteur de carte réalisé par Vishnu, il est possible de retracer, sur le circuit imprimé, le trajet électrique depuis la broche MISO vers la carte SD.

Circuit électrique de la broche MISO sur le circuit imprimé

Il suffit ensuite de réaliser la modification suivante :

  • Couper 2 bandes du circuit imprimer
  • Souder directement la borne de la carte SD à la broche MISO

Voici la réalisation en image.

Couper la bande de cuivre partant de la broche MISO
Couper la bande de cuivre allant vers la carte SD et dénuder une partie attenante
Souder un fil depuis la bande de cuivre dénudée vers la broche MISO, consolider avec un peu de colle chaude

Résumé

En résumé, la modification proposée consiste à by-passer les bornes 11 et 12 de la puce (74LVC125A) et à aller directement depuis la carte SD vers la broche MISO.

Résumé de la modification proposée

Pour plus d’informations sur cette problématique je vous renvoie vers les fils de discussion du forum Arduino:

https://forum.arduino.cc/index.php?topic=603244.0

https://forum.arduino.cc/index.php?topic=465101.0

Et le site suivant :

https://www.vishnumaiea.in/projects/hardware/interfacing-catalex-micro-sd-card-module

Si vous avez apprécié cette lecture, n’hésitez pas à partager cet article avec d’autres personnes qui pourraient être intéressées. C’est un moyen simple de soutenir ce blog.

A partager sans modération !
S’abonner
Notifier de
guest
0 Commentaires
Inline Feedbacks
View all comments