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 :
  1. Hello World!
  2. Clignotement de LEDS
  3. Commande de servomoteurs par PWM
  4. Commande de servomoteurs numériques AX12 par UART
La seconde partie de ce tutorial utilisera la carte STM32F4DISCOVERY, et réalisera les fonctions:
  1. Installation de FreeRTOS et clignotement de diode
  2. Communication par bus USB, Hello World!
  3. Commande de moteur par PWM
  4. Acquisition de position moteur par encodeur en quadrature
  5. Asservissement moteur par PID
  6. Acquisition de tensions analogiques, génération de tension analogiques, commandes de GPIO par USB