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