Il Web contiene un’ampia quantità di informazioni sui microcontrollori e sulla famiglia PIC in particolare. Accanto ai siti dei produttori hardware e software (in testa a tutti www.microchip.com) esiste un gran numero di siti semiprofessionali e amatoriali dove vengono presentati corsi per principianti, esempi applicativi svolti con schemi elettrici, consigli, esperienze personali a livelli quanto mai vari. In un Istituto Professionale o Industriale la trattazione e l’uso dei microcontrollori è ormai un argomento standard; compare nei libri di testo e nelle riviste tecniche; non si può cominciare a parlare di autronica, di domotica, in generale di controllistica senza tirare in ballo il microcontrollore. Quello che segue non è un corso sul PIC, nè una esauriente trattazione. E’ un insieme di indicazioni come possono essere date a lezione in una classe quarta IPSIA; è uno spunto per cominciare a discutere con gli studenti. E’ un approccio semplificato puramente didattico. La forma del testo è quello di Word, ma si può pensare di trasferire il testo in PowerPoint: così l’esposizione risulta più gradevole con l’uso di adatti strumenti grafici. Usando una presentazione si perde senz’altro in completezza, perchè le slide di PowerPoint troppo cariche di testo e figure sono difficilmente digeribili; si acquista in agilità, se gli studenti sono disposti ad usare le slide come inizio di un lavoro (non come sunto da sunteggiare ancora finché non resta più niente!). Questo materiale è fornito anche come file.PPT da scaricare (zip 297 kb) per libero uso.
Contiene cioè, sia quello che possiede un µP (anche se in quantità molto ridotta), sia parti che il µP non possiede. Inoltre ha ingombro minimo e richiede poca potenza di alimentazione
Due punti di forza del microcontrollore sono:
Quindi occorre saper gestire bene registri e porte. I registri sono celle, locazioni, di memoria dove il µC legge e scrive valori fondamentali per il funzionamento. Sono celle che hanno un indirizzo esadecimale (h) ; si dice che sono mappati in memoria. Ad esempio scrivendo o leggendo nelle locazioni 05h e 06h si scrive o si legge nelle porte A e B. Se si programma il PIC in linguaggio macchina (Assembler) occorre precisare molti dettagli per i registri, con istruzioni da mettere all’inizio del programma. Se si usa un linguaggio ad alto livello (Basic), le istruzioni da aggiungere sono minori. Tuttavia la mappa di memoria (cioè l’allocazione dei registri) deve sempre essere conosciuta. La gestione delle porte A e B di IN/OUT E’ fondamentale saper programmare le porte di ingresso/uscita. Ognuno dei pin della porta A (05h) può essere impostato in modo indipendente come ingresso o come uscita in base al contenuto del registro di controllo TRISA (85h): impostando a 1 il bit di TRISA la porta corrispondente è un ingresso (se è 0 diventa uscita). Lo stesso vale per la porta B (06h) gestita da TRISB (86h). Esempio: con TRISB = 00111111, RB6 e RB7 sono linee di uscita (possono comandare un carico), e le altre linee sono ingressi (possono accettare un segnale esterno).
Oscillatore a quarzo per il clock L’oscillatore del PIC può funzionare in quattro modi:
Si può usare un quarzo o un risonatore ceramico, a varie frequenze, oppure un circuito RC con scarsa precisione in frequenza. Occorre scegliere un modo, sia per costruire il circuito, sia per impostare le opzioni del dispositivo programmatore: l’opzione più comune è XT.
Il software per il PIC - 1° modo Il programma per il PIC si può scrivere in linguaggio assembly o assembler, usando direttamente le 35 istruzioni riconosciute dal PIC. Il programma si scrive come un file di testo. Esso viene convertito in codice binario da un programma chiamato Assemblatore. Il file creato contiene codici esadecimali e ha estensione. HEX Per trasferire poi il file HEX nella memoria di programma del PIC occorre un dispositivo chiamato Programmatore. Si usa un Personal Computer:
La casa costruttrice Microchip fornisce un pacchetto integrato chiamato MPLAB. Esso comprende:
Il compilatore MPASM è liberamente usabile. Si scarica dal sito della Microchip e si può usare indipendentemente dall’editor. Lavorando in Assembler, la parte più difficile è il debug, cioè l’eliminazione degli errori di programmazione. Esistono software di simulazione, a pagamento in genere, che consentono di controllare il funzionamento del programma
Programmazione fisica del PIC La famiglia PIC16F8X, che comprende il 16F84, il 16F877 ecc., può essere programmata:
Dato che il PIC ha una memoria Flash di programma, sono possibili veloci variazioni o aggiornamenti del codice programma. Sistema di programmazione out of circuit. Dopo aver scritto il programma, cioè il codice sorgente, lo si compila con il MPASM: viene creato un file oggetto con estensione.HEX, il quale deve essere caricato nella memoria di programma del PIC, inserito in uno zoccolo del programmatore Per caricare il file.HEX nella memoria programma del PIC occorre:
Il PC: tramite un semplice software di gestione, legge il file.HEX; riconosce l’area di memoria del PIC dove scaricarlo Il programmatore: Imposta la tensione di scrittura (+13V) e adatta il segnale in arrivo ai circuiti interni del PIC Il PC: Trasferisce i dati nel PIC attraverso il collegamento seriale/parallelo. Dopo la scrittura fatta dal programmatore, verifica i dati scritti
Programmatore industriale Un insieme completo e di livello professionale è il PICSTART Plus fornito dalla stessa casa costruttrice Microchip Inc. Svantaggio: alto costo Vantaggio: è aggiornabile agli ultimi modelli Microchip Esistono molti programmatori industriali di terze parti, a costo minore, o di tipo hobbystico, già pronti o in kit da costruire. In genere se sono di basso costo, programmano solo alcuni tipi di PIC e non sono aggiornabili agli ultimi modelli.
Programmatore di PIC in scatola di montaggio - FT386 Si collega alla porta parallela del PC. Ha uno zoccolo ZIF (Zero Insertion Force) a 40 pin e accetta diversi tipi di PIC. Ha costo limitato Funziona col software free EPIC, il quale legge dal PC il file.HEX creato con l’assemblatore, e lo scrive nella Flash EEPROM
Programmatore a più zoccoli Data la varietà di PIC esistenti, il programmatore può anche comprendere diversi zoccoli (a 8 pin, 18 pin, 40 pin), che sono meno costosi ma meno comodi dello zoccolo ZIF
Tipi di PIC da 8 pin a 40 pin
Demoboard Dopo aver programmato il PIC, si può usare una scheda di valutazione o dimostrativa per controllare l’esattezza del programma. Una demoboard contiene alcuni semplici dispositivi di ingresso (pulsanti ad esempio) e di uscita (led, relè) e si usa in genere per apprendere i fondamenti della programmazione. Esistono demoboard molto sofisticate e costose (con sensori di temperatura, interfacce di vario tipo, display alfanumerici e grafici) e altre di costo limitato. Dato che la frequenza di clock è di pochi MHz, i circuiti con PIC si possono montare, con qualche precauzione, anche su breadboard millefori senza saldatura. La demoboard FT215-K in scatola di montaggio contiene:
tutti controllabili dal PIC per verificare immediatamente il programma appena memorizzato La PROTON BOARD contiene interfacce e anche una breadboard per piccoli montaggi senza saldature Questi sono alcuni siti dove trovare compilatori in Basic per il PIC, sia a pagamento, sia in versione demo, con limitazioni. http://www.picbasic.co.uk http://www.crownhill.co.uk http://www.picbasic.it http://www.melabs.com http://www.letbasic.com http://www.microengineeringlabs.com Nel sito http://www.picbasic.org è presente l’ultima versione del software di programmazione, che sostituisce tutti i precedenti presentati negli anni passati nel sito, perché ha una caratteristica innovativa. L’ambiente integrato PROTON DS Il sistema più aggiornato disponibile oggi è un ambiente dove è presente:
Uso della Virtual Board Dopo aver scritto il programma Basic, il comando Compile and Program ha un menù dove si può:
Ognuno dei PIC supportati ha una diversa Virtual Board: Questa è una parte della Virtual Board per il PIC16F628A (PIC16_18PIN) . E’ presente un PORTB Monitor con il quale è possibile verificare la correttezza di sequenze programmate di azionamenti di carichi (led o relè) collegati sulla porta B. Questa è invece una parte della Virtual Board per PIC16F877 (PIC16_ALCD), comprendente tra l’altro un display alfanumerico, un tastierino numerico, dei carichi, un oscilloscopio per visualizzare forme d’onda. La suite intera ha un costo significativo. Esiste anche una versione LITE di libero uso, scaricabile dal sito, con importanti limitazioni, che non impediscono però un uso didattico efficace:
Dato che non è più supportato il classico 16F84, occorre un programmatore adatto. |