La linea di microcontrollori PIC® di Microchip Technology è apprezzata dagli ingegneri progettisti per diversi motivi, tra cui il prezzo, le prestazioni e l'ampio supporto alla progettazione. Esiste anche un'ampia selezione di microcontrollori PIC (MCU), attentamente progettati per soddisfare i requisiti di diverse applicazioni.
Iniziare a usare i PIC è simile a iniziare a usare praticamente qualsiasi MCU: al livello più elementare, il progettista deve conoscere, nel dettaglio, la logica che verrà implementata nell'hardware della MCU. Molti progetti incontrano problemi perché il progettista non ha riflettuto a fondo sulla logica.
Oltre a costruire solide basi per la logica del circuito, una conoscenza dettagliata dell'applicazione fornisce risposte a domande critiche per la missione, come il numero di input e output richiesti, il livello di prestazioni, i budget di costi e tempi di sviluppo che devono essere rispettati.
Oltre alla semplice progettazione elettronica, ci sono anche altre questioni importanti che devono essere gestite dall'MCU: dove verrà utilizzato il dispositivo a livello di sistema (condizioni ambientali e posizione geografica)? A quali standard di settore deve conformarsi e con quali altri prodotti deve interagire? Quali normative industriali e governative devono essere rispettate in materia di salute, sicurezza e requisiti ambientali?
La figura 1 mostra un diagramma a blocchi del PIC16F84 di Microchip Technology con I/O e alcune periferiche. Introdotto nei primi anni '90, svolge funzioni di base. Gli attuali MCU a 8 bit integrano solitamente più periferiche, il che comporta una maggiore complessità del software per lo sviluppatore dell'applicazione.

Figura 1. Il PIC16F84 è tra i primi MCU a disporre di un algoritmo di programmazione seriale e di memoria EEPROM. Fonte: Microchip Technology Inc.
Elementi essenziali dell'hardware del microcontrollore PIC
Per programmare un microcontrollore PIC, è necessario conoscere i componenti di base del dispositivo specifico, come i registri di configurazione, i bus e i tipi di memoria. Comprendere il linguaggio di programmazione PIC è molto utile, se non essenziale. Anche la scelta del giusto set di strumenti di sviluppo software rende l'avvio più semplice e veloce.
L'architettura di memoria di base di molti PIC è l'architettura Harvard, inizialmente ampiamente utilizzata nell'MCU 8051 di Intel. Questa architettura ha uno spazio di memoria per memorizzare i comandi del programma e ne alloca un altro per i dati. Disporre di spazi di memoria separati, che possono essere memoria Flash integrata, ROM, RAM o un chip esterno, in genere si traduce in un'esecuzione più rapida del programma. (Il termine "architettura di Harvard" è spesso usato in modo improprio. Molti MCU denominati "Harvard" sono stati modificati combinando le architetture di memoria Harvard e von Neumann.)
Prima di procedere oltre, occorre definire con precisione l'MCU PIC che verrà scelto per il progetto. Un PIC a 8 bit è una buona scelta perché generalmente costa meno degli MCU a 16 e 32 bit, ha un set adeguato di periferiche (come i convertitori A/D) e offre buone prestazioni.
Microchip offre diverse famiglie PIC a 8 bit. I modelli PIC10F e PIC12F sono i meno costosi, ma offrono meno memoria, un numero inferiore di pin e meno periferiche. Scegliendo il chip PIC più economico si corre il rischio di scoprire a metà progettazione che la MCU non soddisfa pienamente le esigenze dell'applicazione. La serie PIC18F si colloca all'altro estremo dello spettro prestazionale dei prodotti a 8 bit di Microchip. È più sofisticata, offre periferiche on-chip altamente specializzate ed è anche la famiglia più costosa. Per un primo progetto, la serie PIC18F sarebbe probabilmente eccessiva.
Progettazione con microcontrollori PIC
Un progettista che si avvicina per la prima volta all'architettura dei microcontroller PIC probabilmente troverà più adatto un chip della serie PIC16F, presente sul mercato da oltre un decennio e ancora molto popolare. Di conseguenza, la famiglia dispone della più grande libreria di codici disponibile su Internet, il che significa che gran parte del codice di base è già stato scritto e può essere semplicemente scaricato.
Questa miniera di risorse è inestimabile. In particolare, esiste una grande quantità di codice e schemi per PIC16F877, che è stato utilizzato in molti progetti "introduttivi" da insegnanti online e in classe, nonché da una schiera di progettisti professionisti. Tuttavia si tratta di un vecchio progetto MCU e Microchip non lo consiglia per nuovi progetti. Fortunatamente, quasi tutto il supporto di progettazione PIC16F877 è ancora utilizzabile con il PIC16F887, che ha praticamente le stesse opzioni per la disposizione dei pin e per le periferiche.
Il PIC16F887 esegue lo stesso codice con – al massimo – piccole modifiche. Utilizza anche strumenti di sviluppo software meno costosi.
Il PIC16F887 è dotato di 256 byte di memoria dati EEPROM e di una serie di periferiche che lo rendono adatto ad applicazioni A/D nei settori automobilistico, industriale, degli elettrodomestici o dei beni di consumo. La scheda tecnica è disponibile qui.
Come programmare un microcontrollore PIC
Per programmare un microcontrollore PIC (o qualsiasi MCU), in genere sono necessari i seguenti strumenti software:
- Un IDE (Integrated Development Environment), che converte la logica simbolica scritta per l'applicazione in comandi del programma
- Un compilatore, che converte il programma in linguaggio assembly MCU comunemente noto agli ingegneri progettisti come file HEX
- Un IPE (Integrated Programming Environment) che viene utilizzato per trasferire il file HEX nel PIC dopo alcune modifiche al programma
- Un debugger/programmatore in-circuit
Gli strumenti di sviluppo software di Microchip sono molto apprezzati per le loro prestazioni e la loro facilità d'uso. L'MPLAB®X IDE, i compilatori MPLAB®XC e l'MPLAB® IPE dell'azienda evitano ai progettisti di dover confrontare e acquistare strumenti di terze parti. Gli strumenti di base di Microchip sono forniti gratuitamente. Una panoramica di tutti gli strumenti di sviluppo di Microchip è disponibile qui.
La figura 2 mostra i prodotti Microchip disponibili nelle cinque categorie dell'ambiente di sviluppo integrato (IDE) MPLABX dell'azienda.

Figura 2. L'MPLAB X IDE copre un'ampia gamma di funzioni di programmazione MCU ausiliarie. Fonte: Microchip Technology Inc.
Per gli utenti che si avvicinano per la prima volta ai PIC a 8 bit, Microchip ha reso ancora più facile iniziare a lavorare lanciando MPLAB® Xpress, un IDE basato su cloud che elimina la necessità di scaricare, installare, configurare e aggiornare periodicamente gli strumenti. MPLAB Xpress include MPLAB Code Configurator, che consente agli utenti di generare automaticamente codice C di inizializzazione e di applicazione per MCU PIC a 8 bit (e 16 bit) utilizzando un'interfaccia grafica e una mappa dei pin.
Come per qualsiasi MCU, il primo passo è impostare i registri di configurazione. I bit programmati in questi registri specificano il funzionamento fondamentale del dispositivo, come la modalità dell'oscillatore, il watchdog timer, la modalità di programmazione e la protezione del codice. Per eseguire correttamente il codice, questi bit devono essere impostati correttamente.
Una volta impostati i bit di configurazione, il resto del processo di creazione del programma dipende dall'applicazione. Una volta completato il codice, i passaggi successivi prevedono lo spostamento dell'entità basata sulla logica nella realtà dei bit.
L'Integrated Programming Environment (IPE) entra in gioco per una varietà di funzioni, tra cui il trasferimento del programma creato sul PC o sulla workstation nell'MCU. Come accennato in precedenza, gli ambienti Microchip combinano queste funzioni, ma tre concetti importanti sono la simulazione, il debug e la programmazione del PIC. Una descrizione completa degli strumenti software e del loro utilizzo va oltre lo scopo di questo articolo.
Il PICkit™ 3 In-Circuit Debugger/Programmer merita comunque di essere citato perché è un hardware aggiuntivo e quindi concettualmente va oltre la configurazione software degli altri strumenti. Viene utilizzato dopo che il programma applicativo è stato trasferito alla MCU. PICkit 3 è controllato da un PC che esegue il software MPLABX IDE ed è parte integrante della suite di strumenti.
La legenda nella Figura 3 mostra le connessioni principali tra la MCU in fase di programmazione o debug e il PC che esegue l'IDE MPLABX di Microchip Technology.

Figura 3. PICkit 3 di Microchip fornisce l'hardware per eseguire il debug e/o programmare un'ampia gamma di MCU. Fonte: Microchip Technology
Vantaggi del microcontrollore PIC
Per iniziare a utilizzare un MCU PIC è necessario avere una conoscenza approfondita dell'applicazione, dell'architettura hardware di base del PIC da utilizzare e della catena di strumenti software. Microchip ha reso l'effettivo processo di progettazione molto accessibile sia agli ingegneri che hanno familiarità con altri MCU, sia ai progettisti alle prime armi. Gli strumenti software gratuiti rendono i costi di installazione ragionevoli e sul web è disponibile una grande quantità di codice e consigli, sia all'interno dell'ecosistema di progettazione di Microchip che sul web in generale. Tutto ciò che viene richiesto al futuro progettista PIC è la voglia di iniziare e la perseveranza per portare a termine il progetto.

