Démonstrateur du bus CAN : Différence entre versions
Ligne 5 : | Ligne 5 : | ||
[[Fichier:Logo-fablab.png|vignette|droite]] | [[Fichier:Logo-fablab.png|vignette|droite]] | ||
'''IMPORTANT''' : Ce tutoriel soit être effectué après celui-ci : [[Mise en place d'un bus CAN]]. | '''IMPORTANT''' : Ce tutoriel soit être effectué après celui-ci : [[Mise en place d'un bus CAN]]. | ||
+ | Cet exemple est testé sur des cartes NUCLEO-L432KC | ||
== Présentation et objectifs == | == Présentation et objectifs == | ||
− | Ce tutoriel explique pas à pas la mise en œuvre d'un démonstrateur CAN simple à utiliser. | + | Ce tutoriel explique pas à pas la mise en œuvre d'un démonstrateur CAN simple à utiliser. Le démonstrateur a pour but de communiquer avec d'autres démonstrateurs identiques via une liaison CAN. |
+ | |||
+ | L'utilisateur va pouvoir, pour chaque démonstrateur déterminer à l'aide du commutateur : | ||
+ | * L'ID du démonstrateur | ||
+ | * L'ID du démonstrateur destinataire | ||
+ | * La donnée à envoyer | ||
+ | |||
+ | Il faut appuyer sur le bouton de validation à chaque étape d'insertion des informations. Pendant cette période, le démonstrateur ne lit pas les informations sur le bus CAN et ne reçois donc pas les données qu'une autre pourrais lui envoyer à ce moment là. | ||
+ | |||
+ | Une fois les information entrées, il se met en mode écoute et affiche les éventuelles données qu'il reçois. Pour sortir de ce mode et renvoyer une donnée, il suffit de ré-appuyer sur le bouton de validation. | ||
[[Fichier:Logo-fablab.png|vignette|Une jolie description d'un croquis exprimant mieux l'intention qu'une longue longue phrase]] | [[Fichier:Logo-fablab.png|vignette|Une jolie description d'un croquis exprimant mieux l'intention qu'une longue longue phrase]] | ||
Ligne 34 : | Ligne 44 : | ||
== Démonstrateur CAN == | == Démonstrateur CAN == | ||
− | + | Pour mettre en place ce démonstrateur, nous allons reprendre le projet STM32CubeMX du [[Mise en place d'un bus CAN|tutoriel précédent]] et ajouter les nouvelles liaisons nécessaires à l'ajout des composants du démonstrateur. Il faudra ensuite effectuer le branchement pour finir sur le code. | |
− | + | === Configurer l'environnement de travail : === | |
− | + | [[Fichier:Logo-fablab.png|vignette|Une jolie description]] | |
− | + | ||
− | + | ||
− | + | Cette étape sera rapide : il suffit d'ajouter 4 entrées pour le commutateur, 1 entrée pour le bouton poussoir, et 3 sorties pour la LED RGB. | |
− | + | Pour ceci, cliquez directement sur des broches libres ( grises ) autour de la puce au centre de l'écran. Définissez en 5 en tant que GPIO_Input (entrée) et 3 en tant que GPIO_Output (sortie). | |
− | + | Ensuite, allez dans l'onglet Configuration, puis au milieu de l'écran dans la partie System, cliquez sur GPIO. Dans cette fenêtre vous pouvez voir toutes les broches que vous venez d'activer. Cliquez sur chacune des broche en "Input mode", et passez les en "Pull-down". | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Pour chacune des entrées ou sorties, je vous conseille fortement de les renommez dans la partie "User Label" avec un nom qui est significatif de sa fonction. De cette manière, le schéma dans l'onglet Pinout deviendra plus parlant, mais cela aura surtout un impact sur la lisibilité du code, où ces noms pourront être utilisés. | |
− | === | + | |
+ | Attention toutefois, certaines broches sont reliées à d'autres fonctions sur la carte, ce qui peux fausser les données reçues. Vérifiez que les broches que vous choisissez n'aient pas de pont vers d'autres broches de la carte. Par exemple, la PA5 et PA6 sur la L432KC sont reliées aux broches PB6 et PB7 qui gèrent l'I2C, les informations reçues sur les broches PA5 et PA6 ne sont donc pas fiables. | ||
+ | |||
+ | === Effectuer le branchement : === | ||
[[Fichier:Logo-fablab.png|vignette|Une jolie description]] | [[Fichier:Logo-fablab.png|vignette|Une jolie description]] | ||
− | === | + | === Écrire le programme : === |
− | + | ||
− | + | ||
[[Fichier:Logo-fablab.png|vignette|Une jolie description]] | [[Fichier:Logo-fablab.png|vignette|Une jolie description]] | ||
+ | |||
=== Conseils === | === Conseils === |
Version du 26 octobre 2018 à 14:27
IMPORTANT : Ce tutoriel soit être effectué après celui-ci : Mise en place d'un bus CAN. Cet exemple est testé sur des cartes NUCLEO-L432KC
Sommaire
Présentation et objectifs
Ce tutoriel explique pas à pas la mise en œuvre d'un démonstrateur CAN simple à utiliser. Le démonstrateur a pour but de communiquer avec d'autres démonstrateurs identiques via une liaison CAN.
L'utilisateur va pouvoir, pour chaque démonstrateur déterminer à l'aide du commutateur :
- L'ID du démonstrateur
- L'ID du démonstrateur destinataire
- La donnée à envoyer
Il faut appuyer sur le bouton de validation à chaque étape d'insertion des informations. Pendant cette période, le démonstrateur ne lit pas les informations sur le bus CAN et ne reçois donc pas les données qu'une autre pourrais lui envoyer à ce moment là.
Une fois les information entrées, il se met en mode écoute et affiche les éventuelles données qu'il reçois. Pour sortir de ce mode et renvoyer une donnée, il suffit de ré-appuyer sur le bouton de validation.
Vous pouvez rajouter dans ce paragraphe des photos des croquis papier que vous avez fait pour mieux visualiser ce qu'il y avait à faire.
Pré-requis
Voter environnement de travail doit être configuré comme dans le tutoriel précédent.
Matériel
En plus du matériel déjà présent, il faut :
- un bouton poussoir
- un commutateur
- une LED RGB
- 3 résistances d'environ 100 Ohms
Logiciels
Toujours les mêmes logiciels, c'est à dire :
- STM32CubeMX
- AtollicTRUESTUDIO
Démonstrateur CAN
Pour mettre en place ce démonstrateur, nous allons reprendre le projet STM32CubeMX du tutoriel précédent et ajouter les nouvelles liaisons nécessaires à l'ajout des composants du démonstrateur. Il faudra ensuite effectuer le branchement pour finir sur le code.
Configurer l'environnement de travail :
Cette étape sera rapide : il suffit d'ajouter 4 entrées pour le commutateur, 1 entrée pour le bouton poussoir, et 3 sorties pour la LED RGB.
Pour ceci, cliquez directement sur des broches libres ( grises ) autour de la puce au centre de l'écran. Définissez en 5 en tant que GPIO_Input (entrée) et 3 en tant que GPIO_Output (sortie).
Ensuite, allez dans l'onglet Configuration, puis au milieu de l'écran dans la partie System, cliquez sur GPIO. Dans cette fenêtre vous pouvez voir toutes les broches que vous venez d'activer. Cliquez sur chacune des broche en "Input mode", et passez les en "Pull-down".
Pour chacune des entrées ou sorties, je vous conseille fortement de les renommez dans la partie "User Label" avec un nom qui est significatif de sa fonction. De cette manière, le schéma dans l'onglet Pinout deviendra plus parlant, mais cela aura surtout un impact sur la lisibilité du code, où ces noms pourront être utilisés.
Attention toutefois, certaines broches sont reliées à d'autres fonctions sur la carte, ce qui peux fausser les données reçues. Vérifiez que les broches que vous choisissez n'aient pas de pont vers d'autres broches de la carte. Par exemple, la PA5 et PA6 sur la L432KC sont reliées aux broches PB6 et PB7 qui gèrent l'I2C, les informations reçues sur les broches PA5 et PA6 ne sont donc pas fiables.
Effectuer le branchement :
Écrire le programme :
Conseils
Donnez une liste de conseils correspondant aux difficultés que vous avez rencontré pendant la réalisation du tutoriel.
Pour aller plus loin
Que peut-on faire de plus une fois le tutoriel réalisé ?
Bibliographie
- pourquoi pas
- une liste
- de liens