fisertek_300
 
Approfondimenti di programmazione dei PIC 
 
Cose da sapere per programmare correttamente un pic
 
 
barra rossa2 
 
Molti utenti in rete mi hanno segnalato che i programmi esposti in questo sito, non funzionavano sulle loro bemoboard, mentre per altri utenti non ci sono stati problemi di sorta. 
Dai sintomi esposti nelle mail, è emerso che occorre conoscere un po' più in dettaglio il funzionamento dei PIC per poterli programmare correttamente. 
In questa pagina saranno trattati approfondimenti che aiutano a capire il funzionamento dei PIC e la loro programmazione.
 
barra rossa2 
 
I flag dei PIC 
Dopo aver creato un sorgente in linguaggio C ed averlo compilato, dobbiamo mettere mano al programmatore per inserire il programma appena creato nel PIC.Nella fase di scrittura del programma nel PIC, dobbiamo settare alcuni parametri di configurazione che riguardano il funzionamento del PIC. Si tratta, in definitiva, di regolare alcune periferiche interne al PIC. 
Quando lanciamo il programma MeProg per programmare il nostro PIC, dobbiamo richiamare la finestra configuration dal menu view. 
Ci apparirà una finestra come quella mostrata qui: 
 
 
 
meprog2
In questa finestra appaiono diversi parametri, suddivisi in senso logico, che si attivano o disattivano a seconda del modello di PIC selezionato in quel momento. 
Questi parametri descrivono le varie modalità di funzionamento del PIC e vanno settati a seconda di ciò che abbiamo previsto durante la creazione del codice sorgente. 
Vediamo insieme i parametri più importanti ai quali dobbiamo prestare attenzione durante la programmazione. 
Nella riga "oscillator" di questa finestra, possiamo definire la modalità del clock del PIC. 
Dobbiamo cioè definire se il segnale di clock viene generato da un quarzo esterno, da una rete RC esterna oppure se il clock è generato internamente. 
Per capire meglio questa cosa, facciamo un paio di esempi con tanto di foto (così anche i più sprovveduti non abbiano a che impaurirsi) 
 
obj866geo910pg46p2
 
In questa foto è visibile un PIC programmato in modo che possa funzionare con una rete RC per generare la frequenza necessaria al suo funzionamento. 
E' visibile in primo piano una resistenza e un condensatore che costituiscono appunto una rete RC. 
In questo caso, nella zona oscillator della finestra di configurazione, dovremo selezionare la voce RC lasciando vuote tutte le altre opzioni (la scelta esclude automaticamente le altre) 
 
Questo particolare modo di funzionare, è relativamente economico da realizzare ma, si può utilizzare solo quando le temporizzazioni e la velocità di esecuzione del programma non rappresentano un fattore critico. 
In pratica la frequenza di clock può variare di molto in funzione della temperatura e della tensione in quel momento applicata e, con esso, varieranno i tempi di ritardo o di esecuzione del programma. 
 
 
 
obj1179geo986pg46p2
 
 
 
In questa foto il PIC genera la frequenza di clock con un quarzo e due condensatori.Questa soluzione circuitale è senz'altro più precisa rispetto a quella precedente, ed è da preferire quando si ha necessità di avere tempi precisi nell'esecuzione del programma.In questo caso, nella zona oscillator della finestra configuration di Epic-Win, dovremo scegliere tra 3 diversi settaggi, a seconda della frequenza del quarzo utilizzato. 
Vediamo in particolare le opzioni: 
 
  • LP Questa opzione và usata se utilizziamo quarzi a frequenza molto bassa  
  • XT Questa opzione và bene per i quarzi a frequenza media  
  • HS Questa opzione è da usare per frequenze alte 
  •  
    Tenete conto che non è consigliabile utilizzare quarzi a frequenza maggiore a quella di targa del PIC se non volete abbreviare la vita utile del pic stesso. 
    Per gli altri parametri dell'oscillatore, bisogna dare un'occhiata al datasheet del modello di PIC preso in esame. 
    Andiamo ora alla zona Code Protection della finestra di configurazione.Come potete immaginare, in questa zona è possibile proteggere dalla copia il codice che avete inserito. 
    Ciò serve ad impedire che terze persone possano replicare il PIC e, con esso, l'intero circuito su qui voi avete lavorato. 
    Ovviamente l'uso della protezione dalla copia esclude la possibilità di utilizzare il bootloader per programmare i PIC (solo i modelli che lo permettono). 
    Il bootloader è un piccolo programma che si mette nel PIC e permette di programmare il PIC tramite la porta seriale del PC senza usare il programmatore (per il collegamento tra PIC e PC, si deve usare l'interfaccia RS 232 come quella descritta in questo sito). 
    Abbiamo da vedere un ultima zona nella finestra di configurazione: la zona Enable. 
    Diamo un'occhiata ai parametri più importanti. 
     
    Watchdog Timer Questo parametro abilità un particolare contatore che và azzerato continuamente con un apposito comando software durante la normale esecuzione del programma, pena il reset del PIC con conseguente riavvio del programma stesso.  
    Ciò può essere utile quando utilizziamo programmi poco stabili che tendono a bloccarsi.  
    Con i programmi pubblicati in questo sito, questo parametro và disabilitato, altrimenti vedrete il programma iniziare a lavorare e poi ricominciare da capo interrompendosi senza apparente motivo. (questo sintomo viene riportato in molte vostre mail di richiesta d'aiuto). 
     
    Power-up Timer Questo parametro serve a ritardare un pochino la partenza dell'esecuzione del programma all'accensione del PIC. Sembrerebbe una sciocchezza ma serve a far si che, all'accensione del circuito, si possano stabilizzare le tensioni di alimentazione e la frequenza del quarzo in modo che tutto possa funzionare in modo corretto. 
     
    Brown-out reset Questo parametro fa in modo che avvenga il reset del PIC nel caso in cui la tensione di alimentazione scenda oltre un certo valore. 
     
    Low Voltage Program Abilitando questo flag, diventa possibile programmare il PIC soltanto con i 5 Volt, senza dover fornire i 12-14 Volt dell'MCLR. 
     
    Con il tempo, vedremo se ci saranno altri approfondimenti da fare per questo sito.  
    Per ora ritengo che basti questo e, se avete richieste di approfondimento particolari, basta che me lo segnalate
     
    barra rossa2 
     
    b_home2_baloon 
     
    © 2002-2006 by Sergio Fiocco -Tutti i diritti riservati- Vietata la riproduzione, anche parziale del presente sito