Logo STM32

Carte de développement de système Minimum STM32F103C8T6

STM32F103C8T6-Minimum-System-Development-Board-produit

Informations sur le produit

Le module de carte de développement système minimum STM32F103C8T6 ARM STM32 est une carte de développement basée sur le microcontrôleur STM32F103C8T6. Il est conçu pour être programmé à l'aide de l'IDE Arduino et est compatible avec divers clones, variantes et cartes tierces Arduino comme l'ESP32 et l'ESP8266.

La carte, également connue sous le nom de Blue Pill Board, fonctionne à une fréquence environ 4.5 fois supérieure à celle d'un Arduino UNO. Il peut être utilisé pour divers projets et peut être connecté à des périphériques tels que des écrans TFT.

Les composants requis pour créer des projets avec cette carte incluent la carte STM32, le programmeur FTDI, l'écran couleur TFT, le bouton poussoir, la petite planche à pain, les fils, la banque d'alimentation (en option pour le mode autonome) et le convertisseur USB vers série.

Schématique

Pour connecter la carte STM32F1 à l'écran TFT couleur 1.8 basé sur ST7735 et à un bouton-poussoir, suivez les connexions broche à broche décrites dans les schémas fournis.

Configuration de l'IDE Arduino pour STM32

  1. Ouvrez l'IDE Arduino.
  2. Accédez à Outils -> Tableau -> Gestionnaire de tableaux.
  3. Dans la boîte de dialogue avec une barre de recherche, recherchez « STM32F1 » et installez le package correspondant.
  4. Attendez la fin de la procédure d'installation.
  5. Après l'installation, la carte STM32 devrait maintenant être disponible pour la sélection dans la liste des cartes Arduino IDE.

Programmation des cartes STM32 avec l'IDE Arduino

Depuis sa création, l'IDE Arduino a démontré sa volonté de prendre en charge toutes sortes de plates-formes, des clones Arduino et variantes de différents fabricants aux cartes tierces comme l'ESP32 et l'ESp8266. À mesure que de plus en plus de personnes se familiarisent avec l'EDI, elles commencent à prendre en charge davantage de cartes qui ne sont pas basées sur des puces ATMEL et pour le didacticiel d'aujourd'hui, nous examinerons l'une de ces cartes. Nous examinerons comment programmer la carte de développement STM32F32C103T8 basée sur STM6 avec l'IDE Arduino.

STM32F103C8T6-Minimum-System-Development-Board-fig-1

La carte STM32 à utiliser pour ce tutoriel n'est autre que la carte de développement STM32F103 à base de puce STM8F6C32T1 communément appelée « Blue Pill » en raison de la couleur bleue de son PCB. Blue Pill est alimenté par le puissant processeur ARM 32 bits STM32F103C8T6, cadencé à 72 MHz. La carte fonctionne sur des niveaux logiques de 3.3 V mais ses broches GPIO ont été testées pour être tolérantes à 5 V. Bien qu'il ne soit pas doté du WiFi ou du Bluetooth comme les variantes ESP32 et Arduino, il offre 20 Ko de RAM et 64 Ko de mémoire flash, ce qui le rend adéquat pour les grands projets. Il possède également 37 broches GPIO, dont 10 peuvent être utilisées pour les capteurs analogiques car ils ont activé l'ADC, ainsi que d'autres qui sont activées pour SPI, I2C, CAN, UART et DMA. Pour une planche qui coûte environ 3 $, vous conviendrez avec moi que ce sont des spécifications impressionnantes. Une version résumée de ces spécifications comparée à celle d'un Arduino Uno est présentée dans l'image ci-dessous.

STM32F103C8T6-Minimum-System-Development-Board-fig-2

Sur la base des spécifications ci-dessus, la fréquence à laquelle Blue Pill fonctionne est environ 4.5 fois supérieure à celle d'un Arduino UNO, pour le tutoriel d'aujourd'hui, en tant qu'ancienampPour savoir comment utiliser la carte STM32F1, nous allons la connecter à un écran TFT de 1.44″ et la programmer pour calculer la constante « Pi ». Nous noterons combien de temps il a fallu à la carte pour obtenir la valeur et le comparerons avec le temps qu'il faut à un Arduino Uno pour effectuer la même tâche.

Composants requis

Les composants suivants sont requis pour construire ce projet ;

  • Carte STM32
  • Programmeur FTDI
  • TFT couleur
  • Bouton poussoir
  • Petite planche à pain
  • Fils
  • Banque d'alimentation
  • Convertisseur USB vers série

Comme d'habitude, tous les composants utilisés pour ce tutoriel peuvent être achetés à partir des liens ci-joints. La batterie externe n'est cependant nécessaire que si vous souhaitez déployer le projet en mode autonome.

Schématique

  • Comme mentionné précédemment, nous connecterons la carte STM32F1 à l'écran TFT couleur 1.8″ ST7735 avec un bouton-poussoir.
  • Le bouton poussoir sera utilisé pour demander au tableau de démarrer le calcul.
  • Connectez les composants comme indiqué dans le schéma ci-dessous.

STM32F103C8T6-Minimum-System-Development-Board-fig-3

Pour faciliter la réplication des connexions, les connexions broche à broche entre le STM32 et l'écran sont décrites ci-dessous.

STM32 – ST7735

STM32F103C8T6-Minimum-System-Development-Board-fig-4

Revoyez les connexions pour être sûr que tout est comme il se doit, car cela a tendance à devenir un peu délicat. Cela fait, nous avons procédé à la configuration de la carte STM32 pour qu'elle soit programmée avec l'IDE Arduino.

Configuration de l'IDE Arduino pour STM32

  • Comme pour la plupart des cartes non fabriquées par Arduino, un peu de configuration doit être effectuée avant que la carte puisse être utilisée avec l'IDE Arduino.
  • Cela implique l'installation de la carte file soit via l'Arduino Board Manager, soit en téléchargeant depuis Internet et en copiant le files dans le dossier matériel.
  • La voie Board Manager est la moins fastidieuse et comme le STM32F1 fait partie des cartes répertoriées, nous emprunterons cette voie. Commencez par ajouter le lien de la carte STM32 aux listes de préférences Arduino.
  • Aller à File -> Préférences, puis entrez ceci URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) dans la case comme indiqué ci-dessous et cliquez sur ok.

STM32F103C8T6-Minimum-System-Development-Board-fig-5

  • Allez maintenant dans Outils -> Tableau -> Gestionnaire de tableaux, cela ouvrira une boîte de dialogue avec une barre de recherche. Rechercher STM32F1 et installez le package correspondant.

STM32F103C8T6-Minimum-System-Development-Board-fig-6

  • La procédure d'installation prendra quelques secondes. Après cela, la carte devrait maintenant être disponible pour la sélection dans la liste des cartes Arduino IDE.

Code

  • Le code sera écrit de la même manière que n'importe quel autre croquis pour un projet Arduino, la seule différence étant la façon dont les broches sont référencées.
  • Pour pouvoir développer facilement le code de ce projet, nous utiliserons deux bibliothèques qui sont toutes deux des modifications des bibliothèques Arduino standards pour les rendre compatibles avec le STM32.
  • Nous utiliserons la version modifiée des bibliothèques Adafruit GFX et Adafruit ST7735.
  • Les deux bibliothèques peuvent être téléchargées via les liens qui leur sont attachés. Comme d'habitude, je ferai une brève analyse du code.
  • Nous commençons le code en important les deux bibliothèques que nous allons utiliser.

STM32F103C8T6-Minimum-System-Development-Board-fig-7

  • Ensuite, nous définissons les broches du STM32 auxquelles les broches CS, RST et DC de l'écran LCD sont connectées.

STM32F103C8T6-Minimum-System-Development-Board-fig-8

  • Ensuite, nous créons des définitions de couleurs pour faciliter l'utilisation ultérieure des couleurs par leurs noms dans le code plutôt que par leurs valeurs hexadécimales.

STM32F103C8T6-Minimum-System-Development-Board-fig-9

  • Ensuite, nous définissons le nombre d'itérations que nous souhaitons que le tableau effectue ainsi que la durée d'actualisation de la barre de progression à utiliser.

STM32F103C8T6-Minimum-System-Development-Board-fig-10

  • Cela fait, nous créons un objet de la bibliothèque ST7735 qui servira à référencer l'affichage tout au long du projet.
  • Nous indiquons également la broche du STM32 à laquelle le bouton-poussoir est connecté et créons une variable pour maintenir son état.

STM32F103C8T6-Minimum-System-Development-Board-fig-11

  • Cela fait, nous passons à la fonction void setup().
  • Nous commençons par définir le pinMode() de la broche à laquelle le bouton-poussoir est connecté, activant une résistance de rappel interne sur la broche puisque le bouton-poussoir se connecte à la masse lorsqu'il est enfoncé.

STM32F103C8T6-Minimum-System-Development-Board-fig-12

  • Ensuite, nous initialisons la communication série et l'écran, en définissant l'arrière-plan de l'écran sur noir et en appelant la fonction print() pour afficher l'interface.

STM32F103C8T6-Minimum-System-Development-Board-fig-13

  • Vient ensuite la fonction void loop(). La fonction void loop est assez simple et courte, grâce à l'utilisation de bibliothèques/fonctions.
  • On commence par lire l'état du bouton poussoir. Si le bouton a été enfoncé, nous supprimons le message actuel à l'écran à l'aide de RemovePressKeyText() et dessinons la barre de progression changeante à l'aide de la fonction drawBar().
  • Nous appelons ensuite la fonction de démarrage du calcul pour obtenir et afficher la valeur de Pi ainsi que le temps nécessaire à son calcul.

STM32F103C8T6-Minimum-System-Development-Board-fig-14

  • Si le bouton-poussoir n'est pas enfoncé, l'appareil reste en mode veille avec l'écran exigeant qu'une touche soit enfoncée pour interagir avec lui.

STM32F103C8T6-Minimum-System-Development-Board-fig-15

  • Enfin, un delay est inséré en fin de boucle pour donner un peu de temps avant d'esquisser des « boucles ».

STM32F103C8T6-Minimum-System-Development-Board-fig-16

  • La partie restante du code est constituée des fonctions appelées pour accomplir les tâches allant du dessin de la barre au calcul du Pi.
  • La plupart de ces fonctions ont été abordées dans plusieurs autres didacticiels impliquant l'utilisation de l'écran ST7735.

STM32F103C8T6-Minimum-System-Development-Board-fig-17STM32F103C8T6-Minimum-System-Development-Board-fig-18STM32F103C8T6-Minimum-System-Development-Board-fig-19STM32F103C8T6-Minimum-System-Development-Board-fig-20STM32F103C8T6-Minimum-System-Development-Board-fig-21STM32F103C8T6-Minimum-System-Development-Board-fig-22

  • Le code complet du projet est disponible ci-dessous et est joint dans la section de téléchargement.

STM32F103C8T6-Minimum-System-Development-Board-fig-23STM32F103C8T6-Minimum-System-Development-Board-fig-24 STM32F103C8T6-Minimum-System-Development-Board-fig-25 STM32F103C8T6-Minimum-System-Development-Board-fig-26 STM32F103C8T6-Minimum-System-Development-Board-fig-27 STM32F103C8T6-Minimum-System-Development-Board-fig-28 STM32F103C8T6-Minimum-System-Development-Board-fig-29 STM32F103C8T6-Minimum-System-Development-Board-fig-30 STM32F103C8T6-Minimum-System-Development-Board-fig-31 STM32F103C8T6-Minimum-System-Development-Board-fig-32 STM32F103C8T6-Minimum-System-Development-Board-fig-33 STM32F103C8T6-Minimum-System-Development-Board-fig-34

Téléchargement du code sur le STM32

  • Le téléchargement de croquis sur le STM32f1 est un peu complexe par rapport aux cartes standards compatibles Arduino. Pour télécharger du code sur la carte, nous avons besoin d'un convertisseur USB-série basé sur FTDI.
  • Connectez le convertisseur USB vers série au STM32 comme indiqué dans les schémas ci-dessous.

STM32F103C8T6-Minimum-System-Development-Board-fig-35

Voici un plan broche à broche de la connexion

FTDI-STM32

  • Cela fait, nous changeons ensuite la position du cavalier d'état de la carte en position un (comme indiqué dans le gif ci-dessous), pour mettre la carte en mode programmation.
  • Appuyez ensuite une fois sur le bouton de réinitialisation du tableau et nous sommes prêts à télécharger le code.

STM32F103C8T6-Minimum-System-Development-Board-fig-37

  • Sur l'ordinateur, assurez-vous de sélectionner « Carte générique STM32F103C » et de sélectionner la série pour la méthode de téléchargement, après quoi vous pouvez appuyer sur le bouton de téléchargement.

STM32F103C8T6-Minimum-System-Development-Board-fig-38

  • Une fois le téléchargement terminé, changez le cavalier d'état en position « O » Cela mettra la carte en mode « exécution » et elle devrait maintenant commencer à fonctionner en fonction du code téléchargé.
  • À ce stade, vous pouvez déconnecter le FTDI et alimenter la carte via son USB. Si le code ne s'exécute pas après la mise sous tension, assurez-vous d'avoir correctement restauré le cavalier et de recycler l'alimentation de la carte.

Démo

  • Une fois le code terminé, suivez le processus de téléchargement décrit ci-dessus pour télécharger le code sur votre configuration.
  • Vous devriez voir l'affichage apparaître comme indiqué dans l'image ci-dessous.

STM32F103C8T6-Minimum-System-Development-Board-fig-39

  • Appuyez sur le bouton poussoir pour lancer le calcul. Vous devriez voir la barre de progression glisser progressivement jusqu'à la fin.
  • A la fin du processus, la valeur de Pi est affichée ainsi que le temps pris par le calcul.

STM32F103C8T6-Minimum-System-Development-Board-fig-40

  • Le même code est implémenté sur un Arduino Uno. Le résultat est présenté dans l'image ci-dessous.

STM32F103C8T6-Minimum-System-Development-Board-fig-41

  • En comparant ces deux valeurs, nous constatons que « Blue Pill » est plus de 7 fois plus rapide que l'Arduino Uno.
  • Cela le rend idéal pour les projets qui impliquent des traitements lourds et des contraintes de temps.
  • La petite taille de la pilule bleue constitue également un avantagetage ici car il n'est qu'un peu plus gros que l'Arduino Nano et il peut être utilisé dans des endroits où le Nano ne sera pas assez rapide.

Documents / Ressources

Carte de développement de système Minimum STM32 STM32F103C8T6 [pdf] Manuel de l'utilisateur
Carte de développement de système Minimum STM32F103C8T6, STM32F103C8T6, carte de développement de système Minimum, carte de développement de système, carte de développement, carte

Références

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués *