Programmazione dei microcontrollori PIC: Le basi per ogni progettista
La linea PIC® di microcontrollori di Microchip Technology è molto popolare tra i progettisti per diverse ragioni, tra cui prezzo, prestazioni e ampio supporto alla progettazione. Esiste inoltre una vasta selezione di microcontrollori PIC (MCU) accuratamente progettati per soddisfare i requisiti di applicazioni diverse. Iniziare con i PIC è simile a iniziare con praticamente qualsiasi MCU: a livello base, il progettista deve conoscere – in dettaglio – la logica che sarà implementata in hardware sull'MCU. Molti progetti incontrano problemi perché il progettista non ha completamente considerato la logica. Oltre a costruire una solida base di logica circuitale, una conoscenza dettagliata dell'applicazione fornisce risposte a domande cruciali riguardanti il numero di ingressi e uscite richiesti; il livello di prestazioni; i limiti di costo e tempi di sviluppo che devono essere rispettati. Ci sono anche importanti domande oltre alla progettazione elettronica che devono essere gestite dall'MCU: dove sarà utilizzato il dispositivo a livello di sistema (condizioni ambientali e posizione geografica)? A quali standard industriali deve conformarsi e con quali altri prodotti deve interoperare? Quali regolamenti industriali e governativi riguardanti requisiti di salute, sicurezza e ambiente devono essere rispettati? Figura 1 mostra un diagramma a blocchi del modello PIC16F84 di Microchip Technology con I/O e alcune periferiche. Introdotto all'inizio degli anni '90, esegue funzioni base. Gli attuali MCU a 8 bit integrano tipicamente più periferiche, creando maggiore complessità software per lo sviluppatore dell'applicazione.

Figura 1. Il PIC16F84 è tra i primi MCU a presentare un algoritmo di programmazione seriale e memoria EEPROM. Fonte: Microchip Technology Inc.
Elementi essenziali dell'hardware dei microcontroller PIC
Per programmare un microcontrollore PIC, è necessario conoscere i blocchi di base specifici del dispositivo, come i registri di configurazione, i bus e i tipi di memoria. Comprendere il linguaggio di programmazione dei PIC è molto utile – se non essenziale. Scegliere il giusto set di strumenti di sviluppo software rende anche l'avvio più semplice e veloce. L'architettura di memoria sottostante di molti PIC è l'architettura Harvard, che è stata utilizzata su larga scala per la prima volta nell'MCU 8051 di Intel. Questa architettura dispone di uno spazio di memoria per memorizzare comandi del programma e ne alloca un altro per i dati. Disporre di spazi di memoria separati – che possono essere memoria Flash on-chip, ROM, RAM o un chip esterno – solitamente si traduce in un'esecuzione del programma più veloce. (Il termine “architettura Harvard” è spesso usato in modo approssimativo. Molti MCU indicati come “Harvard” sono stati modificati mescolando le architetture di memoria Harvard e von Neumann.) Prima di poter procedere ulteriormente, dobbiamo essere abbastanza specifici riguardo al microcontrollore PIC che verrà scelto per il progetto. Un PIC a 8 bit è una buona scelta perché generalmente hanno un costo inferiore rispetto agli MCU a 16 e 32 bit, possiedono un set adeguato di periferiche (come i convertitori A/D) e offrono buone prestazioni. Microchip offre diverse famiglie di PIC a 8 bit. I PIC10F e PIC12F sono i meno costosi, ma forniscono meno memoria, un numero inferiore di pin e meno periferiche. Scegliere il chip PIC al costo più basso comporta il rischio di scoprire a metà del progetto che l'MCU non soddisfa completamente le esigenze dell'applicazione. La serie PIC18F si trova all'altra estremità dello spettro di prestazioni 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.
Progetta con microcontrollori PIC
Per programmare un microcontrollore PIC (o qualsiasi MCU), sono generalmente necessari i seguenti strumenti software:
- Un IDE (Integrated Development Environment), che converte la logica simbolica scritta per l'applicazione in comandi di programma
- Un compilatore, che converte il programma nel linguaggio assembly dell'MCU comunemente noto agli ingegneri progettisti come file HEX
- Un IPE (Integrated Programming Environment) utilizzato infine per trasferire il file HEX nel PIC dopo alcune regolazioni del programma
- Un debugger/programmatore in-circuit

Figura 2. MPLAB X IDE copre una vasta gamma di funzioni accessorie per la programmazione di MCU. Fonte: Microchip Technology Inc.
Per gli utenti che utilizzano per la prima volta i microcontrollori PIC a 8 bit, Microchip ha reso ancora più semplice iniziare grazie al lancio di MPLAB® Xpress, un IDE basato su cloud che elimina la difficoltà 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 applicazione per i microcontrollori PIC a 8 bit (e 16 bit) utilizzando un'interfaccia grafica e una mappa dei pin. Come per qualsiasi microcontrollore, il primo passo è configurare i registri di configurazione. I bit programmati in questi registri specificano le operazioni fondamentali del dispositivo, come la modalità oscillatore, il watchdog timer, la modalità di programmazione e la protezione del codice. Questi bit devono essere impostati correttamente affinché il codice funzioni correttamente. Una volta impostati i bit di configurazione, il resto del processo di creazione del programma dipende dall'applicazione. E una volta completato il codice, i passaggi successivi riguardano il trasferimento dell'entità logica nel mondo reale dei bit. L'Integrated Programming Environment (IPE) entra in gioco per una varietà di funzioni, tra cui il trasferimento del programma creato sul tuo PC o workstation nel microcontrollore. Come accennato in precedenza, gli ambienti di 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. Vale la pena menzionare il PICkit™ 3 In-Circuit Debugger/Programmer, tuttavia, poiché è un hardware aggiuntivo e quindi concettualmente va oltre la configurazione software degli altri strumenti. Viene utilizzato dopo che il programma applicativo è stato trasferito nel microcontrollore. PICkit 3 è controllato da un PC con software MPLABX IDE ed è una parte integrante della suite di strumenti. La legenda in Figura 3 mostra le connessioni principali tra il microcontrollore in fase di programmazione o debug e il PC che utilizza MPLABX IDE di Microchip Technology.

Figura 3. Il PICkit 3 di Microchip fornisce l'hardware per il debug e/o la programmazione di un'ampia gamma di MCU. Fonte: Microchip Technology.
Vantaggi dei microcontrollori PIC
Iniziare con un PIC MCU comporta una comprensione approfondita dell'applicazione, dell'architettura hardware di base del PIC che si intende utilizzare e della catena di strumenti software. Microchip ha reso il processo di progettazione effettivo molto accessibile sia agli ingegneri esperti che ai progettisti principianti. Gli strumenti software gratuiti rendono i costi di configurazione ragionevoli e c'è una vasta quantità di codice e consigli disponibili sia all'interno dell'ecosistema di progettazione di Microchip che generalmente sul web. Tutto ciò che è richiesto al futuro progettista di PIC è la volontà di iniziare e la perseveranza per portare il progetto a termine.
Tag articolo
