Board Di Sviluppo AnxaPIC v4

Transcript

Board Di Sviluppo AnxaPIC v4
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
ANXAPIC v4 Development Board
na Apr ’10 rev1a
AnxaPic v4 è una scheda di sviluppo per
microcontrollori MicroChip
PIC a 40 pin
realizzata come supporto per le nostre semplici
esercitazioni nei laboratori di TDP, SISTEMI e
ELETTRONICA, senza l’aggiunta di ulteriore
eccessivo hardware esterno.
La scheda è abbastanza compatta (cm 15,5 x
cm 18,5) e contiene peculiarità interessanti per
lo sviluppo delle nostre esercitazioni.
Lo sviluppo di questa scheda è iniziata alcuni
anni orsono come coadiuvo per la realizzazione
di semplici interfacce per la robotica (interfacce
per servo, motori in cc, sensori a infrarossi,
etc… ); solo in queste ultime versioni è stata
pensata come scheda “didattica”.
Un grazie a Giuseppe Bonura, diplomatosi nell’A.S. 2007/08,
per il suo preziosissimo apporto nello sviluppo della scheda e
nella realizzazione del PCB.
AnxaPic v4.5 rA
na_AnxaPic v4
1
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.b
1.i
1.i
1.n
1.f
1.f
1.b
1.k
1.j
1.f
1.ba
1.dc
1.bb
1.e
1.l
1.h
1.g
1.k
1.ca
1.m
1.b
1.dc
1.da
1.k
1.c
1.ba
1.a
Lo schema elettrico – Page 1
na_AnxaPic v4
2
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.db
1.db
1.db
1.dc
1.db
1.da
1.da
1.da
Lo schema elettrico – Page 2
na_AnxaPic v4
3
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.
Lo schema elettrico
L’analisi dello schema elettrico non presenta eccessive difficoltà; la scheda AnxaPic è un insieme di più
“sottosistemi” semplici e funzionali che nel loro insieme possono realizzare un “sistema” abbastanza
complesso. La comprensione dei singoli sottosistemi permette di definire agevolmente il funzionamento
dell’intero “sistema” AnxaPic.
Nella scheda sono presenti diversi integrati che possono svolgere funzioni abbastanza complesse, spesso,
nel nostro caso, un solo integrato può svolgere tutte le funzioni di un intero sottosistema (blocco); questo
da un certo punto agevola la realizzazione e la comprensione funzionale dell’intero sistema, però può
nascondere le complessità dei singoli sottosistemi.
Questa scheda rappresenta un ottimo esempio di
come
sia
oggi
possibile
realizzare
sistemi
complessi “assemblando” circuiti integrati con funzioni specifiche.
Il ruolo principale del progettista è di assicurarsi che siano rispettate le compatibilità elettriche e
funzionali tra gli integrati dei vari sottosistemi e tra gli integrati e l’intero sistema.
na_AnxaPic v4
4
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.
Lo schema elettrico
Nel “sistema” AnxaPic si possono presentare le seguenti sezioni:
a)
b)
c)
Alimentazione stabilizzata a 5 V per Board e display LCD
Interfacce per display LCD text e display LCD grafico
Interfaccia per
moduli wireless (2.4 GHz) e BlueTooh della MaxStream
(http://www.maxstream.net)
d) Interfacce per moduli I2C, SPI, CAN-SPI, RS232, MMC/SD, USB
e) Interfaccia per tastierino a matrice 4x4
f) Connettori expansion-bus
g) I2C Serial EEProm add-on memory
h) Interfaccia 1-wire – Sensore temperatura DS18b20 on board
i) Microcontrollore
j) Oscillatore
k) Periferiche I/O on board
l) Periferiche I/O on board - Resistenze di Pull Up
m) Connessione I2C
n) Programmare il MicroControllore - Sezione interfaccia per MicroChip ICD2* e PicKit2*
Inc.
* Sulla scheda sono presenti due connettori per la programmazione ICD del controllore. I connettori
permettono la programmazione sia con l’ICD2 della Microchip (o compatibile) sia con il MicroChip
PicKit2 (o compatibile).
na_AnxaPic v4
5
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.a) Lo schema elettrico – Sezione alimentazione stabilizzata
La sezione “alimentazione stabilizzata” è molto
semplice. La tensione stabilizzata a 5 V viene sfruttata
per alimentare il microcontrollore della scheda e il
display LCD con la rispettiva retroilluminazione.
Per un funzionamento corretto si raccomanda una
tensione di alimentazione, a monte degli stabilizzatori,
superiore a 7.5 V ( Vou = Vin + Vdropout) e per i
nostri integrati (MC78T05C) la tensione
tipica di
dropout è di circa 2,5 V.
Per gli stabilizzatori si raccomandano integrati con
correnti max di almeno 1,5 A, in alcuni casi noi
abbiamo montato integrati della serie MC78T05C in
grado di erogare correnti max di 3 A.
na_AnxaPic v4
6
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.b) Lo schema elettrico – Sezione interfacce per display LCD text e grafico
La nostra scheda supporta sia display LCD di tipo text
(es. con controller Hitachi HD44780 o compatibile),
sia display grafici (es: con controller samsung KS108
o compatibile). I due display non possono essere
montati contemporaneamente sulla board (Pin di
indirizzamento e controllo, del microcontrollore,
comuni), pertanto sono stati predisposti i connettori
opportuni (per il display grafico sono disponibili più
di un connettore a seconda del display che si vuol
montare) e poi si monterà il display che si vuol
utilizzare.
Da notare la presenza di due jumper (JP1-JP2) a tre
pin che permettono di alimentare correttamente la
retroilluminazione dei display LCD text (alcuni
display presentano il piedino 15 a +Vcc e il piedino
16 a GND, per altri display si ha invece il piedino 15
a GND e il piedino 16 a +Vcc).
na_AnxaPic v4
7
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.ba) Lo schema elettrico – Sezione interfacce per display LCD text
Questi moduli lcd a caratteri sono costruiti da diverse
industrie:
Philips,
Optrex,
Densitron
e
molte altre, specialmente made in Taiwan.
Il display di uno di questi moduli contiene una o
più righe di caratteri. Ogni carattere consiste di una
matrice di punti che tipicamente è di 8x5 , anche se il
controller
HD44780
potrebbe
controllarne
fino a 11x5.
Il modulo crea i caratteri accendendo i pixel
appropriati all'interno di un carattere.
Con il presente jumper a 3 vie possiamo decidere se utilizzare
il pin RD2 per pilotare il display text, oppure collegare a
GND il R/W (Il display è settato in modo scrittura continua) e
utilizzare il pin RD2 per pilotare il buzzer on board.
na_AnxaPic v4
8
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.bb) Lo schema elettrico – Sezione interfacce per display LCD grafico
Il display Grafico (LCD GLCD) permette di visualizzare
messaggi avanzati. Mentre nel display LCD TXT i caratteri
possono essere solamente di tipo alfanumerici, nell’LCD
GLCD possono essere visualizzati messaggi in forma di
disegno. Gli LCD grafici più comuni sono quelli con una
risoluzione dello schermo pari a 128x64.
Dobbiamo ricordare bene, che mentre nel display di
tipo testo era possibile decidere la destinazione di
utilizzo del pin RD2, invece quando vogliamo
utilizzare il display grafico il pin RD2 deve essere
obbligatoriamente utilizzato per pilotare il display
na_AnxaPic v4
Anche qui possiamo notare che i
connettori per i display sono due, e
anche in questo caso per
consentire di poter montare a
bordo tipologie diverse di display.
Come possiamo notare anche questo trimmer serve a
regolare il contrasto del display, l’unica differenza è
che nel display di tipo testo esso è regolato con un
trimmer tra GND e VCC, mentre come possiamo
notare anche dallo schema elettrico, in quello grafico
il contrasto è regolato tra VEE e GND, dove VEE è
una tensione negativa (-12v) generata dallo stesso
display.
9
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.c) Lo schema elettrico – Sezione interfaccia per modulo wireless “XBee” della MaxStream Inc.
Per la connessione del modulo wireless “XBee” della
maxStream è presente sulla scheda un doppio
connettrore strip-line (12 pin ogni uno, passo 2,54
mm) con gli opportuni jumpers che controllano la
alimentazione e le linee Rx e Tx. Tutto l’hardware
necessario all’interfazziamento del modulo è presente
sulla scheda.
Il modulo XBee [1] viene alimentato e
“pilotato” con una tensione di 3.3 V, per
consentire una connessione semplice ed
affidabile tra il modulo XBee e la nostra
demoBoard abbiamo utilizzato un opportuno
modulo [2] (XBee - Simple Board).
[1]
[2]
Il modulo XBee – Simple Board [2] viene
inserito sulla doppia strip-line (passo 2,54 mm)
della nostra Board.
Il modulo xBee [1] viene inserito sopra la XBee – simple Board [2] su un opportuno connettore
(strip-line verticale con passo 2 mm) già presente sul modulo stesso [2].
N.B. => Tutti i moduli discussi sono reperibili presso  http://www.robot-italy.com (Radio & wireless/zigBee)
na_AnxaPic v4
10
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.c) Lo schema elettrico – Sezione wireless per moduli BlueTooth (XBT)
la maggior parte dei pin dell'XBT corrispondono, in termini di funzioni, a quelli dei moduli
wireless XBee; questo consente l'intercambiabilita' tra i due moduli
Per la connessione del modulo BlueTooth XBT è
presente sulla scheda un doppio connettrore strip-line
(12 pin ogni uno, passo 2,54 mm) con gli opportuni
jumpers che controllano la alimentazione e le linee Rx
e Tx. Tutto l’hardware necessario all’interfazziamento
del modulo è presente sulla scheda.
Sul modulo Xbeesimple Board sono
attivi dei jumpers
per definire la
modalità di
funzionamento del
modulo stesso
Consultare il DataSheet del modulo
BlueTooth
[1]
[2]
Il modulo XBT [1] viene alimentato e “pilotato” con
una tensione di 3.3 V, per consentire una connessione
semplice ed affidabile tra il modulo XBT e la nostra
demoBoard abbiamo utilizzato un opportuno modulo
[2] (XBee - Simple Board).
Il modulo XBee – Simple Board [2] viene inserito
sulla doppia strip-line (passo 2,54 mm) della nostra
Board.
Il modulo XBT [1] viene inserito sopra la XBee – simple Board [2] su un opportuno connettore
(strip-line verticale con passo 2 mm) già presente sul modulo stesso [2].
N.B. => Tutti i moduli discussi sono reperibili presso  http://www.robot-italy.com (Radio & wireless/bluetooth)
na_AnxaPic v4
11
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.da) Lo schema elettrico – Sezione interfaccia per moduli MMC/SD Card, RS232, USB, PS2
N.B.  La connessione USB è valida
solo
per
quei
microcontrollori
predisposti (es. PIC18F4550)
In questo caso abbiamo dei semplici connettori di
interfaccia per i moduli considerati. Per la disposizione dei
collegamenti sui singoli pin dei connettori abbiamo
rispettato la identica disposizione dei rispettivi connettori
della nota board di sviluppo EasyPic della mikroElektronika
(http://www.mikroe.com/en/).
Abbiamo optato per questa scelta solo per motivi economici; ogni modulo
esterno può essere acquistato separatamente, con costi accessibili e
opportunamente collegato mediante un semplice flat-cable
na_AnxaPic v4
12
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.db) Lo schema elettrico – Sezione interfaccia per moduli CAN/SPI, RS485, DAC/ADC, ExpPort
MikroElektronika 12-bit analog-to-digital
converter (ADC module) with 4 inputs and
4.096V voltage reference
Anche in questo caso, come per altri moduli, abbiamo dei semplici connettori di interfaccia.
Per la disposizione dei collegamenti sui singoli pin dei connettori abbiamo rispettato la
identica disposizione dei rispettivi connettori della nota board di sviluppo EasyPic della
mikroElektronika (http://www.mikroe.com/en/).
Abbiamo optato per questa scelta solo per motivi economici; ogni
modulo esterno può essere acquistato separatamente, con costi
accessibili e opportunamente collegato mediante un semplice flat-cable
na_AnxaPic v4
13
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.dc) Lo schema elettrico – Sezione interfaccia per moduli SPI/I2C display-touch, RTC-Multiuse
Dip-Switch per la selezione
dei pin di collegamento per
canale SPI
Questi due connettori (a 90°) sono
montati sotto il diplay LCD
Connettore Multiuso con pinout definibile mediante opportuni
jumpers. I pin collegati possono essere utilizzati, mediante flatcable, per controllare un eventuale display touch-screen. Controlla
compatibilità con modulo della MikroElektronika.
Connettore multiuso per collegamenti dedicati, es. PCF8583P ,
RTC della Philips
Modulo RTC della MikroElektronika
na_AnxaPic v4
14
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.e) Lo schema elettrico – Sezione interfaccia per tastierino a matrice 4x4
Per l'immissione dei dati dall’esterno ci serviremo di un tastierino a matrice 4x4 con 16 tasti disposti su 4 righe e 4 colonne.
L'interfacciamento del tastierino con la nostra Board è semplificato mediante l'utilizzo di un opportuno encoder effettuato tramite l’ausilio
di un microcontrollore dedicato (PIC16F88) che gestisce anche il processo di debouncer (tempo di ritardo nella decodifica del tasto
premuto).
Quando si preme un tasto,
l’encoder (es. realizzato con un
PIC16F88) genera sulle uscite
DCBA il codice relativo al tasto
premuto, genera anche un
segnale di interrupt (Int) e rende
disponibili i dati sul bus per un
tempo di circa 20-40 ms
(debouncer). I 4 bit generati
verranno
intercettati
e
decodificati dal microcontrollore;
a tal proposito bisogna produrre
opportuno software.
Un esempio nella sezione “conoscere i
Pic” – Lezione 16. Encoder realizzato
con Pic16F88
na_AnxaPic v4
15
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.f) Lo schema elettrico – Sezione interfaccia connettori expansion-bus
I due bus che possiamo vedere riportati nello schema sovrastante sono utilizzati principalmente per portare all’esterno i piedini del
nostro MicroControllore e permettere il collegamento con periferiche esterne.
Questo piccolo bus a 10 pin è denominato connettore
multiuso, questo perché su di esso sono riportate varie
funzionalità, quali la trasmissione seriale tramite i pin C6
e C7, due interrupt, uno sul pin RB0 e l’altro sul pin RB5,
in più vi sono inclusi due piedini RA2 e RA5 che
possiamo utilizzarli per il controllo del sensore di
temperatura SHT75, ed infine vi sono i due controller
CCPX, utilizzabili nelle 3 configurazioni CAPTURE ,
COMPARE , PWM, oltre alle due linee Vcc e massa.
na_AnxaPic v4
16
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.g) Lo schema elettrico – Sezione interfaccia I2C Serial EEProm add-on memory
La memoria seriale I2C esterna è una delle tante periferiche che possiamo connettere al nostro microcontrollore,.
Il suo utilizzo si presenta utile quando la memoria Flash del nostro PIC è piena, infatti sono li che andremo ad
inserire i nostri dati, oppure nel caso del display grafico possiamo inserire delle immagine generate con appositi
software.
Zoccolo per memoria I2C e il jumper a 3 per
la selezione dell’indirizzo che generalmente
viene impostato dal costruttore, invece per
le memorie c’è la possibilità di avere 3 bit a
disposizione per poter iimpostare uno degli
8 indirizzi possibili. Nel nostro schema si
nota che 2 dei 3 pin disponibili (A1 e A2)
sono impostati a livello logico basso mentre
è possibile impostare il pin A0 a livello
logico alto o basso mediante l’opportuno
jumper a 3 vie.
na_AnxaPic v4
Resistenze di pull-up per il
bus I2C e i jumpers adibiti
alla loro abilitazione.
17
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.h) Lo schema elettrico – Sezione interfaccia 1-wire
Il bus 1-Wire della Dallas Semiconductor è un bus asincrono master / slave senza protocolli multimaster. Come il bus I2C, il 1-Wire è un half-duplex, esso utilizza una tipologia open-drain su un unico
filo bidirezionale. Tuttavia il bus 1-Wire permette anche l’utilizzo della linea dati per trasmettere
potenza allo slave, anche se in maniera limitata. Limitato ad una velocità massima di 16 Kbps può
raggiungere lunghezze di collegamento di 300 metri utilizzando appropriati resistori di pull-up.
Sulla nostra demoBoard è presente un connettore maschio a 90° per il collegamento di periferiche
esterne che utilizzano questo bus di comunicazione; mediante opportuno jumper è selezionabile la
linea di comunicazione tra il pin RA5 e il pin RE2 del controllore.
na_AnxaPic v4
18
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.ha) Lo schema elettrico – Sezione interfaccia 1-wire – Sensore temperatura DS18b20 on board
Il termometro digitale DS1820 è un ottimo sensore per la misura della
temperatura ambientale, esso possiede un range di temperatura che
va da -55°C a +125°C con un accuratezza di +/- 0.5°C.
Deve essere posizionato correttamente sul socket previsto
sull’AnxaPIC 4 onde evitare danni permanenti al sensore.
Nota bene che per un buon inserimento del sensore basta
far riferimento alla serigrafia accuratamente evidenziata
sulla scheda.
Il sensore DS1820 per poter essere utilizzato richiede
la conoscenza del protocollo di comunicazione 1WIRE, ovvero un protocollo seriale con 1 sola linea di
comunicazione. Nel nostro caso, mediante opportuno
jumper a 3 vie può essere scelto il pin RA5 oppure il
pin RE2 del microcontrollore.
na_AnxaPic v4
19
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.i) Lo schema elettrico – Sezione interfaccia Microcontrollore
La Board di sviluppo AnxaPIC 4 è stata progettata per utilizzare nel miglior modo possibile e per sfruttare al massimo le funzionalità di
Microcontrollori MICROCHIP a 40 pin.
SW Reset
Il pulsante RB0
verrà utilizzato per
implementare on board
una condizione di
interrupt sul pin RB0
na_AnxaPic v4
Ricordare bene che tutti i pin del
microcontrollore sono in parallelo
sui due connettori di espansione
sulla scheda, quindi non connettere
lo stesso pin per più di un utilizzo.
20
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.j) Lo schema elettrico – Sezione interfaccia Microcontrollore – L’oscillatore
Per il funzionamento del microcontrollore è opportuno applicare esternamente un oscillatore al quarzo. In alcuni PIC
dell’ultima generazione è possibile utilizzare un opportuno clock interno e quindi sfruttare i due pin di collegamento per
il circuito esterno di clock, come pin di I/O.
1
2
3
Per alcuni microcontrollori i pin
di collegamento per l’oscillatore
esterno possono essere utilizzati
come pin digitali di INPUT /
OUTPUT.
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
Pin 13 - 14
impiegati come
collegamento per
l’oscillatore esterno
na_AnxaPic v4
Pin 13 – 14
impiegati come
digital I/O
Per far si che la scheda possa
essere utilizzabile anche con
microcontrollori
di
ultima
generazione, sono stati applicati
due jumpers (riquadro verde
sull’immagine) per consentire di
utilizzare i pin opportuni come
pin di I/O, quando si utilizza
l’oscillatore
interno
del
mirocontrollore.
21
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.k) Lo schema elettrico – Sezione interfaccia periferiche I/O on board
Per poter sfruttare al meglio la nostra Board ma soprattutto per sfruttare senza l’ausilio di circuiti esterni le
funzionalità di base, abbiamo implementato a bordo un diodo led (uscita pin RD3), un buzzer auto-oscillante, un
trimmer in ingresso sulla linea RA0 (input ADC AN0) e un Microswitch per simulare una condizione di interrupt
sul pin RB0.
Opportuni jumpers permettono la
selezione dei singoli dispositivi.
Per il buzzer autooscillante sono possibili scelte multiple.
Ricordiamo che RD2 è comune con l’LCD text, per evitare conflitti
configurare anche il jumper per pilotare l’LCD text
na_AnxaPic v4
22
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.l) Lo schema elettrico – Sezione interfaccia periferiche I/O on board – Resistenze di Pull Up
Le resistenze di Pull-Up possono essere abilitate mediante opportuni Jumpers sui vari pin indicati.
Ricordiamo che in alcuni casi la condizione di pull-Up è indispensabile specialmente per le uscite open-drain.
na_AnxaPic v4
23
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.m) Lo schema elettrico – Sezione interfaccia - Connessione I2C
Il protocollo I2C è uno standard introdotto dalla Philips nel 1980 per superare le difficoltà inerenti all'utilizzo di bus
paralleli per la comunicazione tra un'unità di controllo e le varie periferiche.
Il bus I2C è un bus seriale che necessita di sole due linee nominate SDA (Serial Data) e SCL (Serial Clock) più la linea
di massa. Ambedue le linee sono bidirezionali. La prima è utilizzata per il transito dei dati che sono in formato ad 8 bit,
mentre la seconda è utilizzata per trasmettere il segnale di clock necessario per la sincronizzazione della trasmissione.
Il bus I2C permette la connessione di più periferiche su uno stesso bus ma, la comunicazione deve essere tra due soli
dispositivi per volta. Chi trasmette le informazioni è chiamato trasmettitore mentre chi le riceve è chiamato ricevitore.
L'essere il trasmettitore o il ricevitore non è una posizione fissa, ovvero, un trasmettitore può anche divenire ricevitore
in una differente fase della trasmissione dati.
In ogni comunicazione è invece fissa la posizione del cosiddetto Master (Padrone) e del cosiddetto Slave (Schiavo). Il
Master è il dispositivo che inizia la comunicazione ed è lui a terminarla, lo slave può solo ricevere o trasmettere
informazioni su richiesta del Master.
Periferiche I2C più comuni sono: memorie, real time clock (PCF8583, DS1307), LCD, potenziometri digitali,
convertitori A/D, periferiche generiche per estendere il numero degli ingressi o delle uscite (PCF8574), sensori di
temperatura, controllori audio, etc.
Ogni periferica inserita nel bus possiede un indirizzo che la individua in modo univoco. Questo indirizzo può essere
fissato dal produttore in sede di fabbricazione o parzialmente fissato dal progettista. L'indirizzo è costituito da 7 bit
nelle versioni standard o da 10 bit nelle versioni estese. Nel caso di indirizzamento a 7 bit si avrebbe potenzialmente la
possibilità di indirizzare 128 periferiche mentre nel caso di 10 bit si avrebbe la possibilità di indirizzare fino a 1024
periferiche. Il numero di periferiche ora citate non sono comunque raggiungibili dal momento che alcuni indirizzi sono
riservati per funzioni speciali. Su un bus non possono essere presenti due integrati dello stesso tipo con lo stesso
indirizzo. Se proprio si dovesse avere la necessità di inserire due integrati dello stesso tipo sul medesimo Bus o
comunque due periferiche con il medesimo indirizzo, è necessario dividere il bus in due parti e questo può, per
esempio, essere ottenuto con appositi integrati-device tipo il PCA9544 della Philips.
na_AnxaPic v4
24
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.m) Lo schema elettrico – Sezione interfaccia - Connessione I2C
Le potenzialità dell'interfaccia I2C consistono nel fatto di poter disporre di una larga varietà di dispositivi che
possiedono
al
loro
interno l'hardware necessario per la gestione automatica del protocollo. Unica
complicazione potrebbe essere la gestione dell'hardware da parte del microcontrollore.
Per poter utilizzare l'hardware I2C interno al microcontrollore, è comunque necessaria una fase di
inizializzazione, le procedure che si realizzano, possono poi essere riutilizzate in altre applicazioni,
passando per questo problema una sola volta.
Per i microcontrollori della Microchip è presente il tool gratuito Maestro, che mette a disposizione un
gran numero di funzioni, gia definite, utilizzabili in questo e in altri casi.
Nel caso si programmi i microcontrollori con linguaggi ad alto livello, si hanno generalmente già disponibili le
funzioni per la gestione del bus I2C.
Resistenze di pull-up per il
bus I2C e i jumpers adibiti
alla loro abilitazione.
na_AnxaPic v4
On Board connettore I2C (4 pin a
90°) per connettere device esterni
25
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
L’AMBIENTE DI SVILUPPO CCS-PCWH
Serve ad aprire
un progetto già
esistente.
Apriamo il monitor
per il controllo
della seriale.
Serve ad
annullare
un’operazione
Apriamola shell
del programma
MPLAB.
Salva una
modifica
effettuata
Compilazione del
programma
Salva una modifica
effettuata specificando
il nome del file
Salva tutti i file
aperti in quel
momento
Permette l’apertura
di un progetto già
esistente.
Permette la
chiusura del
progetto aperto
Uscire dal software
CCS-PCWHD
Apriamo l’Help del
software
E’ la guida per
l’inizializzazione di un
nuovo progetto.
na_AnxaPic v4
26
40 pin Microcontroller
Development System
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.n) Programmare il MicroControllore
Un microcontrollore di casa MicroChip può essere programmato:
• separatamente, con un Programmatore.
• direttamente, mentre si trova già montato nel circuito finale , aggiungendo nello schema del progetto un adatto
connettore in più ( programmazione in-circuit). Dato che il PIC ha una memoria Flash di programma, sono possibili
veloci variazioni o aggiornamenti del codice programma.
Dopo aver scritto il programma , cioè il codice sorgente, lo si compila:
viene creato un file oggetto con estensione .HEX, il quale deve essere caricato nella memoria di programma del
PIC. Per caricare il file .HEX nella memoria di programma del PIC occorre:
• Un personal computer
• Un programmatore
• Il software di gestione del programmatore
na_AnxaPic v4
27
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.n) Programmare il MicroControllore
Il programma per il PIC si può scrivere usando un Compilatore ad alto livello , ossia un software che usa istruzioni a
livello più elevato , per velocizzare e facilitare la stesura del programma .
Il Compilatore può essere
• in linguaggio BASIC ( ad esempio il PicBasic)
• in linguaggio C
• di tipo grafico, ossia che usa simboli grafici al posto delle istruzioni. Ad esempio usa il simbolo di una porta AND al
posto dell’istruzione assembler equivalente. Due esempi di compilatori grafici sono il Visual Parsic e il Proton+. I
compilatori devono essere acquistati; i più semplici in Basic o C sono a basso costo o anche freeware. Alcuni
compilatori, come il Proton+, offrono delle versioni di prova dette Lite, cioè con funzioni limitate .
na_AnxaPic v4
28
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.n) Programmare il MicroControllore
Come sappiamo i mezzi di programmazione per Microcontrollori PIC Microchip sono svariati. Sulla nostra
demoBoard il microcontrollore può essere programmato in modalità ICD (In Circuit Debugger), cioè una modalità
che permette la scrittura del codice di programma nella Flash memory program del controllore senza sconnettere
l’integrato dal circuito.
MPLAB ICD 2 (Ad oggi, aprile 2010, anche MPLAB ICD 3 è sul mercato) è un programmatore
in-circuit Microchip per dispositivi flash che consente anche il debugging del programma. Grazie
al software fornito a corredo, il programma realizzato può essere eseguito in tempo reale,
esaminato in dettaglio e debuggato. Il firmware interno può essere facilmente aggiornato dal
sito Microchip. Consente di selezionare le variabili da monitorare e di impostare i breakpoint
direttamente dal codice sorgente C o assembly ed eseguire passo passo le istruzioni. Il segreto
di questo sistema di sviluppo risiede in due linee hardware di controllo che permettono la
programmazione in-circuit e il debugging del programma (tramite un firmware proprietario che
viene scaricato nel micro e attivato in fase di verifica del codice). Le risorse del microcontrollore
necessarie per il debugging sono minime e includono un livello di stack, l'utilizzo di alcuni
registri, e una piccolissima parte di memoria programma.
na_AnxaPic v4
29
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.n) Programmare il MicroControllore
Programmazione ICD on board con il MicroChip ICD Programmer-Debugger; naturalmente sono supportati
anche tutti i programmatori-Debugger compatibili
na_AnxaPic v4
30
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
1.n) Programmare il MicroControllore
Come sappiamo i mezzi di programmazione per Microcontrollori PIC Microchip sono svariati. Sulla nostra
demoBoard il microcontrollore può essere programmato in modalità ICD (In Circuit Debugger), cioè una modalità
che permette la scrittura del codice di programma nella Flash memory program del controllore senza sconnettere
l’integrato dal circuito.
Il Microchip PicKit2 (Ad oggi, aprile 2010, anche PicKit3 è sul mercato) è un programmatore USB incircuit. Consente di programmare quasi tutti i microcontrollori Flash delle famiglie 10, 12, 16, 18 e 24
nonché di eseguire - sui micro che supportano tale funzione - il debug in tempo reale. Il set comprende due
CD (MPLAB e PICkit 2 Starter Kit) con tutto il software necessario. Il secondo CD comprende anche un
corso in dodici lezioni che copre gli argomenti relativi a I/O, Interrupt, ADC, Tabelle Dati & Timer.
Vengono forniti anche i file di tutti i codici sorgente. Il firmware interno può essere facilmente aggiornato
dal sito Microchip.
na_AnxaPic v4
31
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
COMUNICAZIONE SPI:
Concentriamo ora l’attenzione sullo standard SPI. Il serial peripheral interface è uno standard per bus seriali stabilito dalla Motorola
e supportato su silicio da svariati produttori. Le interfacce SPI sono disponibili su processori per comunicazioni popolari come l’
MPC8260 e microcontrollori come l’ M68HC11. Esse forniscono un collegamento seriale full-duplex nel quale i segnali portano i
dati in ambo le direzioni contemporaneamente. I dispositivi SPI comunicano usando una relazione di tipo master / slave, nella quale
il master inizializza la struttura dati. Quando il master genera il clock di trasmissione e seleziona un dispositivo slave i dati possono
essere trasferiti in ognuna od entrambe le direzioni. Infatti, per quanto riguarda l’interfaccia, i dati sono sempre trasferiti in ambo le
direzioni; sta poi al master e allo slave sapere se il byte ricevuto ha significato. Così un dispositivo deve scartare il byte ricevuto in
uno scambio di sola trasmissione o generarne uno inutile in uno di sola ricezione.
Lo standard SPI comprende quattro segnali: il clock (SCLK);
l’uscita dati master, ingresso dati slave (MOSI); l’ingresso dati
master,uscita dati slave (MISO); la selezione dello slave (SS). La
figura riportata qui di fianco mostra questi segnali in una
configurazione con un solo slave. L’SCLK è generato dal master
ed è un ingresso per tutti gli slave. MOSI porta i dati dal master
allo slave. MISO porta i dati dallo slave al master. Un dispositivo
slave è selezionato quando il master asserisce il suo segnale SS
di selezione. Se vi sono più dispositivi slave, il master genera
segnali di selezione separati per ognuno. Questa configurazione
è evidenziata dal riquadro rosso.
na_AnxaPic v4
32
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
Mentre lo standard SPI non descrive un modo specifico per implementare sistemi
multi-master, alcuni dispositivi SPI supportano segnali addizionali che rendono
possibile tale implementazione. Tuttavia essendo complicato e normalmente non
necessario, non è una pratica seguita spesso dai produttori. Una coppia di
parametri chiamati polarità del clock (CPOL) e fase del clock (CPHA)determinano i
fronti del segnale di clock sui quali i dati sono pilotati e campionati. Ognuno di detti
parametri ha due stati possibili, quindi si hanno quattro combinazioni ognuna
incompatibile con le altre. Se si usano più slave con configurazioni differenti il
master dovrà riconfigurarsi ogni volta che ha bisogno di comunicare con uno slave
diverso.
Lo standard SPI non prevede un meccanismo di riconoscimento per confermare la
ricezione dei dati. Così, in mancanza di un protocollo di risposta, il master non sa
neppure se uno slave è collegato. In più l’SPI non offre nessun controllo di flusso.
Se si ha bisogno di un controllo di flusso hardware bisogna realizzarlo esternamente
all’SPI. Lo standard SPI non specifica nessun particolare protocollo di comunicazione
master / slave ad alto livello. In alcune applicazioni non è richiesto alcun protocollo del
genere e sono scambiati solo dati grezzi, per esempio se ci si interfaccia ad un
semplice codec; in altre applicazioni è necessario un protocollo ad alto livello, come un
protocollo di comando-risposta. Per questo lo standard lascia la massima libertà;
bisogna ricordarsi però che il master dovrà iniziare la trasmissione sia per inviare i
propri comandi che per ricevere le risposte dagli slave. Un esempio di un semplice
protocollo di comando risposta per una rete di sensori basata su bus SPI è dato in.
L’SPI ha migliori prestazioni quando si trasmettono stringhe di dati. La sua capacità di comunicazione duplice e i data rate (che si aggirano fino a alcuni Mega bit per
secondo) la rendono, in molti casi, estremamente semplice ed efficiente per applicazioni con un solo master e un solo slave. D’altro canto può essere problematico
implementare un bus SPI con più di uno slave, data la mancanza di indirizzi interni; la complessità del bus crescerà linearmente con il numero degli slave. Lontano
dall’essere un’inefficiente porta per byte l’SPI può essere un’elegante soluzione per comunicazioni dalle richieste semplici o per creare protocolli di livello più alto.
na_AnxaPic v4
33
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
AnxaPic v4.5 rA - Lo schema elettrico – Page 1
na_AnxaPic v4
34
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
AnxaPic v4.5 rA - Lo schema elettrico – Page 2
na_AnxaPic v4
35
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
AnxaPic v4.5 rA - Assembly Top Layout - Disposizione e montaggio
na_AnxaPic v4
36
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
AnxaPic v4.5 rA - Board Layout – Page 1
A Sez. alimentazione logica e display - rtil
G
B Display LCD-TXT
C Conn. programmazione device (ICD2/3 & PicKit2/3
C
B
D Contrasto LCD txt-graphic, controllo retroillumin.
E Connettore Multiuso - RTC (Real Time Clock)
A
F Connettori Bus espansione
E
G Connettori Moduli espansione (rs232, ps2, spi, etc…)
H Resistenze di Pull-Up RB0..RB7, RA2, RA4
O
D
N
R
C
P
I
Connettore I2C
L
Connettore 1-wire e DS1820 pin
M Connettore KeyPad4x4 a matrice
N Xbee wireless/bluetooth modulo
H
O Connettore display graphic
F
I
M
na_AnxaPic v4
L
Q
P Oscillatore al quarzo di sistema
Q Sezione Buzzer
R Trimmer ingresso ADC canale 0
37
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
AnxaPic v4.5 rA - Board Layout - Page 2 - Sezione Jumpers Part 1
S Led di sistema
T EEProm I2C – Jumpers resistor Pull-Up I2C
Y Reset SW
J
RB0 Interrupt SW
K Connettore Multiuso
U Jumper select Pin - Buzzer
V Dip-Switch select canale spi
Jumpers
Y
1
V
J
U
Jumper set pin comunicazione per 1-wire
T
1-wire serial comunication Pin RE2
S
T
1-wire serial comunication Pin RA5
K
1
na_AnxaPic v4
U
38
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
AnxaPic v4.5 rA - Board Layout - Sezione Jumpers Part 2
2
Jumper set R/W display txt
R/W controllato da pin RD2 del PIC
R/W collegato a GND – Pin RD2 del PIC può
essere utilizzato per pilotare Buzzer di sistema
3
4
2
3
Jumper select oscillatore di sistema
Oscillatore al quarzo esterno abilitato
3
Oscillatore interno del micro abilitato
Pin RA6 e RA7 utilizzabili come digital I/O
4
Jumper select alimentazione pin 15 e 16 del display LCD txt
Pin collegato a +Vcc
Pin collegato a GND
na_AnxaPic v4
39
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
AnxaPic v4.5 rA - Board Layout - Sezione Jumpers Part 2
6
5
Jumper select pin micro per controllare il buzzer on board
6
Jumper select Pin driver per add-on Touch-Screen
Per tutti gli altri Jumpers a 2/3 pin controllare
opportunamente la serigrafia della Board e il
corrispondente schema elettrico per definire lo
stato dei singoli Jumper e le relative condizioni
di abilitazione. Da ricordare:
Jumper aperto  Collegamento elettrico non attivo
Jumper chiuso  Collegamento elettrico attivo
5
na_AnxaPic v4
40
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
Avvertenze
---
Considerazioni
Quanto riportato in questo semplice manualetto viene proposto così com’è, a solo scopo
didattico, senza alcuna garanzia di correttezza. Gli autori declinano eventuali responsabilità
per danni a persone, animali o cose derivante dall’uso diretto o indiretto di quanto
proposto.
Il materiale e i circuiti proposti non hanno alcuna “certificazione” commerciale quindi, nel
modo più assoluto, non possono essere impiegati per eventuali scopi commerciali.
Chiunque voglia utilizzare il seguente materiale o decida di realizzare i circuiti proposti, lo
fa a puro titolo personale. Si raccomanda il rispetto e l’osservanza della normativa vigente
sulle norme di sicurezza.
Ogni riproduzione, commercializzazione o altra forma di diffusione di quanto proposto è
tassativamente vietato senza autorizzazione scritta degli autori; è consentito solo il riassunto e
la citazione accompagnati dall'evidenziazione del titolo, degli autori e della fonte originale (legge
22 aprile 1941, n. 633 art. 70 sul diritto d'autore)
Tutti i marchi citati in queste pagine appartengono ai rispettivi proprietari
Per informazioni, considerazioni e segnalazioni di errore: [email protected]
na_AnxaPic v4
41
40 pin Microchip Pic
Development Board
Board Di Sviluppo AnxaPIC v4
I.T.I.S. “G. Cardano” – Monterotondo (Rm)
Per qualsiasi informazione è possibile far fede ai
seguenti contatti:
E-mail: [email protected]
E-mail: [email protected]
Web: www.mrscuole.net/anxapic
Un affettuoso e sentito
ringraziamento a
Giuseppe Bonura
per il suo preziosissimo e
appassionato contributo
na_AnxaPic v4
42