Comment j'ai appris à travailler avec des microcontrôleurs - une expérience pour débutant

Bonjour à tous. Dans cet article, je voulais parler de la façon dont j'ai appris à travailler avec des microcontrôleurs
(ci-après dénommé MK) et dans quels pièges je me suis rendu. Je dois dire tout de suite - l'article ne prétend pas être exclusif, car toute personne travaillant avec MK a vécu ce que j'ai vécu. Je vous demande de ne pas juger strictement, mais de le lire comme une histoire.



Au lieu de rejoindre


Mon premier intérêt pour MK est apparu lorsque j'étais en 10e année. À cette époque, c'était en 2009. Je savais comment programmer un peu sur PC en QBasic et Visual Basic - un programme scolaire, mais cela s'est produit de sorte que je ne connaissais pas grand-chose à la programmation, et le manque de personnes compétentes en électronique et en MK a fait leur travail - pour moi, c'était un nouveau créneau. Bien que depuis mon enfance, je bricolais des planches et des microcircuits trouvés dans des poubelles, mais je ne comprenais vraiment pas comment cela fonctionnait - personne ne pouvait vraiment l'expliquer. Comment le transistor fonctionnait-il normalement, je ne l'ai découvert que quelques années après les événements décrits. Quand j'ai choisi le premier MK, j'ai regardé les caractéristiques sur le site CHIP-DIP. Franchement - pour moi, c'était comme des hiéroglyphes. N'ayez donc pas peur de cela. Et oui, personne n'avait alors la moindre idée d'Arduino.

Comment tout a commencé


A commencé la cueillette chez Yandex et Google. J'ai compris que le contrôleur lui-même représente la moitié de la bataille, j'ai également besoin d'un programme. Et comme dit dans l'introduction, je n'avais pas grand-chose avec la programmation. En fin de compte, je suis arrivé sur un site. Comme il est devenu clair plus tard, j'ai vraiment "eu" ce site. Le créateur du site a également écrit un manuel de programmation, j'ai joyeusement téléchargé le manuel et la première chose que j'ai vue était «J'ai utilisé PIC16F84A comme modèle de travail». En fait, c'est comme ça que j'ai choisi mon premier MK. Maintenant, la question est de savoir pourquoi je l'ai "eu". Et j'y suis arrivé parce que le créateur de ce manuel et de ce site a suggéré de programmer MK dans ASSEMBLER. Tous les programmeurs pratiquants ne le savent pas, mais voici un débutant ... J'ai déjà commandé le contrôleur, et c'est seulement alors que j'ai commencé à lire le manuel, malheureusement.

Comment suis-je sorti de ma position


Après avoir réalisé que je ne comprenais rien, j'ai abandonné MK pendant quelques années, mais en même temps, je fouillais dans des forums comme Scheme.net et d'autres, et peu à peu, une compréhension du problème est venue à moi. J'ai décidé d'étudier d'ailleurs sur le modèle PIC16F877A.

Donc, ce qu'un débutant doit savoir:


Un microcontrôleur est un petit ordinateur, il possède également un dispositif arithmétique et logique - un processeur en fait, et de la RAM et une sorte de disque dur - un programme et une mémoire de données, mais tout se fait sur une seule puce. En conséquence, selon le modèle et le fabricant, il présente les caractéristiques suivantes (provisoirement):

  • Fréquences de fonctionnement des unités à ~ 100 MHz, j'utilise personnellement dans mes appareils, en règle générale, des fréquences de 20 MHz, à savoir MEGAhertz, et non GIGAhertz. La fréquence est réglée par une source d'horloge externe - un résonateur à quartz ou en céramique.

  • RAM - unités et dizaines de kilo-octets
  • La quantité de mémoire pour les données et le programme peut atteindre plusieurs dizaines de kilo-octets. Si vous le souhaitez, vous pouvez étendre la mémoire pour les données à l'aide de puces de mémoire. Afin d'utiliser ces microcircuits pour étendre la mémoire d'un programme, un débutant doit oublier que tous les professionnels ne peuvent pas le faire correctement et que tous les microcontrôleurs ne vous permettent pas de modifier votre micrologiciel pendant le fonctionnement.
  • Tension de fonctionnement de 1 à 5 volts, selon le modèle et le fabricant.

Le microcontrôleur est conçu pour fonctionner sur la carte, disons, dans un matériel spécifique, sur la carte, dans l'appareil. Alors ne pensez pas que vous pouvez y jouer CS :)

Langages de programmation


Il a commencé à choisir un langage de programmation et un environnement dans lequel vous pouvez programmer. Comme je connaissais en quelque sorte Basic, j'ai pensé que ce serait bien de l'ignorer. Oui, ce n'est pas très parfait et il y a encore beaucoup de défauts, mais pour commencer c'était très approprié. J'ai eu de la chance, il s'est avéré qu'il existe un langage PIC-Basic. Selon lui, il y a un manuel, l'auteur Chuck Helibike et traduit en leadership russe, a en fait parcouru tout le manuel et le manuel. L'environnement fonctionne sous DOS, mais vous pouvez visser CodeStudio et tout fonctionnera sous Windows.

Programmeur


Le problème suivant qui m'a empêché était de savoir comment écrire le programme sur la puce. Il est clair que vous avez besoin d’un programmeur, j’ai décidé de sauvegarder, j’ai essayé de collecter plusieurs circuits à partir de ceux de votre Internet. Un schéma ne suffit pas, nous avons également besoin d'un programme qui, en utilisant le programmeur (le matériel), stockera le code en mémoire. Toutes mes expériences se sont soldées par un échec, faute d'expérience. J'ai décidé de ne plus regarder la fumée provenant des puces et j'ai commandé PICKit3, après ça je n'ai pas eu de problème, j'ai joué avec pendant quelques jours et ça a marché.



Ce qu'un débutant doit savoir:



  • Actuellement, il existe des langages de programmation adaptés pour MK, les mêmes Basic, SI et autres.
  • Après avoir écrit le programme, il est compilé en code machine - un fichier avec l'extension HEX, il doit être flashé dans la mémoire MK.
  • Pour «flasher MK» - pour y écrire du code exécutable, vous avez besoin de deux choses:

    1) la carte de programmation, qui est un périphérique intermédiaire entre le connecteur de l'ordinateur et la puce elle-même
    2) Un programme programmeur qui saura travailler avec un programmeur assemblé selon un schéma spécifique.
    Autrement dit, il est nécessaire que le programme sur le PC sache quel circuit est connecté au PC afin de flasher correctement la puce. Dans mon cas, c'est une solution d'usine - avec le programmeur PicKit, il y a un disque avec les programmes nécessaires.
  • Il y a une quantité limitée de mémoire dans MK, cela doit être pris en compte, parfois vous devez couper chaque octet du firmware, juste pour entrer dans la mémoire de la puce. Il faut également comprendre qu'il n'y a pas de système d'exploitation dans MK et que votre micrologiciel est la seule donnée que MK connaisse.

Quelques mots sur la périphérie


Pour la connexion avec le monde extérieur et la commodité du travail et du développement, divers circuits périphériques sont intégrés dans le MC, par exemple, un ADC - un convertisseur analogique-numérique, de sorte que vous pouvez mesurer la tension fournie à la sortie MK sans cerclage inutile, mais elle ne doit pas être supérieure à la tension d'alimentation, sinon la puce va brûler. À l'aide d'un diviseur de tension, vous pouvez faire un voltmètre, par exemple. Les périphériques, le nombre de fonctions intégrées et leurs caractéristiques dépendent également du modèle, en règle générale, plus le modèle est cher, plus le paquet est riche. N'oubliez pas non plus que le contrôleur a un nombre limité de pieds auxquels vous pouvez vous connecter.

Par exemple, PIC16F877A en a 40, et 7 pièces s'envolent immédiatement, car utilisé pour alimenter, connecter le résonateur et contrôler la réinitialisation d'urgence. Vous devez également examiner attentivement la documentation de la puce. Par exemple, le même ADC - dans le PIC16F877A, il ne peut mesurer la tension que sur 8 branches spécifiques de la puce, sur d'autres il ne le peut pas. En d'autres termes, pour chaque fonction intégrée, des conclusions spécifiques sont attribuées et ne peuvent pas être modifiées.

L'essence de cette fable est la suivante


Maîtriser le MK vraiment même à partir de zéro, mais il y a des endroits où ce n'est pas très clair. Si vous n'avez jamais rencontré de programmation, apprenez d'abord au moins les bases de la programmation et écrivez «Hello World» sur votre ordinateur. Après cela, ce sera plus facile. Si vous ne voulez pas trop vous embêter, Arduino est tout pour vous. MK sont conçus pour une utilisation dans le matériel - unités de contrôle, cartes, contrôleurs, etc. etc., ce n'est pas un ordinateur à part entière, mais un contrôleur. Et attendez de lui, respectivement. L'avantage est maintenant plein d'exemples sur YouTube, et j'espère que mon expérience à partir de zéro ne sera pas aussi amère et que mon article aidera quelqu'un.

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


All Articles