| |
Scheda sperimentale per PIC16F887
Il
PIC16F887
e' un nuovo e potente microcontrollore a
8 bit di Microchip. E' provvisto di numerose periferiche e
di funzioni migliorate che lo rendono il
sostituto ideale del celebre PIC16F877A. Ad esempio,
il PIC16F887 e' dotato di oscillatore
interno impostabile da 32 kHz a 8 MHz, 14 ingressi analogici
selezionabili singolarmente, modulo Enhanced-USART, resistenze di pull-up interne
e interrupt on-change estesi a tutti i pin della
PORTB, possibilita' di misurare la tensione di
alimentazione grazie ad un riferimento di tensione
interno.
Sebbene condivida lo stesso set di
istruzioni assembly
degli altri PIC della famiglia 16F, i registri, i
bit di configurazione e le periferiche migliorate richiedono
impostazioni che non sono compatibili con il
16F877A.
La scheda sperimentale per PIC16F887 permette di
svolgere alcuni esperimenti con questo microcontrollore ed e' adatta
sia a coloro che iniziano ad imparare il linguaggio
assembly
della famiglia PIC16F di Microchip, sia a coloro che hanno
gia' esperienza con i PIC ma vogliono provare questo
nuovo e potente dispositivo. Tipiche applicazioni di
un microcontrollore che possono essere realizzate con
la scheda sono ad esempio: lampeggiare LED con ritardi generici e/O TIMER, comunicazione seriale con un computer, conversione di segnali analogici, la lettura di un pulsante,
l'utilizzo di un display LCD,
ecc.
Puoi richiedere informazioni
qui - Aggiungi 1 scheda al
carrello:
Vai al forum per discutere della Scheda
sperimentale per PIC16F887 >>
vai
A
partire da un template specificamente scritto
per questa scheda, l'utente puo' sviluppare
i propri programmi, aggiungendo eventualmente altri componenti
sulla scheda o tramite connettori,
predisposti per rendere disponibili piu' ingressi/uscite.
La scheda e' particolarmente utile per
progetti di gruppo, anche a distanza, e per classi di
studenti, poiche' permette di testare il codice con
il medesimo hardware.
Tutti gli aspetti della scheda potranno essere discussi
sul forum.
Il microcontrollore viene programmato
"In-Circuit", senza essere rimosso dal suo zoccolo,
mentre e' alimentato sulla scheda. E' compatibile sia
con programmatori di tipo ICD2, sia con il
PICKIT 2. Nel primo caso si utilizza un
cavetto con connettore femmina per arrivare al
connettore ICSP montato sulla scheda; nel
secondo caso il PICKIT 2 puo' essere
applicato direttamente, facendo
attenzione al verso di inserzione. Il pinout del connettore ICSP e': Vpp
- Vdd - GND - PGD - PGC - N.C.
Per quanto riguarda il software necessario a trasferire i
file hex nella memoria del
microcontrollore, MPLAB IDE di Microchip gestisce il
processo con i programmatori citati sopra. Per il PICKIT
2 esiste anche un apposito software, con funzioni
aggiuntive.

Il regolatore 7805 montato sulla scheda fornisce 5 V. E'
necessaria una sorgente di alimentazione esterna, tipicamente
9 o 12 V. L'integrato e' montato sul bordo della scheda per
favorire l'utilizzo di un dissipatore termico, se
necessario.
Sulla scheda e' presente un sensore di
temperatura analogico, il LM335, per sperimentare con il
convertitore A/D. Altri due canali (RA2, RA3) sono accessibili
tramite un connettore.
Due LED rossi permettono di svolgere i
primi esperimenti con le routine di delay
e sono utili
per il debug di altri programmi.
In basso a sinistra si trova il
connettore per display LCD. A destra e'
presente un MAX232
e
condensatori a contorno, per la comunicazione seriale RS-232.
Due zone
preforate permenttono l'aggiunta di altri componenti, ad esempio un
pulsante, un sensore DS1820, ecc. e altri pin generici
sono accessibili tramite un altro connettore, per
poter interfacciare la scheda con altri circuiti o di espandere le
sue funzioni con delle basette millefori (esempi: pilotare un
rele' tramite un transistor, leggere un dip-switch, generare
dei toni sonori con un altoparlante, ecc.).
La scheda e' di tipo singola faccia,
senza solder mask e silkscreen. Le
piste sono stagnate con procedimento chimico. Per il
montaggio si raccomanda particolare attenzione ai componenti polarizzati (diodi,
condensatori elettrolitici).
Il display LCD puo' essere montato su
un connettore femmina (in basso a sinistra) oppure collegato
con pezzi di filo. Nella figura si nota anche l'aggiunta di un
pulsante collegato a RB2
tramite un ponticello (giallo).
Pin-out del display LCD compatibile con
il connettore montato sulla scheda:
Particolare del lato rame:
stagnatura della piste con procedimento chimico.

Particolare del
connettore ICSP (schema) visto dall'alto. Da sinistra verso destra:
Vpp, Vdd, GND, DATA, CLOCK, n.c. Il connettore maschio con
contatti da 0.025"
distanziati di 0.100" puo' essere inserito direttamente nel connettore
femmina del programmatore PICKIT 2.
Schema
elettrico
Elenco dei
componenti
ESPERIMENTI
Scarica il template e i
primi esperimenti! (right-click e "Salva destinazione con
nome...", listati
formattati per l'editor di MPLAB)
|
Template
e00.asm |
Questo template configura il PIC16F887 con
le impostazioni corrette
per la scheda sperimentale. A partire dal template
sono stati scritti i seguenti programmi; l'utente a sua volta
puo' utilizzare questo file, apportandovi eventuali modifiche, per
sviluppare le proprie applicazioni.
|
|
Esperimento n.1
e01.asm |
Far lampeggiare un LED e' stato
per molti il primo progetto con un
microcontrollore. Questo programma accende
alternatamente i due LED rossi generando intervalli di
circa mezzo secondo con routine di uso generale
(software loops): conoscendo quanti cicli macchina richiede
un certo ciclo, e' possibile calcolare quanto tempo
richiede la sua esecuzione. Per generare automaticamente
cicli per ritardi arbitrari e' possibile utilizzare il Delay Code
Generator. |
|
Esperimento n.2
e02a.asm
e02b.asm
e02c.c |
Comunicazione seriale (RS-232) con un
computer. Il primo programma configura il modulo EUSART
per ricevere e trasmettere a 9600 baud. Ogni carattere
premuto sulla tastiera viene ricevuto dal PIC e re-inviato
al computer (eco). E' necessario un terminale seriale
(hyperterminal o equivalente) impostato per la stessa
velocita', 1 bit di stop, no parita' e no controllo
hardware.Il MAX232 sulla scheda adatta i livelli
logici CMOS allo standard RS232.
Il secondo programma sfrutta una interessante funzione
presente nel PIC16F887: l' auto-baud
detection che permette di determinare la velocita' della trasmissione senza
conscerla a priori. All'avvio del programma, si accende un
LED rosso; a quel punto l'utente deve inviare il
carattere 'U' premendo il tasto corrispondente sulla tastiera (esso e'
particolare perche' ha 5 fronti di
salita). Piu' praticamente, questa funzione consente di calibrare il
modulo EUSART rispetto alle tolleranze dell'oscillatore e
del trasmettitore.
Il terzo programma, scritto in linguaggio
C (HI-TECH PICC LITE) mostra come configurare il
modulo USART per 9600 baud con il C. Dopo l'inizializzazione,
ogni carattere digitato viene rimandato
al computer (eco). |
|
Esperimento n.3
e03a.c
e03a.hex |
Per chi programma con mikroC, un esempio con il convertitore A/D, il sensore LM335,
il display LCD: un termometro digitale, creato da un utente del forum per la scheda
sperimentale. La tensione analogica fornita dal sensore di temperatura LM335 è
proporzionale ai gradi Kelvin; essa viene convertita in un dato digitale a 10 bit dal
microcontrollore. Successiva elaborazione permette di ricavare il valore in gradi
Celsius, che viene visualizzato sul display.
|
I programmi in linguaggio assembly sono stati assemblati
con MPASM WIN v5.11 sotto MPLAB. Per i programmi in C e'
stato usato il compilatore HI-TECH PICC LITE v9.50, ove non
diverdamente specificato.
FAQs: alcune domande
che abbiamo ricevuto sulla scheda, con relative
risposte:
1) Non ho a disposizione il
BAT42, posso sostituirlo con un comune
1N4148?
Risposta: e' stato usato un diodo
Schottky per la minor caduta di potenziale rispetto ai comuni
diodi a giunzione pn; cio' viene consigliato anche nella
documentazione di Microchip sulla programmazione In-Circuit.
Il livello logico alto al pin /MCLR e' raggiunto anche se si
usa un 1N4148, ma il BAT42 garantisce un margine piu' ampio.
2) Il collegamento del condensatore C9 e'
diverso rispetto ad altri progetti con MAX232 che ho
realizzato, perche'? Anche i valori di C6, C7, C8, C9 sono
diversi (il datasheet suggerisce 1
microFarad)
Risposta: il condensatore C9 puo'
essere collegato indifferentemente a massa o a +Vcc. Per
quanto riguarda i valori dei condensatori, 1 uF e' il valore
minimo; visto che i condensatori elettrolitici hanno una certa
tolleranza, valori adatti possono essere 2,2 o o 3,3 o 4,7 uF
ad esempio. Possono essere usati condensatori da 10 uF senza
problemi ed e' il valore piu' comune ed anche economico, di
conseguenza. Nota: per i
condensatori elettrolitici i fori sul circuito stampato sono
distanziati di 2,54 mm; usando condensatori diversi o di altri
produttori e' possibile che il passo dei terminali sia pari a 2
mm e il loro inserimento richiede una leggera pressione e/o
adattamento dei terminali.
3) Il mio LCD ha 16
pin ed i contatti sono disposti sul lato inferiore del display
(lo vedrei capovolto), mi suggerite di cercarne uno
compatibile con la scheda?
Risposta: non e'
necessario. Cerca il datasheet del tuo LCD. Due pin sono
probabilmente dedicati alla retroilluminazione. Puoi collegare
il display con pezzi di filo e non con il connettore femmina
che abbiamo usato per i nostri prototipi. Se vuoi approfondire
ulteriormente questo argomento, ti invitiamo a scrivere sul
forum.
4) Come mai il connettore del PICKIT 2
ha 6 pin e quello della scheda ne ha 5 (vedo un foro
aggiuntivo pero')?
Risposta: sulla scheda puo'
essere montato un connettore a sei pin, il foro che vedi serve
a questo infatti. Il sesto pin (AUX) non e' usato e non ci sono
problemi se lo lasci scollegato. In ogni caso e' importante
inserire il PICKIT 2 nel verso giusto: la freccia bianca
indica Vpp.

Link utili:
-
www.microchip.com - produttore dei
PIC micro. Software e strumenti di sviluppo: MPLAB IDE
(contiene MPASM WIN), ICD2,
PICkit2.
-
-
-
-
-
-
Vai al forum per discutere della Scheda
sperimentale per PIC16F887 >>
vai
I contenuti di questa
pagina e di quelle collegate non possono essere riprodotti in
alcun modo senza esplicito accordo con i rispettivi autori.
L'unica eccezione consiste nel riassunto e nella
citazione di parti di questo materiale a scopo di studio,
discussione, documentazione o insegnamento, purche' venga
citata la fonte e non si agisca a scopo di
lucro.
|
|