Créer des applications professionnelles avec Arduino UNO 

Mettre en place la liaison SPI côté esclave

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Cette fois, vous étudierez la liaison SPI du côté esclave. En effectuant la programmation registre à registre, vous vous apercevrez qu'elle est conforme à la documentation technique d'Arduino.
05:15

Transcription

Nous allons voir ensemble maintenant le code côté esclave. En fait, la première remarque à faire, c'est que vous n'avez pas besoin d'inclure les bibliothèques natives d'AVRGCC, parce qu'elles sont déjà inclus par défaut. Donc ici, on va faire appel de 2 octets. Donc la commande qui va recevoir un 0, et puis un buffer, alors en fait mémoire-tampon, si vous préférez, qui vient du SPI. En fait, ce sont simplement deux variables qui sont des octets sur lesquels je vais pouvoir recevoir la requête de la part du maître. Au niveau du setup, ça se fait très simplement, je dis que j'ai mis ma pin MISO en sortie, et puis à partir de là, je décide de faire un petit peu autrement. On va essayer de se frotter quand même un petit peu à la syntaxe de chez Atmel, et puis on va faire ça avec deux registres, et puis on va faire la même chose d'ailleurs avec l'interruption. Comment je mets le SPI en service ? Alors, pour ça, je vous ai mis le lien internet, et vous utilisez un mot-clé qui est en fait BV-BV, et vous mettez le numéro, enfin le nom du bit, excusez-moi, pas son numéro, et automatiquement, ce bit sera mis à 1. Donc il faut connaître le nom du bit, mais il faut connaître aussi le nom du registre auquel appartient ce bit. Donc de ce fait, il faut regarder dans la notice technique. Alors la notice technique vous dit que, voilà, le registre de description du registre de contrôle du SPI s'appelle SPCR. Et puis celui qui vous intéresse en fait, c'est de mettre le SPCI en route, donc dans ce cas-là vous allez mettre ce bit là à 1, le beat SPE. Alors maintenant, on revient à notre code, on regarde un petit peu ce qui se passe, je fais la même chose dans le même registre en mettant SPIE à 1. Donc là ça veut dire : je me mets en mode interruption. Alors après, il faut pouvoir effectuer la fonction d'interruption. Là c'est pareil, il suffit d'aller regarder dans la notice technique du compilateur AVRGCC, et là en fait, on vous propose des syntaxes. Alors c'est sûr qu'il faut un petit peu les interpréter, mais quand vous dit Interrupt, on vous dit voilà, vous mettez ISR, le nom de la source d'interruption, ici nous c'est le SPI, et donc il n'y a plus que SPI_STC_vect à mettre, et voilà c'est terminé. Donc vous avez le registre SPDR qui va recevoir la donnée du maître. Vous allez la stocker dans la variable que l'on a déclaré un peu plus haut, et puis à partir de là, on va regarder. Alors si c'est 0, OK, que fait-on ? On met SPI buffer dans commande, OK, et puis on met SPRD, donc le registre de réception de la demande du maître, on le met à 0. Parce qu'en fait il ne correspond ni à une addition, ni à une soustraction. Alors si c'est une addition, OK, pas de problème. Je prends la demande du maître en compte, et je lui additionne 5. Et je mets tout dans le registre SPDR qui va être prêt à l'envoi. Si c'est une soustraction, eh bien, je lui implémente -2. Attention, ce sont des valeurs que j'ai prises totalement au hasard. Et à partir de là, voilà, c'est une interruption. Donc à chaque fois que le maître va envoyer une donnée sur SPI, vous allez mettre votre microcontrôleur esclave en interruption, et il va traiter la routine. Et puis sinon, en tâche de fond, si je puis dire, en boucle, que va-t-il faire ? Il va se dire, si je suis en SS niveau haut, dans ce cas là, je n'ai pas de commande. En fait, lui est en scrutation complète, pour savoir si déjà on va l'interroger par le biais du select slave. Alors j'ai effectué le téléversement du côté maître sur ma carte, et puis du côté aussi esclave. Alors attention, quand vous changez de carte, vous risquez d'être énuméré de façon différente par le port COM. Donc du coup, il va falloir bien faire attention de pouvoir bien vérifier que vous êtes correctement connecté à ce COM qui changera en fonction de la carte. Donc j'ai téléversé de côté, je n'ai plus qu'à utiliser le moniteur série pour regarder ce que me propose l'esclave en réponse aux questions que je lui ai posées. On voit bien qu'au niveau de l'addition, il a ajouté 5 à chaque fois, à mes différentes requêtes qui étaient 10, 20, 30, 40, et au niveau de la soustraction m'a bien soustrait 2 aux requêtes que je lui ai envoyées, à savoir 10, 20, 30, 40. Vous voyez les résultats, 8, 18, 28, 38. Donc tout se passe pour le mieux et c'est exactement de ce que l'on attendait.

Créer des applications professionnelles avec Arduino UNO 

Mettez en œuvre des périphériques de communication de votre carte Arduino UNO. Abordez les protocoles de communication et concevez des applications ludiques et professionnelles.

3h12 (39 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Arduino UNO Arduino UNO Rev3
Spécial abonnés
Date de parution :31 août 2017
Mis à jour le:22 sept. 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !