PIC 16F84 / 16C84 F.F. Evaluation Board

Siete il visitatore n.

Click here for English version

Pagina ottimizzata per risoluzione 1024x768

 

La F.F. Evaluation Board e interfacciamento con una basetta prototipi

Torna alla Home Page

Recapiti

 

Introduzione

Quando mi accinsi, qualche tempo fa, ad utilizzare un PIC16x84, mi trovai subito di fronte al problema di avere un circuito stabilmente funzionante, senza dover montare il PIC su una basetta per prototipi ad ogni occasione. Cercando in rete, non trovai nulla di veramente completo per un PIC 16F84 / 16C84, pertanto decisi di costruire personalmente una Evaluation Board che permettesse di utilizzare questo tipo di microcontrollore nelle modalità RC e XT, ovvero con clock generato mediante resistenza-capacità o mediante quarzo, ma soprattutto che permettesse di interfacciare il PIC con un qualsiasi circuito esterno in modo molto versatile e allo stesso tempo affidabile. Fu così che nacque l'Evaluation Board originale; qui ne presento una versione successiva, che aggiunge qualche funzionalità a quelle originali.

Se siete interessati a microcontrollori di fascia superiore, potete dare un'occhiata alla Development board per PIC 16F874 / 16F877 v1.2 su questo stesso sito.

Riconoscimenti e avvertenze

L'ideazione del progetto è totalmente personale; un riconoscimento va comunque al software che mi ha permesso di realizzare il layout del circuito elettrico. Si tratta del programma PCB Elegance v. 2.0, che io posseggo in versione FREE limitata a 200 pin, realizzato dalla MERCO Electronics, la quale mi ha concesso l'autorizzazione al suo uso anche per scopi non personali.
I nomi Microchip e PIC sono marchi registrati.

Attenzione: la versione della F.F. Evaluation Board presentata in questa pagina è la 3.0; si tratta di un circuito che è simile a quello della versione 2.0, riportata in fotografia, ma con alcune migliorie. La basetta visibile nell'immagine ospita un PIC 16F84 a 4 MHz, ma è compatibile anche con il PIC 16C84. Il circuito versione 2.0 è perfettamente funzionante sin dal Febbraio 2000 (da qui il nome F.F.), ma per mancanza di tempo sul nuovo circuito stampato i componenti non sono ancora stati montati. Anche se le modifiche sulla carta non dovrebbero incidere sulla possibilità di un corretto funzionamento, si tenga presente anche questa avvertenza. Indicheremo questa versione come "V. 3.0 Beta". Nel momento in cui anche la nuova versione sarà stata realizzata e collaudata provvederò all'aggiornamento di questa pagina.

Nota bene: Sebbene sia in teoria possibile utilizzare altre forme di alimentazione, l'Evaluation Board è stata progettata per essere alimentata con una pila a 9V e interfacciata solamente con circuiti alimentati anch'essi a batterie a bassa tensione.

In ogni caso, siate sempre certi di sapere con esattezza ciò che state facendo!

Trattandosi di materiale messo gratuitamente a disposizione di chiunque lo desideri, ne è assolutamente vietata ogni forma di utilizzazione a fini commerciali.
E' altresì vietata ogni modifica al circuito se non per fini didattici o strettamente personali; in tale evenienza, esse non debbono comunque rappresentare fonte diretta o indiretta di profitto.
Se in qualche modo si intende divulgare tali modifiche è fatto obbligo di richiedere un permesso scritto all'autore di questo articolo (anche via e-mail).
Il layout del circuito e tutte le informazioni contenute in questa pagina sono fornite così come sono, senza alcuna forma di garanzia. Non mi assumo naturalmente alcuna responsabilità per danni diretti o indiretti a persone o a cose derivanti dalle informazioni contenute in questo articolo.
Sono infine gradite segnalazioni di qualunque genere che possano consentirmi di migliorare il circuito stesso, anche nella versione Limited.


Caratteristiche e descrizione del circuito

Diciamo subito che questo circuito non è un programmatore di PIC, ma può essere facilmente interfacciato con uno dei numerosi circuiti di tale tipo che è possibile reperire, permettendo di non rimuovere il controllore dalla Evaluation Board durante la programmazione.
Come premesso, la foto inserita all'inizio di questa pagina è relativa al circuito della versione di Febbraio 2000, precedente a quella descritta in queste pagine, la 3.0; le due versioni non variano comunque in grande misura, per cui l'immagine è simile a quelle che si potrebbero ottenere realizzando la F.F. Evaluation Board v. 3.0.
L'Evaluation Board è costruita su un circuito a singola faccia, quindi di realizzazione abbastanza semplice. La maggior parte delle modalità di funzionamento è selezionabile mediante una serie di dip-switch a 4 vie e a 6 vie (nella foto solamente a 4 vie); è possibile portare alla basetta segnali esterni di alimentazione e di I/O, oppure attingerli da essa, nonchè portare al chip i segnali per la programmazione; tutti i collegamenti con il mondo esterno vanno realizzati utilizzando i connettori presenti sui lati del circuito.
Prima di procedere con la descrizione del circuito, introduciamo una nota operativa.

Note per la identificazione degli switch e dei terminali dei connettori

Il riferimento ad un particolare interruttore dello switch Sx avverrà mediante la grafia Sx-n, ove n e x sono due numeri interi; medesima grafia per i connettori JPx. In particolare, il riferimento allo switch Sx-1 indica il primo interruttore dello switch Sx a partire dall'alto nella figura in cui è riportato il disegno sovrapposto di componenti, ponticelli e piste; analogo significato nel riferimento ai connettori. Ad esempio, S10-6 non è connesso ad alcuna pista; quando aperto, S4-4 è connesso solo a S4-2 e al piedino n.15 del PIC; quando chiuso, anche a JP2-2 e JP6-2.
Nota: nel testo si farà riferimento quasi esclusivamente a JP1, JP2, JP3, JP4; resta inteso che si tratta di riferimenti anche ai connettori JP5, JP6, JP7, JP8 rispettivamente, essendo gli elementi omologhi dei due insiemi collegati fra loro pin a pin.

Torniamo adesso alle caratteristiche della Evaluation Board.

Alimentazione del circuito: il circuito è stato progettato per essere alimentato mediante batteria a 9V, ma è possibile utilizzare anche una sorgente continua non regolata 7-15V (un 7805 fornisce +5V regolati al PIC, ad un eventuale programmatore e ad un eventuale circuito esterno), oppure alimentazione da un circuito esterno mediante JP4 - S5 (si consultino i datasheet Microchip per il range di valori ammessi).

Piedino /MCLR: è possibile controllarlo mediante circuito esterno o mediante programmatore, connetterlo mediante pull-up direttamente a Vdd, oppure anche tramite capacità a Vss in modo da implementare un circuito di Power On (peraltro già presente nel PIC); esiste anche la possibilità di resettare il PIC mediante pulsante S9 (non presente nella foto).

Connessione da e verso l'esterno di Vdd, Vss, /MCLR: connessione da o verso un circuito esterno di Vdd, Vss, /MCLR (quest'ultimo indipendentemente da quale sia la sorgente di alimentazione); connessione di Vdd e Vss da o verso un qualunque programmatore.

Sorgente di oscillazione per la generazione del clock: quarzo a 4 MHz, modalità RC con due resistenze regolabili, per una oscillazione attorno a 1 MHz e a 100 KHz;
possibilità di ricevere il clock da un circuito esterno o di inviare ad esso l'oscillazione di riferimento.

Possibilità di programmare il PIC direttamente sulla Evaluation Board: è possibile connettere la basetta ad un programmatore mediante connettore a 5 fili, con possibilità di fornire alimentazione al programmatore o di riceverla da esso.

Connessione da e verso l'esterno dei piedini di I/O: tutti i piedini di I/O sono portati a connettori per interfacciare il PIC con un circuito esterno. Nelle fotografie si possono vedere solamente i connettori per spine, mentre nella nuova versione sono presenti sia questi ultimi, sia semplici SIL per fili volanti.

Spie alimentazione: tre led inseribili singolarmente mediante jumpers indicano la presenza di alimentazione in parti diverse del circuito e ricordano di prestare attenzione ad evitare conflitti elettrici fra le possibili sorgenti di alimentazione.
Esiste anche un diodo per la protezione dall'inversione della polarità di alimentazione al 7805 (ma non per le altre sorgenti).

Qualche applicazione
Per quanto riguarda le possibili applicazioni, la basetta consente di avere un circuito di base sicuramente funzionante e facilmente interfacciabile, con conseguente possibilità di dedicarsi alla messa a punto del programma e del circuito da sviluppare.
Personalmente ho utilizzato la versione 2.0 per costruire, tra l'altro, un frequenzimetro di L.F. (fino a circa 18 KHz), un cardiofrequenzimetro (mediante coppia led-fotoresistore posta in prossimità della cute), entrambi con visualizzazione su display 7 segmenti, una interfaccia per la comunicazione con un mouse PS/2.


Selezione della modalità di funzionamento

Come anticipato, la selezione fra le diverse modalità di funzionamento avviene mediante dip-switch.

Veniamo subito alla descrizione delle loro funzioni.

S1
Controlla l'alimentazione e il reset.

Alimentazione. Con S1-1 e S1-2 su ON si invia al PIC l'alimentazione positiva proveniente dal 7805, ovvero +5V regolati, e lo si connette al comune del medesimo regolatore, che coincide con il comune del circuito di alimentazione esterno (J2). In particolare, lo switch S1-1 è per il positivo a +5V (Vdd) e lo switch S1-2 è per la massa (Vss).
Lo switch S1-3, se attivato, permette al piedino /MCLR di essere connesso mediante pull-up alla Vdd (se inviata al PIC), il che, in parole povere, significa che in tal caso il PIC non viene tenuto nello stato di reset e il programma viene eseguito.
Per resettare il microcontrollore è comunque disponibile (e talvolta preferibile) un pulsante di Reset (S9).
Lo switch S1-4 permette di inserire fra il piedino /MCLR e la massa una capacità, in modo tale da ottenere l'uscita dallo stato di reset dopo un certo tempo dal collegamento all'alimentazione dello switch S1-3 connesso a /MCLR.
Tale espediente (personalmente mai utilizzato) dovrebbe essere comunque superfluo, visto che il PIC possiede internamente un circuito che svolge la medesima funzione.
Quando si vuole attivare il PIC, suggerisco di porre su OFF tutti gli interruttori di S1, attivare l'alimentazione (sia essa quella inviata al 7805 o quella proveniente da un circuito esterno), porre su ON S1-1 ed S1-2 (Vdd e Vss), porre su ON S1-3 (/MCLR) ed eventualmente S1-4 per il Power On ( quest'ultimo prima di S1-3). Il Pic comincia allora a funzionare. In dipendenza dal programma, può essere conveniente o necessario resettare il PIC con il pulsante S9.

S10
Si tratta di un dip-switch a 6 vie che controlla la programmazione del PIC.
Fare molta attenzione, eventualmente, nel connettere la Vdd anche al programmatore se già inviata al PIC dal 7805 tramite tramite S1-1 e S1-2, oppure da un circuito esterno tramite S5. Alcuni programmatori hanno infatti bisogno di alimentazione, che può dunque essere quella presente sui piedini del PIC fornita attraverso S1, ma altri forniscono essi stessi l'alimentazione al PIC.
S10-1 connette la Vdd presente sul piedino del PIC a quella del programmatore.
S10-3 connette invece la Vss del PIC al programmatore.
S10-2 connette al programmatore il piedino /MCLR.
S10-4 ed S10-5 connettono la RB6 ed RB7 del programmatore, tramite lo switch S3, ai relativi piedini del PIC. La funzione di S3 è descritta oltre.

S4
Si tratta dello switch che controlla la sorgente dell'oscillazione di riferimento con cui il PIC genera il clock interno. Da notare che, almeno nel caso di sorgente quarzata, l'oscillazione sui terminali Osc1 e Osc2 risulta sinusoidale.
S4-1 ed S4-2 connettono i piedini Osc1 e Osc2 del PIC al quarzo, facendo in tal modo funzionare il microcontrollore in modalità XT.
Tramite S4-3 ed S4-4 si connettono i piedini Osc1 e Osc2 ai connettori JP2 e JP6, permettendo in tal modo di portare tali segnali ad un circuito esterno o di riceverli da esso.

S2
Controlla la sorgente di clock RC. E' possibile scegliere fra due potenziometri, o trimmer, che permettono di ottenere oscillazioni regolabili attorno a 1 MHz (R6) e a 100 KHz (R7).
Tramite S2-1 si connette la Vdd a R6, tramite S2-2 a R7, selezionando in tal modo la resistenza che determina la frequenza di oscillazione. Per ottenere l'oscillazione è necessario chiudere anche S2-3 (ovvero connettere Osc1 ad un terminale della capacità) ed S2-4, che connette al comune l'altro terminale della capacità.
Naturalmente solo una sorgente di oscillazione (RC o quarzo) deve essere selezionata in ogni istante, altrimenti le conseguenze sono imprevedibili.

S3
Tramite S3-1 e S3-2 si connettono i piedini RB7 ed RB6 ai connettore JP3 e JP7.
Tramite S3-3 e S3-4 si connettono invece tali piedini ai relativi pin dello switch S10 ed eventualmente di JP9, connesso a sua volta all'eventuale programmatore.
Si raccomanda di fare attenzione, durante la programmazione, ad isolare i pin dei connettori JP3 e JP7 connessi a RB6 e RB7 aprendo S3-1 ed S3-2.

S5
Con questo dip-switch si connettono i piedini Vdd,Vss ed /MCLR del PIC ai connettori JP4 e JP8. In particolare, S5-1 connette Vdd, S5-2 connette /MCLR, S5-3 connette la Vss.
Al solito, si faccia attenzione a non creare conflitto fra le alimentazioni.


Jumpers

Quando chiuso, S7 permette al led D1 di indicare la presenza di tensione in uscita al 7805.
S8 connette il led D2, il quale, in tal caso, indica la presenza di alimentazione al PIC, sia essa proveniente dal 7805, tramite S1, da JP9 tramite S10 o da JP4 tramite S5.
S6 connette invece il led D3, il quale indica la presenza di tensione fra i piedini 1 e 3 del connettore JP4; tale tensione può ovviamente essere quella fornita dal circuito che alimenta il PIC (il 7805, tramite S1, o il programmatore, tramite JP9 e S10), con S5-1 e S5-3 chiusi, oppure provenire dal connettore JP4 (in tal caso essa raggiunge il PIC solo se S5-1 e S5-3 sono chiusi.

Programmazione

Per programmare il PIC senza rimuovelo dalla Evaluation Board, si devono innanzitutto collegare a JP9 opportuni segnali e tensioni provenienti dal programmatore. In dipendenza dal tipo di quest'ultimo, si deve adottare la giusta configurazione degli switch.

Se non altrimenti specificato, tutti gli switch devono essere posti su OFF!

In ogni caso, siate sempre consapevoli di ciò che fate! Fate molta attenzione al conflitto fra le alimentazioni, e tenete presente che anche collegare fra loro due terminali "comune" (o massa, o terra) di alimentatori diversi può provocare seri danni ai circuiti!

Ad esempio, se alimentate il PIC e il programmatore con due diversi alimentatori, collegare fra loro i terminali "comune" (indispensabile) può essere molto pericoloso per la sopravvivenza dei circuiti stessi! Stessa cosa può succedere se state programmando il PIC con un programmatore collegato al computer e lo alimentate con un alimentatore! Attenzione! Quando avete dubbi, meglio utilizzare una batteria, la quale è flottante e si adegua al riferimento eventualmente imposto da un punto di connessione al circuito.

Indipendentemente da quale sia il programmatore, consiglio vivamente, soprattutto nel caso il PIC sia collegato ad un circuito esterno mediante JP4, di scollegare i terminali RB6 e RB7 del PIC dal connettore JP3 ponendo su OFF S3-1 e S3-2. Consiglio inoltre di isolare i piedini Osc1 e Osc2 ponendo su OFF tutti gli switch di S2 e S4.

I piedini RB6 e RB7 del PIC, naturalmente, devono essere collegati tramite S3-3 e S3-4 (ON) ai piedini S10-4 e S10-5, e da questi al programmatore collegato a JP9 ponendo su ON, appunto, gli switch S10-4 e S10-5.

Siate inoltre sicuri che, nel caso sia il programmatore a fornire alimentazione al PIC, esso sia in grado di erogare una corrente sufficiente anche all'alimentazione del led D2 (circa 5 mA).

1) Programmatore che fornisce al PIC alimentazione (Vdd e Vss), /MCLR, RB6 e RB7.
In tal caso lo switch S1 deve avere tutti gli interruttori su OFF; la programmazione avviene allora attivando S10-1 (Vdd), S10-2 (/MCLR), S10-3 (Vss), S10-4 (RB6), S10-5 (RB7).

2) Programmatore che riceve alimentazione (Vdd e Vss) dalla basetta.
2-a)
alimentazione dal 7805: in tal caso si deve portare ai terminali Vdd e Vss del PIC l'alimentazione proveniente dal regolatore ponendo su ON gli switch S1-1 e S1-2, lasciando su OFF S1-3 e S1-4; si devono poi porre su ON tutti gli switch di S10, in modo che al programmatore arrivi la tensione di alimentazione, e che il programmatore stesso controlli il terminale di /MCLR (oltre, ovviamente, ai terminali RB6 e RB7).
2-b) alimentazione da un circuito esterno mediante JP4: si devono porre su OFF tutti gli switch di S1; si devono porre su ON S5-1 e S5-3, lasciando su OFF S5-2 (/MCLR); si devono poi attivare tutti i 5 switch di S10 per inviare al programmatore l'alimentazione e da esso ricevere /MCLR, RB6 e RB7


Elenco dei componenti

Nota: tutti i resistori sono da 1/4 W, 5% di tolleranza.
Per J1-J2 si può utilizzare un connettore a 2 poli, con passo di 5.08 mm.
Tutti gli altri connettori hanno il passo di 2.54 mm.
I jumpers hanno distanza fra i piedini di 7.62 mm.

R1, R8, R9 - 680 Ohm
R2 - 10 KOhm
R3 - 100 Ohm
R4, R5 - 4.7 KOhm
R6 - Potenziometro miniatura 10 K
R7 - Potenziometro miniatura 220 K
C1, C2 - 100 nF
C3 - 47 uF 16 V
C4 - 10 uF 16 V
C5 - 100 uF 25 V
C6 - 100 pF
C7, C8 - 22 pF
Y1 - Quarzo 4 MHz
D1, D2, D3 - Diodo LED 2.5 / 3 mm
D4 - 1N4001 o equivalenti
S1, S2, S3, S4, S5 - Dip switch a 4 poli
S10 - Dip switch a 5 poli
S6, S7, S8 - Jumper
S9 - Pulsante instabile normalmente aperto
J1 - Connettore 1 polo (alimentazione positiva alla basetta)
J2 - Connettore 1 polo (massa dell'alimentazione alla basetta)
JP1, JP4, JP9 - Connettore 6 poli
JP5, JP8 - Connettore DIL 6 poli
JP2 - Connettore 2 poli
JP6 - Connettore DIL 2 poli
JP3 - Connettore 8 poli
JP7 - Connettore DIL 8 poli
U2 - 7805 o equivalenti
U1 - PIC 16F84 o PIC 16C84

Dove trovare i componenti?

I componenti sono abbastanza standard, dovreste essere in grado di trovarli in qualunque negozio di articoli elettronici. Per quanto riguarda il PIC, potete ordinarlo (magari anche insieme alla basetta e a gran parte dei componenti) presso uno dei numerosi rivenditori on-line di materiale elettronico.

Realizzazione del circuito

Sono riportate, nelle seguenti immagini, le figure relative al layout del circuito e alla disposizione dei componenti.

Si tratta di immagini a 100 e 300 dpi. Per avere le immagini in una nuova finestra, da dove potrete stampare quelle a 300 dpi, potete fare click direttamente su quelle visibili qui sotto o sui link sottostanti, oppure, se utilizzate un sistema Windows (TM) 95/98, utilizzare il tasto destro del mouse e scegliere "Apri collegamento in un' altra finestra". In alternativa potete salvare le immagini sul vostro hard disk o altra memoria di massa con l'opzione contestuale "Salva immagine con nome" e stamparle in un secondo tempo con il browser o altri programmi. Con il browser si potrebbero avere problemi di dimensioni, mentre ad esempio Imaging (TM) di Windows (TM) dovrebbe stampare automaticamente con le dimensioni reali. Se avete dei dubbi sulle dimensioni della stampa ottenuta, perlomeno del layout lato rame, e temete che non sia a grandezza reale, provate a misurare le distanze fra i fori per i componenti DIL, che deve risultare di 2.54 mm fra piedini contigui e di 2.54 mm * 3 = 7.62 mm fra le due file. Ovviamente, per non incorrere in grossolani errori di misura, nel caso della distanza fra pin contigui utilizzate quella fra il primo e il nono piedino di una fila, assicurandovi che sia di 2.54 mm * (9-1) = 20.32 mm. Non riuscirete naturalmente ad apprezzare i centesimi di millimetro, e forse neppure i decimi (non avrebbe neppure senso viste le dimensioni finite delle piazzole e dei loro fori), ma se la vostra misura è appena superiore ai 20 mm dovreste essere a posto. La distanza fra le file dovrebbe invece essere approssimativamente appena superiore ai 7.5 mm. Se una delle due distanze non fosse quella attesa , detta x la relativa misura, dovreste applicare un fattore di zoom orizzontale pari a 7.62/x e un fattore di zoom verticale pari a 20.32/x.

Nella seconda figura si nota la disposizione dei componenti con la basetta vista dall'alto e in trasparenza. Si notino i tre ponticelli (lato componenti) necessari al funzionamento del circuito.

NOTA: il layout a 300 dpi è utilizzabile come master di buona qualità in quanto privo delle zone di grigio presenti nella omonima figura a 100 dpi.

Lo schema elettrico è visibile in dettaglio nella versione a 300 dpi (257 KB).

 

Il layout del circuito a 100 dpi


Qui il layout stampabile a 300 dpi

Disposizione dei componenti e disegno delle piste e dei ponticelli (blu)

Qui il disegno stampabile a 300 dpi

   

 

Schema elettrico del circuito

Qui lo schema stampabile a 300 dpi

 

Disposizione dei componenti sulla basetta

Qui il disegno stampabile a 300 dpi

 

Nel caso realizziate l'Evaluation Board, interamente o limitandovi ad alcune funzionalità, potete scrivermi per segnalarmi eventuali problemi, e per suggerimenti su possibili migliorie.
 

Sperando di esservi stato utile non mi resta che augurarvi buon lavoro!

 

Se volete contattarmi per chiarimenti o suggerimenti potete farlo al seguente indirizzo:

f_iacopetti@libero.it

 
Ultimo aggiornamento: 28 Feb 2002 23.10 HyperCounter HyperCounter