lundi 5 janvier 2015

Cartes SD et STM32 Nucleo

Aujourd'hui, nous expérimentons l'écriture de de fichiers sur une carte SD au moyen de la carte STM32 Nucleo.

Matériel:

J'ai utilisée la carte Nucleo F030R8 et un lecteur de carte SD fabriqué par LC Studio, le modèle de base qu'on trouve partout pour vraiment pas cher.

Connexions:

Un premier avantage évident du Nucleo, c'est qu'il communique avec un niveau logique de 3,3 V qui convient parfaitement aux cartes SD.  Contrairement à l'Arduino, nous n'aurons donc pas besoin d'utiliser un 4050 pour abaisser le niveau logique de 5 V à 3,3 V:  les connexions sont directes.

Le lecteur de carte SD utilise le protocole SPI.  6 connexions sont nécessaires et, puisque la carte est compatible avec les shields Arduino, les pins SPI du Nucleo sont les mêmes que sur un Arduino:
  • Pin  GND du lecteur SD  :  Pin GND du Nucleo
  • Pin +3.3 du lecteur SD:   Pin 3V3 du Nucleo
  • Pin CS du lecteur SD: Pin D10 du Nucleo
  • Pin MOSI du lecteur SD:  Pin D11 du Nucleo
  • Pin SCK du lecteur SD:  Pin D13 du Nucleo
  • Pin MISO du lecteur SD:  Pin D12 du Nucleo
Pour utiliser pleinement le sketch que je vous propose ci-dessous, vous branchez également un potentiomètre à l'entrée A0 (prenez garde d'alimenter ce potentiomètre avec 3,3 volts et non avec 5 volts).


Importation des bibliothèques

La meilleure méthode que j'ai trouvée pour importer toutes les bibliothèques nécessaires dans mon espace de travail mbed, c'est d'importer le programme intitulé "Seeed_SDCard_Shield".

Dans mbed, vous cliquez sur le bouton "Imports", vous sélectionnez l'onglet "Programs", vous faites une recherche pour "SDCard", vous choisissez dans la liste "Seeed_SDCard_Shield", puis vous cliquez sur le bouton "Import!".


Dans la boîte de dialogue qui apparaît ensuite, ne cochez pas "Update all libraries with latest revision":  étrangement, j'avais des erreurs de compilation si je cochais cette case!


Mon sketch

Le programme que vous avez importé devrait fonctionner correctement:  il écrit un message dans un fichier sur la carte SD.  Si le fichier existe déjà, il l'efface pour en créer un nouveau.

Je vous propose ci-dessous un sketch un peu différent, qui me semble plus utile  (vous pourrez le copier dans le fichier main.c pour remplacer l'autre programme):  chaque fois que vous appuyez sur  le bouton reset (le bouton noir sur la carte Nucleo), la valeur analogique lue sur l'entrée A0 sera ajoutée dans un fichier intitulé Nucleo.txt.  Si le fichier n'existait pas déjà, il sera créé.  S'il existait déjà, les données qu'il contenait ne seront pas effacées:  les nouvelles données sont simplement ajoutées à celles qui s'y trouvaient déjà.

Voilà une excellente base pour construire un data logger avec votre carte Nucleo!


Yves Pelletier (@ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire