- Sélection des outils de développement matériel et logiciel
- Développement STM8S103F3P6
- Programmeur STM8S103F3P6
- IDE et compilateur STM8S103F3P6
- STM8S avec Arduino en utilisant Sduino
- Téléchargement des logiciels requis
- Configuration du compilateur STVD et Cosmic C
- Bibliothèque de périphériques standard pour STM8S103F3P6
- Compilation du premier programme
- Téléchargement du code de STVD vers la carte de développement STM8S à l'aide de ST-Link V2
Le STM8 est une série de microcontrôleurs 8 bits de STMicroelectronics qui est devenu un choix courant de microcontrôleur pour le développement de produits sensibles aux coûts. J'ai déjà travaillé avec AVR, PIC et quelques autres microcontrôleurs ARM Cortex, mais sûrement dans certaines applications, ils deviennent excessifs et augmentent considérablement le coût de la nomenclature. Récemment, après avoir démoli quelques produits chinois bon marché, j'ai découvert que la plupart d'entre eux contenaient un microcontrôleur STM8. Le CI n'est pas seulement bon marché, mais il contient également de nombreuses fonctionnalités et options, ce qui le rend adapté à de nombreuses applications différentes. Par exemple, le STM8S La série de contrôleurs (que nous apprendrons dans cette série de didacticiels) est un contrôleur à usage général, mais il existe d'autres séries comme le STM8A pour les conceptions automobiles et le STM8L pour les conceptions alimentées par batterie à faible puissance qui étend l'application de ces contrôleurs.
Dans cette série de tutoriels, nous allons apprendre à programmer les microcontrôleurs STM8S, plus précisément le STM8S103F3P6. La raison pour laquelle vous commencez avec ce numéro de pièce spécifique est simplement son rapport prix / performance. Comme!! regardez-le juste pour 0,25 $ (environ 20 roupies), nous obtenons un microcontrôleur 8 bits avec oscillateur interne 16Mhz, flash 8kB, ADC 10 bits, UART, SPI et I2C. Qui ne serait pas intrigué? En outre, le STM8S103F3P6 est très populaire et, par conséquent, en tant que débutant, vous trouverez suffisamment de support si vous avez besoin d'aide en dehors des tutoriels. À partir de là, nous aurons une séquence de tutoriels, similaires aux tutoriels de programmation PIC où nous allons apprendre à programmer ce contrôleur d'un clignotement de base à divers interfaces d'affichage et de capteur. Vous pouvez également consulter le didacticiel et les projets STM32F103C8 si vous êtes intéressé par les microcontrôleurs STM 32 bits.
Sélection des outils de développement matériel et logiciel
Maintenant que nous avons déicide le microcontrôleur, nous devrons sélectionner des outils de développement matériel et logiciel pour commencer notre processus d'apprentissage. Il existe de nombreuses options, ici j'ai sélectionné celles qui sont gratuites et facilement accessibles à tous.
Développement STM8S103F3P6
La carte de développement officielle du microcontrôleur 8 bits de ST s'appelle le kit STM8 Discovery, mais nous utiliserons une autre carte de développement à faible coût que vous pourrez facilement trouver auprès d'un fournisseur local ou sur la boutique en ligne. L'image de la carte de développement STM8S103F3P6 que nous utiliserons dans ce tutoriel est présentée ci-dessous.
La carte se compose uniquement des composants minimaux nécessaires pour commencer le développement. Il est compatible avec la maquette et convient aux applications compactes. Le schéma de circuit interne de la carte de développement est illustré ci-dessous.
En y regardant de plus près, vous remarquerez qu'en dehors du contrôleur STM8S103F3p6, nous avons un bouton de réinitialisation pour réinitialiser le contrôleur. Une led d'alimentation et une led de test connectées au PB5 (broche 5 du port B) et un régulateur de tension AMS1117 qui convertit le 5V d'un port USB en 3,3V pour le contrôleur. Le contrôleur peut également être conçu pour fonctionner sur 5V si nécessaire. Les différentes parties du contrôleur sont indiquées ci-dessous. Nous avons également 4 broches de programmeur à savoir 3.3V, GND, SWIM et NRST qui peuvent être utilisées pour programmer et déboguer facilement notre microcontrôleur.
Programmeur STM8S103F3P6
Pour la programmation de notre contrôleur, nous utiliserons le ST-LINK v2 qui est bon marché et facilement disponible en ligne. Il existe de nombreuses variantes (métal, plastique, or, rose, carte nue) de cette carte ST-LINK v2 et ont toutes le même objectif. Le mien est illustré ci-dessous mais vous pouvez utiliser n'importe quel type de programmeur ST-LINK, le brochage sera différent, alors assurez-vous simplement de lire correctement les brochages sur le boîtier. Il existe également ST-LINK V3 de ST-Microelectronics lui-même qui peut être utilisé pour un débogage sérieux. Nous n'utiliserons pas cela pour le moment car c'est un peu cher, nous le garderons pour l'avenir.
IDE et compilateur STM8S103F3P6
Choisir le bon IDE et le bon compilateur pour STM8S103F3P6 est déroutant, simplement parce qu'il y a beaucoup d'options parmi lesquelles choisir. Les outils officiels disponibles pour le microcontrôleur STM8 sont indiqués dans l'image ci-dessous.
Du côté de la configuration, nous avons le STM8CubeMx, j'ai essayé le logiciel et ce fut une déception totale pour moi. Contrairement au STM32Cube, le STM8Cube ne peut pas générer automatiquement de code. Il ne peut générer un mappage des broches qu'à des fins de visualisation et peut s'avérer utile si vous portez votre code d'un contrôleur à un autre. A part ça, je ne l'utiliserais pas. Donc, dans cette série de tutoriels, nous n'utiliserons pas cela.
Pour l'EDI et le compilateur, nous avons beaucoup d'options à choisir. Les deux principales options pour IDE sont IAR workbench et ST Visual Develop (STVD), les deux logiciels ont l'impression d'être des années 90, mais après un certain temps à jouer avec, j'ai trouvé que le STVD est un bon choix uniquement parce qu'il est totalement gratuit. De même, pour le compilateur, nous utiliserons le compilateur Cosmic C, encore une fois uniquement parce qu'il est totalement gratuit. Une autre raison de choisir cet IDE et ce compilateur est que, une fois que nous nous sommes familiarisés avec l'environnement, il devrait être facile d'utiliser n'importe quel autre microcontrôleur 8 bits de ST sans trop d'effort. Nous verrons comment installer et configurer STVD avec le compilateur Cosmic C plus loin dans cet article.
Pour Flashing, nous utiliserons ST Visual Programmer (STVP), cet outil sera automatiquement installé lorsque nous installerons STVD. Il sera intégré dans l'EDI lui-même, ce qui nous aidera à programmer et déboguer rapidement. Le logiciel final sera STMStudio qui est un logiciel de surveillance STM8. Le logiciel peut aider au débogage en temps réel de STM8 et possède quelques fonctionnalités intéressantes comme la surveillance de la valeur de la variable, le tracé de graphique, etc. Je n'ai pas suffisamment expérimenté ce logiciel. Et, au moins pour les premiers tutoriels, nous n'utiliserons pas ce logiciel car nous n'aurons pas besoin de grandes exigences de débogage.
Bibliothèque de périphériques standard STM8S: ST Microelectronics fournit un ensemble de bibliothèques pour faciliter le développement de code pour les microcontrôleurs STM8S, cette bibliothèque est appelée « bibliothèque de périphériques standard » ou SPL en abrégé. La bibliothèque est cool sauf qu'elle est écrite en gardant à l'esprit tous les contrôleurs possibles de la famille STM8S / A 8 bits et pas seulement le contrôleur STM8S103F3P6 que nous utiliserons. Par conséquent, nous devons faire quelques ajustements ici et là pour que cela fonctionne (que je partagerai plus tard). Mais quand même, je pense qu'il vaut la peine de l'essayer car il peut rendre le développement très rapide, et par conséquent, nous l'utiliserons dans notre tutoriel.
Si vous ne souhaitez pas utiliser la bibliothèque, vous devez accéder directement aux registres du contrôleur ou effectuer une programmation d'assemblage nu. Ces deux éléments sont amusants, à condition que vous ayez le temps de l'apprendre et de l'utiliser. Mon idée est d'utiliser la bibliothèque SPL partout où elle fonctionne bien, puis de travailler également au niveau du registre et de l'assemblage si nécessaire. Essayons de ne pas réinventer la roue!
STM8S avec Arduino en utilisant Sduino
Discuter des options logicielles ne sera jamais complet si je ne mentionne pas le support Arduino IDE STM8S. Oui, la même carte STM8S103F3P6 peut être programmée directement depuis Arduino IDE en utilisant Sduino, grâce à Michael Mayer. Mais, le projet est encore au stade de développement et nécessiterait probablement un certain temps et le soutien de la communauté pour que Sduino fournisse un support complet de la plate-forme. Cependant, juste quelques minutes après avoir joué avec Sduino, j'ai commencé à l'aimer et j'ai donc décidé de faire également un article séparé sur la façon de programmer le microcontrôleur STM8S avec Arduino. Je lierai l'article ici lorsqu'il sera prêt. Cet article expliquera pourquoi et pourquoi vous devriez utiliser l'IDE Arduino pour programmer vos microcontrôleurs STM8S.
Donc, ce sont mes choix pour le logiciel et le matériel, faites-le moi savoir dans la section des commentaires si vous pensez qu'un autre logiciel aurait été un meilleur choix et pourquoi. J'aimerais également explorer d'autres options.
Téléchargement des logiciels requis
Maintenant que nous avons décidé du logiciel que nous utiliserons pour ce tutoriel, allons-y et téléchargez-les en utilisant le lien suivant. Tous les logiciels sont gratuits à télécharger et à utiliser, il vous suffirait de créer un compte gratuit sur ST et Cosmic si vous ne l'aviez pas déjà fait.
- Développement visuel ST (STVD)
- Compilateur Cosmic C
- Bibliothèque de périphériques standard
- STM8Cube Mx (en option)
- STMStudio pour STM8 (facultatif)
Configuration du compilateur STVD et Cosmic C
Après avoir téléchargé les deux logiciels, suivez simplement les instructions à l'écran pour les installer. Je recommanderais de les laisser dans les répertoires par défaut pour éviter toute confusion ultérieure. L'IDE STVD s'installera sans aucun effort. Pour le compilateur Cosmic C, vous devez obtenir une clé de licence gratuite pendant les processus d'installation. Il vous suffit de fournir les informations de l'entreprise avec un identifiant de courrier électronique, si vous êtes étudiant, mentionnez simplement cela. Les processus d'obtention de la clé de licence sont instantanés et automatiques, bien que les instructions de configuration indiquent que cela peut prendre un jour ou deux, j'ai reçu la clé de licence automatiquement sur mon identifiant de courrier électronique dès que je l'ai soumis, assurez-vous simplement que vous vérifiez le SPAM. Mon e-mail de confirmation est affiché ci-dessous.
Conformément aux instructions par courrier électronique, copiez simplement le fichier license.lic et collez-le dans le sous-dossier «license» de votre dossier d'installation. Pour moi, le chemin était «C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License» . Collez simplement le fichier à l'emplacement indiqué ci-dessous.
Bibliothèque de périphériques standard pour STM8S103F3P6
Comme indiqué précédemment, ST Microelectronics fournit des bibliothèques appelées SPL qui peuvent être utilisées pour tous les microcontrôleurs STM8S / A 8 bits. Vous pouvez soit télécharger le SPL d'origine de ST Microelectronics et apporter les modifications requises, soit télécharger mes bibliothèques SPL STM8S103F3P6 et les utiliser comme telles. Je recommanderais le plus tard.
SPL d'origine de ST Microelectronics
STM8S103F3P6 SPL
Pendant que vous y êtes, assurez-vous également de télécharger le manuel d'utilisation SPL, qui sera très pratique lors de la programmation du contrôleur.
Compilation du premier programme
Maintenant que tout est prêt, essayons de compiler notre premier programme pour vérifier si l'EDI, le compilateur et la bibliothèque fonctionnent tous comme ils le devraient. Vous pouvez également consulter la vidéo au bas de la page pour des instructions détaillées.
Commencez par ouvrir STVD et sélectionnez Fichier -> Espace de travail, dans la fenêtre contextuelle, sélectionnez «Nouvel espace de travail» et entrez le nom du projet et le chemin où le programme doit être enregistré. Je nomme mon programme BareMinimum et je l'enregistre dans un dossier sur le bureau. Cliquez sur OK et vous obtiendrez la boîte de dialogue Nouveau projet comme indiqué ci-dessous.
Je nomme à nouveau le projet comme bareminimum et sous la chaîne d'outils, nous devons spécifier la racine de la chaîne d'outils sur le chemin où le compilateur STM8 Cosmic est installé. L'adresse du chemin par défaut est «C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8» . Après cela, cliquez simplement sur OK pour afficher la fenêtre «Sélection MCU».
Recherchez STM8S103F3P, sélectionnez-le et cliquez sur OK. Cela ouvrira un nouveau projet pour STM8S103F3P sur STVD, les fenêtres devraient ressembler à ceci une fois terminé.
Cliquez avec le bouton droit sur «fichier source» et sélectionnez «Ajouter des fichiers au dossier» pour inclure tous les fichiers c de notre bibliothèque SPL, de la même manière, cliquez avec le bouton droit sur Inclure les fichiers pour inclure tous les fichiers d'en-tête. Si vous avez des questions, vous pouvez vous référer à la vidéo ci-dessous. Une fois que tous les fichiers sont ajoutés, cliquez sur Build -> rebuil d all, puis sur Compile pour vérifier si le compilateur et SPL fonctionnent comme prévu. Si tout se passe bien, vous devriez voir l'écran suivant avec une erreur de résultat de construction 0 et un avertissement 0.
Cela fait, nous pouvons maintenant être sûrs que toutes nos bibliothèques SPL fonctionnent avec le compilateur Cosmic et STVD. C'est la procédure standard que nous suivrons pour chaque nouveau projet. Vous pouvez également inclure uniquement l'en-tête et les fichiers source nécessaires au projet afin de réduire le temps de génération si nécessaire.
Téléchargement du code de STVD vers la carte de développement STM8S à l'aide de ST-Link V2
Connectez le ST-Link V2 à la carte de développement comme indiqué ci-dessous.
Les connexions sont assez simples et la meilleure partie est que vous n'avez pas besoin de composants externes. Ma configuration matérielle pour la programmation est indiquée ci-dessous, je viens d'utiliser les fils d'en-tête femelles pour établir ma connexion. Cependant, notez que le brochage de votre ST-Link peut différer du mien, assurez-vous de suivre le brochage de l'appareil avant d'effectuer les connexions.
Établissez la connexion et connectez l'appareil à votre ordinateur, l'installation du pilote devrait commencer automatiquement. Vous pouvez utiliser le gestionnaire de périphériques pour vous assurer que votre ordinateur a détecté correctement ST-LINK V2. Vous remarquerez également que le voyant de test sur la carte clignote si c'est la première fois que vous mettez la carte sous tension. Dès que nous aurons compilé avec succès le code sur STVD, nous obtiendrons un fichier d'extension «S19» dans le répertoire de débogage du dossier du projet. Mon fichier S19 est illustré ci-dessous.
Ce S19 est comme le fichier Hex qui doit être téléchargé sur le contrôleur. Pour télécharger le programme, ouvrez ST Visual Programmer (STVP) qui aurait dû être installé avec STVD. Ensuite, dans la fenêtre de configuration, sélectionnez comme indiqué dans l'image ci-dessous et cliquez sur OK.
Cliquez ensuite sur Fichier-> Ouvrir et accédez au fichier S19 que nous avons montré précédemment. Ensuite, pour flasher l'appareil, suivez Programme -> Onglet actuel . Si le clignotement a réussi, vous devriez voir la sortie suivante.
Par défaut, lorsque vous achetez le STM8S, il aura un programme clignotant qui fait clignoter la LED de test. Maintenant, après avoir téléchargé ce code vierge, la LED ne clignotera plus.
Important: j'ai constaté que mon ST-Link ne réinitialisait pas automatiquement la carte après la programmation. J'ai dû le déconnecter et le reconnecter pour vérifier la sortie de mon programme. Je ne sais pas si c'est un problème pour tout le monde, faites-le moi savoir dans la section commentaires. Regardez également la vidéo en bas qui explique la solution à cela.
Avec cela, terminons ce didacticiel, nous avons appris les bases du matériel, avons configuré l'environnement de développement et appris à compiler et télécharger du code. Nous sommes maintenant prêts à progresser et nous l'utiliserons dans tous nos prochains tutoriels. Si vous avez des questions, postez-les sur nos forums et restez à l'écoute pour en savoir plus !!