I PIC o i Programmable Integrated Circuit, che come si evince dal nome sono dei circuiti integrati programmabili. Sono prodotti dalla azienda americana Microchip.

 

 



I Programmable Integrated Circuit si divino in “famiglie” ovvero gruppi di PIC riuniti per funzioni, porte di I/O, numeri di pin, tipo di memoria, quantità di memoria etc..Si parte da PIC con poche funzioni e numeri di pin come i PIC 12C5xx fino ad arrivare a PIC più grandi che contengono numerose funzioni e numeri di pin.
I PIC possono essere usati in migliaia di applicazioni, sia complicate che semplici..Le applicazioni più comuni riguardano il timing, l’automazione ed il controllo di apparecchiature varie. In questo articolo vedremo come far lampeggiare un led.

 

Prima di tutto abbiamo bisogno dello schema, ed è il seguente:

Come si vede sul semplice schema abbiamo usato pochi componenti. 2 condensatori da 22pF (C1, C2), 1 quarzo da 4 mhZ, 1 resistenza da 220 ohm (R2) e un’altra da 4,7k ohm (R1) e il led. La configurazione dei condensatori e del quarzo serve per dare si una giusta frequenza al PIC (la frequenza serve per scandire i processi del PIC) ma anche uno sbilanciamento iniziale dato dai condensatori. La tensione di alimentazione per qualsiasi PIC è di 5V…
ATTENZIONE: Non superare la tensione di alimentazione per evitare il malfunzionamento oppure la rottura dell’integrato stesso. Di solito per stabilizzare la tensione si usa un regolatore di tensione (es. 7805) molto semplice da costruire che vedremo presto nelle pagine di questo sito.
Per far funzionare il PIC serve anche il codice eseguibile (in formato HEX ovvero esadecimale) da inserire nel PIC. Al giorno d’oggi, molti ambienti di sviluppo e linguaggi di programmazione ci vengono incontro per creare codice per il nostro gioiellino. Un linguaggio di programmazione molto diffuso ma che a prima vista e a primo approcio si presenta difficile e incomprensibile è l’ASSEMBLER un linguaggio macchina di basso livello, e se vogliamo dire anche un pò sorpassato. Noi non tratteremo dell’assembler ma parleremo del linguaggio di programmazione C rivolto per i PIC.
Il C si presenta più flessibile e comprensibile per un principiante, ma anche per un professionista. Ma quale codice dobbiamo inserire nel PIC??….è presto detto:
Il nostro primo programma farà lampeggiare il nostro led situato sul piedino 6 ovvero RB0, la prima porta della serie di I/O B. Quindi ecco il codice (sviluppato in MikroC):

void main(){
TRISB = 0;
while(1){
PORTB = 0b00000001;
Delay_ms(250);
PORTB = 0b00000000;
Delay_ms(250);
}}

Esaminiamo il codice..
void main() è l’inizio del programma. Ogni programma sull’ambiente di sviluppo MikroC inizia con questa riga ( void main() specifica una funzione. In questo caso la principale)
TRISB = 0; configura le porte di I/O della serie B come uscite (Output). Mettendo 1 le porte sono di entrata (Input)
while (1) crea un ciclo all’infinito grazie al while che processa le istruzioni solamente quando la sua condizione è vera. In questo caso, con 1, è sempre vera.
PORTB = 0b00000001; Manda l’uscita RB0 (pin 6) del PIC a livello alto (+5V) quindi per far accendere il LED.

Delay_ms(250); Genera un ritardo software. Il PIC in parole povere si addormenta per poi risvegliarsi dopo il tempo passatogli come parametro. Ovviamente è possibile cambiare il tempo che in questa caso è espresso in millisecondi. 250 ms corrispondo ad 1/4 di secondo..
E infine le parentesi di chiusura.
Avendo un ciclo all’infinito il led si spegnerà e si accenderà ogni 250 ms fino allo spegnimento del circuito.


IL PROGRAMMATORE
Molti si staranno chiedendo, “ma come è possibile inserire un file “astratto” in un circuito integrato?!?”. E bene, ci viene in contro il programmatore.
Il programmatore è un dispositivo hardware che interfaccia il PC con il nostro PIC. Il classico e più semplice programmatore è il ludipipo.
Questo è lo schema:

In questo caso il programmatore è di tipo seriale, non molto affidabile. Se pensate di voler fare sul serio con i PIC vi consiglio di comprare il pickit2 che è originale Microchip, è USB è programma tranquillamente quasi tutti i PIC.

Come vedete è molto semplice. La lista dei componenti è la seguente:

R1,R2 = 2,2K
R3=22K
R4=5,6K
D2=1N4148
D1=5V6 (zener)
C1=10uF
Connettore DB9 femmina

Il programmatore però deve comunicare con il PC tramite un altro software inerenti i PIC. Esso è sempre un programmatore ma è un software che programma il PIC.

Il più noto è IC-Prog. Potete scaricare IC-Prog da qui.

IC-Prog si presenta così:

 

Se avete Windows XP o superiori aprite la cartella appena estratta. Non vi resta che aprire il file ICProg.bat e configurare il software in questo modo:

Aprite IC-Prog e andare su Settaggi -> Opzioni e sul Tabs Misc. Spuntare la voce Abilita il driver NT/2000/XP. A questo punto potete programmare il vostro PIC

In Windows 98 non c’è bisogno del driver poichè permette la comunicazione diretta con le periferche. Con le nuove versioni bisogna aggirare il Sistema Operativo.

Per questo articolo ho preparato il file hex che và caricato sul PIC con IC-Prog. Lo potete scaricare qui.

Caricate in IC-Prog (File -> Open File) e mettete come oscillatore XT perchè usiamo un quarzo di media frequenza e spuntate la voce PWRT e togliete la spunta su WDT.

A questo punto potete premere F5 e rispondere Si alla domanda e attendere la fine della programmazione. Se tutto è a suo posto, non dovrebbe accadere nessun errore.

Questo è tutto.
Ad una prossima puntata..

a cura di: Simone Giugliani