Résumé
Le but de ce tutorial est de vous faire découvrir et utiliser desmicrocontrôleurs. Nous allons utiliser des STM32 à base de coeurs cortex M3et cortex
M4F.
Les microcontrôleurs
Un microcontrôleur contient :
- Un processeur
- De la mémoire volatile et non volatile
- Diverses interfaces
Le microcontrôleur est le composant de base de tout circuit électronique. Vous en trouverez un ou plusieurs dans de nombreux objets du quotidient:
Téléphone portable (plusieurs), montre( composant basse consommation), passe Navigo et cartes bleu (microcontrôleurs sécurisés), ordinateur portable (alimentation)...
Suivant la taille de leurs donnée de base, plusieurs catégories de microcontrôleurs existent:
- 4 bits : Cette catégorie est en voie de disparition, microcontrôleurs très faible coûts.
- 8 bits : La catégorie la plus commune, en voie de rattrapage par la gamme 32 bits. faible coûts, faible consommation, faible performance. exemples : PIC16, STM8, AVR8
- 16 bits : Catégorie médiane entre 8 et 32 bits, moins commune
- 32 bits : La catégorie en forte progression. Cette catégorie couvre la gamme des composants très faible consommation et faible coût à celle des composants très haute performance. exemples: PIC32, STM32, AVR32, MAP4. Une large portion de ces composants contient coeur processeur ARM, même si d'autres coeurs existent.
Les carte de découverte
Pour ce tutorial, deux cartes de développement
STM32L-DISCOVERY et
STM32F4DISCOVERY seront utilisées. Ces cartes peuvent être commandées pour environ 15€ chacune sur FARNELL.
La première partie de ce tutorial utilisera la
STM32L-DISCOVERY pour réaliser les fonctions suivantes :
- Hello World!
- Clignotement de LEDS
- Commande de servomoteurs par PWM
- Commande de servomoteurs numériques AX12 par UART
La seconde partie de ce tutorial utilisera la carte
STM32F4DISCOVERY, et réalisera les fonctions:
- Installation de FreeRTOS et clignotement de diode
- Communication par bus USB, Hello World!
- Commande de moteur par PWM
- Acquisition de position moteur par encodeur en quadrature
- Asservissement moteur par PID
- Acquisition de tensions analogiques, génération de tension analogiques, commandes de GPIO par USB