Anteprima
Vedrai una selezione di 13 pagine su 60
Project B, tesina Pag. 1 Project B, tesina Pag. 2
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 6
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 11
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 16
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 21
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 26
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 31
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 36
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 41
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 46
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 51
Anteprima di 13 pagg. su 60.
Scarica il documento per vederlo tutto.
Project B, tesina Pag. 56
1 su 60
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Introduzione Project B, tesina


La tesina che porto quest'anno è la realizzazione di una matrice LED RGB 10x10 controllata da 4 PIC16F877 con approfondimenti relativi a ogni componente e a ogni stadio della realizzazione

Collegamenti

TEEA (tecnologie elettrico-elettroniche) - transistor,condensatori e oscillatori, diodi, PIC16F877
MECCANICA - test flessione, azioni vincolari e test resistenza temperature basse ed elevate
TTIM - progettazione, cablaggio e programmazione
Estratto del documento

PROGETTO

Completata la stesura dello schema elettrico si passa alla fase di

assemblaggio.

Nella foto sottostante (fig. 2.5) si può notare il test di lampeggio e

sincronizzazione dei PIC (posti su una basetta breadboard),

alimentati tramite l’alimentatore stabilizzato a 4,8V. pag.

20

L’alimentatore stabilizzato utilizzato è un PS-305D fabbricato dalla

ditta UG MULTIMEDIA.

Questo modello può fornire una tensione massima in uscita di 30V

e una corrente di 5A. Anche se si tratta di un modello a basso costo

possiede quattro potenziometri che permettono una regolazione

precisa di correnti e tensioni.

Nella fotografia che succede si può invece riconoscere PROJECT Ω e

il Microchip PICKIT3 utilizzati per la programmazione dei quattro PIC

16F877 utilizzati nel progetto.

Completata la fase di test sono passato al cablaggio sulla millefori.

La basetta ha dimensioni importanti rispetto alle solite millefori: ha

una lunghezza di circa 235 mm, e un altezza di 160 mm. pag.

21

La prima operazione di assemblaggio è stata quindi la suddivisione

della basetta per la disposizione dei componenti. Sono partito

tracciando delle linee che delimitavano la posizione della matrice e

ho quindi inserito gli zoccoli nei quali si incastrano i PIC

(fig. 2.7) . pag.

22

Completata la saldatura degli zoccoli ho iniziato quella dei resistori

THT (fig. 2.8) pag.

23

Infine ho montato i componenti attivi e ho effettuato gli ultimi

collegamenti tra il PIC e le uscite tramite saldatura a stagno (fig.

2.9). pag.

24

Ecco la scheda prototipale della matrice completamente

assemblata (fig.3.0):

MICROCONTROLLORE

16F877

Il microcontrollore è un dispositivo che, a differenza del

microprocessore, non necessita di altri componenti esterni per

funzionare (fig. 3.1); infatti il microcontrollore contiene al suo

interno tutti gli apparati che garantiscono l’immediato

funzionamento senza ricorrere a componenti aggiuntivi.

Il componente sul quale si è basata tutta la progettazione è stato

proprio il PIC. Questo doveva avere molti I/O per poter controllare al

meglio la matrice, utilizzando il minor numero di microcontrollori;

stabilito il numero di pin da utilizzare la scelta si è basata sul

rapporto qualità/prezzo, ovvero ciò che veniva fornito dal PIC (in

termini di componentistica interna come la quantità di RAM, gli SFR,

gli ingressi analogici e la possibilità di poter controllare le uscite in pag.

25

PWM ) in relazione al prezzo. La possibilità di avere tutti questi

componenti interni al PIC (anche se non utilizzati al momento e

integrati per applicazioni future) e il basso costo (3,84 €) hanno

portato alla scelta del PIC 16F877 della famiglia Microchip.

Introduzione generale

Il PIC 16F877 è un microcontrollore fabbricato dall’azienda

Microchip Technology. Questo microcontrollore fa parte della

famiglia “midrange” e utilizza una tecnologia a 8 bit che consente

di mantenere i costi di produzione molto bassi ma, allo stesso

tempo, permette una grande flessibilità di utilizzo. In commercio lo

si può trovare sia in configurazione SMD, sia nella classica

configurazione THT che gli consentono di essere impiegato sia nelle

applicazioni industriali che in quelle hobbistiche (fig. 3.2). Nel

progetto sono stati utilizzati componenti che sfruttano tecnologia pag.

26

THT (compreso il PIC) per due motivi principali: il primo riguarda il

cablaggio, in quanto si utilizzava una basetta millefori e quindi era

molto difficile l’utilizzo di componenti SMD; il secondo motivo

riguarda l’intercambiabilità, poiché utilizzando componenti THT

montati su zoccoli risulta molto più facile rimpiazzare il

microcontrollore in caso di guasto o malfunzionamento rispetto a

componenti SMD. La programmazione del PIC 16F877 può avvenire

sia tramite porta seriale (attraverso basette predisposte con

zoccolo), oppure tramite i programmatori Microchip più versatili e

veloci nella programmazione. Per programmare i PIC utilizzati nella

matrice ho fatto ricorso ad un programmatore Microchip

compatibile anche con il 16F877: il PIC kit 3.

Configurazione

piedinatura pag.

27

Come si può vedere in figura 3.2 il PIC 16F877 in configurazione

THT ha 40 pin: 4 vengono usati per l’alimentazione del PIC, uno per

il reset (MCLR) e gli altri (ben 33) funzione di I/O.

Di seguito vengono riportati nomi e le funzioni dei pin del PIC

16F877 pag.

28 pag.

29

Nella realizzazione della matrice sono state utilizzati tutti gli I/O

come uscite digitali per controllare i led RGB e i transistor; il piedino

MCLR è stato portato a +Vdd senza nessun pulsante di reset, in

quanto ritenuto inutile ai fini dell’applicazione. Nessun pulsante ne

nessun ingresso controlla la matrice: appena collegata

all’alimentazione può svolgere in autonomia il lavoro per il quale è

stata programmata.

Essendo (il circuito della matrice) già molto complesso per via

dell’inutilizzo di multiplexer è stato deciso di non utilizzare nessun

ingresso analogico ma, attraverso alcune prove su breadboard con

delle fotoresistenze, il PIC 16F877 ha svolto il suo lavoro in modo

ottimale fornendo risultati concordi con le ipotesi effettuate.

Architettura interna

Il PIC 16F877 ha delle particolarità non solo per quanto concerne

gli I/O, ma anche l’architettura interna; infatti questo PIC adotta

l’architettura Harvard (fig. 3.3) che consente al microcontrollore di

poter svolgere l’azione di estrazione (fetch) e di esecuzione

(execute) di due istruzioni diverse nello stesso ciclo macchina, pag.

30

completando così un operazione in soli due cicli macchina (un ciclo

macchina corrisponde a 4 cicli di clock).

Utilizzando questa architettura si presentano svantaggi per quanto

riguarda sia la complessità circuitale, sia il costo, ma che si

tramutano concretamente in una maggior velocità nell’esecuzione

delle istruzioni rispetto all’architettura Von-Neumann (fig. 3.4).

L’architettura Von-Neumann è usata per microcontrollori poco

costosi che necessitano di

una velocità minore rispetto a

quelli precedentemente

trattati; questa architettura

ha una minor complessità

circuitale che permette di

ridurre i costi di produzione.

Nella figura 3.5 si riporta la

successione di operazioni

eseguite dal PIC 16F877 con

architettura Harvard in uno spaccato di 3 cicli macchina: pag.

31

Ed ecco il calcolo per stabilire la durata di un ciclo macchina con il

quarzo da 20MHz: 1

1 6 = =0,00000005=0,05

T µs=50 ns

= =20∙

T ; f 10 6

f 20 ∙ 10

Quindi 1 ciclo macchina sarà uguale a:

−9

=4 =200

TCY ∙ 50 ∙10 ns

La maggior parte delle istruzioni viene eseguita in un solo ciclo

macchina, anche se le operazioni di salto (call, goto, return)

vengono soddisfatte in due cicli macchina.

Registri interni e SFR pag.

32

Il 16F877 ha una locazione al suo interno che contiene un registro

chiamato SFR (special function register). L’SFR (fig. 3.6) a sua volta

è ripartito in molteplici sezioni, ognuna avente un preciso indirizzo;

ogni indirizzo è normalmente formato da 8 bit (dal bit 0 al bit 7) e

andando ad agire sul singolo bit, cambiandolo di stato, è possibile

svolgere delle precise operazioni.

L’ SFR è suddiviso in 4 banchi che sono settabili distintamente; lo

special function register fa parte, insieme ai registri general

purpose, della RAM.

I registri general purpose vengono spesso utilizzati nelle operazioni

di conteggio per memorizzare risultati, oppure possono essere

utilizzati per immagazzinare dati di operazioni logiche. pag.

33

Di seguito vengono riportati (come da datasheet) le locazioni dell’

SFR e dei registri general purpose con i relativi indirizzi con sistema

numerico esadecimale: pag.

34 pag.

35 pag.

36 pag.

37

All’interno del programma della matrice

sono stati usati solo i primi 2 banchi (0 e 1)

che si configurano attraverso uno dei

registri più importanti: il registro STATUS

(fig. 3.8).

Questo particolare registro prevede 8 bit

(dal bit 0 al bit 7) ma solo il 5 e il 6 (RP0-RP1) sono usati per

selezionare il banco. Attraverso le combinazioni riportate in fig. 3.7

si può decidere il banco e procedere alla programmazione.

Il 16F877 è composto da una PORTA da 6 Bit , una PORTB, PORTC,

PORTD da 8 Bit, e per finire una PORTE da 3 Bit. Per settare queste

porte si ricorre ai registri TRISA, TRISB, TRISC, TRISD e TRISE che

consentono di poter determinare quali pin di una specifica PORT

debbano risultare ingressi, e quali uscite; il procedimento avviene

portando a 0 i bit di un TRIS per ottenere un output, mentre

portando a 1 i bit di un altro tris si ottiene un input.

Nella figura 3.9 un esempio dell’associazione tra TRIS e PORT (in

questo caso viene riportato l’esempio di PORTC e TRISC con 8 bit,

ma la relazione non cambia rispetto gli altri registri che svolgono la

funzione di I/O). pag.

38

Per velocizzare la fase di programmazione è stata preparata una

tabella nella quale vengono riportati tutti i pin dei 4 PIC con il

numero del rispettivo LED nel quadrante:

Elenco quadrante quadrante quadrante quadrante

I/0 PIC alto sx alto dx basso sx basso dx

RA0 LED 9 led 9 LED 9 LED 5

RA1 LED 10 led 10 LED 10 LED 4

RA2 LED 14 led 11 LED 14 LED 10

RA3 LED 15 led 12 LED 15 LED 9

RA4

RA5 LED 20 led 14 LED 20 LED 7

RB0 LED 8 led 8 LED 8 LED 12

RB1 LED 7 led 7 LED 7 LED 11

RB2 LED 6 led 6 LED 6 LED 6

RB3

RB4 LED 4 led 4 LED 4 LED 8

RB5 LED 3 led 3 LED 3 LED 3

RB6 LED 2 led 2 LED 2 LED 2

RB7 LED 1 led 1 LED 1 LED 1

RC0 LED 25 led 21 LED 25 LED 20

RC1 LED 19 led 22 LED 5 LED 19

RC2 LED 5 led 25 LED 19 LED 25

RC3

RC4 TR 3 (blu) TR3 (blu) TR 3 (blu) TR 3 (blu)

RC5 LED 21 led 24 LED 21 LED 23

RC6 TR 2 TR 2 (verde) TR 2 (verde) TR 2 (verde)

(verde)

RC7 LED 16 led 23 LED 16 LED 24

RD0

RD1

RD2 LED 18 LED 5 LED 18 LED 21

RD3 LED 17 LED 13 LED 17 LED 22

RD4 TR 1 TR 1 (rosso) TR 1 (rosso) TR 1 (rosso)

(rosso)

RD5 LED 13 led 20 LED 13 LED 18

RD6 LED 12 led 19 LED 12 LED 17

RD7 LED 11 led 18 LED 11 LED 16 pag.

39

RE0 LED 22 led 15 LED 22 LED 15

RE1 LED 23 led 16 LED 23 LED 14

RE2 LED 24 led 17 LED 24 LED 13

Nella fig. 4.0 è possibile vedere la suddivisione della matrice in

quadranti oltre che il primo-ultimo led contrassegnati dal proprio

numero.

Prima di eseguire qualunque operazione di assegnazione degli I/O si

devono settare le uscite come analogiche o digitali. Per fare ci&ogr

Dettagli
Publisher
60 pagine
1 download