Kategorien: Mikrocontroller-Schaltungen
Anzahl der Ansichten: 23111
Kommentare zum Artikel: 0

PIC-Mikrocontroller für Anfänger

 

Auf dem modernen Markt gibt es eine Reihe von Familien und Serien von Mikrocontrollern verschiedener Hersteller, darunter AVR, STM32 und PIC. Jede der Familien hat ihren eigenen Anwendungsbereich gefunden. In diesem Artikel werde ich Anfängern etwas über PIC-Mikrocontroller erzählen, nämlich was es ist und was Sie wissen müssen, um mit ihnen zu beginnen.

PIC-Mikrocontroller für Anfänger

Was ist ein PIC?

PIC ist der Name einer Reihe von Mikrocontrollern, die von Microchip Technology Inc (USA) hergestellt werden. Der Name PIC stammt vom Peripheral Interface Controller.

PIC-Mikrocontroller haben eine RISC-Architektur. RISC - ein abgekürzter Befehlssatz, wird auch in Prozessoren für mobile Geräte verwendet. Es gibt eine Reihe von Beispielen für seine Verwendung: ARM, Atmel AVR und andere.

Im Jahr 2016 kaufte Microchip Atmel, einen Hersteller von AVR-Controllern. Daher präsentiert die offizielle Website Mikrocontroller der Familie sowie PIC und AVR.

Mikrocontroller PIC16F1xxx

Familien

Unter den 8-Bit-PIC-Mikrocontrollern besteht es aus 3 Familien, die sich in der Architektur unterscheiden (Bittiefe und Befehlssatz).

  • Basislinie (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • Mittelklasse (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Verbesserte Mittelklasse (PIC12F1xxx, PIC16F1xxx);

  • High-End oder PIC18 (18Fxxxx, 18FxxJxx und 18FxxKxx).

Vergleich von Mikrocontrollerfamilien

Die Eigenschaften sind in der folgenden Tabelle angegeben.

PIC-Mikrocontroller-Funktionen

Zusätzlich zu 8-Bit-Mikrocontrollern produziert Microchip 16-Bit:

  • PIC24F;

  • DsPIC30 / 33F zur Signalverarbeitung.

Vertreter der 16-Bit-Familie arbeiten mit Geschwindigkeiten von 16 bis 100 MIPS (Millionen von Anweisungen pro Sekunde abgeschlossen). Es ist erwähnenswert und Funktionen:

  • Maschinenzyklus - 2 Zyklen;

  • ADC-Auflösung - 16 Bit;

  • unterstützt eine Reihe von Kommunikationsprotokollen (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN und SENT), PWM und mehr.

Es gibt auch eine Familie von 32-Bit-Mikrocontrollern - PIC32MX, die Hauptmerkmale:

  • arbeiten mit einer Frequenz von bis zu 120 MHz;

  • Führen Sie bis zu 150 MIPS durch

  • ADC: 10 Bit, 1 Msps (Quantisierungsgeschwindigkeit), bis zu 48 Kanäle.



Mit welchem ​​PIC soll ich anfangen?

Anfänger sollten PIC-Mikrocontroller über eine 8-Bit-Leitung beherrschen. Im Allgemeinen behauptet der Hersteller, dass das Merkmal der gesamten Familie die einfache Portabilität von Programmen von einer Familie zur anderen und die Pinbelegung einer Reihe von Modellen ist.

Einer der beliebtesten Mikrocontroller in der Amateurfunkumgebung ist PIC16f628A. Seine technischen Eigenschaften sind wie folgt:

  • Es gibt einen eingebauten Taktgenerator. Sie können auf eine Frequenz von 4 oder 8 MHz einstellen.

  • 18 Pins, davon 16 - Ein- / Ausgang und 2 - Leistung;

  • Um bei Frequenzen bis zu 20 MHz zu arbeiten, können Sie einen Quarzresonator anschließen. In diesem Fall sind jedoch nicht mehr 16, sondern 14 Beine für die Ein- / Ausgabe übrig.

  • In der Markierung befindet sich ein Buchstabe F, was bedeutet, dass ein FLASH-Speicher mit einer Kapazität von 2048 Wörtern verwendet wird.

  • 14-Bit-Anweisungen, 35 Stück;

  • 2 Komparatoren;

  • 4 analoge Eingänge;

  • PORTB-Eingänge haben Pull-up-Widerstände;

  • Zwei 8-Bit-Timer und ein 16-Bit-Timer;

  • Maschinenzyklus - 4 Zyklen eines Quarzresonators oder internen Oszillators);

  • 224 Bytes RAM;

  • 128 Bytes EEPROM;

  • USART - serielle Schnittstelle;

  • interne Spannungsreferenz;

  • betrieben von 3,3 bis 5 V.

Die Gründe für seine Beliebtheit sind der niedrige Preis und die Fähigkeit, von einem internen Generator aus zu takten.

Welche Pinbelegung von 16f628 ist unten dargestellt:

Pinbelegung bei 16f628

Die blockinterne Schaltung dieses Mikrocontrollers ist unten gezeigt.

Mikrocontroller-Struktur 16f628

Worauf sollte ich im Schema überhaupt achten?

Dieser Mikrocontroller verfügt über zwei Ports PORTA und PORTB. Jeder Pin kann als Ein- und Ausgang sowie zum Anschließen von Peripheriegeräten oder zum Aktivieren anderer Mikrocontrollermodule verwendet werden.

Betrachten Sie diesen Teil des Schemas im Großen und Ganzen.

MK-Ports

Beispielsweise können die Ports RB0-RB3 - als analog fungieren. Bei Bedarf wird eine Taktquelle an RA6, RA7 (Quarzresonator) Die Mikrocontroller-Pins selbst werden im Eingabe- / Ausgabemodus unter Verwendung des TRIS-Registers konfiguriert.

Es gibt Befehle für diesen Typ:

TRISA = 0; // Alle Pins von Port A werden als Ausgänge gesetzt
TRISB = 0xff; // Alle Pins von Port B werden als Eingänge zugewiesen
TRISA0 = 1; // Ein separater Pin wird also als Eingang (1) oder Ausgang (0) zugewiesen.
TRISA5 = 1// hier wird der 5. Ausgang von Port A als Eingang zugewiesen

Im Allgemeinen werden die Betriebsmodi, die Einbeziehung eines WDT (Watchdog-Timer), die Auswahl der Taktquelle des Mikrocontrollers usw. unter Verwendung von Spezialregistern - SFR - konfiguriert, und der Speicher und die Daten werden in GFR gespeichert - in einfachen Worten, dies ist statischer RAM.

Im offiziellen Datenblatt finden Sie auf den Seiten 18-21 4 Speicherbänke für Sonderregister SFR und Allzweckregister GFR. Die Kenntnis der Register ist wichtig. Drucken Sie daher die angegebenen Seiten aus und lernen Sie sie ab Datenblatt.

Der Einfachheit halber werden diese Tabellen in Form von Bildern unten dargestellt (die Nummerierung der Register beginnt, wie alles in der digitalen Elektronik, bei 0, die vierte Nummer ist also 3).

Sonderregister
Sonderregister
Sonderregister
Sonderregister

Wie verbinde ich mich und in welcher Sprache programmiere ich?

Um diesen Mikrocontroller auszuführen, reicht es aus, Plus auf Vdd und Minus auf Vss anzuwenden. Wenn Sie einen Quarzresonator benötigen, wird dieser an die Pins 16 und 15 (OSC1 und OSC2) des PIC16f628-Mikrocontrollers angeschlossen, für andere Controller mit einer größeren oder kleineren Anzahl von Pins - Schauen Sie im Datenblatt. Dieser Punkt muss jedoch bei der Programmierung und Firmware angegeben werden.

Apropos Portabilität und Zufall der Pinbelegung - bei 16f84A - ist es ähnlich und bei vielen anderen.

Anschluss eines Quarzresonators

Ein Fragment eines Stromkreises mit einem externen Resonator, der an pic16f628a angeschlossen ist:

Schaltungsfragment mit einem externen Resonator, der an pic16f628a angeschlossen ist

Es gibt zwei Hauptsprachen für die Programmierung von PIC-Mikrocontrollern - Assembler und C, es gibt andere, zum Beispiel PICBasic usw. Sie können weiterhin die vereinfachte Programmiersprache JAL (nur eine andere Sprache) hervorheben.

Im Folgenden finden Sie beispielsweise ein Programm für „LED-Blinken“ - eine Art „Hallo Welt“ für den PIC-Mikrocontroller in C.

Ein Beispiel für ein PIC-Mikrocontroller-Programm in C.

In Zeile 1 wird die PIC-Mikrocontrollerbibliothek angeschlossen, dann wird die Verzögerungsprogrammbibliothek angeschlossen.

In der Hauptfunktion (void) werden die Anfangsparameter zu Beginn eingestellt, genau wie in der Funktion Void setup () - in Artikeln über Arduino. Dann wird in den Zeilen 11-16 eine Endlosschleife while (1) deklariert, während der das Programm "LED blinkt" ausgeführt wird.

In dem Beispiel wird der Zustand des Ports ständig invertiert, d.h. Wenn es bei "0" war, geht es zu "1" und umgekehrt. In C für PIC gibt es die folgenden Befehlsverwaltungsbefehle:

PORTA = 0; // übersetzt alle Pins von Port A auf einen niedrigen Pegel (log. 0)
PORTB = 0xff; // übersetzt alle Pins von Port B auf eine hohe Ebene (log. 1)
RB5 = 1; // Der fünfte Pin von Port B ist hoch

Und es sieht aus wie das gleiche Programm, aber bereits in der JAL-Sprache habe ich von den Entwicklern der in JALedit (Entwicklungsumgebung) integrierten Beispiele in russische Kommentare übersetzt.

Beispiel für ein JAL-Programm

Es besteht die Versuchung, sich für JAL zu entscheiden, und es scheint Ihnen einfacher zu sein. Natürlich können Sie alle Projekte darauf implementieren, aber aus Sicht des Nutzens für Sie als Spezialist ist es eine nutzlose Sprache. Sie erzielen deutlich bessere Ergebnisse, wenn Sie die Syntax und die Prinzipien der Programmierung in C (die meisten derzeit gängigen Sprachen sind C-ähnlich) oder in Assembler studieren. Dies ist eine einfache Sprache, mit der Sie das Prinzip des Geräts und die jeweiligen Programmabläufe verstehen.


Wie man arbeitet

Wenn Sie ganz allgemein sagen, dass Sie mit Mikrocontrollern arbeiten möchten, benötigen Sie:

1. Texteditor.

2. Der Compiler.

3. Das Programm zum Herunterladen der Firmware auf den Mikrocontroller.

Und ich habe sogar alte Lehrbücher gelesen, in denen der Autor unter DOS Code geschrieben, Code kompiliert und mit verschiedenen Mitteln geflasht hat. Jetzt gibt es für alle gängigen Betriebssysteme Entwicklungsumgebungen, die sowohl hochspezialisiert (für eine bestimmte Familie von Mikrocontrollern oder Familien eines Herstellers) als auch universell (entweder alle erforderlichen Tools enthalten oder als Plug-Ins angeschlossen sind).

Zum Beispiel haben wir in einer Reihe von Artikeln über Arduino die Arduino IDE-Umgebung untersucht, darin Code geschrieben und mit seiner Hilfe die Firmware in „Stein“ „gegossen“. Für PIC-Mikrocontroller gibt es Programme wie:

  • MPASM - wird für die Entwicklung in der Assembler-Sprache von Microchip verwendet;

  • MPLAB ist auch die Microchip-IDE für PIC-Controller. Es besteht aus vielen Blöcken zum Testen, Überprüfen, Arbeiten mit Code und Kompilieren von Programmen sowie zum Herunterladen auf den Mikrocontroller. Es gibt auch eine Version von MPLAB X IDE - sie bietet großartige Funktionen und basiert auf der NetBeans-Plattform;

  • MikroC ist eine universelle Umgebung (nicht nur für PIKs) für die Entwicklung. Wie der Name schon sagt, ist es für die C-Programmierung „geschärft“, und es gibt auch Programme wie MikroBasic und MikroPascal für die entsprechenden Sprachen;

  • JALedit - geeignet für die oben erwähnte JAL-Sprache;

  • Und eine Reihe anderer weniger bekannter.

MPLAB IDE

Wie flashe ich einen Mikrocontroller?

Es gibt eine Reihe von Programmierern für PIC-Mikroroller. Offiziell als PICkit betrachtet. Ihre 4 Versionen. Sie können jedoch Flash und Universal verwenden, z. B. TL866 (es unterstützt fast alles, was ein unerfahrener Funkamateur möglicherweise benötigt, obwohl es sehr billig ist).

Programmierer für PIC-Mikroroller

Ebenfalls im Netzwerk gibt es eine Reihe verschiedener Programmierschaltungen für PICs, die beide über den COM-Port arbeiten:

Programmierschaltung

So ist es über USB (in der Tat auch com, nur über den Konverter am IC MAX232).

Programmierschaltung

Fazit

PIC16-Mikrocontroller eignen sich für einfache Projekte wie einfache Automatisierung, Voltmeter, Thermometer und andere kleine Dinge. Dies bedeutet jedoch nicht, dass Sie keine komplexen und großen Projekte für diese Familie durchführen können. Ich habe ein Beispiel gegeben, warum sie am häufigsten verwendet werden. Für eine allgemeine Idee empfehle ich, ein paar Videos anzuschauen:

In einem Artikel ist es sinnlos, Themen zum Programmieren von Mikrocontrollern zu betrachten, unabhängig von der Familie. Da dies eine sehr große Menge an Informationen ist.

Siehe auch auf i.electricianexp.com:

  • Arten und Anordnung von AVR-Mikrocontrollern
  • Mikrocontroller-Programmierung für Anfänger
  • Was sind Mikrocontroller - Zweck, Gerät, Software
  • Programmierbare Mikrocontroller in JavaScript: Auswahl, Eigenschaften ...
  • Methoden zum Lesen und Verwalten von Arduino-E / A-Ports

  •