MCU PIC16F17146: Caratteristiche e programmazione

Introduzione a PIC16F17146

PIC16F17146 è un chip microcontrollore che appartiene alla famiglia PIC16F, rinomata per le sue elevate prestazioni e il basso consumo energetico. È comunemente utilizzato in una varietà di dispositivi elettronici, come elettronica di consumo, applicazioni automobilistiche e sistemi di controllo industriale. Il PIC16F17146 offre un’ampia gamma di funzionalità, tra cui interfacce di comunicazione multiple, convertitori analogico-digitali e molta memoria per archiviare istruzioni di programma e dati. Questo chip versatile consente agli sviluppatori di creare applicazioni sofisticate con facilità, grazie alla sua architettura flessibile e all’ampio set di periferiche. Ad esempio, può essere utilizzato nei sistemi automobilistici per controllare le funzioni del motore o nei dispositivi per la casa intelligente per gestire varie attività di automazione domestica.

PIC16F17146 Microcontroller (MCU)

Caratteristiche di PIC16F17146

  • Architettura RISC ottimizzata per compilatore C
  • Core midrange migliorato con 49 istruzioni, 16 livelli di stack
  • Memoria programma Flash con capacità di auto-lettura/scrittura
  • Reset di accensione a basso consumo (POR)
  • Reset programmabile Brown-Out (BOR) con ripristino rapido
  • Reset Brown-out a basso consumo (LPBOR)
  • Modalità a basso consumo Idle e Hibernate
  • Timer di watchdog con finestra (WWDT)
  • Disabilitazione del modulo periferico (PMD)
  • Selezione pin periferica (PPS)
  • Reset di accensione/spegnimento migliorato
  • Timer di avvio configurabile (PWRT)

Specifiche di PIC16F17146

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

Come programmare la scheda di sviluppo Curiosity Nano PIC16F17146?

2022 09 26 9 40 59
Credito immagine: Microchip Technology | Mouser

Strumenti richiesti:

  • Ambiente di sviluppo integrato MPLAB® X (IDE)
  • Scheda PIC16F17146 Curiosity Nano *1
  • Cavo USB * 1

PIC16F17146 Curiosity Nano - Test di lampeggio LED

Innanzitutto, scarica e installa l’IDE MPLAB X v6.10 dal sito Microchip:
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

Dopo aver configurato l’IDE MPLAB® X, possiamo vedere un’interfaccia intuitiva. Se sei un principiante, ci sono alcuni tutorial introduttivi per te.

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

Continua con il nostro progetto, fai clic su “File > Nuovo progetto” per creare un nuovo progetto.

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

In questo passaggio, scegliamo “Microchip Embedded > Progetto autonomo”, utilizza un file Makefile generato dall’IDE per compilare il tuo progetto.

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

Successivamente, seleziona il dispositivo “PIC16F17146” e il suo strumento.

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

Seleziona gli strumenti di compilazione per la tua scheda di sviluppo.

Select Compiler Toolchains
Select Compiler Toolchains

Dopo aver completato i passaggi precedenti, fai clic sul pulsante “MCC” per configurare il codice del programma.

Open MCC Content Manager
Open MCC Content Manager

Seleziona un tipo di contenuto in “MCC Content Manager Wizard” per il tuo progetto, se non sei sicuro di quale scegliere, consulta i dettagli ufficiali.

Select MCC Melody
Select MCC Melody

Per garantire l’avvio rapido della funzione MCC, puoi impostarlo in modalità offline.

Run MCC in Offline Mode
Run MCC in Offline Mode

Prima di configurare l’I/O, leggi attentamente lo schema della scheda di sviluppo PIC16F17146 Curiosity Nano. Dal diagramma dello schema, possiamo sapere che:

Le luci I/O si accendono quando RC1 emette un livello basso; IO non ha una resistenza di pull-up esterna, quindi è possibile configurare il pull-up on-chip e la porta attiva un segnale di basso livello dopo essere stata premuta.

PIC16F17146 Curiosity Nano MCU Schematic
PIC16F17146 Curiosity Nano MCU Schematic

La configurazione finale è la seguente. Questa configurazione farà sì che il LED sia acceso per impostazione predefinita. Se desideri spegnere il LED per impostazione predefinita, puoi controllare l’opzione Start High, ovvero l’uscita IO è alta all’accensione.

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

Se non utilizziamo la funzione di interrupt I/O, la configurazione termina qui, fai clic su “Genera” per generare il codice.

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

Quando si scrive codice, possiamo utilizzare la funzione di completamento automatico del codice, i dettagli sono i seguenti:

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

Trigger di popup automatico per identificatori C/C++:

				
					.;->;.*;->*;::;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;_;
				
			

Scrivi il codice nel corpo del ciclo come segue:

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

Clicca sul pulsante Esegui per compilare e caricare il programma LED sulla scheda di sviluppo PIC16F17146 Curiosity Nano.

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

Successivamente, torna alla scheda MCC, aggiungi la funzione di ritardo al progetto, clicca semplicemente su “Risorse dispositivo” > Timer > “DELAY”. Quindi, clicca sul pulsante “Genera”.

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

Ora, inseriamo la lettera “DE” in main.c e apparirà la funzione di ritardo.

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

I nostri codici di ritardo sono i seguenti, uno in microsecondi e uno in millisecondi:

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

Salva ed esegui questo programma, puoi vedere che il LED sulla nostra scheda di sviluppo inizia a lampeggiare in un ciclo di 1 secondo.

Riduzione del consumo energetico con la serie PIC16F17146

Molti dei progetti embedded di oggi coinvolgono sistemi analogici, che includano sensori, amplificatori, convertitori di dati o qualsiasi altro modulo analogico. Questi progetti sono spesso alimentati a batteria per la comodità dei consumatori nell’elettronica di tutti i giorni. Tuttavia, la durata della batteria presenta una sfida per i progettisti, poiché i segnali analogici devono essere digitalizzati ed elaborati, il che non è ideale per le applicazioni alimentate a batteria. Di seguito sono riportati diversi modi per ridurre il consumo energetico:

Periferiche Core Independent (CIP)

Con il MCU della serie PIC16F17146, molti progetti analogici possono superare le sfide del consumo energetico. I dispositivi PIC™ e AVR™ offrono varie periferiche Core Independent (CIP). Le CIP sono hardware dedicati che possono operare indipendentemente dall’unità di elaborazione centrale (CPU). Poiché sono disponibili numerose CIP sui dispositivi PIC e AVR, queste possono essere utilizzate per scaricare altre attività dalla CPU gestendo le interfacce dei sensori, il controllo della forma d’onda, la temporizzazione/misurazione e altro ancora. Di conseguenza, il sistema può funzionare in modalità a basso consumo, portando a una riduzione complessiva del consumo energetico del progetto.

Convertitore analogico-digitale con calcolo (ADCC)

Una delle periferiche analogiche che offrono opportunità di risparmio energetico è il nostro convertitore analogico-digitale con calcolo (ADCC). La CPU dispone di diverse modalità di risparmio energetico disponibili per ridurre il consumo energetico complessivo. Una delle caratteristiche di risparmio energetico fornite dal MCU della serie PIC16F17146 è la modalità SLEEP, in cui la maggior parte del MCU è spenta, consumando meno energia e riducendo il rumore di misurazione durante la conversione ADC. ADCC ha un oscillatore speciale che consente all’hardware di operare in modalità sleep. Quando viene attivato un trigger di risveglio, la CPU riprende l’operazione poco dopo.

Modalità Inattiva e Modalità Doze

Altre modalità di risparmio energetico offerte dal MCU della serie PIC16F17146 includono la modalità Inattiva e la modalità Doze. Nella modalità Inattiva, la CPU interrompe tutte le altre operazioni mentre le periferiche sono attive e, nella modalità Doze, la CPU funziona con una frequenza di clock delle istruzioni ridotta.

Disabilitazione del modulo periferico (PMD)

La disabilitazione del modulo periferico (PMD) è un’altra caratteristica del MCU. Anche quando non abilitati, i dispositivi periferici inutilizzati consumano una piccola quantità di potenza parassita. Abilitando PMD, gli utenti possono abilitare o disabilitare qualsiasi dispositivo periferico inutilizzato. Disabilitando queste periferiche, il MCU funziona al suo stato di potenza più basso, riducendo il suo consumo energetico totale.

Nello sviluppo embedded, il MCU della serie PIC16F17146, insieme ad altri MCU Microchip a 8 bit, fornisce agli utenti numerose opzioni per ottimizzare il consumo energetico del sistema embedded. Per ulteriori informazioni e per scoprire come ottenere un’implementazione a basso consumo nel tuo prossimo progetto, assicurati di dare un’occhiata a MPLAB® Discover, che ospita una ricchezza di progetti, tra cui molte applicazioni a basso consumo.

Condividi con:

Torna in alto

Instant Quote