PIC16F17146 MCU: Funktionen und Programmierung

Einführung in PIC16F17146

Der PIC16F17146 ist ein Mikrocontroller-Chip, der zur PIC16F-Familie gehört, die für ihre hohe Leistung und ihren geringen Stromverbrauch bekannt ist. Er wird häufig in einer Vielzahl von elektronischen Geräten verwendet, beispielsweise in Unterhaltungselektronik, Automobilanwendungen und industriellen Steuerungssystemen. Der PIC16F17146 bietet eine Vielzahl von Funktionen, darunter mehrere Kommunikationsschnittstellen, Analog-Digital-Wandler und reichlich Speicherplatz für Programmbefehle und Daten. Dank seiner flexiblen Architektur und seiner umfangreichen Peripheriegeräte ermöglicht dieser vielseitige Chip Entwicklern die einfache Erstellung anspruchsvoller Anwendungen. Er kann beispielsweise in Automobilsystemen zur Steuerung von Motorfunktionen oder in Smart-Home-Geräten zur Verwaltung verschiedener Hausautomatisierungsaufgaben eingesetzt werden.

PIC16F17146 Microcontroller (MCU)

PIC16F17146 Merkmale

  • C-Compiler-optimierte RISC-Architektur
  • Verbesserter Midrange-Kern mit 49 Befehlen, 16 Stack-Ebenen
  • Flash-Programmspeicher mit Selbstlese-/Schreibfunktion
  • Low-Current Power-on Reset (POR)
  • Programmierbarer Brown-Out-Reset (BOR) mit schneller Wiederherstellung
  • Low-Power-Brown-Out-Reset (LPBOR)
  • Standby- und Ruhemodus mit geringem Stromverbrauch
  • Fenster-Watchdog-Timer (WWDT)
  • Peripheriemodul-Deaktivierung (PMD)
  • Peripherie-Pin-Auswahl (PPS)
  • Erweiterter Ein-/Aus-Reset
  • Konfigurierbarer Einschalt-Timer (PWRT)

PIC16F17146 Spezifikation

AttributeValue
ModelPIC16F17146
ArchitectureRISC
Temperature Range-40°C to 85°C
Frequencyup to 32MHz
Voltage1.8V to 5.5V
Size6.5 x 9.4 x 1.5mm
Memoryup to 28 KB
EEPROMup to 256 Bytes
SRAMup to 2 KB
Timer3 x 16-bit, 3 x 8-bit
PWM4 x 16-bit
CLC4
DAC2 x 8-bit
ADC1 x 12-bit
USART1
I2C1 x 7/10-bit
SPI1
Operational Amplifier1
I/O Portup to 35 pins
Package14-Pin PDIP, SOIC, TSSOP; 16-Pin VQFN; 20-Pin PDIP, SOIC, SSOP, VQFN

Wie programmiert man das PIC16F17146 Curiosity Nano Development Board?

2022 09 26 9 40 59
Bildnachweis: Microchip Technology | Mouser

Erforderliche Tools:

  • MPLAB® X Integrierte Entwicklungsumgebung (IDE)
  • PIC16F17146 Curiosity Nano Board *1
  • USB-Kabel * 1

PIC16F17146 Curiosity Nano – LED-Blink-Test

Laden Sie zunächst die MPLAB X IDE v6.10 von der Microchip-Website herunter und installieren Sie sie:
https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide#

Downloading the MPLAB X IDE v6.10
Downloading the MPLAB X IDE v6.10
Installing MPLAB X IDE v6.10
Installing MPLAB X IDE v6.10

Nach der Einrichtung der MPLAB® X IDE sehen wir eine benutzerfreundliche Oberfläche. Wenn Sie Anfänger sind, stehen Ihnen einige Tutorials für den Einstieg zur Verfügung.

Overview of MPLAB X IDE v6.10 User Interface
Overview of MPLAB X IDE v6.10 User Interface

Fahren Sie mit unserem Projekt fort und klicken Sie auf „Datei > Neues Projekt“, um ein neues Projekt zu erstellen.

Create a New Project in MPLAB X IDE
Create a New Project in MPLAB X IDE

In diesem Schritt wählen wir „Microchip Embedded > Standalone Project“ (Microchip Embedded > Eigenständiges Projekt). Dabei wird eine von der IDE generierte Makefile verwendet, um Ihr Projekt zu erstellen.

Choose a Standalone Project in MPLAB X IDE
Choose a Standalone Project in MPLAB X IDE

Wählen Sie als Nächstes das Gerät „PIC16F17146” und das dazugehörige Tool aus.

Select Device - PIC16F17146 Curiosity Nano
Select Device - PIC16F17146 Curiosity Nano

Wählen Sie die Compiler-Toolchains für Ihr Entwicklungsboard aus.

Select Compiler Toolchains
Select Compiler Toolchains

Nachdem Sie die oben genannten Schritte abgeschlossen haben, klicken Sie auf die Schaltfläche „MCC“, um den Programmcode zu konfigurieren.

Open MCC Content Manager
Open MCC Content Manager

Wählen Sie im „MCC Content Manager Wizard“ einen Inhaltstyp für Ihr Projekt aus. Wenn Sie sich nicht sicher sind, welchen Sie wählen sollen, lesen Sie bitte die offiziellen Details.

Select MCC Melody
Select MCC Melody

Um einen schnellen Start der MCC-Funktion zu gewährleisten, können Sie diese auf den Offline-Modus einstellen.

Run MCC in Offline Mode
Run MCC in Offline Mode

Bevor Sie die E/A konfigurieren, lesen Sie bitte sorgfältig den Schaltplan des PIC16F17146 Curiosity Nano Development Board. Aus dem Schaltplan geht Folgendes hervor:

Die I/O leuchtet auf, wenn RC1 einen niedrigen Pegel ausgibt; IO hat keinen externen Pull-up-Widerstand, sodass der On-Chip-Pull-up konfiguriert werden kann und der Port nach dem Drücken ein Signal mit niedrigem Pegel auslöst.

PIC16F17146 Curiosity Nano MCU Schematic
PIC16F17146 Curiosity Nano MCU Schematic

Die endgültige Konfiguration sieht wie folgt aus. Bei dieser Konfiguration ist die LED standardmäßig eingeschaltet. Wenn Sie die LED standardmäßig ausschalten möchten, können Sie das entsprechende Start High aktivieren, d. h. der IO-Ausgang ist beim Einschalten hoch.

PIC16F17146 Curiosity Nano Input Output (IO) Configuration
PIC16F17146 Curiosity Nano Input Output (IO) Configuration

Wenn wir die I/O-Interrupt-Funktion nicht verwenden, ist die Konfiguration hier beendet. Klicken Sie auf „Generieren“, um den Code zu generieren.

Generate the Code of LED Blinking for PIC16F17146 Curiosity Nano
Generate the Code of LED Blinking for PIC16F17146 Curiosity Nano

Beim Schreiben von Code können wir die Funktion zur automatischen Vervollständigung von Code verwenden. Die Details sind wie folgt:

Apply Code Completion for PIC16F17146 Curiosity Nano
Apply Code Completion for PIC16F17146 Curiosity Nano

Automatische Popup-Auslöser für C/C++-Bezeichner:

				
					.;->;.*;->*;::;new ;A;a;B;b;C;c;D;d;E;e;F;f;G;g;H;h;I;i;J;j;K;k;L;l;M;m;N;n;O;o;P;p;Q;q;R;r;S;s;T;t;U;u;V;v;W;w;X;x;Y;y;Z;z;_;
				
			

Schreiben Sie den Code im Hauptteil der Schleife wie folgt:

				
					    while(1)
    {
        if(BUTTON_GetValue()==0)
        {
            while(BUTTON_GetValue()==0);
            LED_Toggle();
        }
    }   
				
			

Klicken Sie auf die Schaltfläche „Ausführen“, um das LED-Programm zu kompilieren und auf das PIC16F17146 Curiosity Nano-Entwicklungsboard zu brennen.

Program the Project PIC16F17146 Curiosity Nano
Program the Project PIC16F17146 Curiosity Nano

Kehren Sie anschließend zur Registerkarte „MCC“ zurück und fügen Sie die Verzögerungsfunktion zum Projekt hinzu. Klicken Sie dazu einfach auf „Geräteressourcen“ > Timer > „DELAY“. Klicken Sie anschließend auf die Schaltfläche „Generieren“.

Add the Delay Module Code to Project
Add the Delay Module Code to Project

Nun geben wir den Buchstaben „DE“ in main.c ein und die Verzögerungsfunktion wird angezeigt.

Display Delay Function in main. c
Display Delay Function in main. c

Unsere Verzögerungscodes lauten wie folgt, einer in Mikrosekunden und einer in Millisekunden:

				
					    while(1)
    {
        LED_Toggle();
        DELAY_milliseconds(500);        
    } 
				
			

Speichern und starten Sie dieses Programm. Sie werden sehen, dass die LED auf unserer Entwicklungsplatine im 1-Sekunden-Takt zu blinken beginnt.

Reduzierung des Stromverbrauchs mit der PIC16F17146-Serie

Viele der heutigen Embedded-Designs umfassen analoge Systeme, sei es in Form von Sensoren, Verstärkern, Datenwandlern oder anderen analogen Modulen. Diese Designs sind häufig batteriebetrieben, um den Verbrauchern den Alltag mit Elektronikgeräten zu erleichtern. Die Batterielebensdauer stellt jedoch eine Herausforderung für die Entwickler dar, da analoge Signale digitalisiert und verarbeitet werden müssen, was für batteriebetriebene Anwendungen nicht ideal ist. Im Folgenden werden mehrere Möglichkeiten zur Reduzierung des Stromverbrauchs aufgeführt:

Kernunabhängige Peripheriegeräte (CIP)

Mit der MCU-Serie PIC16F17146 können viele analoge Designs die Herausforderungen im Bereich des Stromverbrauchs bewältigen. PIC®- und AVR®-Bausteine bieten verschiedene Core Independent Peripherals (CIP). CIPs sind dedizierte Hardware, die unabhängig von der Zentraleinheit (CPU) betrieben werden kann. Da PIC- und AVR-Geräte über zahlreiche CIPs verfügen, können diese verwendet werden, um andere Aufgaben von der CPU zu übernehmen, während sie sich um Sensorschnittstellen, Wellenformsteuerung, Zeitsteuerung/Messung und vieles mehr kümmern. Dadurch kann das System im Energiesparmodus betrieben werden, was zu einer allgemeinen Reduzierung des Stromverbrauchs des Designs führt.

Analog-Digital-Wandler mit Rechenfunktion (ADCC)

Eines der analogen Peripheriegeräte, das Energiesparmöglichkeiten bietet, ist unser Analog-Digital-Wandler mit Rechenfunktion (ADCC). Die CPU verfügt über mehrere Energiesparmodi, um den Gesamtstromverbrauch zu reduzieren. Eine der Energiesparfunktionen der MCU-Serie PIC16F17146 ist der SLEEP-Modus, in dem der größte Teil der MCU ausgeschaltet ist, wodurch weniger Strom verbraucht wird und das Messrauschen während der ADC-Wandlung reduziert wird. Der ADCC verfügt über einen speziellen Oszillator, der den Betrieb der Hardware im Schlafmodus ermöglicht. Wenn ein Wakeup-Trigger aktiviert wird, nimmt die CPU kurz darauf den Betrieb wieder auf.

Leerlaufmodus und Doze-Modus

Weitere Energiesparmodi, die die MCUs der Serie PIC16F17146 bieten, sind der Leerlaufmodus und der Doze-Modus. Im Leerlaufmodus stoppt die CPU alle anderen Vorgänge, während die Peripheriegeräte aktiv bleiben, und im Doze-Modus läuft die CPU mit einer reduzierten Befehlstaktfrequenz.

Peripheriemodul deaktivieren (PMD)

Peripheral Module Disable (PMD) ist eine weitere Funktion der MCU. Selbst wenn sie nicht aktiviert sind, verbrauchen ungenutzte Peripheriegeräte eine geringe Menge an parasitärer Energie. Durch Aktivieren von PMD können Benutzer alle ungenutzten Peripheriegeräte aktivieren oder deaktivieren. Durch Deaktivieren dieser Peripheriegeräte arbeitet die MCU mit der geringstmöglichen Leistungsaufnahme, wodurch sich ihr Gesamtstromverbrauch reduziert.

In der Embedded-Entwicklung bieten die MCUs der Serie PIC16F17146 zusammen mit anderen 8-Bit-MCUs von Microchip Anwendern zahlreiche Optionen zur Optimierung des Stromverbrauchs von Embedded-Systemen. Weitere Informationen und Anregungen für die Umsetzung energiesparender Lösungen in Ihrem nächsten Design finden Sie in MPLAB® Discover, wo Sie eine Vielzahl von Projekten, darunter viele energiesparende Anwendungen, entdecken können.

Teilen auf:

Nach oben scrollen

Instant Quote