Apprentissage du démarrage lent de STM8S. Partie 0

La famille MK STM8S par rapport au STM8L / 32 possède un arsenal de périphériques plus petit, mais vous permet de comprendre facilement les bases et d'acquérir les compétences nécessaires pour travailler avec ses frères aînés.

0. À qui le matériel est-il destiné, pourquoi et pourquoi


En écrivant cet article, je suppose que le lecteur peut:

  • Lisez attentivement (ce qui est rare)
  • Un peu de travail avec la littérature technique en anglais (enfin, ou la motivation pour apprendre, car la première langue du programmeur est l'anglais)
  • Soudure (au moins compétences minimales)
  • Programmation en C (encore une fois, tout n'est pas si compliqué)
  • Google (sans lui n'importe où)
  • Utilisez un multimètre et a d'autres compétences de base (comme «ne mettez pas vos doigts dans la prise»)

Je considère les objectifs de l'article:

  • Présentation pour parcourir toutes les étapes du développement d'un système basé sur un microcontrôleur
  • Donner les notes introductives nécessaires à une personne qui n'est pratiquement pas dévouée
  • Si possible, le lecteur comprendra où, quoi et comment trouver


(Pas significatif)
Pourquoi et pourquoi?

Je pense qu'il est logique de faire un cours de programmation MK détaillé.

Je serai l'occasion d'étudier la périphérie entière plus en détail et en cours de route, j'aiderai les autres.
Je sais qu'il y a déjà un très grand nombre d'articles et même des formations, mais j'ai une approche légèrement différente. (Peut-être que j'obtiendrai des critiques adéquates, changer d'avis et rejoindre les gars de MX Cube).

Il est triste de voir comment les contrôleurs stm se transforment en arduino.

Concernant l'arduino:

Il existe 3 approches (connues de moi, MB, je n'ai tout simplement pas grandi) de développement de logiciels sur MK:

  1. Développement assembleur
  2. Développement pour un modèle MK spécifique
  3. Développement à l'aide de HAL et de bibliothèques similaires

1) Je suis partisan de l'opinion selon laquelle si vous construisez une maison, vous ne devez pas brûler chaque brique d'argile de vos propres mains, car l'assembleur disparaît (bien qu'il ait commencé par cela). Vitesse de développement trop faible.

2) Bibliothèques HAL, etc. pour un débutant, trop de moments «il suffit d'écrire comme ça» sont opaques. Parce que - aussi à la poubelle.

3) Je considère le processus de création de logiciel pour un MK spécifique comme l'option la plus saine pour un débutant, les compétences acquises permettront de faire face aux séries 8L et 32 ​​(même si cela fait mal de le faire seul selon la documentation).

Vous avez probablement remarqué que l'arduino n'apparaît pas dans cette liste, car il s'agit d'une plate-forme éducative et n'est pas destiné au développement d'appareils compacts sur sa base. Mais l'approche de la programmation pour une raison quelconque (je ne sais pas) est transférée et se propage sur Internet. Et même utilisé dans de vrais projets commerciaux. (représente, "J'ai téléchargé la bibliothèque sur le forum, connectée, ça a marché, je ne sais pas comment ça marche").

Je suggère, de mon point de vue, une approche académique et méthodiquement plus significative.

1. Le choix du microcontrôleur


J'ai plusieurs STM8S105K6 dans le paquet LQFP32, c'est de cette famille, donc je le choisis.

Vous pouvez choisir n'importe quel MK de la série.

Il existe des cartes Discovery prêtes à l'emploi de ST, que vous pouvez acheter auprès des Chinois ou commander auprès d'autres ressources. Il existe des cartes prêtes à l'emploi pour le STM8S103F3P6 et similaires des Chinois.

Mais, il convient de noter que les planches prêtes à l'emploi sont conçues pour la formation.

Sur le site Web du fabricant st.com , nous trouvons notre MK et y téléchargeons des documents:

Manuel de référence: RM0016 - un document commun à toutes les familles MK STM8S et STM8AF. Vient ensuite RM.
Fiche technique: J'ai un document DS5855 pour les STM8S105C4 / 6, STM8S105K4 / 6 et STM8S105S4 / 6. Vient ensuite DS.

Des choses délicieuses qu'il a (superficiellement):

  • Prise en charge de 16 MHz
  • 32 Ko Flash, 1 Ko EEPROM et 2 Ko RAM
  • Puissance 2,95-5,5 V
  • Minuteries 8 bits et 16 bits
  • UART, SPI, I2C
  • ADC 10 bits
  • jusqu'à 38 entrées / sorties discrètes

2. Équipement requis


Je vois deux options pour travailler avec MK:

  1. Assemblage d'une présentation à partir de composants individuels
    Super, cool, j'aime ça. Tant de gens le font.

    Dans ce cas, le MK aura besoin du soi-disant cerclage. Le plan est simple:

    1. Nous prenons une planche à pain, dans mon cas TQFP (32-64PIN) 0.8MM, soudons MK dessus
    2. Nous prenons un peigne à double rangée de soudure PLS-2x40 dans les trous qui mènent aux conclusions de MK
    3. Nous prenons une planche à pain imprimée (j'ai 9x15 cm) et soudons le dernier sandwich dessus
    4. Nous regardons RM point 7. Alimentation, nous lisons . Il est écrit que vous avez besoin d'un condensateur reliant la broche VCAP et notre alimentation 0V. Il est également écrit que vous devez examiner plus en détail dans DS un MK spécifique dans la section des caractéristiques électriques. Pour moi, il s'agit de la clause 10.3.1 du condensateur externe VCAP en référence au tableau 18 où la valeur nominale est de 470 à 3300 nF. J'ai pris 1 mF (dans le circuit C3). (pourquoi vous en avez besoin, j'espère que vous l'avez lu vous-même en RM)
    5. Ibid. Dans DS à la clause 10.3.8. Réinitialiser les caractéristiques des broches, nous trouvons le condensateur de 0,1 mF (sur le circuit C4). La résistance R4 d'une valeur nominale de 10 kOhm est utilisée dans les cartes de débogage et diverses notes d'application, bien qu'à l'intérieur du MK il y ait déjà une résistance de pull-up avec une valeur nominale de 30 à 80 kOhm (si vous croyez la même DS). Parallèlement au condensateur C4, nous avons mis notre bouton de réinitialisation. Un tel modèle de réinitialisation peut être vu, par exemple, dans la note Desighn DN0005.
    6. De plus, ST aime ajouter des condensateurs de puissance de 100 nF aux cartes de débogage, dans le nombre de broches N connectées à +1 puissance. Le diagramme ne montre que des pièces C1, C2 et C5 3, et je ne les ai pas soudées sur la carte, mais vous en avez compris le sens. Il fonctionnera sur la table sans eux, mais dans un véritable développement commercial, il est préférable de prendre soin de cette question lors de la sélection de la carte de l'appareil.
    7. Connecteur de programmation SWIM non résolu (je fais du PLS-1x40)

    J'ai un tel miracle:


  2. Acheter une planche finie (ce qui ne vous évite pas de travailler avec un fer à souder)
    Super, cool, j'aime ça. Tant de gens le font.

    Il vaut la peine de se familiariser avec la configuration de la carte, s'il s'agit d'une carte de ST, elle est immédiatement avec le programmateur et est connectée avec un câble USB de type B. Le site ST aura un schéma sur la page produit. Sur le plateau, il y aura des boutons, des LED, des tweeters, des boutons capacitifs et d'autres charmes avec lesquels vous pourrez jouer.

    Si la carte est chinoise, alors souvent des cartes sans programmeur, vous aurez besoin d'un programmeur.

    Il est préférable de ne pas croire les sérigraphies des noms des conclusions et de vérifier par rapport à DS.

Je ne pense pas travailler avec des platines contact car je ne les utilise pas.

De plus, j'ai besoin d'un programmeur, j'ai un ST-Link V2 chinois. Capable de programmer et STM8 et STM32.

3. Choisir un IDE


Pour moi, la question du choix n'est pas encore d'actualité, je travaille dans l'IAR pour STM8, car il a fait un projet sur lequel je travaille actuellement, pour la même raison l'ancienne version.

Nous allons sur le site iar.com , dans la recherche nous tapons le modèle de notre MK.
Téléchargez IAR Embedded Workbench pour STM8, sélectionnez l'évaluation à taille limitée lors de l'installation et installez une limite de 8 Ko de code. Ou acheter. Il existe des versions piratées sur les ressources interdites sur le territoire de la Fédération de Russie, mais elles ne conviennent pas aux projets commerciaux.

Les instructions d'installation se trouvent dans le programme d'installation ou dans Google.
J'utilise la version 6.5.3.2581.
Installez l'environnement, ainsi que le pilote du programmeur.

4. Création d'un projet


Allez dans l'IDE, allez dans Projet -> Créer un nouveau projet -> C ++

Cliquez sur OK, sélectionnez le répertoire (de préférence sans cyrillique et sans espaces), sélectionnez le nom (sans espaces et cyrillique).

Nous allons dans le dossier racine de notre IDE et trouvons le dossier inc, pour moi le chemin:

C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\stm8\inc 


Parmi les fichiers d'en-tête iostm8, nous trouvons notre modèle MK, pour moi:

 iostm8s105k6.h 

Nous le connectons au tout début et ajoutons une boucle infinie.

Résultat:
 #include<iostm8s105k6.h> //  int main() { while(1){ //  } return 0; } 


Dans le menu Projet -> Options -> Options générales dans la colonne Appareil sélectionnez votre MK.

Dans Projet -> Options -> Débogueur dans la colonne Pilote, sélectionnez ST-LINK.

Recherchez le bouton Télécharger et déboguer dans la barre d'outils.
Lors de la première compilation, l'environnement vous demandera de sélectionner le nom du fichier .eww. (Je nomme le même que le projet.)

Au bas de la fenêtre du journal de débogage doivent se trouver des messages qui:

  • Préprocesseur pour STM8 - préprocesseur démarré
  • Débogueur pour STM8 - débogage démarré
  • Connecté au système de débogage SWIM STM8 - connecté à MK
  • Débogué chargé - le téléchargement du micrologiciel a eu lieu
  • Réinitialisation de la cible - une réinitialisation s'est produite

Nous sommes en mode débogage, mais le programme est suspendu.
Au même endroit sur la barre d'outils, nous trouvons et appuyez sur le bouton Go.
Nous avons lancé MK en mode débogage.

Cliquez sur Arrêter le débogage, le débogage s'arrête, mais le MK est alimenté par le programmeur puis exécute le programme, à savoir, il fait tourner une boucle sans fin et ne fait rien.

Résumé


Le résultat a été un bref aperçu et une introduction à la programmation de la série STM8S de MKs sans programmation elle-même. Il s'est avéré que la base du travail, à partir de cela, généralement tout commence - avec l'assemblage de la mise en page.

Je ne vois pas le point plus en détail.

Dans de nombreux articles, après l'introduction, littéralement après quelques lignes, les LED clignotent, ce que je ne comprends pas.

On peut juger de la manière dont les objectifs ont été atteints si le débutant a réussi à faire quelque chose par lui-même, en utilisant les informations que j'ai proposées. (fenêtre d'indicateur Journal de débogage)

Merci de votre attention.

Source: https://habr.com/ru/post/fr465597/


All Articles