Una introduzione ai
Microcontroller PIC
|
Chi è il PIC ?
|
I PIC sono un prodotto della Microchip
Technology, che è una società produttrice di semiconduttori
soprattutto microcontrollori, ma anche memorie EEPROM, amplificatori
operazionali, dispositivi per comunicazione wireless, per radio
frequenza e dispositivi per la gestione dell'alimentazione di
potenza.
La sua sede è a Chandler (Arizona).
I PIC sono un' ampia famiglia di microcontroller da 8 a 32
bit. |
PIC, anche se non ufficiale, può essere acronimo di Programmable
Interface Controller o Peripheral Intelligent Controller o
simili (il
costruttore non ha mai chiarito questo punto) e PIC è diventato un nome più che
un acronimo.
Da un unto di vista storico, il predecessore degli attuali PIC è un componente
chiamato PIC1650 (Peripheral
Interface Controller) e
prodotto dalla General Instruments attorno al 1976 come periferica
intelligente per il suo sistema di microprocessore CP1600. Circa 10 anni dopo,
GI liquida il suo dipartimento microprocessori e il progetto dei PIC passa in
gestione alla Microchip (Arizona Microchip), che lo sviluppa fino a fargli
assumere l' ampiezza attuale.
Dal punto di vista logico, si tratta di dispositivi di tipo RISC,
ovvero con un numero ridotto di istruzioni essenziali (RISC = Reduced
Instructions Set - Set di istruzioni ridotto) ed eseguite in un
numero ridottissimo di cicli macchina (per la maggior parte uno solo), il che
consente prestazioni dell' ordine dei 5-10 MIPS e più.
Le numerose varianti progettate da Microchip si differenziano tra di loro
per il numero di bit (12, 14, 16 che indicano non la lunghezza del dato, ma
quella di una istruzione), la quantità di memoria interna e la complessità
delle funzioni implementate (generatori di clock, timers, I/O, convertitori AD,
PWM, interfacce seriali, I2C, SPI, USB, ecc).
Inoltre sono state realizzate nel tempo successive evoluzioni, passando da
dispositivi inizialmente dotati di memoria OTP (One Time Programmabile -
programmabile una sola volta) o EEPROM-UV ai più recenti dotati di
memoria Flash riprogrammabile più volte, anche durante il
funzionamento.
Sono disponibili in packages
DIP (Dual In-line Pins - il classico chip da inserire su zoccolo o
saldare) da 4 a 40 pin, in PLCC e nei vari formati per SMD
(Surface Mounting Devices) fino a 80 pin. Ne esistono anche serie che
implementano funzioni speciali, come DSP (Digital Signal Processor).
Perchè i PIC ?
Perchè il PIC, tra tutti i microcontrollers disponibili
?
Essenzialmente perchè le caratteristiche interessanti di questi
dispositivi e i costi accessibili, assieme ad una abile politica commerciale della
Microchip, hanno fatto si che i PIC si diffondessero a macchia d' olio e
fossero adottati in una miriade di applicazioni.
Questa diffusione è anche
dovuta alla loro relativa facilità di uso,
alle buone prestazioni ed alla reperibilità, oltre al fatto che il costruttore ha messo a
disposizione in modo gratuito o a basso costo potenti tools di sviluppo,
permettendone l' impiego anche in applicazioni dove il numero non è tanto
elevato da compensare il costo esorbitante dei sistemi di sviluppo di altri
prodotti.
Questo ne ha favorito l' adozione da parte di una grande massa di
hobbisti, che hanno fatto da cassa risonante; basta digitare -PIC- o -PIC
Microchip- o simili su Google o un altro motore di ricerca per ottenere almeno
2.9 milioni di pagine di link.
Per cui, attorno ai PIC abbiamo :
-
ambiente di sviluppo e di programmazione gratis
-
tool di programmazione e debug a costi limitati
-
tools professionali per chi ci deve costruire qualcosa seriamente a
costi abbordabili
-
una ampia gamma di linguaggi di programmazione, anche ad alto livello,
gratis o basso costo
-
una enorme quantità di persone che lavorano o hanno lavorato su questi
microcontrollers, scrivendo milioni di linee di codice che si trovano disponibili
in rete
-
moltissimi forum di discussione tra utenti e siti di informazione,
corsi propedeutici, ecc
-
centinaia di siti commerciali per l' acquisto di parti, kit, accessori,
ecc
E' la scelta migliore ?
Non è una domanda seria !
-
Dal punto di vista delle prestazioni, esistono
microcontroller più performanti.
-
Dal punto di vista del costo esistono famiglie meno costose.
-
Dal punto di vista della difficoltà di uso esistono sistemi meno ostici.
Ecc.
Però, alla domanda si può rispondere che, visto quanto detto al paragrafo
precedente, nessun altra famiglia di microcontrollori ha:
-
la stessa diffusione
tra il pubblico e
-
lo stesso mix di prestazioni, facilità di reperimento
anche per piccole quantità, varietà di modelli, disponibilità, ampiezza del
supporto e basso costo.
Sicuramente un fan di ST6 o di AVR sosterrà che meglio del suo
prediletto non c'è altro, ma qui non stiamo trattando di fazioni o tifoserie,
bensì di come affrontare razionalmente la scelta di oggetto da utilizzare per
l' apprendimento.
Comunque, si può fare un riassunto dei pro e dei contro :
PRO
|
-
sono ragionevolmente economici
-
essendo dotati di flash, un solo chip è riutilizzabile
in molte sperimentazioni
-
sono diffusi e si trovano con facilità anche per quantità
unitarie
-
il costruttore mette a disposizione gratuitamente un
potente ambiente di sviluppo, MPLAB, comprensivo di Macro Assembler,
simulatore, linker, ecc.
-
tools di sviluppo, emulatori, programmatori, breadboards
, anche professionali, sono offerti a costi più che ragionevoli : in rete
è disponibile una grandissima scelta
-
sono disponibili da varie sorgenti compilatori di
linguaggi ad alto livello, come C, BASIC e Pascal
-
molti tools di sviluppo funzionano anche in ambiente
Linux e non solo per Windows
-
in rete si trova una massa impressionante, in larga
parte gratuita, di esempi di codice, corsi, application, progetti,
utilities, forum
-
università, corsi professionali, istituti tecnici, usano
i PIC per istruzione
-
esistono numerosissimi modelli di PIC con le più varie
disponibilità di risorse di memoria e I/O tra cui scegliere
-
esistono numerosi PIC con la stessa piedinatura (pin
to pin compatibili), anche appartenenti a famiglie diverse per cui ci si può
sbizzarrire senza dover cambiare ogni volta hardware
-
gli I/O possono erogare 25mA , quindi comandare
direttamente LED e piccoli relè senza bisogno di altri integrati esterni,
-
sono interni clock, reset, comparatori, A/D, PWM, port di
comunicazione, così che il chip può lavorare praticamente da solo o con
pochissimo hardware di contorno
-
svolgono la maggior parte delle istruzioni in un solo
ciclo e quindi sono efficienti e veloci
-
spostare un programma da un chip ad un' altro
richiede un limitato numero di modifiche
-
sono disponibili in SMD, ma anche in DIP, adatti quindi
sia per produzione che per sviluppo
-
sono disponibili anche per range di temperatura automotive
-40/+125C
-
esistono famiglie dotate di DSP, per cui ci si può
addentare anche in questo campo operando sulle stesse basi dei PIC comuni
|
CONTRO
|
-
chi arriva da altri processori può trovare ostica la
struttura dei PIC (nei Mid-range divisione dei registri a banchi e
mancanza di un sistema pratico per sopperire a questo, indirizzamento
indiretto poco funzionale, mnemonici delle istruzione diversi da quelli
classici 8051/6800, mancanza di stack, ecc.)
-
tendenza dei progettisti a mescolare, in modo per lo meno
bizzarro, nello stesso registro flag di segnalazione e bit di comando e
di variare posizione/funzione ad alcuni registri nelle diverse famiglie ,
il che non rende sempre immediato tanto al logica d'uso quanto il
trasferimento da un chip all' altro
-
come tutti i chip complessi, di qualsiasi produttore, anche
alcuni PIC hanno bugs hardware, solitamente molto marginali, ma se ci
si incappa...
Per cui vale sempre la pena di leggere i Silicon Errata del
costruttore e i vari suggerimenti riguardo ai più comuni gotchas in cui si
può inciampare.
-
spostare un programma da un chip ad un' altro richiede poche
modifiche, ma bisogna comunque farle e se non sono chiare le differenze
l' impresa diventa complessa
|
A conti fatti, i pro sono ampiamente superiori ai contro: la
prevalenza della diffusione del PIC riscontrabile in rete rispetto agli altri
microcontroller dovrebbe essere sufficientemente indicativa del fatto
che chi vuole cominciare ad avvicinarsi a questi dispositivi difficilmente trova
una via migliore, sopratutto per la disponibilità di materiale on line (tra cui
anche questo corso...).
La scelta di altri sistemi, certamente più efficienti o complessi o economici
in produzione di quantità, richiede strumenti e risorse per lo sviluppo
molto più costosi e potrà essere dettato da altri tipi di necessità, ad
esempio per applicazioni che sfruttano caratteristiche specifiche non presenti
nei PIC.
Vediamo maggiori dettagli.
|
|
Copyright © afg. Tutti i diritti riservati.
Aggiornato il 01/04/13.
|