Nouveau cours: programmation de microcontrôleurs STM32
J'ai l'immense plaisir de dévoiler ma nouvelle formation en français consacrée au développement embarqué sur les microcontrôleurs (MCU) de la famille STM32, sur la plateforme de formations en vidéo Udemy:
Vers le cours "Programmation de Microcontrôleurs STM32".
PS: Udemy fait régulièrement (plusieurs fois par mois) des promotions sur les cours, ça vaut la peine d'aller regarder régulièrement ;)
J'ai conçu cette formation comme celle que j'aurais aimé trouver lorsque j'ai été amené à développer sur STM32 pour la première fois. A l'époque, étant ingénieur junior venant plutôt du monde du hardware, j'ai eu une certaine difficulté à comprendre la philosophie de l'écosystème STM32Cube, et dompter la puissance de ces microcontrôleurs, dont la flexibilité est l'une des principales forces, mais peut facilement nous perdre lors de la configuration.
Présentation des STM32
Les microcontrôleurs STM32 de ST Microelectronics, une entreprise franco-italienne) sont omniprésents dans des appareils de tous types: électronique grand public, automobile, appareils médicaux et Internet des objets (IdO / IoT). Nul doute que vous en utilisez chaque jour sans même le savoir !
Ce sont des microcontrôleurs puissants grâce à leur architecture basée sur un cœur ARM Cortex-M. Les STM32 sont également pionniers en termes de très basse consommation.
But et contenu de la formation
Cette formation a pour but de rendre le participant rapidement autonome dans l'utilisation des STM32, en posant les bases nécessaires à leur utilisation. L'utilisation des périphériques les plus courants sont présentés dans des projets pratiques. Des leçons théoriques présentent également des sujets spécifiques: introduction aux différents types de bus (UART, I2C, SPI, ...), présentation du concept d'interruptions, explication du fonctionnement d'une DMA, ...
Dans ce cours, on va en particulier utiliser la librarie "HAL" fournie par ST, et configurer les différents périphériques à l'aide de STM32CubeMX, un assistant de configuration intégré dans STM32CubeIDE (l'environnement de développement intégré fourni gratuitement et surtout sans limitation (!) par ST).
Le cours est organisé comme ceci:
-
Introduction : présentation de la formation, des microcontrôleurs STM32, matériel nécessaire, installation des outils
-
Premiers pas avec STM32CubeIDE : on commence en douceur avec un premier projet simple sur STM32CubeIDE, qui servira de base aux futurs projets.
-
GPIOs : on explore l'utilisation des GPIOs (General Purpose Input / Output). On en profite également pour explorer la notion d'interruption, en théorie, puis en pratique
-
Gestion du temps : on voit ici deux manières de gérer le temps à l'aide de la librarie HAL : en mettant l'exécution en pause, ou en comparant le temps.
Pour cette seconde manière, on verra comment éviter un piège de programmation classique, en gérant proprement le débordement ("rollover") de la valeur de temps (afin d'éviter des maux de tête inutiles ;) ).
-
Liaisons séries vec l'UART : c'est la première leçon sur une interface de communication. On utilise le périphérique UART (Universal Asynchronous Receiver Transmitter, ou Émetteur / Récepteur Asynchrone Universel) du STM32. On explorera les 3 modes d'utilisation de ce périphérique : mode bloquant (polling), mode interruption et DMA.
On verra également comment gérer le cas particulier de la réception de données de longueur inconnue à l'avance, en utilisant la détection "idle" du bus (permettant de recevoir une interruption quand aucun nouveau caractère n'est reçu pendant un court délai). Cette technique permet de gérer de manière efficace et surtout fiable le problème classique de la réception de données, lorsque par exemple des commandes de taille variables peuvent être reçues.
-
Bus I2C : utilisation du périphérique I2C, permettant de communique sur le bus du même nom. Dans les projets d'exemples, le périphérique I2C est utilisé en modes bloquant (polling), interruption et DMA, afin de contrôler un capteur de température Texas Instruments TMP102 (sur un module Sparkfun SEN-13314.
On abordera dans cette leçon les deux manières de faire des lectures I2C (dont parfois un seule des deux possibilités est supportée par certains capteurs) : condition "stop" + nouvelle condition "start", ou condition "start répété" ("repeated start").
-
Bus SPI : utilisation du périphérique SPI, pour le bus du même nom, également très fréquemment utilisé. Ce périphérique est également utilisé en modes bloquant (polling), interruption et DMA.
-
Timer : les timers sont utilisés pour lire temps, générer des interruptions à intervalles précis, et également pour générer des signaux de sortie PWM (Pulse Width Modulation, ou Modulation de Largeur d'Impulsions).
Dans ce cours d'environs 6 heures, la gestion des erreurs est abordée, et les références vers la documentation officielle de ST sont données, afin d'aider le participant à trouver les informations dont il pourrait avoir besoin dans ses propres projets.
Ce cours s'adresse en particulier à des étudiants et ingénieurs désireux de démarrer rapidement le développement sur STM32. Une expérience avec d'autres types de microcontrôleurs (ou même Arduino) peut aider, mais n'est pas nécessaire. Toutefois, une connaissance de base du langage C est require, car nous allons développer dans ce langage.
Alors, intéressé ? Dans ce cas, je me réjouis de vous retrouver dans cette nouvelle formation ! En utilisant le lien en haut de cet article, vous me permettrez d'obtenir une plus grande part du prix de vente, ce qui me permettra de développer de nouvelles formations, merci à vous !