samedi 15 février 2014

Carte SD, MSP430 Launchpad et Energia

Comme le titre l'indique, nous allons nous amuser à lire et écrire sur une carte SD en utilisant le MSP430 Launchpad de Texas Instruments.  Pour ce faire, je vais encore une fois utiliser les petits lecteurs de carte commercialisés par LC Studio, puisqu'ils sont facile à trouver et ne coûtent presque rien...  Et pas question de se compliquer la vie avec Code Composer Studio:  nous utiliserons Energia afin de programmer le Launchpad à la manière Arduino.

Le Launchpad comporte un avantage sur l'Arduino: puisqu'il fonctionne à 3,3 V, aucune conversion de niveau logique ne sera requise:  votre lecteur de carte SD sera donc branché directement au Launchpad, de la façon suivante:

Carte SD  ------ Launchpad
GND         ------    GND
+3.3          ------    Vcc
+5             ------    Pas branché
CS            ------     P2.0
MOSI       ------     P1.7
SCK         ------    P1.5
MISO       ------    P1.6


Attention:  ces branchements sont valables pour un Launchpad muni du MSP430G2553; d'autres microcontrôleurs supportés par le Launchpad ont leurs pins MOSI et MISO inversées (consultez cette référence pour connaître avec certitude la position des pins de votre configuration).

Côté logiciel, toutefois, le Launchpad est nettement désavantagé par rapport à l'Arduino.  Le problème, c'est qu'il comporte beaucoup moins de mémoire RAM.  Par conséquent, la seule bibliothèque qu'on peut raisonnablement utiliser pour gérer une carte SD est la "Petit FatFS" (oui, je sais, ce nom est épouvantable). Spécialement conçue pour les microcontrôleurs à mémoire restreinte, cette bibliothèque n'offre pas toutes les fonctions auxquelles ont pourrait généralement s'attendre.  Ainsi, elle est incapable de créer un fichier sur la carte SD:  on peut uniquement lire un fichier, ou écrire à l'intérieur d'un fichier déjà existant.  Et ce fichier doit avoir été créé à une taille qui convient à nos besoins, car la bibliothèque "Petit FatFS" n'est pas en mesure de le redimensionner!

Si ces contraintes ne vous rebutent pas, vous pouvez donc télécharger et installer la bibliothèque "Petit FatFS" (vous la placez dans Energia/hardware/msp430/libraries).

Le sketch ci-dessous est évidemment très inspiré des exemples qui accompagnent la bibliothèque.   Si vous désirez l'essayer, vous devez d'abord télécharger ce fichier texte et le copier sur votre carte SD.  Ce fichier contient le texte "Nombre de visites du Launchpad dans ce fichier: 1 ".

Le sketch est prévu pour fonctionner pendant que le serial monitor d'Energia est actif.  Puisque tout est dans la partie "Setup", le code ne s'exécute qu'une seule fois et vous devrez appuyer sur le bouton "reset" si vous désirez qu'il s'exécute à nouveau.

1)  Le sketch fait d'abord la liste des fichiers et répertoires qui se trouvent sur la carte SD, et affiche cette liste dans le moniteur série.
2) Si le fichier "test.txt" existe, on l'ouvre, on lit son contenu afin de l'afficher dans le moniteur série, puis on le referme.
3)  On ouvre à nouveau le fichier afin d'incrémenter le nombre qui s'y trouve:  le texte va donc devenir "Nombre de visites du Launchpad dans ce fichier: 2 ".  On referme le fichier.
4)  On ouvre une nouvelle fois le fichier pour lire son contenu et l'afficher dans le moniteur série, pour vérifier que les modifications ont été enregistrées avec succès.





Mes principales sources de documentation ont été ce tutoriel: Interfacing An SD-Card To The Launchpad – A Walkthrough Tutorial (qui vous intéressera particulièrement si vous désirez faire du data logging avec votre Launchpad) ainsi que cette discussion dans le forum de 430h consacré à Energia.

Yves Pelletier (Twitter:  @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire