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.

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
| Attribute | Value |
|---|---|
| Model | PIC16F17146 |
| Architecture | RISC |
| Temperature Range | -40°C to 85°C |
| Frequency | up to 32MHz |
| Voltage | 1.8V to 5.5V |
| Size | 6.5 x 9.4 x 1.5mm |
| Memory | up to 28 KB |
| EEPROM | up to 256 Bytes |
| SRAM | up to 2 KB |
| Timer | 3 x 16-bit, 3 x 8-bit |
| PWM | 4 x 16-bit |
| CLC | 4 |
| DAC | 2 x 8-bit |
| ADC | 1 x 12-bit |
| USART | 1 |
| I2C | 1 x 7/10-bit |
| SPI | 1 |
| Operational Amplifier | 1 |
| I/O Port | up to 35 pins |
| Package | 14-Pin PDIP, SOIC, TSSOP; 16-Pin VQFN; 20-Pin PDIP, SOIC, SSOP, VQFN |
Come programmare la scheda di sviluppo Curiosity Nano PIC16F17146?

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#


Dopo aver configurato l’IDE MPLAB® X, possiamo vedere un’interfaccia intuitiva. Se sei un principiante, ci sono alcuni tutorial introduttivi per te.
Continua con il nostro progetto, fai clic su “File > Nuovo progetto” per creare un nuovo progetto.

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

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

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

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

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.

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

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.

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.

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

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

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.

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

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

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.




