- Architektur und Anwendungen des PIC-Mikrocontrollers:
- Auswahl des PIC-Mikrocontrollers für unsere Tutorials:
- Auswahl der Software für unsere Tutorials:
- Vorbereitungen mit Hardware:
1980 entwickelte Intel den ersten Mikrocontroller (8051) mit Harvard Architecture 8051 und seitdem brachten Mikrocontroller eine Revolution in der Elektronik- und Embedded-Industrie. Und mit dem technologischen Fortschritt im Laufe der Zeit haben wir jetzt viel effizientere und stromsparende Mikrocontroller wie AVR, PIC, ARM. Diese Mikrocontroller sind leistungsfähiger und benutzerfreundlicher und verfügen über die neuesten Kommunikationsprotokolle wie USB, I2C, SPI, CAN usw. Selbst Arduino und Raspberry Pi haben die Perspektive in Richtung Mikrocontroller grundlegend geändert, und Raspberry Pi ist nicht nur ein Mikrocontroller, sondern ein Ganzes Computer im Inneren.
Dies ist der erste Teil einer Reihe von Tutorials, die noch ausstehen und Ihnen beim Erlernen von PIC-Mikrocontrollern helfen werden. Wenn Sie einen elektronischen Hintergrund haben und schon immer mit dem Erlernen einiger Mikrocontroller beginnen und sich in die Welt des Codierens und Bauens einarbeiten möchten, ist diese Reihe von Tutorials zunächst Ihr erster Schritt.
Der PIC-Mikrocontroller ist eine sehr bequeme Wahl, um mit einem Mikrocontroller-Projekt zu beginnen, da er über hervorragende Support-Foren verfügt und als solide Basis dient, um auf all Ihren fortschrittlichen Mikrocontrollern aufzubauen, die Sie noch nicht gelernt haben.
Diese Tutorials sind für absolute oder fortgeschrittene Lernende gedacht. Wir haben geplant, mit den grundlegendsten Projekten zu den fortgeschrittenen zu beginnen. Wir erwarten von den Lernenden keine Voraussetzungen, da wir hier sind, um Ihnen auf allen Ebenen zu helfen. Jedes Tutorial enthält eine theoretische Erklärung und Simulation, gefolgt von einem praktischen Tutorial. Diese Tutorials beinhalten keine Entwicklungsboards, wir erstellen unsere eigenen Schaltkreise mit einem Perf-Board. Machen Sie sich bereit und nehmen Sie sich jede Woche etwas Zeit, um sich mit Mikrocontrollern zu verbessern.
Beginnen wir jetzt mit einer einfachen Einführung in PIC-Mikrocontroller und einigen Software-Setups, damit wir mit unserem nächsten Tutorial beginnen können. Überprüfen Sie das Video am Ende, um MPLABX, XC8, Proteus und ein schnelles Entpacken des PICkit 3-Programmiergeräts zu installieren und einzurichten.
Architektur und Anwendungen des PIC-Mikrocontrollers:
Der PIC-Mikrocontroller wurde 1993 von Microchip Technologies eingeführt. Ursprünglich wurden diese PIC als Teil von PDP- Computern (Programmed Data Processor) entwickelt, und alle Peripheriegeräte des Computers wurden mit diesem PIC-Mikrocontroller verbunden. Daher erhält der PIC seinen Namen für Peripheral Interface Controller. Später hat Microchip viele ICs der PIC-Serie entwickelt, die für jede kleine Anwendung wie eine Beleuchtungsanwendung bis zur fortgeschrittenen verwendet werden können.
Jeder Mikrocontroller soll um eine Architektur herum gebaut werden. Der bekannteste Architekturtyp ist die Harvard-Architektur. Unser PIC basiert auf dieser Architektur, da sie zur klassischen 8051-Familie gehört. Kommen wir zu einem kleinen Intro über die Harvard-Architektur des PIC.
Der Mikrocontroller PIC16F877A besteht aus einer eingebauten CPU, E / A-Ports, Speicherorganisation, A / D-Wandler, Timern / Zählern, Interrupts, serieller Kommunikation, Oszillator und CCP-Modul. Damit ist der IC ein leistungsstarker Mikrocontroller für Anfänger. Das allgemeine Blockdiagramm der PIC-Architektur ist unten dargestellt
CPU (Zentraleinheit):
Der Mikrocontroller verfügt über eine CPU zum Ausführen von arithmetischen Operationen, logischen Entscheidungen und speicherbezogenen Operationen. Die CPU muss zwischen dem RAM und den anderen Peripheriegeräten des Mikrocontrollers koordinieren.
Es besteht aus einer ALU (Arithmetic Logic Unit), mit der es die arithmetischen Operationen und logischen Entscheidungen ausführt. Eine MU (Speichereinheit) ist ebenfalls vorhanden, um die Anweisungen zu speichern, nachdem sie ausgeführt wurden. Diese MU entscheidet über die Programmgröße unseres MC. Es besteht auch aus einer CU (Control Unit), die als Kommunikationsbus zwischen der CPU und anderen Peripheriegeräten des Mikrocontrollers fungiert. Dies hilft beim Abrufen der Daten, nachdem sie in den angegebenen Registern verarbeitet wurden.
Arbeitsspeicher (RAM):
Ein Direktzugriffsspeicher bestimmt die Geschwindigkeit unseres Mikrocontrollers. Der RAM besteht aus Registerbänken, denen jeweils eine bestimmte Aufgabe zugewiesen ist. Insgesamt können sie in zwei Typen eingeteilt werden:
- Allzweckregister (GPR)
- Sonderfunktionsregister (SFR)
Wie der Name schon sagt, werden die GPR für allgemeine Registerfunktionen wie Addition, Subtraktion usw. verwendet. Diese Operationen sind auf 8 Bit begrenzt. Alle Register unter dem GPR sind vom Benutzer beschreibbar und lesbar. Sie haben keine eigenen Funktionen, es sei denn, es handelt sich um eine Software.
Während der SFR verwendet wird, um komplizierte Sonderfunktionen auszuführen, die auch eine 16-Bit-Behandlung beinhalten, können ihre Register nur gelesen (R) und wir können nichts in sie schreiben (W). Diese Register müssen also vordefinierte Funktionen ausführen, die zum Zeitpunkt der Herstellung festgelegt werden, und sie zeigen uns nur das Ergebnis an, mit dem wir einige verwandte Operationen ausführen können.
Nur-Lese-Speicher (ROM):
Der Nur-Lese-Speicher ist der Ort, an dem unser Programm gespeichert wird. Dies bestimmt die maximale Größe unseres Programms; daher wird es auch als Programmspeicher bezeichnet. Wenn die MCU in Betrieb ist, wird das im ROM gespeicherte Programm gemäß jedem Befehlszyklus ausgeführt. Diese Speichereinheit kann nur während der Programmierung des PIC verwendet werden, während der Ausführung wird sie zu einem Nur-Lese-Speicher.
Elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM):
EEPROM ist eine andere Art von Speichereinheit. In dieser Speichereinheit können Werte während der Programmausführung gespeichert werden. Die hier gespeicherten Werte sind nur elektrisch löschbar, dh diese Werte bleiben auch bei ausgeschaltetem IC im PIC erhalten. Sie können als kleiner Speicherplatz zum Speichern der ausgeführten Werte verwendet werden. Der Speicherplatz wird jedoch in KB abwechselnd sehr gering sein.
Flash-Speicher :
Der Flash-Speicher ist auch ein programmierbarer Nur-Lese-Speicher (PROM), in dem wir das Programm tausende Male lesen, schreiben und löschen können. Im Allgemeinen verwendet der PIC-Mikrocontroller diesen ROM-Typ.
E / A-Ports
- Unser PIC16F877A besteht aus fünf Ports, nämlich Port A, Port B, Port C, Port D und Port E.
- Von allen fünf PORTS ist nur Port A 16-Bit und PORT E 3-Bit. Der Rest der PORTS ist 8-Bit.
- Die Pins an diesen PORTS können je nach TRIS-Registerkonfiguration entweder als Eingang oder als Ausgang verwendet werden.
- Neben der Durchführung von E / A-Operationen können die Pins auch für spezielle Funktionen wie SPI, Interrupt, PWM usw. verwendet werden.
Bus:
Der Begriff Bus ist nur ein Bündel von Drähten, die das Eingangs- oder Ausgangsgerät mit CPU und RAM verbinden.
Der Datenbus dient zum Übertragen oder Empfangen der Daten.
Der Adressbus wird verwendet, um die Speicheradresse von den Peripheriegeräten an die CPU zu übertragen. E / A-Pins werden verwendet, um die externen Peripheriegeräte miteinander zu verbinden. UART und USART, beide seriellen Kommunikationsprotokolle, werden zur Anbindung serieller Geräte wie GSM, GPS, Bluetooth, IR usw. verwendet.
Auswahl des PIC-Mikrocontrollers für unsere Tutorials:
PIC Microcontroller von Microchip Company sind in 4 große Familien unterteilt. Jede Familie verfügt über eine Vielzahl von Komponenten, die integrierte Besonderheiten bieten:
- Die erste Familie, PIC10 (10FXXX), heißt Low End.
- Die zweite Familie, PIC12 (PIC12FXXX), heißt Mid-Range.
- Die dritte Familie ist PIC16 (16FXXX).
- Die vierte Familie ist PIC 17/18 (18FXXX)
Da wir anfangen, etwas über PIC zu lernen, wählen wir einen IC aus, der universell verwendet und verfügbar ist. Dieser IC gehört zur 16F-Familie. Die Teilenummer des IC lautet PIC16F877A. Vom ersten Tutorial bis zum Ende werden wir denselben IC verwenden, da dieser IC mit allen erweiterten Funktionen wie SPI, I2C und UART usw. ausgestattet ist. Aber wenn Sie jetzt nichts davon bekommen, ist es völlig in Ordnung, wir werden es tun Gehen Sie jedes Tutorial durch und nutzen Sie schließlich alle oben genannten Funktionen.
Sobald der IC ausgewählt ist, ist es sehr wichtig, das Datenblatt des IC zu lesen. Dies sollte der erste Schritt in jedem Konzept sein, das wir versuchen werden. Nachdem wir diesen PIC16F877A ausgewählt haben, können Sie die Spezifikation dieses IC im Datenblatt durchlesen.
Das Peripherie-Feature erwähnt, dass es 3 Timer hat, von denen zwei 8-Bit- und einer 16-Bit-Prescaler sind. Diese Timer werden verwendet, um Timing-Funktionen in unserem Programm zu erstellen. Sie können auch als Zähler verwendet werden. Es zeigt auch, dass es CCP- Optionen (Capture Compare and PWM) gibt, mit denen wir PWM-Signale erzeugen und die eingehenden Frequenzsignale lesen können. Für die Kommunikation mit einem externen Gerät stehen SPI, I2C, PSP und USART zur Verfügung. Aus Sicherheitsgründen ist es mit einem Brown-out-Reset (BOR) ausgestattet, das beim Zurücksetzen des while-Programms hilft.
Die analogen Funktionen zeigen an, dass der IC über einen 10-Bit-8-Kanal-ADC verfügt. Dies bedeutet, dass unser IC analoge Werte mit einer Auflösung von 10 Bit in digitale konvertieren kann und über 8 analoge Pins zum Lesen verfügt. Wir haben auch zwei interne Komparatoren, mit denen die eingehende Spannung direkt verglichen werden kann, ohne sie tatsächlich über die Software zu lesen.
Die speziellen Mikrocontroller-Funktionen bedeuten , dass der Lösch- / Schreibzyklus 100.000 beträgt, was bedeutet, dass Sie ihn etwa 100.000 Mal programmieren können. In-Circuit Serial Programming ™ (ICSP ™) hilft uns, den IC direkt mit PICKIT3 zu programmieren. Das Debuggen kann über In-Circuit Debug (ICD) erfolgen. Ein weiteres Sicherheitsmerkmal ist der Watchdog Timer (WDT), ein selbstzuverlässiger Timer, der bei Bedarf das gesamte Programm zurücksetzt.
Das folgende Bild zeigt die Pinbelegung unseres PIC16F877A IC. Dieses Bild zeigt jeden Stift gegen seinen Namen und seine anderen Merkmale. Dies finden Sie auch im Datenblatt. Halten Sie dieses Bild griffbereit, damit es uns bei unseren Hardware-Arbeiten hilft.
Auswahl der Software für unsere Tutorials:
Der PIC-Mikrocontroller kann mit verschiedenen auf dem Markt erhältlichen Softwareprogrammen programmiert werden. Es gibt Leute, die immer noch Assemblersprache verwenden, um PIC-MCUs zu programmieren. Für unsere Tutorials haben wir die fortschrittlichste Software und den fortschrittlichsten Compiler ausgewählt, die von Microchip selbst entwickelt wurden.
Um den PIC-Mikrocontroller zu programmieren, benötigen wir eine IDE (Integrated Development Environment), in der die Programmierung stattfindet. Ein Compiler, bei dem unser Programm in eine MCU-lesbare Form namens HEX-Dateien konvertiert wird. Eine IPE (Integrated Programming Environment), mit der unsere Hex-Datei in unseren PIC-MCUs gespeichert wird.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Compiler: XC8
Microchip hat all diese drei Software kostenlos zur Verfügung gestellt. Sie können direkt von ihrer offiziellen Seite heruntergeladen werden. Ich habe auch den Link für Ihre Bequemlichkeit bereitgestellt. Einmal heruntergeladen, installieren Sie sie auf Ihrem Computer. Wenn Sie Probleme damit haben, können Sie das am Ende angegebene Video anzeigen.
Zu Simulationszwecken haben wir die von Labcenter bereitgestellte Software PROTEUS 8 verwendet. Diese Software kann verwendet werden, um unseren mit der MPLABX generierten Code zu simulieren. Es gibt eine kostenlose Demonstrationssoftware, die über den Link von der offiziellen Seite heruntergeladen werden kann.
Vorbereitungen mit Hardware:
Alle unsere Tutorials werden mit Hardware enden. Um PIC bestmöglich zu lernen, wird immer empfohlen, unsere Codes und Schaltkreise über Hardware zu testen, da die Zuverlässigkeit der Simulation sehr gering ist. Codes, die mit einer Simulationssoftware funktionieren, funktionieren möglicherweise nicht wie erwartet auf Ihrer Hardware. Daher werden wir unsere eigenen Schaltkreise auf Perf-Boards bauen, um unsere Codes zu entleeren.
Zum Speichern oder Hochladen unseres Codes in PIC benötigen wir PICkit 3. Der PICkit 3- Programmierer / Debugger ist ein einfacher, kostengünstiger In-Circuit-Debugger, der von einem PC gesteuert wird, auf dem MPLAB IDE-Software (Version 8.20 oder höher) ausgeführt wird eine Windows-Plattform. Der PICkit 3- Programmierer / Debugger ist ein wesentlicher Bestandteil der Tool-Suite des Entwicklungsingenieurs. Darüber hinaus benötigen wir auch andere Hardware wie Perf-Platine, Lötstation, PIC-ICs, Quarzoszillatoren, Kondensatoren usw. Wir werden sie jedoch im Verlauf unserer Tutorials zu unserer Liste hinzufügen.
Ich habe mein PICkit 3 von Amazon mitgebracht. Das Unboxing-Video desselben finden Sie im Video unten. Der Link für PICKIT3 wird ebenfalls bereitgestellt. Der Preis mag etwas hoch sein, aber glauben Sie mir, es lohnt sich zu investieren.