Hallo allerseits. In diesem Artikel wollte ich darüber sprechen, wie ich gelernt habe, mit Mikrocontrollern zu arbeiten
(im Folgenden als MK bezeichnet) und in welche Fallstricke ich geflogen bin. Ich muss gleich sagen - der Artikel erhebt keinen Anspruch auf Exklusivität, da jeder, der mit MK arbeitet, das durchgemacht hat, was ich durchgemacht habe. Ich bitte Sie, nicht streng zu urteilen, sondern es als Geschichte zu lesen.

Anstatt mitzumachen
Mein erstes Interesse an MK entstand, als ich in der 10. Klasse war. Zu dieser Zeit war 2009. Ich wusste, wie man in QBasic und Visual Basic - einem Schulprogramm - ein wenig auf dem PC programmiert, aber es kam vor, dass ich nicht viel über das Programmieren wusste und der Mangel an Fachleuten für Elektronik und MK ihren Job erledigte - für mich war es eine neue Nische. Obwohl ich seit meiner Kindheit an Brettern und Mikrokreisläufen bastelte, die in Mülltonnen gefunden wurden, verstand ich wirklich nicht, wie es funktionierte - niemand konnte es wirklich erklären. Wie der Transistor normal funktionierte, erfuhr ich erst ein paar Jahre nach den beschriebenen Ereignissen. Bei der Auswahl des ersten MK habe ich mir die Eigenschaften auf der CHIP-DIP-Website angesehen. Ehrlich gesagt - für mich war es wie Hieroglyphen. Hab also keine Angst davor. Und ja, damals hatte niemand eine Ahnung von Arduino.
Wie alles begann
Begann bei Yandex und Google zu kommissionieren. Ich habe verstanden, dass der Controller selbst die halbe Miete ist, ich brauche auch ein Programm. Und wie in der Einleitung gesagt, hatte ich nicht viel mit dem Programmieren zu tun. Am Ende bin ich zu einer Seite gekommen. Wie sich später herausstellte, habe ich diese Seite wirklich "verstanden". Der Ersteller der Website schrieb auch ein Programmierlehrbuch, ich lud das Lehrbuch freudig herunter und das erste, was ich dort sah, war „Ich habe PIC16F84A als Modell für die Arbeit verwendet“. Eigentlich habe ich so meinen ersten MK ausgewählt. Jetzt ist die Frage, warum ich es "verstanden" habe. Und ich bin dorthin gekommen, weil der Schöpfer dieses Lehrbuchs und dieser Website vorgeschlagen hat, MK in ASSEMBLER zu programmieren. Nicht alle geübten Programmierer wissen es, aber hier ist ein Neuling ... Ich habe den Controller bereits bestellt, und erst dann habe ich leider angefangen, das Lehrbuch zu lesen.
Wie bin ich aus meiner Position gekommen?
Nachdem ich merkte, dass ich nichts verstand, gab ich MK für ein paar Jahre auf, aber gleichzeitig stöberte ich in Foren wie Scheme.net und anderen herum und bekam allmählich ein Verständnis für das Problem. Ich habe mich übrigens für das Modell PIC16F877A entschieden.
Also, was muss ein Anfänger wissen:
Ein Mikrocontroller ist ein kleiner Computer, er verfügt auch über ein Rechenwerk - einen Prozessor, RAM und eine Art Festplatte - Programm und Datenspeicher, aber alles in einem Chip. Entsprechend weist es je nach Modell und Hersteller (vorläufig) folgende Eigenschaften auf:
- Betriebsfrequenzen von Geräten bis ~ 100 MHz verwende ich bei meinen Geräten in der Regel Frequenzen von 20 MHz, nämlich MEGAhertz und nicht GIGAhertz. Die Frequenz wird von einer externen Taktquelle - einem Quarz- oder Keramikresonator - eingestellt.

- RAM - Einheiten und zehn Kilobyte
- Die Speicherkapazität für Daten und Programm beträgt mehrere zehn Kilobyte. Bei Bedarf können Sie den Speicher für Daten mithilfe von Speicherchips erweitern. Um mit diesen Mikrokreisen den Speicher für ein Programm zu erweitern, sollte ein Anfänger vergessen, dass nicht jeder Profi es richtig machen kann und dass nicht jeder Mikrocontroller es erlaubt, die Firmware während des Betriebs zu ändern.
- Betriebsspannung von 1 bis 5 Volt, je nach Modell und Hersteller.
Der Mikrocontroller ist so konzipiert, dass er auf der Platine, beispielsweise in einer bestimmten Hardware, auf der Platine oder im Gerät arbeitet. Also denke nicht, dass du CS darin spielen kannst :)
Programmiersprachen
Er fing an, eine Programmiersprache und eine Umgebung zu wählen, in der man programmieren kann. Da ich Basic irgendwie kannte, dachte ich, dass es schön wäre, es zu überspringen. Ja, es ist nicht sehr perfekt und immer noch sehr mangelhaft, aber für den Anfang war es sehr gut geeignet. Ich hatte Glück, es stellte sich heraus, dass es eine PIC-Basic-Sprache gibt. Ihm zufolge gibt es ein Lehrbuch, das vom Autor Chuck Helibike in die russische Führung übersetzt und tatsächlich den ganzen Weg weiter durch das Lehrbuch und Handbuch gegangen ist. Die Umgebung funktioniert unter DOS, aber Sie können CodeStudio schrauben und alles wird unter Windows funktionieren.
Programmierer
Das nächste Problem, das mir im Weg stand, war das Schreiben des Programms auf den Chip. Es ist klar, dass Sie einen Programmierer benötigen. Ich habe mich entschlossen zu sparen. Ich habe versucht, mehrere Schaltkreise aus diesen in Ihrem Internet zu sammeln. Ein Schema reicht nicht aus, wir brauchen auch ein Programm, das mit dem Programmierer (der Hardware) den Code im Speicher ablegt. Alle meine Experimente scheiterten aufgrund der geringen Erfahrung. Ich habe mich entschieden, den Rauch, der von den Chips kommt, nicht mehr anzusehen und habe PICKit3 bestellt, nachdem ich keine Probleme mehr kannte, habe ich ein paar Tage damit gespielt und es hat funktioniert.

Was ein Anfänger wissen muss:
- Derzeit gibt es angepasste Programmiersprachen für MK, das gleiche Basic, SI und andere.
- Nach dem Schreiben des Programms wird es in Maschinencode kompiliert - eine Datei mit der Erweiterung HEX, die in den MK-Speicher geflasht werden muss.
- Um "Flash MK" - ausführbaren Code darin zu schreiben, benötigen Sie zwei Dinge:
1) die Programmierplatine, bei der es sich um ein Zwischengerät zwischen dem Computeranschluss und dem Chip selbst handelt
2) Ein Programmiererprogramm, das weiß, wie man mit einem Programmierer arbeitet, der nach einem bestimmten Schema zusammengesetzt ist.
Das heißt, das Programm auf dem PC muss wissen, welche Schaltung mit dem PC verbunden ist, um den Chip korrekt flashen zu können. In meinem Fall ist dies eine Werkslösung - zusammen mit dem PicKit-Programmierer gibt es eine Diskette mit den erforderlichen Programmen. - Es gibt eine begrenzte Menge an Speicher in MK, dies muss berücksichtigt werden, manchmal muss man jedes Byte der Firmware ausschneiden, nur um in den Speicher des Chips zu gelangen. Es sollte auch klar sein, dass es in MK kein Betriebssystem gibt und Ihre Firmware die einzigen Daten sind, die MK kennt.
Ein paar Worte zur Peripherie
Zur Verbindung mit der Außenwelt und zur Erleichterung der Arbeit und Entwicklung sind im MC verschiedene periphere Schaltkreise eingebaut, beispielsweise ein ADC - ein Analog-Digital-Wandler, damit Sie die am MK-Ausgang anliegende Spannung ohne unnötiges Umreifen messen können, sie sollte jedoch nicht höher sein als die Versorgungsspannung, andernfalls der Chip wird brennen. Mit einem Spannungsteiler können Sie beispielsweise ein Voltmeter herstellen. Peripheriegeräte, die Anzahl der eingebauten Funktionen und deren Eigenschaften hängen in der Regel auch vom Modell ab. Je teurer das Modell, desto umfangreicher das Paketbündel. Vergessen Sie auch nicht, dass der Controller über eine begrenzte Anzahl von Beinen verfügt, an die Sie eine Verbindung herstellen können.
Zum Beispiel hat PIC16F877A 40 Stück, und 7 Stück fliegen sofort raus, weil Zum Einschalten, Anschließen des Resonators und Steuern des Notfall-Resets. Sie müssen auch die Dokumentation für den Chip sorgfältig lesen. Zum Beispiel der gleiche ADC - im PIC16F877A kann er nur die Spannung an 8 spezifischen Zweigen des Chips messen, an anderen nicht. Das heißt, für jede integrierte Funktion werden spezifische Schlussfolgerungen zugewiesen, die nicht geändert werden können.
Das Wesentliche dieser Fabel ist dies
MK wirklich von Grund auf zu meistern, aber es gibt Stellen, an denen es nicht sehr klar ist. Wenn Sie noch nie auf Programmierung gestoßen sind, lernen Sie zunächst mindestens die Grundlagen der Programmierung und schreiben Sie „Hello World“ auf Ihren Computer. Danach wird es einfacher. Wenn Sie nicht zu viel stören wollen - Arduino ist Ihr Alles. MK sind für den Einsatz in Hardware konzipiert - Steuereinheiten, Platinen, Steuerungen usw. usw. Dies ist kein vollwertiger Computer, sondern eine Steuerung. Und erwarten Sie jeweils von ihm. Der Nutzen steckt jetzt voller Beispiele auf YouTube, und ich hoffe, dass meine Erfahrung, bei Null anzufangen, nicht so bitter ist und mein Artikel jemandem hilft.