«

»

Fév 04

ADA & USB

Guten tag !

Bien souvent, on souhaite pouvoir communiquer avec notre programme depuis l’ordinateur, que ce soit pour afficher le résultat d’un calcul ou pour envoyer des ordres à la carte. Il existe un moyen très simple de réaliser cela : nous allons utiliser le package Stm32.USB.

Ce package est en réalité très court. Nous avons deux fonctions. La première permet de lire un Character sur l’USB : Read. La deuxième est Send (S) où S est une String. Voilà vous savez tout !

 

Regardons comment faire du côté de l’ordinateur maintenant. Pour brancher la carte, il vous faut un microUSB (l’autre port de la carte) : ce sont les câbles pour charger la majorité des téléphones portables.

Plusieurs options s’offrent à nous.

MINICOM

C’est un gestionnaire s’exécutant directement en console. Pour l’obtenir, entrez simplement dans la console :

sudo apt-get install minicom;

L’utilisation peut paraître un peu déroutante au début. On n’utilise presque jamais les flèches directionnelles. Tout se fait grâce aux raccourcis qui s’affichent à l’écran. Commençons par la configuration de la connexion. Dans la console :

sudo minicom -s

Le -s signifie settings. On le lance en sudo pour pouvoir enregistrer notre configuration. Nous arrivons dans une boîte de dialogue. A l’aide des flèches directionnelles, sélectionnez Serial Port Setup. A partir de là nous allons utiliser les raccourcis. Il s’agit maintenant que rentrer les paramètres de notre communication (qui est en réalité une communication UART).

Dans serial device, entrez /dev/ttyACM0 . En général, c’est là que se trouve la carte. Vous pouvez le vérifier en entrant dmesg. Si vous venez de brancher la carte, les dernières lignes spécifient les paramètres de la dite carte et l’emplacement de la connexion. Chez moi, cela ressemble à :

[ 1896.423849] cdc_acm 2-2:1.0: ttyACM0: USB ACM device

Réglons ensuite la vitesse, la longueur des données, le bit de parité et les bits de stop. Allez dans Bps/Par/Bits. On doit choisir 115200 8N1 grâce aux raccourcis.

Vous pouvez vous amuser à configurer les autres options mais ce n’est pas utile ici. Nous allons sauvegarder notre configuration. Allez dans Save setup as … et choisissez un nom (stm32 par exemple). Faite ensuite Exit pour quitter la configuration.

Normalement cela vous renvoie dans minicom si la connexion s’est bien passée. Chez moi, elle est un peu capricieuse : c’est l’occasion de voir comment ouvrir un fichier de préférence. Dans la console :

minicom stm32

Si vous avez enregistré votre configuration sous le nom de stm32.

Une fois dans l’interface de minicom, tout ce que vous entrez est envoyé à la carte. Pour accéder aux paramètres, tapez :

Ctrl + A, Z

Vous pouvez alors par exemple activer l’echo (E) pour voir ce que vous tapez ou encore activer le retour à la ligne (A) pour retourner à la ligne à chaque retour chariot ou mieux retourner à la ligne à la fin de chaque ligne du terminal (W).

Quand vous recevrez des données de la carte, elles s’afficherons dans la fenêtre principale. Parfois, il peut être intéressant d’avoir la sortie sous forme hexadécimale. Dans le terminal :

minicom stm32 -H

Si vous avez encore des interrogations, lisez le manuel (man minicom) ou cherchez sur internet 🙂

CUTECOM

Cutecom est une interface graphique pour gérer les connexions. Pour l’installer :

sudo apt-get install cutecom

La configuration est très simple : il suffit de remplir les champs en haut de la fenêtre. Les paramètres sont ceux utilisés pour minicom. Appuyez ensuite sur « Open device » pour commencer la connexion. N’hésitez pas à appuyer plusieurs fois si celle-ci est capricieuse. Les données reçues s’affichent dans la fenêtre au centre. Vous pouvez les mettre en hexadécimal en cochant « Hex output ». Pour envoyer du texte, tapez celui-ci dans la case input. Il s’envoie quand vous faites un retour chariot. Attention, cutecom rajoute tout seul des caractères de fin de ligne. Vous pouvez régler cela dans le menu déroulant en bas à droite.

 

Il existe sans doute d’autres programmes (putty par exemple) mais je ne peux pas vous donnez des détails à leur sujet.

 

EXERCICE

Ecrire un programme qui renvoie les caractères reçus et vérifier son fonctionnement (facile).

Solution

 

Voila, je pense que nous avons vu le plus utile pour réaliser des communications !

 

A la prochaine,

 

Julien