Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

66
l ',:EIt,.;:;i;i:,:!;:;:1í.:, iffigfruryirrFììrìì PD#: Flag di "power-on" Vale 1 quando sr collega l'alrmentazrone VDD o si ese- gue l'islruzione CLRWDT. St pone a zero quando st ese- gue l'istruzione SLEEP TO#: Flag di "time-out" Collegando l'alimentazione, eseguendo l'istruzione CLRWDT o la SLEEP, si pone a 1, e quando vale zero significa che il WDT è andato in overflow. PA0: Selezione della pagina di memoria La memoria di programma dei PIC 12CXXX si divide in pagine, ognuna delle quali e composta da 512 indtrizzi da 12 bit. ll PlC12C50BA dispone solo della pagina 0 dato che ha solo 512 indirizzi, invece il 509A ha 1024 indrizzi ed è composto dalla pagina 0 e dalla pagina '1. ll bit PAO deve essere messo a 'l quando si desidera accedere agli indirizzi della pagina 1, compresi fra 200 e 3FF Hex Va messo a O quando si accede agli indirizzi compresi f ra 000 e '1 FF Hex. GPWUF: Bit di reset per i pin della porta GPIO Quando il microcontroller entra in stato di riposo dopo ave r eseouito l'istruzione 5LEEB esiste un modo di sve- gliarlo producendo un cambio di stato logico su alcune delle linee di l/O della porta GPIO. Questi pin risveglia- no il PIC apposttamente programmato, generando un Reset nel microprocessore. Se GPWUF vale 'l il Reset è stato provocato da un cambio di stato su uno dei pie- dini della porta GPIO; se questo bit vale 0, il Reset e stato provocato da altre cause. i,;I , ,il,',, ', ,i '. ' : :t , . ,,,t.',, Negli indirìzzi 05 e 06 Hex si trovano i registri OSCCAL e GPIO, rispettivamente. Come vedremo più avanti, il PIC 12C50BA ha la possibilità di f unzionare con un oscil- latore ìnterno da 4 MHz, con il 5% di tolleranza, fre- quenza che viene calibrata dalla fabbrica. Reinizialrzzando il microcontroller, il registro W si Distribuzione dei 6 bit che contengono il valore di caltbrazione per l'oscillatore interno. carica con il valore di calibrazione di questo oscillatore, che è stato determinato in fabbrica, e che occupa i6 bit più significatìvi. In ogni caso, per adempiere il suo com- pito questo valore deve essere caricato nel registro OSCCAL, il che suppone di iniziare i programmr spo- stando il valore di calibrazione da W a OSCCAL, mediante l'istruzione MOVWF OSCCAL. In ultìmo, il registro GPIO è quello incaricato di supportare le linee :: ,. Distribuzione dei bit del registro GPIO per gestire le 6 linee di l/O del PlC12C50BA di l/O digitalì con le quali si adattano le periferiche del mondo esterno. GPIO dispone di 6 linee di l/O chiama- te GP0, GP1, GP2, GP3, GP4, e GP5; tutte queste lìnee possono lavorare come ingressi o uscite, ad eccezione di GP3 che puo solo essere un ingresso, Come si esporra piu avanti, questo registro è utilrzzato per la configura- zione delle linee e per contenere l'informazione digitale da trasferire tramite le linee che lo compongono. ;';:'ìr'1:,,.'t,'.i": :i ',: : t":;: La selezione di un dato o di un operando nel PlC12C508A si può realzzarein tre modi, che ricevono il nome di "modo di ndirizzamento" e che sono i seguenti: 1'. lmmediato 2". Diretto 3". lndiretto Nel modo ìmmediato l'operando è incluso nel for- mato della propria istruzione, generalmente occupa gli MOVLW FF CODICE DÉL['ISTRUZIONE OPERANDO (FF) Nell'istruzione "MOVLW FF", l'operando FF è un letterale, o valore immediato, che è contenuto nell'istruzione sressa. GPIO (INDIRIZZO Hex) OSCCAL (lNDlRlzzO 05 Hex)

description

Tutta la raccolta in versione torrent al link: http://www.tntvillage.scambioetico.org/index.php?act=showrelease&id=192104 Su Issuu c'è la raccolta completa. Cerca "Monty Peruzzo Editore".

Transcript of Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Page 1: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

l ',:EIt,.;:;i;i:,:!;:;:1í.:,iffigfruryirrFììrìì

PD#: Flag di "power-on"Vale 1 quando sr collega l'alrmentazrone VDD o si ese-

gue l'islruzione CLRWDT. St pone a zero quando st ese-

gue l'istruzione SLEEP

TO#: Flag di "time-out"Collegando l'alimentazione, eseguendo l'istruzione

CLRWDT o la SLEEP, si pone a 1, e quando vale zero

significa che il WDT è andato in overflow.

PA0: Selezione della pagina di memoriaLa memoria di programma dei PIC 12CXXX si divide in

pagine, ognuna delle quali e composta da 512 indtrizzi

da 12 bit. ll PlC12C50BA dispone solo della pagina 0

dato che ha solo 512 indirizzi, invece il 509A ha 1024

indrizzi ed è composto dalla pagina 0 e dalla pagina '1.

ll bit PAO deve essere messo a 'l quando si desidera

accedere agli indirizzi della pagina 1, compresi fra 200

e 3FF Hex Va messo a O quando si accede agli indirizzi

compresi f ra 000 e '1 FF Hex.

GPWUF: Bit di reset per i pin della porta GPIO

Quando il microcontroller entra in stato di riposo dopoave r eseouito l'istruzione 5LEEB esiste un modo di sve-

gliarlo producendo un cambio di stato logico su alcune

delle linee di l/O della porta GPIO. Questi pin risveglia-

no il PIC apposttamente programmato, generando un

Reset nel microprocessore. Se GPWUF vale 'l il Reset è

stato provocato da un cambio di stato su uno dei pie-

dini della porta GPIO; se questo bit vale 0, il Reset e

stato provocato da altre cause.

i,;I , ,il,',, ', ,i '. ' : :t , . ,,,t.',,

Negli indirìzzi 05 e 06 Hex si trovano i registri OSCCAL

e GPIO, rispettivamente. Come vedremo più avanti, il

PIC 12C50BA ha la possibilità di f unzionare con un oscil-

latore ìnterno da 4 MHz, con il 5% di tolleranza, fre-quenza che viene calibrata dalla fabbrica.

Reinizialrzzando il microcontroller, il registro W si

Distribuzione dei 6 bitche contengono il valore di caltbrazione per l'oscillatore interno.

carica con il valore di calibrazione di questo oscillatore,

che è stato determinato in fabbrica, e che occupa i6 bitpiù significatìvi. In ogni caso, per adempiere il suo com-

pito questo valore deve essere caricato nel registro

OSCCAL, il che suppone di iniziare i programmr spo-

stando il valore di calibrazione da W a OSCCAL,

mediante l'istruzione MOVWF OSCCAL. In ultìmo, il

registro GPIO è quello incaricato di supportare le linee

:: ,.

Distribuzione dei bitdel registro GPIO per gestire le 6 linee di l/O del PlC12C50BA

di l/O digitalì con le quali si adattano le periferiche del

mondo esterno. GPIO dispone di 6 linee di l/O chiama-

te GP0, GP1, GP2, GP3, GP4, e GP5; tutte queste lìnee

possono lavorare come ingressi o uscite, ad eccezione di

GP3 che puo solo essere un ingresso, Come si esporra

piu avanti, questo registro è utilrzzato per la configura-

zione delle linee e per contenere l'informazione digitale

da trasferire tramite le linee che lo compongono.

;';:'ìr'1:,,.'t,'.i": :i ',: : t":;:

La selezione di un dato o di un operando nel

PlC12C508A si può realzzarein tre modi, che ricevono

il nome di "modo di ndirizzamento" e che sono i

seguenti:

1'. lmmediato2". Diretto3". lndiretto

Nel modo ìmmediato l'operando è incluso nel for-mato della propria istruzione, generalmente occupa gli

MOVLW FF

CODICE DÉL['ISTRUZIONE

OPERANDO (FF)

Nell'istruzione "MOVLW FF", l'operando FF è un letterale,

o valore immediato, che è contenuto nell'istruzione sressa.

GPIO (INDIRIZZO 0ó Hex)

OSCCAL (lNDlRlzzO 05 Hex)

Page 2: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

MOWV OB

CODICE DE[TISTRUZIONT

0

\'INDIRIZZO DATO

,

L' i ndi rizzo dell' opera ndosi trova nei 5 bit m.eno significativi del codlce dell'istruzione

B bit meno significativi dei 12 che compongono il for-mato. Frequentemente questo valore viene caricato nel

registro wNel l'indirizzamento diretto, l'operando occupa alcu-

ne delle posizioni della memoria dei dati RAM che si

selezionano con i 5 bit dr indirizzo compresi nella pro-pria istruzione, occupando le ultime posizioni.

Nel PlCl2C50BA, dato che c'è un solo banco di

memoria dei dati, è sufficiente indicare questi 5 bit,pero negli altri nani che hanno più banchi dobbiamo

MOVIV INDF

F5R

7.:

Distribuzione dei bitdi configurazione delle linee di l/O nel registro TRlS

matrcamente, quando si eseguono le istruzioni TRIS e

OPTION. ll registro TRIS si ulilizza per configurare comeingresso o come uscita le linee della porta GPIO; ricor-date che la linea GP3 funziona solo come ingresso. Se

quando si carica il registro TRIS uno dei suoi bìt vale 1,

la linea di l/O corrispondente rimane configurata comeingresso, se vale zero invece come uscita.

Ad esempio, se vogliamo configurare come uscita le

linee GP2, GP1 e GP0 dobbiamo eseguire le seguenti<onronTa di r<f rr rzinnr'

N,IOVLW b',001 1 1000',

TRIS GPIO

Le tre linee meno significative di GPIO sono confi-gurate come uscite e le altre tre come ingressi. Se oravogliamo portare sulle linee di uscita il valore binarioGP2 = 1, GP1 = 0 e GP0 = 1, si eseguiranno le seguen-ti istruzioni:

MOVLW b',00000'101'MOVWF GPIO

lnfine, il registro OPTION, anch'esso senza indirizziassegnati nella RAM, e che si carica con il valore di Weseguendo l'istruzione OPTION, è dedicato principal-mente al controllo del temporizzatore TN/R0 e delWatchdog, che si studierà in modo approfondito piu

avanti Nella frgura è riportata solo la distribuzione deihit nli nrrocin ranictrn

Distribuzione dei bitdel registro OPTION, incaricato di governare il TMR0 e il WDT.

INDIRIZZO DATO

L' i nd i rì zzo cl e I l' o pe ra n cl o, n e I l' i n d i rizza me n to i n d i retto,ri<icrlc nci 5 hir mpno <innificalrvi di FSR.

ufilizzare i bit 5 e 6 del registro FSR per selezionare i

banchi stessi, come rappresentato nella figura.Nel caso del modo di indirizzamento indiretto, nello

mnemonico dell'istruzione si usa come operando il

registro INDF, che non e implementato fisicamente.Nella realtà si utilizzano i 5 bit meno significativi delregistro FSR per selezionare l'induizzo dell'operandonella RAM. Se il PIC avesse diversi banchi si utilizzereb-bero i bit 5 e 6 di FSR, ma questo non è il caso del508A, come si può vedere nella figura.

Questi duenella zona

registri non dispongono di

SFR della memoria RAN/. Si

induizzi definitiutilizzano auto-

;,1:y1 ,1' ,:: ;!,;1.1;

OPTION

l

Page 3: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

le linee di l/O det PIC12C508AL'oscillatore, it TMR0 e

ll PIC'12C5084 ha quattro modi di lavoro, in base al tipodi oscillatore che si utilizza per generare la f requenza di

f unzionamento:1. - EXTRC: Oscillatore esterno basato su RC.

2 * INTRC: Oscillatore interno a 4 MNz.3. - XT: Oscillatore esterno con cristallo di quarzo da

100 KHz sino a 4 MHz.4. - LP - Oscillatore esterno con cristallo a basso con-

sumo da 32 KIlz sino a 200 KHz.

Ouando si lavora con oscillatori esterni basati su cri-stalli di quarzo o risonatori ceramici, ipiediniGPS/OSC1/CLKIN e GP4/OSC2, supportano i piedini delquarzo. I valori dei condensatori C1 e C2 mostrati nella

figura, per imodiXTda 1 a4MHz e per il modo LP da

32 KHz, di solito sono da '1 5 pF.

Quando è molto importante ridurre al massimo il

consumo di energia, si configura l'oscillatore esterno inmodo LP In questo caso, lavorando a 32 KHz, il consu-mo di corrente e di pochi microampere, invece dei mil-liamoere necessari oer lavorare in modo XT a 4 MHz.

Nel modo di lavoro con l'oscillatore esterno, il genera-

tore degli impulsi di clock puo essere un circuito indi-pendente, in questo caso si collega al piedino GP5 e lafrequenza può essere prelevata dal piedino GP4.

Nelle figure seguenti sono proposti gli schemi di un

oscillatore esterno, basato su circuitr indipendenti con

Qrhame r'lal rnllansmanta

del cristallo di quarzo negli oscillatori esterni

Generatore esternocon porrc TTI e cristallo di qua,zo rn configuratione parallela.

porte TTL e cristalli di quarzo in configurazione paralle-

la e seriale. I valori dei componenti passivi sono fornitida MICROCHIP, nelle specifiche tecniche.

Infine nella fiorrra e rinortato lo schema di un oscil-

latore R-C.

La modalità R-C dell'oscillatore è molto semplice ed

economica, però non offre eccessiva stabilità nella fre-quenza.

Generatore esternocon porte TTL e cristallo di quarzo in configurazione seriale.

+VDC

!, .., t. : ,.,: : t' :,: ',,) t:' !:, ) j':... t',.,.

Page 4: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

+Voo

Disposizione di un oscrllatore esrerno di tipo R-C

,,;t,.i ',,t" ,,.i:.',',i;;i | ',' :'i.; f':i,, ;

Con l'obiettivo di lasciare lberi la maggior parte dei

pochi piedinr del PIC 12C50BA per la gestione delle peri-

feriche e le funzioni delle risorse interne, l'oscillatore

che genera la f requenza di lavoro puo essere interno, in

questo modo non dovremo ulilizzare dei pin per il col-legamento di componenti esterni. Questa è la forma di

lavoro in modo INTR.

Questo oscrllatore interno viene calibrato in fabbricaper oscillare ad una frequenza di 4 MHz. con un 5% di

tolleranza, quando è alimentato a 5 VDC, ad una tem-peratura di 25"C.

Per la corretta operatività di questo oscillatore, dob-biamo scrivere nel registro OSCCAL (Calibrazione

dell'Oscillatore) un valore di calibrazione di 6 bit, che èstabilito dal costruttore del chip. Questo valore si carica

automaticamente nel registro W quando si reinizializza

il processore, per questo all'inizìo del programma si uti-lizza l'islruzione MOVWF OSCCAL, per traslare rl valore

di calibrazione da W a OSCCAL. Nella figura pubblicata

qui sotto è riportata la distnbuzione dei bit del valore di

calibrazione nel registro OSCCAL che occupa l'induizzo05 Hex.

INDIRIZZO 05 Hex.

Distribuzione dei bit che formanoil valore della calibrazione per l'oscillatore interno

lì PlC12C508A dispone di due temporizzatori da B bit.Uno e di ulilizzo generale e si impiega in tutte le appli-

cazioni che richiedono un controllo preciso del tempo,

, l'altro e il Watchdog, il cui compito e resettare il micro-

contro ler quando il programma si ferma in modoimprevisto, e cessa il suo periodico aggiornamento.

: Entrambì i temporizzatori funzionano come contatorìascendenti che sì caricano con un determinato valore e

i si incrementano ad ogni impulso di clock. Quando' vanno in overflow, cioe quando passano dal vaìore FF al

valore 00 Hex, generano un avviso, ponendo a uno un

flag, o resettando il microprocessore, come rappresen-

tato nella figura successiva.

, Dato che i temporizzafori da 8 bit hanno un range

di conteggio ridotto, dispongono di un divisore di fre-

IMPUISO DI

CONTEGGIO

Struttura dei temporizzatort del PlCl 2C50BA

quenza che riduce il numero degli impulsi, aumentan-do così il conteggio massimo a cui possono arrivare.

Questo divisore divide ìa frequenza degli impulsi appli-cati oer le srrccessive notenze del 2. Nel caso del WDT

il range di divisione arriva sino a 128, mentre se si trat-ta del TMR0 arriva sino a 256.ll controllo dei parame-

tri fondamentali dei temporizzatori e fatto tramite il

registro OPTION.

; , ': ;','t'i:. I

F l'rrn ro temnorizzatore di r ftilizzo nenerale di cui

dispone il PIC 12C5084, e puo utilizzare il drvisore di

frequenza quando si scrive uno 0 nel bit PSA del regi-

stro OPTION Quando il PSA vaie 1 il divisore di fre-quenza lo utilizza il WDT.

Come frequenza di clock, il TN/R0 puo scegliere se

utilizzarne una esterna indipendente, che si collega al

niedinn OC Kl onnr rre nr rella irtprna dell'oscillatore

FosdL. Per funzionare nel primo caso dobbiamo impo-stare il bit TOCS a uno mentre per il secondo caso biso-gna porre questo bit a zero. Osservate nello schema

Affi

FLAG DI

OVERFLOW

VATOTE DI O{UBflAZIONE

:t,,iit: ti,t1:.,:::.r

Page 5: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

\f-Àt'ffi:ffiryffimffiControllo della frequenza nel TMR0

Se il bit PSA vale 0, si assegna il divi-

sore al TN/R0, in questo caso f unzio-

na all'ingresso degli impulsi, cioè

come predivisore. Per contro, quando

PSA vale 1 il predivisore si assegna al

WDT, dove f unziona all'uscita del

medesimo, croè come postdivisore.

ll bit TOSE di OPTION sceglie il fronteattivo dell'impulso di clock: quando

vale 1 è il fronte di discesa, quandovele O e nrrello di s,alita TOSC selezio-

della fìgura il funzionamento della linea TOSC, controì-lata dal multiplexer.

ll segnale T0SE seleziona il fronte attivo dell'impulsodi rlnrk rhc nrodrrrp l'incremento di valore nrrando!, ,v v, vu ulL Y vs, ,vv

questo proviene da un generatore esterno. Se vale zerosrenlic il fronte di salita e se e uno orrello di discesa.

ll valore del registro TMRO che occupa I'induizzo 01

Hex dell'area SFR si puo leggere e scrivere tramite il bus

dei dati interno. Ouando si desidera contare un nume-ro definito di impulsi, il valore con cui si deve inizializ-

zare ilTMR0 è ilvaìore massimo FF, meno ilvalore desi-

derato piu una unità, dato che l'overflow si produce

passando dal valore FF a 00 Hex.

i;i; i j'.iii1l

ll suo compito principale è configurare il comportamen-to dei temporizzalon. Non occupa un indirizzo reale

dell'area SFR, esiste un'istruzione speciale che carica in

questo registro il valore che contiene il registro W. I bitdi questo registro possono solo essere scritti, e quando

awiene un reset, essi sono inizialtzzati al valore 'l . Nella

figura si mostra la struttura interna del registro OPTION.

I tre bit meno significativi di questo registro, PSO -PS'l - PS2, stabiliscono il range di divisione degli impul-si di clock, da parte del divisore di frequenza, come si

puÒ vedere nella tabella della figura. Osservate che per

il TN/R0 il range è il doppio di quello del WDT.

Struttura interna del registro OPTION

na il tipo di generatore di frequenza Quando vale 0 si

t iilizza nor il rnntonnin l: f ronr ronz: intarn: npr nrn-

cessore. Fosd\. Se TOCS vale 1 iì TMR0 si incrementa

F52'P5I:F5O

oooooloroolltoorortto

PREDIVTSORETMRO

lz2l:4l:8l:Iól:321264

l:128

PREDfVISORÉwDrl:Il12l:4l:8l:lólt32t|64

Tabella che indicai valori di funzionamento del divisore di frequenza

con gli impulsi di clock prodotti da un generatore ester-

no coìlegato al pin GP2ITOCKl.

Quando il bit GPPU si carica con uno 0, le linee di

l/O GP0, GP1 e GP3 funzionano come ingressi, con una

debole polarizzazione dovuta alle resistenze di pull-up;

se GPPU = 1 queste resistenze di polarizzazione vengo-

no disabilitate. Il bìt più significativo di OPTION,

GPWU#, ha una funzione particolare, nel repertoriodelle istruzioni dei PIC della gamma base ne esiste una

chiamata SLEEB che manda il microcontroller nel mododì basso consumo, o di riposo. In questo stato non si

eseguono le istruzioni, sì congela lo stato precedente,

e si spende il mrnimo di energia per mantenere il siste-

ma "addormentato".Per "risvegliarsi" da questa situazione e riprendere

il normale lavoro dobbiamo cambiare lo stato logico

dei piedini di l/O GP0, GPl o GP3. Se GPWU# è a 0 i

pin menzionati sono abilitati a risvegliare il PlC, quan-

+iil.'tí+:l'.,:..ri: ;lriiir l+f.,Ìrir+,'fri,1r'i, ;;t t,í::.É Éji:,i:'! i+IÉ,-+

:

OPTION

Page 6: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

do su di essi awiene un cambiamento di stato. ll risve-

glio sr realizza producendo un reset, e se GPUW# ='l si

disabilita ouesta oossibilita.

'tt'

E un contatore ascendente, simile al TMRO, che ha laparticolarita di andare in overflow, e al passaggìo dal

valore FF al valore 00 Hex genera un reset. ll suo com-pito è supervisionare il buon funzionamento del pro-

gramma; si utilizza caricando nel WDT un valore inizia-

le, passando poi all'esecuzione sequenziale delle istru-zioni del programma. ll programmatore dovrà disporre

nel programma delle istruzioni di riaggiornamento del

WDT, prima che questo vada in overflow, sempre che il

programma si svolga normalmente. Se il programma si

ferma o finisce in un ciclo infinito, l'aggiornamento del

Watchdog non giunge in tempo, e allora quest'ultimo"morde", cioè genera un reset.

Se il divisore di frequenza e assegnato al WDL fun-ziona alla sua uscita, come s puo vedere dalla figura.

l,.t'1. :-;,q.r, rt '', ,t:: ,',.1' ::

lPlC nani dedicano sei dei loro otto piedini alle linee di

l/O multifunzionali, per rendere più alta possibile la con-nottivit: fr,a lp nerifprirhe e le risorse interne.

Queste sei linee si chiamano GP0-GP5 e tutte pos-

sono funzionare sia come ingressi sia come uscita, adeccezione di GP3 che ouo solo funzionare come inores-<n Por rnntrnll:ro nrpste linee si tiilizza il renistfO GPIOr YvrJLr

all'indvizzo 06 Hex della RAM dei dati, la cui struttura è

riportata nella figura. Nello schema della figura vedia-

mo il circuito elettronico associato ad ogni pin GPx.

Quando si scrive un 1 nel flip-flop TRIS, il piedino

GPx associato assume uno stato di alta impedenza, e il

pin si configura come ingresso. Per leggere lo stato logr-

IMPULSO PER TMRO

lNDlRlZZl 0ó Hex.

Struttura del registro GPIO

Schema elettricorlal rnllons6pnrn dai nin di llO del PlCt )C50BA.

co che si applica a questo pied'no tramite l'esterno,

basta leggere direttamente il flip-flop der dati, che euno dei bit del registro GPIO. Se nel flip-flop TRIS scri-

viamo uno 0 la porta si configura come uscita, e per

portare su di essa un livello logico lo dobbiamo prima

scrivere sul flip-flop dei dati che è il bit corrispondentedel registro GPIO.

L'istruzione TRIS GPIO carica il valore memorizzaloin W nel flip-flop TRIS e lo configura come ingresso or^mo 1<.it; Ad o<omnin <a <i docidor2 666fi^"rîr^ lîLVrr rs u)LrLq. nu c)gr I rPrw )E Jr usjruEro Lvr il lvur olE lo

linea GP0 come uscita e il resto come ingressi e in

seguito portare su GP0 un livello logico alto, sì dovran-nn trqpnrriro lp spnrronti istruzioni.

TRIS GPl0 ; Configuro GPO rome uscita

MOVWF GPIO ; Da GPO esce uno 0

ffiPSA OVERFLOW

WDT

ll divisore di frequenza funziona all'uscita del WDT.

Page 7: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

It reset e [e istruzionidet PICl2C508A',j.

.:':,': .,i, t' :.,.

ll PlC12C50BA, carente di interrupt, dispone solo delReset ner reiniziare rA qeflrrenza rhp def ermina il f lus-

so delle istruzioni del programma. Resettare il micro--^^+-^tt^- -i^^if i-- --îpnnArp rrn v:lnrp nntO a tUtti iLUt tLtuiltrt )tvil| tLd d))Egr rorE ur I vorvrE rvL

suoi registri di controìlo della zona SFR della RAM dei

dati Fra questi registri si trova il PCL, che dopo il

Reset rimane caricato con il valore 1111 1111, il che

significa che al successivo impulso di clock, passerà

alla prima istruzione da eseguire, posta all'indirizzo0000 0000, che è la prima della memoria di pro-gramma.

La reinizializzazione del PIC si

seguenti modi:1 o Collenamento dell'alimentazione.

I bit GPWUE TO# e PD#

determinano la causa che ha provocalo i/ Rese/

:..': :'i,):t;,", '',

nrrò nrnrinr:ro noi

STATO

lNDlllÍao nrcsrRoRESEI PER Reset per offivozione di MCI,R#,

oo i rNor ì **rr xxxx ui ,ùj; 'uuuuIMRO x xxx xxx xOl i TMRO'l xxxx xxxx:ì '::'::r::'uuuu uuuu

02 ; pC rj "'ì1 111 lllt: l':',i:,',7]îri:.:i: llll

03 i ,SfAfO l.1ù OO I I xx i,ì ,. ',,:1119.,6;',

,Q;':;:i qs u u04 FSR Illx xxxx lllu uuuu05 : oscclt i':*,:::aaa oo - - uÈ,ù$,-_4, u - -

Oó : GPIO i t:txx xxx*,;;',,'.;;;::;.;;$.;$.$fr1!il,,iÚuuuopagltj Í.Ír I 1.1,1';lt';;':t:.:;;;,:rtìiìit.$1iffi"! t I I

TRIS :, - i:,Ll I I.l tr:,!,,,:,,,r:rlri:,,:ì::rrr''t t I I | |qqqq qquu

fcolibrozionel

'ilffo REGrsrRo coiiió-a,r,riiìro '**';;;È;J"i'di;-KA|n DEUAuMENTAZIoNE combio di stoto su GPlo

:*--*d** ,rr'r,: .r.:r.:.ì-9*lilllll&14@:ìrìllllMiir@iÈ!t

2'. Overflow del Watchdog in

modo normale o in modo riposo.

3". Attivazione di MCLR# in modo

normale o in modo riposo. Caduta

della tensione di alimentazione sul pin

GP3/MCLR# /pp fra 2,1 e '1,5 VDC.

4". Al cambiamento di stato del

pin GP0, GPl e GP3. Quando si pro-

voca un Reset, il microcontroller esce

dal modo riposo.Per conoscere la causa che ha

orovocato il Reset. si utilizzano treflag del registro di STATO: GPWUF,

TO# o P# rhc snnn nresentati nella

figura.Nl^ll- +-A^ll- ,.J^ll. f;^,,"^ .^^^t\cild tductìd ucild il9utd )uilu

mostratì i valori che assumono i bitdcl rpnistro di STATO ner le differen-ti cause di Reset.

w ir4$s qqxi.. i. .:i ]l!:.:-'i?Ti ...

Abbreviozioni / -: Non implementoto; u: Non combio; x: Sconosciuto;q: Dipende dollo condizione.

I

Valori che assumono i bit dei registri di controllo del PlCl 2C50BA dopo un Reset

Esistono diverse forme per provocare un Reset, e

non tutte le volte i registri di controllo rimangono cari-

cati in modo r-rguale. Nella tabella della figura sonoriportati i valori che assumono registri SFR del PIC'12C508A dopo che si è prodotto un Reset, sia per il col-

legamento dell'alimentazione che per l'attivazione delpiedino MCLR#, il debordamento del WDT o i cambio

di stato su qualcuno dei pin GPx.Valori dei bit del registro di STATO per le differenti cause di Reset

Page 8: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

wM@

FtIP-FtOPffiffi

ll circuito per rilevare il

buco di tensione sul pin

N/CLR# si puo semplifica-re elìminando il diodoTener come si nro vederenell.r fiorrra dove e stato

sostiruito dalla coppia di

resistenze R'l e R2. ln

ouesto caso il îransistor

Q1 si blocca e attiva il

Reset portando a Iivello

basso il pin MCLR# quan-

do la tensione di alimen-tazione scende al di sottodi 0,7 lR1 / (Rl + R2)1.

Voo

ffiffiOVERFLOW

WDT

CAMBIO DI STATO

PIN SPX

STEEP

MCLR#

:,

RESET t;,

,. . iSchenl

ltettrolico det. cyy.trltlo

!1tt' attivaziolte del Reset,

,.,,t.,;i',,,,!;ti, i; t.;,.i-i :;:,::t;':ti i tti:,

Nello schema elettronico della figura, l'attivazionedel Reset interno del processore e provocato in base

al valore Q# del flip-flop R-S. Questo dispositivo siI ^' '-^r^ 'i rtf iv: il cró innro(<n Set rho ppurc d I L]udruu )r c --. .

controllato dall'uscita di una porta OR a 4 ingressi,ognuno dei quali corrisponde ad una delle cause checpne rano il Respt | 'attivazione del f ronte attivo delReset è ritardata da un oscillatore DTR e da un con-tàtoro. e R hit npr :qoettare che si siano stabilizzatesia la tensione di alimentazione che la frequenza di

lavoro.

ilt.'.;,1;; l' i"i,;l:1,':,.i :i, i :: :.i i l' ::,: :',,..,i i ;; ; :,;i

Si produce un buco di tensione nell'alimentazionequando la tensione VDD che riceve il PIC scende sottoun valore minimo, e poi recupera. In questa situazio-ne o aón\/anionto nonor:ro rrn Rocot 61p6 p17it:ra m rlllE g lvllVElllEllLE VEllLrurL ur VLr LvlLOlE lllcl-

funzionamenti nel sistema e nei circuiti assocrati.

Questo Master Clear Reset (N/ICLR) si puo program-mare in modo che si produca internamente, quandosi abilita il segnale N/CLRE dello schema elettronico, e

anche esternamente, nel qual caso questa funzione è

assegnata al pin GP3/MCLR/Vpp che genera un Resetquando la tensione applicata ad esso scende a valorif ra 2,1 e 1 ,5 VDC. Esistono due circuiti classici per

implementare questa funzione di rivelazione dell'ab-bassamento della tensione sul pin menzionato. Nelloschema mostrato nella figura al centro, si produce il

Reset quando la tensione VDD scende al di sotto del

valore della tensione di zener, Vz, più 0,7 Volt corri-spondenti alla giunzione emettitore-base del transi-stor Q'1.

ll Pa<of <i nrndt tra at tanr]a

la tensione VDD scende al di sotto di Vz + 0,7 VDC

ll pin MCLR# genera un Resetquando la tensione scende al di sotto di 0,7 [Rl I (Rl + R2)]

]

Page 9: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

it. l:,,:..i::..,:t:"i ,'t ';; t,,t.i..':';,t;rtt,t,t t

In molte applicazioni e frequente che il PIC non abbianiente da fare per lunghi periodi di tempo. Questosuccede, ad esempio, nelle macchine distributrici,inoltre è comune nei prodotti piccoli, in cui i PIC nanisono idonei, alimentati a pile, come ad esempio nei

microrobot. Rrdurre il consumo di energia in questesituazioni e vitale per mantenere il sistema operativoper periodi accettabilr. Se rl sistema sta aspettandoche l'utente prema un tasto, bisogna fare in modoche durante questa attesa, a volte molto lunga, il con-sumo di energia sia minrmo. Per questo si "addor-menta" il PlC.

Per fare ìn modo che il microcontroller entri in

stato di riposo, o di basso consumo, bisogna eseguirel'istruzione SLEEP ln questo modo passa dal consu-mare alcuni milliampere ad aver bisogno solamente dipochi microampere, cosicche una pila puo duraredegli anni.

Quando il PIC entra in stato di riposo, ipiedini dil/O mantengono lo stato precedenle, cessano di ese-ouirsi le islrLrzioni e se si uliltzza un oscillatore alJ" - -

quarzo questo si fermerà, riducendo ulteriormente il

consu mo.Per svegliare il PlC, e farlo uscire dal suo stato di

'congelamento, bisogna produrre una situazione spe-ciale. Dato che il PlC12C508A non dispone di inter-rlnt il slo risveoìio ,,i realizza oeneralmente median-,-r., ,,

îe 1n Reset che n1ò pq<pro nrrì\/^.:t^ .irll'OVefflOW

del WDT, dall'attivazione di MCLR# o per il cambio di

stato di alcuni piedini GPx. ll bit PC# del registro di

STATO si attiva quando si esegue l'istruzione SLEEP,

mentre il TO# si attiva quando va in overflow il

Watchdog.

, t::' :' t:'i.t l:., !;';:,,,,1:..0! 1.1,,-.,,,' ' a :lt , ., i :,

5i puo scrivere nella memoria di programma del

PlC12C50BA in modo serrale, sullo stesso circuito del-l':nnlir:zinnn Arrnc+r1 normetta :l rnctrl rftnro nor nrn-I OPPllLO4lUl lC. \<'UC)LU pLr | | rL r!L ur LvrLt u LLvtg UEt ptV-dotto finale di produrre la scheda elettronica con il

microprocessore senza doverlo programmare, e realiz-

zare la scrittura del programma solo al momento dellavendita, garantendo al cliente il firmware più recente e

perfezionato.Come si può vedere nello schema della figura, per la

programmazione del PIC sono necessari cinque segnali:VDD e VSS per l'alimentazione, Vpp per l'ingresso dellatonsinno <nori:lp ner l: nrnnr:mm:zinno rrn: lino. ^o',, -r_.',_,* r_, ,a programmaztone, und il|ea per

inviare i dati in modo seriale al PIC e un'aìtra per invia-

P70

re gli impulsi di clock che sincronizzano l'invio del-

l'informazione seriale.

VSS+:Voo(+SVoc)+,r

Vpp+.,DATO SERIALE+|

IMPULSI >.Dt ctocK

Collegamenti baseper la programmazione in modo seriale del PlC.

Nel caso del PlC12C5084. il pin GP0 funziona comeingresso dei dati seriali, il pin GP1 come ingresso delclock di sincronismo, e il pin GP3/MCLR#Vpp per l'in-oro<qn dpll: ton<inno <nori:lo di nrnnr:rr. ---- _,,lmaztone,come indìcato graficamente in figura

l

Voo+::

j

GP3/MC[R#/+,.

Vpp

+Vss<4PO<+Pt

A<<oonazínna daì ninrtol PlCl )aqnRA nar ls <t ta nraarsmms zinna <arialo

Sino ad ora abbiamo gestito l'insieme dì istruzioni del

PIC 16F84 che funziona come cervello di Monty, che ha

35 istruzioni da '14 bit dì dimensione cadauna. Per

manìpolare la pinza che possiede Monty su un braccio,si utilizza il PìC12C5084, che è un nano della gamma

base. ll suo repertorio di rstruzioni ne comprende solo33, da 12 bit ognuna. Questo fa sì che sia molto facilecomprendere la programmazione del nano, dato che la

I r':'f i t'f'

Page 10: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

, "., 1 '..1 . ' II i,

ISTRUZIONI DEI PIC DI GA'YIMAOPERAZONI CON BII

,t,

,

di programm a, l'induizzamento si

effettua con 9 bit. Nell'istruzione

CALL gli 8 bit meno signif cativi del

suo codice di istruzione sono caricati

rpl reoistro PCI dell'area SFR della

RAN/. ll nono bit del PCL viene

messo a O. Qualcosa di simile accade

con le istruz oni che spostano un

valore al contatore di programma,

nel quaì caso gli 8 bit dell'operandosi scrivono negli B bit meno significa-

tivi del PC, mettendo a zero il nono.

Secondo le stime di MICROCHIP, la

dimensione del codice che si crea

per la gamma base e inferiore a

quella dei competitori, come si

mostra nel grafico seguente.

Per quanto riguarda la velociià

dr esecuzione, il vantaggio che si

ottiene utilizzando i PIC dellaTabella che raccoglie le 33 istruzioni dei PIC della gamma base

maggior parte delle istruzioni sono simili a quelle del

PIC 1 6F84.

ii- iÍ: rl;jjiil i t,. j.' !i.. ;.. i ; ; t ii lt t

Analizzeremo solo il comportamento delle ìstruzioni

della gamma base che comportano differenze con queì-

le già note della gamma media.

Uistruzione TRIS serve per conf igurare le linee della

porta GPIO come ingressi o come uscite; con questa

istruzione, i bit che precedentemente erano stati carica-

ti nel registro W si caricano sul flip-flop TRIS e configu-

rano la direzione della linea. Un'l fa sì che la linea cor-

rispondente sia ingresso, uno 0 che sia uscita. Se si desi-

dera configurare le sei linee GPx come ingressr, bisognaeseouire le seorrenti istruzioni:

TRIS GPiO ; Le GPx funzionano come ingressi.

Un'altra istruzione speciale della gamma base e

OPTION, che serve per caricare il registro OPTION per il

controllo del TMRO e del WDT con il contenuto di W.

Listruzione GOTO contiene, inclusi nel suo codice a 12

bit, i 9 bit che corrispondono all'indirizzo dell'istruzionea cuì bisogna saltare. Rlcordatevi che siccome il

PlCl2C50BA dispone solo di 512 parole nella memoria

gamma base è molto più marcato,

come si puo vedere dal relativo grafico.

Grafico della dimensione del codice

dei PIC base confrontato con quello dei suoi competitort

ll orefirn ovidenzia

la differenza di velocità di esecuzione dei PIC base.

STó2

5GScoP800Notionol

movtÀr r : MuowWsfclRw : Clnqellgw.CfRf f :ConcellofsúÉùr ,1"4 ;P'F"9f, , .t,,d,-:.loRwF frd. I oR"-fry*\,ye

aDDwF " f,C " il-"r11gelry e

iÀovF Íd z

OPERAZIONI CON IMMEDIATI

o: Indirizzo di progrommo; b: Bit; k: Lefierole immedioto.

W@ffiF-*

DIMENSIONE RETAÍIVA DEt CODICE

vrlocttA RELATTvA Dr EsEcuztoNE

"-,':rr i;-i:,;i,'ii r't::il-:iî::ì l:i: ti,y i;i; t:;,,,,,r,t'l, r'.t

Page 11: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Micro'PIC Trainer Plus

Applicazioni con la

1;f:rit ' :;: ,,',: :: ,i',:: ',.

In quest'opera sono presentati diversi strumenti di rico-nosciuto prestigio internazionale, per gestire i PlC. Fra

questi notiamo il sistema di sviluppo Micro'PlC Trainer.

che oltre a funzionare come uno scrittore di memoriedispone delle periferiche piu comuni utilizzate nelìe

applicazioni: display LCD, display a sette segmenti,

,".i*,,,, ;r t:;:r,;;:;; t:; ;;;;';:,;;'P;;: r"t;

interruttori, pulsanti, potenziometri, barra di LED, ecc.

il che permette di eseguire in tempo reale i programmiin fase di messa a punto e prova.

Al Micro'PlC Trainer mancano ancora numeroseperiferiche tipiche dei progetti con i microcontrollelper questo il produttore ha sviluppato altre schede di

espansione che ne forniscono di nuove. Queste schede

sì collegano al sistema di sviluppo tramite il connettorePICBUS. La ditta "lngeniería de MicrosistemasPrnnr:medn<(l" h:, ,-y,-, , ,,- progettato tre schede di espan-sione che sono commercializzate sotto il marchioMICROSYSTEMS ENGINEERING:

1 . Mrcro'PlC Trainer Plus

2. Micro'PlC lO

3. MSxB4Oonrrn: di nrrpstp srhpdp qr rnnortà rrn insieme di

neriferirhe sncrifirhe destinate a risolvere lavori comu-ni in diverse aree di applicazione. ll lettore puo ottene-re informazioni più dettagliate su questi prodotti, nelle

pagine del sito Internet del costruttore. In linea di mas-

sima la Micro'PlC Trainer Plus mette a disposizione delprogetto da implementare risorse quali tastiera, conver-

titore AD e DA, porte di l/O, ecc. La Micro'PlC lO e spe-

cializzafa in applicazioni industriali e la MSx84 nel con-trollo di motori e sensori.

| '',': !t',,,,';, :,:,'.,|t,:,.i:l: ,.: ':.,

Aggiunge alle risorse della Micro'PlC Trainer quelle elen-cate di seguito e schematizzate nel disegno della figura:

. Tastiera matriciale 4 x 4

. Barra di diodi LED

. Visualizzatore da quattro dìsplay a 7 segmenti

. Convertitori AD e DA

. Canale di comunicazione seriale RS-232

. Porta di l/O da B linee

. Clock/calendario e RAM non volatile

La disposizione di tutti gli elementi di questa scheda

è riportata nella fotografia alla pagina seguente, in cui

si possono vedere i suoi tre connettori di comunicazio-ne con l'esterno: il connettore corrispondente al canale

seriale RS-232, quello del PICBUS con cui si adatta alla

Micro'PlC Trainer e una fila di morsetti a vite con cui si

pongono a disposizione dell'utente le linee di l/O di

tutte le risorse.

Schema dell'espanstone delle risorse della Micro'PlC Trainermediante il collegamento alla Micro'PlC Trainer Plus tramite ilconnettore PICBUS.

Page 12: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

P7l

Fotografia della schlda Micro'PlC Trailer. ely

| : "ii t,' ; t1 .t',;

Alcuni PIC hanno integrato sul silicio il bus 12C, e dedi-cano i piedini RC3 e RC4 a supportare lo scambio di

informazionr in serie e gli impulsi di clock. Altri PIC più

semplici non dispongono di questa risorsa, e la devonoimplementare via software, utilizzando le linee RB6 eRB7 per la loro gestione.

Come abbiamo potuto vedere quando è statadescrìtta la Micro'PlC Trainer Plus, questa scheda utiliz-za quattro circuiti rntegrati specializzati per controllarele principali periferiche che supporta:

1": SAA1064: Controller per quattro display a sette

segmenti2'. PCF8591: Convertitore AD e DA

3". PCFB\744: Porta di l/O da 8 linee digitali4". PCF8583P: Clock/calendario oiù memoria RAM

Sia lo schema dei collegamenti sra il funzionamentodelle sezioni che formano la scheda sono state spiega-

te in precedenza; nella figura si mostra la distribuzionedelle risorse sulìa superficie della PCB.

Distribuzione dei pri nciaalicomponenti sopra la scheda della Micro'PlC Trainer Plus

,.r .! i,l

Insieme all'hardware della Micro'PlC Trainer Plus, il

costruttore fornisce un disco che contiene tutti ì pro-grammi e le routines che si utilizzano nelle diverse

applìcazioni e nei progetti dimostrativi del sistema, per

iniziare l'utente alla sua gestione. Questi programmisono progettati esclusivamente a fini didatticì e sonoabbondantemente documentati per facilitarne la com-prensione, andando oltre la descrizione tecnica di puraprogrammazione.

,.,t' ,i.ri:'t, l,t,','t i,;,;,:t, 1'

', ,: ' ,, ,. i t,.:. i :'.,:;,ir,',,;;',,.; , ',, ., |i, y' ,'

,,

Per fornire al lettore un'idea delle grandr possibilità

della Micro'PlC Trainer Plus, studiamo in modo somma-rio la sezione che controlla il circuito ìntegrato l2C

PCFB5B3, che contiene un clock/calendario e una

memoria RAM. Si tratta di un circuito CMOS a basso

consumo controllato con il bus l2C.

Contiene una memoria SRAM da 256 byte, e un

registro che la indirizza e si autoincrementa leggendo oscrivendo una delle sue oosizioni. Disoone di una linea

esterna A0 che permette il collegamento al medesimo

sistema di due di questi dispositivi. Per il controlìo delle

rìsorse interne sono utilizzati diversi registri che sono

I Schema a blocchi del PCFB5B3.

' implemenlati sui primi 16 indkizzi della memoria

r SRAM. Lo schema a blocchi è rappresentato nella figu-"- "ì^^"+-+- ^,,; -^^ra flpoftara qur sopra.

, Si alimenta con una tensione compresa îra 2,5 e 6; VDC e la tensione per il mantenimento dei dati nella

, memoria può oscillare fra 'l e 6 VDC. ll clock/calenda-, rio funziona con formato da 12 o 24 ore, con una base

r tempi da 50 o da 32.168 Nz.

I Ha funzione di allarme, di temporizzazione, conta-I tore di eventr e interrupt. La piedinatura, la descrizione

.l

Page 13: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

NilICROCONTROLLERStrumenfi di lcrvoro

di ogni pin e le caratteristiche del funzionamento sono

riportate nelìe figure seguenti.

Funziona in base a un oscìllatore interno da 32,768 àze dispone di un circu to POR (Power On Reset) che ini-

zializza il dispositivo quando si collega la tensione di

alimentazione. I primi 8 indi-nzzi della RAM (00 - 07)

t.i lunzronano come regrstrlsoecifici di controllo. ll primoreoistro sitr rato all'indtrizzo

00, funziona come registrodi rnnirnlln p 6li qfr+n mnnut LUtìLtuilu E ut )LqLv, I tErt-

i tre i successivi 7 ccntengonoi parametri della f unzione

oraria. Gli indirizzi da 0B a

0F si nossono rrtiìizzare comeregistri per il controllo di

allarmì, oppure come indirizzi di ulilizzo generale.

Mediante il registro di controllo e di stato, si impo-sta il temporizzalore per lavorare o con la base tempi,che puo essere 50 e 32.768 Hz, o come contatore di

eventi esterni. Lavorando in modo orario i giorni, mesi,

ore, minuti, secondi e centesimi sono espressi nel for-mato BCD. Nel modo contatore di eventi esterni, qli

<frt tftt tr) a s<<aanazinno

dei bit del registro di controllo e di stato.

impulsi da contare sono applicati al piedino OSCI, e si

possono scrivere, dato che può funzionare come conta-

tore di eventi da 6 digit.

Nella figura riprodotta qui sopra è riportata la distri-

buzione del registro di controllo e di stato, in essa si può

apprezzare l'esistenza di un bit che attiva l'allarme se si

desidera. Questo registro si pone a zero dopo il reset.

Quando si produce una situazione di allarme si attiva il

flag corrispondente. L'uscita INT passa a zero. I flag man-

tengono il loro stato fino a che sirealizza su di essi un'o-^^'--i^^^ A' --''++' '"^ Se non si usa la funzione di allar-pct dztut rc ur )Lr rLLurd. -

me, i registri da 09 a 0F possono essere adibtti a conte-

nere dati.

Bf DI STOP DEL CONT@ìO0 = COffi@OI :MNTENÈ [COME6IO,

cNctu I DtvtSoRE

S] DI RftNZPNI0 = CONÌE60I -MIMORIZAERIIIENE

fULIhO VALORE CONIATO

wom- l00 = MOrc OW'O A 32,7ó8 Hz0ì =MorcouRloa 50 Hzl0 = MOD CONIAIORT Dl EVEMIil = MOrc ftsl, m

I coNlatoRt tN PAuuilo

{a 00 DoPo I REsEr)

úéuiilmffi

-FffiMMiltffistówt;uM._, - 0: auwE scoffiafo] =AUHf COtrEGA]O

PCF8583PPcF8583T

Piedinatura del PCFB5B3

SEGNAI-E DESCRIZIONE

OSCI Ingresso dell'oscillotore dq'5é Hz o ingresso.de5lii eventi:

OSCO Uscitodell'oscillorore

AO fngreso eslemo legtli,|$irizí ;

Vss Negotivo dell'oiiàentozhle l

sDA Linq dei dqti del bus l2C

SCt Lineo del clock del bus l2C

INT Uscito dell'interrupt in collettore operto

Vdd Positivodell'qlimentozione

Descrizione funzionale dei piedini del PCFB5B3

N9 DIPIN

I

2

a

4

5

6

7

I

PARAMETRO

fensione dr ìrilmenùlon!consumo dj toi*èoB r

Tensione di ].in:gresso

Corrente di inle3soCorrenle di vritqDissipozione di pobnz€Porenzo di useifti

MTNIMO MASSIMO

-O,8 +7

50-O,8 o VdJ VDD+O,8

to.to

300

50

SrMBOtO

,

: VpD

IDD

vlh

lo

Pror

UNlTÀ

mA

frA

i-HomI 0:[rcstzrcN:5Eó

, $ reNO SENAMSCHEMRIr = DAU rcSgONt5 É ó

Caratteristiche di funzionamento del PCFB583 Mappa dei registri specifici

Page 14: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

P72

Registro contatore delle ore

.,... '',', ':.,1,..:;,.'. .:' ,

Nella figura alla pagina precedente e rappresentata la

distribuzione e I'assegnazione delle f unzioni dei diffe-renti registri specifici per il modo orario e per il modocontatore di eventi.

Nel modo orario si può scegliere il formato 12 o 24ore, attivando il bit più significativo del registro conta-tnro rf i aro rha À rinnrl:l-n nall: {in' 'r: in .l+.- ,,f,-,tdto neild Tr9urd tn atlo.

ll registro che occupa la posizione 05 contiene l'an-no e il giorno, il registro 06 il giorno della settimana e

il mese Orreste fiorrre mostrano la distribuzione inter-na d; entramb

I

reO strl nttlvando blt d maschera de

I

CONTATORE DI ANNI/GIORNI, POSIZIONE 5

MSB A 0l D0P0 lL RESET ISB

Registro del grorno e dell'anno.

registro di controllo e di stato, si legge direttamente,tramite questi indirizzi, rl giorno e il mese, mentre il

giorno della settimana e l'anno si leggono a 0. ll for-mato BCD è utilizzato anche dal contatore di eventiestern i.

Nello schema della figura sono rappresentati i collega-menti dei due PCFB5B3 e un PCFB570, che contiene256 byte di memoria RAM. Tutti questi dispositivi sonoper il bus 12C. Questitre hanno assegnati glistessi indi-rizzi (1010), per cui bisogna differenziarli mediante lelinoa n nin rli inÀiriz.amento. così il primo pcFB583

avrà A0 = 0 e il secondo A0 = 1. ll PCFB570 ha le sue

tre linee di indirizzo A0 = A1 = A2 = '1. ll primo dei

PCFB583 lavora in modo orario con il clock al quarzo a

32.768 Hz, mentre il secondo lavora come contatore di

eventi applicato al piedino OSCI.

Come esempio di gestione per il Micro'PìC Trainer Plus,

il dischetto allegato al kit contiene un file con il pro-gramrna CRONO.ASN/, che implementa tutte le fun-zioni di un cronometro classico, in base al dispositivoPC F8583.

R: resistenzo di pull-up

CONTATORE DILIE ORE, POSìZIONE 4A OO DOPO II RESTT

FORMAIO DEI.I.E ORE

0 = FORIvIATO 24h,fl. flAG AM/PM NON CA ,tSrA

I = FORMATO 12hII. FI.AG A/\4/PM 5I ATIIVA

CONTATORE DI GIORNI DEI.I.A SilIMANA/MESIPostztoNt 8 A 0l DoPo il. RESET

GroRNr DEr.r.A SEITTMANA { 0 - ó l,st LEGGE o sE LA MASCHERA È A "t"

Resistro del mese e del oiorno della settimana Schema del collegamento dei vari dispositivi al bus l2C

Page 15: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

MICROCONTROTTERStrurnenti per il progello con il PIG

Applicazionidetla Micro'PIC I0

ll grande successo a livello internazionale del sistema di

svrluppo Micro'PlC Trainer, ha indotto il suo costruttorea potenziarne l'efficacia, mediante l'ampliamento connrovc e noderose neriferiche imnlementale su tre sche-

de che ricevono il nome di:'l . Micro'PlC Trainer Plus

2. Micro'PlC lO

3. MSxB4

In precedenza sono state analizzate in profondità le

possibilità di applicazione della Micro'PlC Trainer Plus

orientata all'uso intensivo del bus 12C. Quì parleremo

della Micro'PlC lO, che espande le risorse base del siste-

ma di sviluppo come indica la seguente tabella.

Encoder ottico per il controllodel senso di roiazione e della velodtà dei motori

€ontrollo di potenza per angolo di accensione dei triaa

Osrillatore

Micro+elè 0mron da 5 VDC

Alimentatore stabilizato

La Micro'PlC lO è adatta a risolvere Ie applicazioniindustriali inerenti al controllo dei motori, controllo dipotenza, gestione dei segnalì analogici, generazione di

treni d'onda, attivazione di relè. ecc. Una informazionepiù completa su questa scheda e gli elementi ausrliari

che I'accompagnano, come il Manuale dell'Utente, il

dischetto con il software di appoggio, gli zoccoìi di

l:"'l 73

Fotografia della Micro'PIC lO

adattamento a nuovi PlC, ecc., si possono trovare sullepagine di Internet del costruttore " lngeniería de

Microsistemas Programados S.1." che sono ubicate alsitowww.microcontroladores.com. Nella figura si può vedere

la distribuzione di tutte le risorse della Micro'PlC lO.

.:Per espandere la Micro'PlC Trainel è stato progettatoun connettore normalizzato chiamato PIC-BUS, che

Accoppiamento mediante cavo piatto fra i connettori PIC-BUS

del sistema di sviluaoo Micro'PlC Trainer e la Micro'PlC lO.

(r)

S*ra*wepe*$ gss €* p*sg*#e *e* $* tr*€

Page 16: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

nella Micro'PlC lO è formato da due connettori identici

a 26 pin, che si possono riconoscere a sinistra nella

fotografia. Utilizzando il cavo piatto accluso al sistema,

si collega questa scheda alla Micro'PlC Traìner, che sup-porta il microcontroller PIC in cui è stato scritto il pro-

gramma di applìcazione, per permettergli di utilizzare le

nuove risorse della scheda Micro'PlC lO durante la fase

di messa a punto. La fotografia mostra l'accoppiamen-to delle due schede.

Nello schema elettrico del connettore PIC-BUS e

delle linee di connessione esterna, si puo vedere che

CN2 (PIC-BUS 1) e CN3 (PIC-BUS 2) sono in parallelo,

quindi possiamo usare uno qualsiasi dei due, cioè pos-

siamo collegare simultaneamente le tre schede:

Micro'PlC Trainer. Micro'PlC Trainer Plus e Micro'PlC lO.

Schema elettrico del collegamento dei connetfori chesupportano i segnali del PIC-BUS.

Collegamento tramite i connettori PIC-BUS

della Micro'PlC Trainer, la Micro'PlC Trainer Plus e la Micro'PlC IO

, ', t", lt::-;; ' ., .,: .. 'rl, i..:,,t.: ,:'.,:;lt, t.i ::: :-f :ii:"i l:-',::::ll controllo del motore a corrente continua è una delle

applicazioni più rilevanti dell'area industriale, per questo

è stato incorporato un motore DC nella Micro'PlC lO,

insieme a un circuito integrato che lo controlla. Si vuole

abituare l'utente a gestire il controllo della velocità e il

senso di rotazione di questi motori, con la tecnica della

modulazione di ampiezza degli impulsi (PWM). Sotto

l'asse del motore c'è un fotoaccoppiatore a forcella, che

permette di misurare la velocità angolare dell'asse del

motore quando questo è accoppiato a un encoder.

Come possiamo osservare nella fotografia, per realizzare

un semplice encoder, basta ritagliare un disco di mate-

riale rìgido trasparente. tipo plastica, e perforare il suo

centro per poterlo accoppiare all'asse del motore. Sulla

superficie circolare del dìsco vengono dipinte diverse stri-

sce radiali nere, o opache ai raggi infrarossi. ll numero

Posizione del!'e.ncoler del motore a corrente c?nùn.ua

delle strisce determina Ia risoluzione dell'encoder. In

questo modo con una sola striscia, si produrrà un impul-

so ogni giro dell'asse, mentre se ci sono quattro raggi,per ogni giro dell'asse del motore si genereranno quat-

tro impulsi. Nello schema della seguente figura è rrpor-

tato il collegamento del fotoaccoppiatore. che rileva i

passaggi dei raggi opachi dell'encoder. ll fotoaccoppia-tore a forcella è il modeìlo N21A1, e il diodo emettitoreè permanentemente attrvo. per cui il transistor ricevito-

RD

mu0M]wM3wwRMBìR82RBMRB5&R87RCoRCtRC2

MRgMRgRD

Page 17: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Schem a del col I eg a m entodel fotoaccoppiatore per I'encoder del motore.

re è saturo. Ogni volta che una striscia taglia il raggio

di luce siottiene un impulso che si applica ad una linea

di ingresso del PIC per il suo successivo trattamento.

:.': , '

Per controllare il motore DC si utilizza un circuito di eccr-

tazione, o driver tipo push-puì1, a quattro canali integra-

ti sullo stesso chip 12938 di SGS-THOMSON, le cui carat-teristiche piu importanti sono indicate qui sotto.

Corrente di uscita di picco da 2 A per canale

Alimentazione per il carico ,lata dall'alimentazione di controllo

Protezione con 'o le sovratemperature

P74

Nello schema a blocchi riportato in figura sono rappre-sentati ì quattro canali capaci dì fornire una corrente di

uscita di 1 A. Ogni canale è controllato da un segnale

di ingresso TTL, e ogni coppia di canali dispone di un

segnale di abilitazione che scoìlega le uscite del mede-

srmo. ll segnale di controllo EN'1, attiva la coppia dì

canaliformata dai driver'l e 2. EN2 attiva idriver3 e4.

ENI

tNl

OUTI

Schema a blocchi dell'12938.

Le uscite OUTn sono associate ai corrispondentiingressi lNn. ; segnali di uscìta sono amplificati rispettoa quelli di ingresso sia in tensione (fino a + Vss) che incorrente (fino a '1A).

Nello schema della figura è riportato il controllo dei duemotori DC che girano in un verso unico. Ml si attiva

con livello 0 applicato all'ingresso, mentre M2 lo faapplicando un livello '1 all'ingresso B, come si puo veri-

ficare nella tabella della verità. Un altro schema mostra

2l

Nella figura è riporta'12938 insieme alla sua

rra predinatura del driverro renclatura e descrizione.

PIN v| IE

I El.

2 tNi3 OUT4 GND5 GND6 cut27 tN2I VDD

9 ENzlo tN3I r ouT312 GND13 GNDt4 0uT4t5 tN4ló Vcc

DESCRlzlONE

Abilibzione dei conoli ì e 2

Ingresso del conole ìUscib del conole ìMosso dell'olimenmzioneMossq dell'olimentozioneUscito del conole 2Ingresso del conole 2Alimenhziore del corico

Abilitozione dei conoli 3 e 4Ingresso del conole 3

Uscilo del conole 3Mosso dell'olìmentozioneMosso dell'olìmeniozioneUscih del conole 4Ingresso del conole 4Alimenbzione o + 5VDC

--r--T-543

. ENI

: tNl ._

i owt, cr.ro

' GND

r OUT2

, lN2

lN4

out4GND

GND

OUT3 É_+_ f T T,::4;"tN3

EN2

Piedinatura dell'12938 e descrizione dei suoi aiedini Controllo dei due motori DC che qirano in un unico verso.

.,; t, t.;,o .,,.'1-',,,';,

5:ffi*:l

.

Page 18: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

TNICROCONÍROLtER

VinhAMlBM2

-- r'._..:-.-t1.--.rH ì L i Rorozione _ ,__j--__L_ i.l'::g-"::-efd-C-!"g!,n:g-'.9 _. ., ,,1t i X , Motore scollegoto. rotozione libero ; X j Motore scollegoto, rotozione libero j

L:Livello "O"; H=Livello " 1 "; X=lrrilevonte i

Tabella della verità per rl controllo dei due motori DC che girano in un unico verso.

verità. Quando il segnale ENABLE riceve

un livello 0 da qualsiasi uscita del PlC, il

motore si ferma, indipendentementedallo stato di lN'l e lN2. E proprio attra-verso questo ingresso che si puo applica-re un segnale con modulazione di

ampiezza di impulsi (PWM), che permet-te di regolare la velocità di rotazione del

motore in un verso o nell'altro. Un segna-

le PWM è un'onda quadra, in cui il tempo di perma-

nenza del livello a 1 si puo variare. Tanto maggiore sara

il tempo del livello a 1, piu tempo resterà attrvato il

motore che girerà più velocemente.

il controllo di entrambi i versi di rotazione del motore,mediante due canali dell' 12938. Se l'rngresso C è a 0e quello D e a 1, il motore riceve una certa polarità che

lo fa girare in un verso. Cambiando i livelli logici degliingressr C e D, si produce la rotazione in senso contra-rio. Se entrambi gli ingressi sono allo stesso livello logi-

co, si produce un arresto rapido del motore.

Nello schema della figura successiva è riportato il

collegamento del motore DC alla scheda Micro'PlC lO.

Controllo di un motore DC nei due versi di rotazione Tabella della verità del motore DC della Micro'PlC lO.

rNl rN2ij.

,

-i*"-

I segnali lN1 e lN2, provenienti da qualsiasi linea dell'u-scita del PlC, ricevono i livelli logici che faranno girare il

motore in uno dei due versi secondo la tabella della

l":- i;iii.'i-l++'qírll kit della Micro'PlC lO è accompagnato da un com-pleto e chiaro manuale dell'utilizzatore. così comeda un dischetto che contiene un insieme di progettida realtzzare con la suddetta scheda. In ognuno di

questi sono esposti con abbondanti commenti gli

obiettivi, i dispositivi di materiale necessario e il

listato sorgente del programma del compito. Per

maggiori informazioni si raccomanda di accederealle pagine di Internet di "lngenierÍa de

Microsistemas Programados S.1. " nel sitowww.microcondroladores.com. Tutti gli esempisono preparati per essere eseguiti su un PlC16FB73,

della gamma medìa, che studreremo a fondo più

avanti, perché dispone dello stesso repertoro di

istruzioni del PIC 16F84. La cosa più interessante sta

nel fatto che sono state aggiunte risorse moltoimportanti come il convertitore AD e DA, PWM,

comparatori, catturatori di segnale, ecc.Collegamento del driver 12938 e del motore DC della Micro'PlC IO.

#*rwmeae*€ p*r $É pr*ge*** **xa *A F**

Page 19: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Applicazionidetl,a Micro'PIC I0

: la;; '., tt i,t, i,',,'t:t : ,': .::..", :,..1r .',:

Nelfascicolo precedente abbiamo iniziato lo studio della

scheda di esoansione Micro'PlC lO e la sua sezione di

controllo del motore a corrente continua. Questa sche-

da dispone anche di altri interessantissimi dispositivi, che

permettono di emulare in tempo reale i programmi di

applicazione comune nelì'industria, eseguiti sul PIC che

supporta il sistema di sviluppo Micro'PlC Trainer che è

collegato con la Micro'PlC lO tramite il connettore PIC-

BUS.

La Micro'PlC lO dispone dì un alimentatore proprio,

quindi è sconsigliabile alimentarla tramrte l'ingresso di

tensione +5 VDC che arriva attraverso la linea del con-

nettore PIC-BUS tramite il sistema di sviluppo. Questo ci

permetterebbe di fare a meno del trasformatore, pero il

motore DC non avrebbe l'alimentazione di '12 VDC.

Inoltre non potrebbero funzionare nemmeno ìl circuito

di rivelazione del passaggio pello zero, e l'optotriac per

la regolazione alternata. Questr circuiti necessitano di

una alimentazione indipendente di corrente alternata. ll

ponte raddrizzalore D1 dell'alimentatore, insieme a C1,

configura il circuito di raddrizzamento e filtraggio. La

tensione così ottenuta si applica agli stabilizzatori 7805(U 1) e 781 2 (U2). Il primo fornisce una tensione stabiliz-

P75

zata di +5 VDC per la circuiteria elettronica generale,

mentre il secondo genera 12 VDC che si utilizzano prin-

cipalmente nell'alimentazione del motore DC.

:,t .t . '.: 't, ' ,; ,, i"l ,,'.,t1'

Produce un segnale a onda quadra, la cui frequenzaprincipale si puo selezionare fra otto possibili valori, e in

seguito, si possono ottenere fino a otto sottomultipli del

valore scelto. Lo schema elettrico della figura mostra che

il circuito è basato su un PlC16C54RC (U3). ll firmwaredel microcontroller è stato progettato da "lngeniería de

Microsistemas Programados S.1.". ll segnale ENABLE

abilita o disabilita la generazione di onde quadre. Se

questo ingresso è a livello '1 o non collegato, fornisce ai

suoi ingressi le frequenze corrispondenti. Quando que-

sto ingresso è a livello 0, il generatore resta scollegato e

tutte le uscite si pongono a livello 0.

Mediante i tre microswitch di SW1 sì seleziona, fra

otto, il valore della frequenza campione che si ottienedall'uscita X. Le uscite x/2, w4, x/8, w16, w32, w64,)0128 sono dei sottomultipli della frequenza scelta. ll

diodo D2 sull'uscita )V128 visualizza ll Íunzionamenlo

x{128x/64x/32x/16x/8xl4x/2x

ENABTE

(il)

Schema elettrico del generatore di funzione

i

Schema dell'alimentatore della Micro'PlC lO

Page 20: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

del generatore. Lampeggia quando lavora a frequenzepiu basse. Per il resto delle frequenze sembra rimanereacceso in modo permanente. Nella tabella della figuraqui sotto sono indicate le distinte frequenze ottenuteall'uscita, in funzione dello stato dei microinterruttori di

SM/1 la freorenza massima è attorno ai 200 KHz e la

minima è di 'l KHz.

Tabella con le frequenze fornitedal generatore di funzioni a seconda della posizione dei mrcrointerruttori di SWl

.i

La funzione principale di questo circurto è fornire impul-si di elock ai temporizzatori o timer di cui dispongono i

microcontroller, che realizzano misure di tempo. Così,

ad esempio, il TN/lR1 della famiglia PlC16FB7x puo uti-lizzare come base dei tempi ìl segnale fornito da un

oscillatore esterno. In questo modo l'overflow del TMRlsi puo ultlizzare per risvegliare un PIC che si trova in

stato di riposo. Come mostra la figura e stato scelto un-.,.+^|^ .Ji ^,,-.-^ ^- 32,769 KHz, poiché è un valoreLr r)Loilu ur Lluor4u ud

molto speciale. In concreto si ottiene un tempo pari ad

un secondo, quando sì conta un valore degli impulsi che

e uguale alla potenza 1 5 in base 2 ed e la base npr tr rtte

le aoolicazioni orarie.

rtH Troso27pF

rl

Schema elettricodell'oscillatore da 32,768 KHz

H27

c5

pF

, t,, ;r,..it,liir i:; :t::i',i .ti..i':,i , ,. l. '; ,;

iilr;,..;t ;,t,::;a

l : , ,.'' l' l'': !,; !, ! ,: i :: ::; :.'l

La Micro'PlC lO possiede due sensori analogici, unomisura la luminosità e l'altro la temperatura. Entrambisono alimentati da una tensione dr rrferimento di 2,5VDC, come mostra lo schema della figura. Come gene-

ratore della tensione di riferimento, è stato utilizzatoLM33622.5 (D4) di

National Semiconductor. E

basato fondamentalmen-te su di un diodo zener da

2,5 VDC. Tramite la resi-

stenza di assorbimentoR7, si alimenta da +5VDC,ottenendo ai suoi capi 2,5VDC generando quindi la

tensione di riferimento\/ref chp si nrro annlirerp.^.i A^.t.J^"- -il- ti,5e sr ue5ruetd, dild ilnea

RA3/AN3l/REF+ oel

PIC'l6F87x in modo che

sia utilizzata nella conver-sione AD.

ll sensore di luminosità è formato da una cellula LDR,

che ha in serie la resistenza R5. La tensione che alimen-ta questo divisore può provenire da 5 o da 2,5 VDC, a

seconda della posizione in cui si trova il lumper JP2.lnquesto modo sulterminale "Luce" dello schema si ottie-ne una tensione che varia fra 0 e 5 V oppure, fra 0 e 2,5V. a seconda della luce che incide sull'LDR. f utilizzatoredeve preoccuparsi che la tensione che alimenta questo

Schema elettrico del generatore di tensione di riferimento,che alimenta i sensori di luminosità e di temperatura.

Tr osr

Page 21: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

divisore coincida con la tensione di riferimento a cui

lavora il convertitore ADC del PlC. In nessun caso la ten-sione dì riferimento può essere minore della tensione

analogrca di ingresso da misurare. ll sensore di tempe-ratura è il modello LM35D (D3), e su uno dei suoi ter-minali si ottiene una tensione " T"" che è proporziona-

le alla temperatura esistente. Fornisce una tensione di'10 mV/'C e il margine ditemperatura a cui puo funzio-nare è compreso fra -55' e 150"C.

Neìla configurazione impiegata nella scheda

Micro'PlC lO il range dr temperature è compreso tra 2 e150"C. Quando si alimenta il sensore con 5 VDC per latemperatura massima permessa di 150'C, rl sensore

fornisce '1,5 V sul terminaìe "T"",

ne saturo, e la tensione sul collettore è 0V Tramite il

connettore "ZEROCROSS" si ottiene un impulso positi-

vo ogni volta che il segnale alternato arriva a valori intor-no allo 0 V come è rappresentato nell'oscillogramma

della figura. Questo impulso si puo utilizzare per provo-

care un interrupt nel PlC. Nella figura si offre un semplr-

ce schema per la regolazione delìa po'tenza alternata

i=Éj

: ta' .,

Una grande quantità di applicazioni industriali sono

derivate dal controllo e dalla regolazione della potenza

alternata che si aoolica ad un carico. Nella Micro'PlC lO

sono utilizzati per questo compito dei circuiti elementa-

ri ed è necessario conoscere l'istante ìn cui la corrente

alternata passa per lo zero e disporre di un segnale pilo-

ta che si attivi quando awiene questo passaggro. ll cir-

cuito base e mostrato nella figura.

La tensione alternata, che arriva da un secondario di

un trasformatore del vaìore di 12 VAC, e applicata al

^^^+^ "-^r-r.i---+^.^ ^5. SUI terminale D5 di nrrestoPUI ILE lOUUll44OLVrg UJ. )Wt Lqrrrrrrrorq uJ ur guLJLv

ponte si ottiene un ìmpulso doppio di 100 Hz, pari ad

una frequenza di rete di 50 Hz. Questo segnale siappli-ca al diodo emettitore del fotoaccoppiatore 4N33 (U6).

Ognivolta che il segnale vale 0, iìtransrstor ricevitore di

questo fotoaccoppiatore resta bloccato, e la tensione

del collettore sale sino a +Vcc. Quando l'impulso di

ingresso ha un valore diverso da zero, il transistor rima-

Schema del circuito uttlizzatoper il controllo della corrente alternata

ri",.J.,,".- ",." ",.".-,{Osci I log ra m ma del la ri levazionedel passaggio dallo zero della tensione àlternalò.

i.,

Regolazione della potenza alternatain un carico resistivo, che in questo caso e una lampada

:

:

.'

-^^li--+- ^ ,,^ -^.,-^ .^apprLcLo o ur Lcr,.. ,=sistivo, come può essere una lam-pada. Un livello 1, che arriva daì PIC sul terminale"TRIAC" dello schema, attiva iì diodo emettitore del-

l'optotriac MOC3041 (U7) che provoca l'innesco del

triac, facendolo condurre e applicando la tensione alter-

nata al carico, che nel caso della scheda Micro'PlC lO si

tratta di una lampada ad incandescenza (LP1)

La potenza dipende dal momento in cui si porta inconduzione il triac, appìicando la tensione di innesco

tramite l'ingresso "TRIAC". Questo istante prende come

riferimento il momento di passaggio per lo zero, che si

x2

T2

0,0 v

NdFé= &móryr | ru'-yrDok= lr/12/99 | lr/12le9nne= ì0rs:ll p.r. I l0:rs:ll p.r.

YS.de= 20 V/Dv | 2 V/Dv

YAr 50%= -30,4 V | 3,ó3 V

xaro%= .0,4fr' | -0,! m'xsize= 25oEr2l I zsourz

Mo^imlm = ì3 4V | 4 eó V

I oav

Page 22: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

produce ogni 10 ms. Se l'innesco dell'optotriac si pro-

duce nel momento del passaggio per lo zero, si dice che

l'angolo di innesco e 0'. La potenza che si applica al

carico è la massima nei due semicicli. Se l'innesco del

triac si produce a 5 ms del passaggio per lo zero, si

applica la metà della potenza totale al carico. Se l'inne-sco si produce a '10 ms dal passaggio dallo zero, abbia-mo un ritardo di 'l 80" nell'innesco e il carico non riceve

ootenza. In altre parole controllando il ritardo con cui si

produce il segnale di innesco,

prendendo come punto di riferi-mónt^ il qonn:lo di r-, passaggro

per lo zero, si controlla la poten-__ +^+_t^ _t-^ -i -^^ti__ al CariCO:zd LULOTC Lr rE )r OVVilLOil "i+-"r^ ^,,À ,,-"i-"^ *fa 0 e 10il I TLOTVV PUV VOr rOrq L

m< rho rnrricnnnda:,-, - un ango-

lo di ritardo da 0' a 180', rispet-

tivamente. Nella figura è ripor-tato un oscillogramma che illu-

stra la tensione alternata diinnressn e la tensione reale

applicata al carico. Si applica al

carico solo la metà della poten-

za di ogni semiciclo. L'angolo di

ritardo è di 90", che corrisponde

a un'ritardo di 5 ms.

Esempio di rnnesco del triaccon ritardo di 90", che corrisponde a un itardo di 5 ms.

Sono perrferiche di uscita molto facili da controllare tra-mite qualsiasi ìinea di uscita del microcontroller. Basta

un semplice circuito di eccitazione per pilotare la possi-

bile attivazione delle bobine incaricate di aprire o chiu-dere i contatti, come si vede dalla figura. I relè impiega-ti nella Mrcro'PlC lO sono due, le loro bobine vengonoalimentate con +5 VDC e i loro contatti sono doooi e a

due posrzioni (DPDT). Un livello logico 1, applicato ai

connettori "Relè1/Relè2", in arrìvo da qualsìasi

linea di uscita del PlC, fa sì che si attivi il corrispon-dente relè. ll livello logico O produce un effetto con-trario. Questo livello si applica alla base dei transi-stor Q1/Q2, mediante le resistenze di polarzzazto-ne R12lR14. Ouesti transistor lavorano in commu-tazione. Quando stanno conducendo, la loro ten-sione sul collettore Vce e praticamente zero. ldiodiD6/D7 , collegati ai capi delle bobine, dissipano le

correnti inverse che si originano ogni volta che

viene tolta tensione. Ogni relè ha un doppio con-+î++^ ^ ^^^i -^^+-++^ e : drre nosizioni llnO dei dUeLOLLU q V9rrr LVTTtOLLU L u uuL vvJr4rvril. vrl

rnnielf i ci rrtilizz: nor :if irrero i I Fl-l niln+2 D7/D9,

che monitorizzano lo stato di ogni relè. Il LED illu-minato indica che è stato attivato il relè a cui fariferimento. L'altro contatto del rele e a disposrzio-ne dell'aoolicazione dell'utente tramite due morset-tiere a tre contatti ognuna. Un relè a riposo man-tiene chiuso il contatto Cx-Ax, mentre Cx-Bx rima-ne anerto Frritando la bobrna del relè si cambia lo-+-+^ r: ^' '--+i -^^+^iti. Ora Cx-Ax rimane :nertÒ tr>LdLU Ul LlUtr)tl LUI LdLLL UId L^-H^ llllldllC upLrLv L

Cx-Bx chiuso.

'i

Circuito di eccitazione dei relè

ij,ll:; i::i t,:": t':,"'ri; i',;'4 11j,,1'!ii -1'r1 :.lr ir:t;rr:.-" '''iit,i:; I .

@]M,!W@Rl]*Rn@s|*lRWsìlslfÍti|FW]s]stÍf]&ÌtWfi&,},ffiWW

Page 23: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Appti cazioni con [a scheda dicontroll,o MSx84

i;i.irt, li;í"i'liií.i:il ,trlli'riri,lí,li*ll sensori digitalidi ingresso.Questecaratteristichesonoti-

In precedenza sono stati descritti i sistemi Micro'PlC Trai- piche in molte applicazioni industriali e la MSxB4 è indi-

ner Plus e Micro'PIC lO. composti da schede che espan- cata per quattro tipi di impiego, che si adattano bene al-

dori:nn lp ricÒr<o o lo rrossibilita del sistema di sviluppo i le sue caratteristiche e che sono elencatì nel riquadro.

Micro'PlC Trainer. Con la scheda di controllo MSx84 il

suo costruttore "tngeniería de Microsistemas Programa- I i-iil'niii;'1";4,i1iîl{-i:iii lirii;l;í.lt.l'rii.ii,l- ,ti iLir ii' |1":" 1;7 ;1rii ? i É''

dos S.L." ha perseguito un altro obiettivo: offrire all'uti- i Net riquadro allegato possiamo notare le specifiche più

lizzalore una scheda autonoma e indipendente che in , rmportanti della MSx84.

base ad un PIC'16F84 sia caoace di oilotare lo stato di due

motori DC o di uno passo a passo (PAP) e fino a cinque : ll*:------ti_xii**"*ffiilffi;fri;-=-.,*'.:-. .-:

I I i*-;il;;;;; ;;;;;i;;;; rs vAC;;;;;;' i1, -"*.l **

#.:;;:]:;;1;;-.=-,=:i;--==-:...===]===-::'::.i . Circuiti di controllo bosoti sul PlCtóF84 iì - -..***'-'----i . Conneitori per l'opplicozione di 5 sensori ì

di ingressoI **-- r-r----'---"ì:"'*:*--*-".-*-::"-.***-=':*:"::-*"***:;:*"*-**--1i -,.-.:--*Pti"--.*:-r]l-s-'i-"-r.:r--"-llq-dl-d-v-:,-ry1-si-?9..e.:"1:-1.41-----*-i,1 . Conr"tto.e di esponsione Pic-Bus che Permelle di espondere :

! l" ,r" risorse, e di collegorlo direftomenfe ol sistemo

i di sviluppo Micro'PlC Troiner, per reolizoreFotografia del microrobot PICBOT-2 basato sulla M5xB4 j lo -"rro o punto 'in-circuito', così come lq scritturo del PlC.

"'". 'i"i

l' Monipolozione dei sensori di ingresso che permetfono ;

lo sperimentozione con differenti tecniche per lo rilevozione : ,r

di fronti, eliminozione dell'effetfo rimbolzo,misuro dello dimensione di un impulso,misuro dello frequenzo, codenzq fro impulsi ecc.

3" Controllo di motori PAP.

dimensione di un impulso, ìlfrequenzo, codenzq fro impulsi ecc. ì Ì

2" Cmlrollo di motori DC cm ozionomenlo digitole tutio o nimte,tecniche di PWM, controllo del versodi rotczione. retrocziiane; poiiziilromèrrio, étc. :i

4- Microroboticc. Lo MSx84 si odotto perGettomente

olle necessito di un microrobot. Può controllore direliomentedue motori D€ e sino o 5 sensori che roccolgonoínfomozioni doll'ombiente, ln bose o quesio xhedoil costrutlore ho progeltoio il micuobot commerciole PICBOT-2

che consiste in uno slrutturo di metocrilotoche supporlo lo MSx84. due motori DC e vori sensori.

i. ,,. ,,,,. ,,,,..,,.,

Seigrafia del circuito stampata della MSxB4

a.rwffi ntììììììììììììììììììììììììììììil1Ììlrl

Page 24: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Nella figura della

serigrafia del circuitobuzione di tuttÌ i suoi

pagrna precedente.+.'a^î+^ .J^,,^ -iJLOT TPOLU, UUVC )l

componenti.

À .;^^"+-+- l-E rl.JUr LOtd rd

,,^-J^ l- ^li-+.ivEuc tc ut)LI t-

Fotografia della schecia cli controllo MSxB4.

Qui sotto sono descritti i quattro blocchi di cui è

composta la MSxB4.

20, Sezione del microcontroller

40, Sezione del controllo dei motori

La MSxB4 è totalmente autonoma, perche dispone di

un propno alimentatore Nella figura riportiamo lo

schema elettrico del medesimo. Tutta l'elettronica della

scheda funziona con +5 VDC, che si ottiene a partire da

una tensione alternata di 12 VAC, o da un insieme di

batterie. Mediante il connettore .18 venqono forniti '12

Schema del l' a I i mentatore

VAC derivanti dal secondario di un trasformarore esrer-no. ll ponte rettificatore, composto da D1 e C1, ha il

compito di rettificarla e filtrarla per ottenere una tensio-ne di '12 VDC, che si stabilizza a 13 VDC grazie al rego-latore 7812 (U4) piu la tensione dei diodi D2-D5. SW3applica questa tensione al controllore dei motori (+VBAT)

e anche al regolatore 7805 (U5), quindi sul piedino 3 si

ottengono +5 VDC, che sono applicati al circuito elettro-nico. ll diodo D6 monitorizza questa tensione. falimen-tatore funziona anche a00licando una tensione di cor-rente continua derivata da una batteria tramite il con-nettore J5. Chiudendo SW3 si applica questa tensione a

+VBAT e al regolatore 7805, per ottenere +5 VDC.

Schema della sezione del mtcrocontroller PlCl6FB4

Nella frgura è riportato lo schema del collegamento del

PIC 1 6F84, cuore e cervello della MSxB4. ll quarzo Y1 in-sieme ai condensatori C7 e C8, genera la frequenza di

funzionamento di 4 Mhz. ll circuito di Reset è formatodal pulsante SW2 e dalla resistenza R11. ll connettorePic-bus e compatibile 'pin-to-pin' con quello del sistema

di sviluppo Micro'PlC Trainer. Tramite esso tutti I segna-li del PIC sono a disposizione dell'utente. Questo per-mettera di collegare e/o aggiungere altri tipi di periferi-che tra quelle supportate dalla scheda MSxB4, così co-me programmare il PIC della MSx84 senza estrarlo dal-to zoccoto.

, ,f I' I : .t 'r"l ) ::t :t .r

I sensori sono i sensi del sistema per captare lo statodell'ambiente. Nella sezione "Sensori e Attuatori" ne

sono stati descritti molti, e in microrobotica quelli otticìspiccano per la loro precisione, semplicità, efficacia, ri-

dotte dimensroni e prezzo.

D3tMou :

c2

m

Page 25: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

ll modello CNY70 e il H2'1A sono ipiù popolari. ll

primo contiene l'emettitore e il ricevitore ad infrarossi,nella stessa cansula ed p idpalp npr rilcv:re cambi diLqvJuru,

tono sulla stessa superficie. La luce emessa dal LED ri-

flessa dall'oggetto viene rrlevata da un fototransistor. ll

contenitore a forma di U del H21A ha l'emettitore se-

parato di tre millimetri rispetto al ricevitore, però en-

trambi sono alla stessa altezza, in modo che il raggio di

ìuce emessa colpisca il fototransistor. E l'rdeale per rile-vare oooettì che franoonendosi tra l'emettitore e ìl ri-

Conten itore e disposizionedegli elementi dei sensori CNY70 e H21A

cevitore, taglìno il raggio di luce, come si vede nella fi-

^, ,rr I ln'rnnlirrziana f inir: dol <on<nro l--.1? 1 A o nr roll:9UId. Ull dPPilLO4rUr rs LrPllO Uql )Ell)uls I 14 l^ L vuLiludi implementare un circuito di misura della velocità an-

golare di rotazione dell'asse del motore, in base a un

encoder formato da un disco trasparente con raggi ra-

diali onachi come nrec^^+-+^ ^^rr- fi^,,.- .înOSCendOuruil vpulr prLJ(j| ILdLU llElld llgulO. !U

il numero di raggi si determina il numero di giri che ha

dato l'asse. Nella figura si presenta una possibile appli-cazione del sensore CNY70, che consiste in un nastro

trasportatore con il fondo formato da riquadri neri ebianchì. Quando la luce dell'emettitore coincide con un

KCAE

Controllo di velocità e verso del movimento con due sensori CNY70.

rrnrr:nlrn norn--.\ ---^"F i+r a)dt o o))ut utLo E,

quindi, il foto-transrstor non n-

ceverà luce. Se

coincide con un

riquadro bianco

si rifletterà sul ri-

cevitore, cam-

biando il livello

logico della sua

uscita. Nella figu-.- -, ,--^--i,,^ -^Id )ULLtr))IVd )U_

no utilizzati due

sensori CNY70per conoscere non solo la velocità del nastro trasportato-

re, ma anche il verso del movimento. Lo schema della fi-gura mostra i collegamenti tipici del sensore ad infrarossi

con i pin dr ingresso del PlC.

Per poter gestire sino a cinque sensori digitali di in-

gresso, la MSxB4 dispone di un circuito il cuì schema è

mostrato in figu-ra e nel quale

:posstamo veoeret,^--^-;--i^^^ f.-I d))uLtdztut tc rro

iconnettori dei ';

sensori di ingres- ',

./

Esempio di applicaztonedel sensore ottico H21A

Controllo di velocità di un nastrotrasportatore con un sensore CNY70

Schema di collegamento di un sensoreottico ai pin di ingresso del PIC

Schema della sezionedegli ingressi digitali della MSxB4.

KCAE

+Vcc

Page 26: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

so, imicrointerruttori e le linee del PlC. ll sensore colle-gato a J4 resta associato alla linea RA4 del PlC. Questalinea funziona come ingresso degli impulsi TOCKI del

temporizzatore TMR0, il quale quando funziona in mo-do contatore di eventi, può contare il numero di impulsiricevuti da questo ingresso, permettendo misure di fre-quenza, dimensione di impulsi, intervalli fra impulsi, ecc

jl i: rrl,i+ Ì+ ii ir I i_ il r.l r!'ria * l. :_i,] i.: i;.1 i,,1 i.ll'f.: ì; iUno dei principali impieghi a cui è destinata la MSxB4

e quello del controllo di due motori DC o uno PAP Aquesto scopo utiìizza il driver L2938, il cui funziona-mento e le applicazioni al controllo di motori DC e sta-

to oggetto di studio del capitolo precedente. In questa

sezione studieremo il controllo di un motore PAP, lo

schema di questa sezione è riportato qui sotto.La linea RAO del PIC tramite l'interruttore 6, si ap-

plica al segnale lNl e, mediante l'inverter U'lF, al segna-le lN2 dell'1293B. Questo segnale pilota le uscite OUTle OUT2 che controllano il motore M'1. La stessa spie-gazione vale anche per la linea RA'l del PlC, che pilotaOUT3 e OUT4 per il motore M2.

Schema della sezione di controllo dei motori della MSxB4

Per quanto riguarda il controllo dei motori PAB es-

si possono avere 4 o 6 cavi, a seconda se sono bipola-ri o unipolari rispettivamente. I quattro cavi di quelli bi-polari, corrispondono agli estremi delle bobine di cui

sono composti. Nel caso di quelli unipolari, quattro ca-

vi corrispondono agli estremi delle due bobine, e gli al-tri drro :ìlo nroqo informodio di nrro<to .^mÒ-,,,,- sr puo ve-

dere nella figura.La figura successiva offre lo schema dr collega-

mento di un motore PAP a quattro cavi alla schedaMSxB4. La bobina L2 si collega ai morsetti segnati co-me M2, e la bobina L1 a quelli M'1. Tramite le lineeRA3 e RA2 del PlC, si ottengono le combinazioni bi-

^--;^ ,J- -^^ti-^-^ -lrrorrE uo dPPrlLdlc dr 1 MoroREpApdrrver 12938, in rno-do che sr attivino le oo----l" ,^.

;:ijffi..;:;i:r ;*?(rystruttore, riportate 1.[\ t,nella tabella della fi- À J Jgura.Permaggiori ; tvDinformazioni tecniche r.,..,,,,.,.,.-,...,.",,.".....,.,,.,,.,..,,.,,..,,,",...,.,,",".,.,,,..,,:;

sulla MSxg4, consi- schema di collegamento di un

gliamo di consurtar " yo:o,:".'!P untn;ota.11.

le n:nino rha il rncf rr rttnro h: ma<<n e r{ic,, r-y,, -,-postzionenel sito I nternet www. m icrocontroladores. com.

:

;: n ;; : o' ;; i;, u; u',,,;;di un motore PAP a quattro fili con la MS B

,.'',,..:SENSO ORARIO

nA3 RA2 RAl RAO PASO Hl+(A) fr{l-(B} Ar2+{C} m:l-(D}

llltl+-+illl0lr-i

llOO3+-+tlf04++

WBffi'E'ffi ri*sffiffiSENSO ANTIORANTO

RA3 RAi! RAr RAO PASO Ml+{A} Àlt{B} M2+(C} llr2-(D}

lllOf+-+llOO2.++

tlllg3+-+-;ill!14-++-,.Ì'-"-'.' -': '--:" - ;

Tabella che indica i valori btnariche devono assumere le linee della porta A del PlC, per ottenereil senso di rotazione adeguato.

ii:: ,t': ii:i n!r: 'tt t ttt':':l

rrlìrÌììììììììììììììììììììììrililr1ii:ililiririì.. ':: ,.....4;;;;nì;ìì;;;;l;a;a:.:iaa.,:...:......),..)....,....)...)))t:\N1

Page 27: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Display a cristaltiliquidi LCD

::.|:||":..ì-.::.,.'1.....1::;..;.:.,.''..:.:

ldisplay a cristalli liquidi LCD, sono iterminali di visua-lizzazione più utilizzati neglì strumenti basati su mtcro-controller; il loro compito è presentare informazioni, va-lori o qualsiasi altro tipo di dato. Uno dei primi prodot-ti in cui sono stati utilizzafi gli LCD su larga scala sonostate le calcolatrici digitali, come quella mostrata nellafigura.

ll display LCD consiste in un condensatore planareformato da due placche metalliche, una delle quali etalmente sottile da risultare trasparente. Fra questeplacche si trova un dielettrrco isolante, che è un cnstat-lo liquido in fase nematica. Quando non si applica ten-sione fra le placche il cristallo rimane trasparente, ma e

sufficiente applicare una piccola tensione, in mooo cnesi generi un piccolo assorbimento di corrente, per pro-durre una variazione nelia riflessione e nella rifrazionedella luce, tale da rendere opaco il cristalio.

Una delle principali disfunzioni a cui sono soggetti i

diodi LED, si riscontra quando c'è molta luce, perchequesti si distinuguono meno. specialmente se la lumi-nosità dell'ambiente è grande. Invece nei display LCDsuccede l'opposto, utilizzano la luce ma non la qenera-

no, perciò maggiore è l'illuminazione ambientale, piùelevato è il contrasto dell'informazione presentata.

Un tipico settore di applìcazione dei display LCD è lastrumentazione. La maggioranza degli strumenti di mi-sura utilizza un LCD per visualrzzare i dati. È il caso delmultimetro, che si puo considerare lo strumento più co-mune nei laboratori di elettronica, e di cui riportramouna fotografia nella figura.

ll tester è attualmente uno degli strumentiche piit utilizza visualrzzatori LCD

Nei multimetri digitali, è molto frequente l'utilizzo didisplay LCD a tre digit e mezzo, come quello che si ve-de in figura.

Struttura di un display LCDda tre digit e mezzo, utilizzato nei multimetri digitali.

i-rffi

Le calcolatrici sono stateil primo prodotto a impiegare i display LCD su larga scala

., lr

Page 28: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Oltre agli strumenti di misura e le calcoìatrici, esisto-

no molti dispositivi che utilizzano gli LCD, fra cui ricor-

diamo i telefoni fissi e mobili, le agende elettroniche, le

macchine fotografiche. i distrìbutori automaticì, i pan-

nelli di comando dei veicoli, ecc.

Come esempio di una semplice applicazione, pre-

sentiamo nella fotografia sottostante un termometro,

che dispone di un sensore di temperatura esterno, col-

legato tramite un cavo di una certa lunghezza, che per-

mette dì misurare la temperatura all'interno di un fri-gorifero, fuori dalla casa, fuori dalla macchina, nell'ac-

qua, ecc.

ln questo termometro si ufilizza un display a tre di-

ait c mozzo tino SP52c rha he drra filo di niof,in1, g 6hg9lt g llls44v, ttvv Jt JLJ'

ha bisogno di trovare sul circuito stampato due connet-

tori da 20 pin cadauno, per il proprio sostegno, come si

può vedere nella figura in basso.

lnfine il sistema di sviluppo Micro'PlC Trainer, uti-

lizzato per supportare lo sviluppo completo dei pro-

Scheda del termometroche supporta il disPlaY LCD

Termometro che supporta il display LCD.

Aspetto dei collegamenti della scheda del termometro

che sostiene l'LCD con il sensore di temperatura e la batteria

getti basati sui microcontroller PlC, utilizza come

terminale principale un dispìay LCD da due linee con

16 caratteri ognuna, come si vede nella fotografiadella figura.

l"] 9:5il ÉiE,i:.i L.: lj +: l"F, {. FJ ti:,i:iI display alfanumerici hanno la capacità di visualizzare

diverse Iinee composte da un determìnato numero di

caratteri. Possiamo trovare LCD da 1 linea per 16 carat-

teri,2 x 16,4x16, 1x20,2x20,2x24,4x 20 ecc'

Inoltre possono, o meno, avere l'opzione di una lampa-

da di retro-illuminazione, cìoè illuminazione da dietro,

che migliora notevolmente il contrasto dei caratteri in

ambienti poco illuminati.

tl sistema di sviluppo Micro'PlC Trainer utilizza

un display LCD come principale terminale di visualizzazione

:- . _.\6o - , *T,

Page 29: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

I

t'"""-"-

Fotooyfya.1,,r, lr? da z ly1ee

per 16 caytteri

Per rendere l'idea, abbiamo scelto di descrivere unLCD tipico, modello C-1602, da 2 linee per '16 caratte-ri, la cui fotografia è riportata qui sopra.

Le misure dell'LCD selezionato sono approssimati-vamente 100 x 42 mm, e la dimensione del display divisualizzazione B0 x 20 mm.

| 16 terminali di collegamento del modulo LCD cor-rispondono ai segnali di controllo e ditrasferimento deidati, in accordo con l'assegnazione delle funzioni ri- ;

^^r+î+a ^^ll- +-l^.^ll-PWr LO rq rEilO LdUCild.

Nella figura della pagina successiva troviamo lo :

schema di connessione dei segnali esterni ai termina-li dell'LCD. Fondamentalmente si dividono in segnali

fl ;$il:r.ione, di controllo, di dari e di retro-iilu- i

Vo Contrasto del cristallo liquido.Generalmente si collegaa un potenziometro che applicauna tensione da 0 a +5 V

Vss Massa dell'alimentazione

7-14 D0-Di Bus dei dati bidirezionale

5 RAI/ Segnale di lettura o scritturaR/W = Q, 561i11rr13' RM = 1, lettura dell'LCD.

t:j

Terminoli di collegomento

Dimensioni dell'LCD e del displav di visualizzazione.

,l

Page 30: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

MICROCONTROLLERCcrroHeristiche dei display tCD

zR vtt

3 voo

=

una memoria da 64 byte,nor do{inira 116 1-,l62ffpro Evqt ugtililrL urrLuruL(clq J

caraltere 5 x 10.

L'insieme dei ca-

ralterì che si possono

vedere nel displayLCD è riportato nellafigura. ln essa le posi-

zioni indicate comeCGRAN/ (n) corrispon-dono a uno degli B

^^--iL.;li --"-++^"i -possr0ilr cararrer gra-

f ici da 5 x 7 puntt chenossono esserP lihera-

mente definiti dall'u-tente. Questi caratterisi definiscono intro-ducendo nei successi-

vì indirizzi dellaCGRAN/ dei byte con

determinati parametri

binari. La CGRAM è

di cui se ne utilìzzano B

x7 e 16 se si tratta di un

DATI

DO-DZ

VO

RS

R/W

E

schema di interconnessione dei ,"gruti a'li ur)'*u,o ,ro

I

,r:lrril&l&K&W &X&K&tEm56 En*66AET*g gEffiMM

rìrrrr..&K&K& KffiX&W

E AN:SBE AntrningSn

E &NIEEffiK'X&&wK'xwffiWXKg&&&xmsSKXWKgxgsg

g&&.xa&&.*EXKrx&xx&ffigxesK&KMXXSKgXgw&xKwxw€K&g&KgX&WKK6&mgxKgxffiwgffiKKTX&Kg'*9ffi'

Matrice da 5 x 7 punti di due caratterr

sovrapposti, uno per ogni linea, con le drmensroni ptt) tmportantt.

Ogni carattere si rappresenta sul display LCD me-

diante una matrice di punti o pixel da 5 x 7. Nella

figura sono indicate le matrici dei due caratterì so-

vrapposti, ognuno dei quall corrisponde a una del-

le linee.lnsieme di caratteri ASCII del modulo LCD

SAgFI' rlsFt.. nt*EEst#at

EEHgCtnrÍnt

Page 31: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

',.-.íÌ:

Funzionamentodei display LCD

Come abbiamo gia commentato in precedenza, il

display LCD è un visualizzatore di caratteri, sra di testoche grafici, molto potente e flessibile, che si puo pilota-re facilmente tramite un microcontroller inserito all'in-terno del prodotto. Nella fotografia qui sotto si mostrala parte posteriore dell'LCD, in cui si può apprezzare la

sua struttura elettronica.

Vista posteriore del display LCD pilotato da unsstema basato su un microcontroller integrato sulla scheda

Nella descrizione dell'architettura del modulo LCD,le linee dei collegamento esterno si dividono neiseguenti gruppi:

Linee dei dati: BDO - BD7

sus ort otorout

DATI

BUs DIcoNTROLLO

1E,Rs,R/w-)

Schema dei collegamenti del modulo LCD

' ' '' 1 . ' :' , : . : :

Per pilotare un display LCD tramite un PlC, si utilizzano1 'l linee di l/O digitali del microcontroller

Le otto linee della porta B (RBO-RB7) servono persupportare i trasferimenti bidirezionali di informazionitramite il bus dei dati dell'LCD (DB0-DB7).

Le linee di controllo dell'LCD (RS, RA//# ed E) si pilo-tano con le linee RAO, RA1 e RA2 della porta A rispetti-vamente, come si puo vedere nello schema seguente.

Collegamento delle porte A e Bdel PIC con le linee dei dati di controllo del display LCD.

La tensione di alimentazione dell'LCD coincide conquella del PlC, e se si desidera variare il contrasto deicaratteri che sono visualizzati, si ulilizza un potenzio-metro da 1O K con cui si applica una tensione variabileall'ingresso, V0, che regola il contrasto del display.

Linee di retro.illuminazionel BL+ e BL- {lngressi per I'alimentazioneper Ia lampada di retro-illuminazione)

Nella figura in alto a destra si mostra rl diagrammadei collegamenti dell'LCD.

,it.tt.,i., tt | ,t i.t.t..1 !.,.t. |.:, it tt ,i., t,i, t]]]ì]]]]]]]i''@]]]]]]'],i]]]W]]]]r{K]@|......')||\\\).))...Wìì:ìì]]]]]|]]:]]]]::4iWf!]]#3

Page 32: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

". i:i ri; ;r ir ir lri ;" i'ri {i i.; I il: ir.l i ì ll f' fl i. r ;i. í fi 5 l.

í: í"ii qr1i,'Îí1í-;li

Nella comunicazione del PIC con il display LCD si pos-

sono inviare comandi da eseguìre o caratterì da visua-

lizzare in qualsiasi delle 32 matrìci esistenti nel display,

che si compone di due linee da 16 caratteri ognuna.

Quando il PIC invia, tramite il bus dei dati, una istruzio-

ne o un comando all'LCD, puo realizzare operazioni

moìto interessanti, come cancellare tutto il display,

Cro nog ramma d i u n' oPerazi onedi scrittura di un'istruzione nell'LCD tramite il PIC

Cronog ra m ma d i u n' operazonedi ::ittu::,|i

u' :':!t":",.1s.c!r rytr'.lc-o

muovere il cursore a una determinata posrzione, indiriz-

zare una delle matrici, ecc. ll PIC colloca il codice dell'i-

struzione nella porta B, e per indicare che sitratta di un

comando che si deve scrivere nel display pone la linea

RS (RAO) = 0 e la linea RA/V# (RAl)= 0.

Nel cronogramma riportato nella figura a sinistra si

mostra il valore digitale che assumono i diversi segnali

che partecipano all'operazione di scrittura di un'istru-

zione nell'LCD tramite il PIC.

La scrittura del codice di un carattere ASCII sopra

una delle 32 matrici del video è abbastanza simile alla

scrittura di una istruzione.

Varia solo il livello logico del segnale R5. ln questa

situazione la porta B del PIC prende il codice ASCll, allo

stesso tempo ìn cui RA0, RAl e RA2 prendono i valori

che sono mostrati nel cronogramma in basso.

iì I r il È'i i;i ilt i i-i i;r I L i, 1'í'i ii i1 J d-1: lt ; i": i: I. i-' i i- i-!

lì display LCD risponde a un insieme di comandr che

interpreta ed esegue quando riceve tramite il bus dei

dati il codice corrispondente e RS = R/W# = 0.

Tra i comandi più importanti troviamo quelli di can-

cellazione del vtdeo, i movimentì deì cursore, i lampeg-

gramenti, e gli indirizzamenti delle memorie interne

dell'LCD.La memorìa DDRAM è quella che contiene i codici

der caratteri che devono essere visualizzati nelle due

lrnee.

Gli indirizzi da B0 a BF Hex corrispondono aì 16

caratteri della prima linea e glì indirizzi da C0 a CF Hex

a quelli della seconda linea.

La memoria CGRAN/ ha 64 indtrizzi di dimensione

byte e in essa sono contenuti i codici necessari per defi-

nire 4 o 8 caratteri grafici definibili dall'utente, secondo

le necessità dell'applicazione. Ogni carattere grafico

definito dall'utente è composto da B o 16 byte che si

memorizzano negli tndirizzi successivi della memorta

CGRAM.In seguito sono descritte le principali istruzionr utiliz-

zate con il display LCD

i- i i:.j i: il i- i. r:1.r"i { : i'+ xr i; ri i i j :=: Ì: {,;

Cancella tutti i caratteri del video e colloca il cursore

nella prima posizione della prima linea.

lnoltre pone il bit di controllo l/D = 1 per defauìt, il

che significa che con ogni carattere il cursore tncre-

menta la sua posizione.

lmpiega 1,64 microsecondi ad essere eseguito, sup-

R5

i

tl

: r40: 450nsn5

*3!9Ì9rrffiR/w#i i i t

r I4O ' 450ns r

n5

BUS DEI DATI codice islruzione

BUS DEI DATI coroilere ASC|I

5,ri tÈ lli# ij:É 4Í; rH jl,Èrrt'È'1 î]ii

Page 33: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

ponendo che funzioni a 4 Mhz, e il suo codice è:

Colloca il cursore nella posizione di inizio, prima posi-zione della prima linea, e forza il d splay a visualizzareda quel punto.

li contenuto dei dati nella DDRAM non varia e l'in-dirizzo della visualizzazione si pone a zero.

lmpiega 1,64 microsecondi ad essere eseguito e il

suo codice è:

,.':,. i. . ;' ,,',; i';',;.r t.t.,t:.,ti., : :.,;'1,',. : )rit:';:":'::i. :':

Stabilisce la direzione del movimento del cursore e spe-

cifica se la visualizzazione si sposta alia posizione

seguente del display o no.

Questa operazione si esegue durante la lettura o la

scrittura della DDRAM o la CGRAM.Per visualizzare normalmente si pone il bit di con-

trollo S = 0. Se S = 1, la visualizzazione si sposta ognivolta che si scrive un dato.

lmpiega 40 microsecondi ad essere eseguito e il suo

codice è:

Se l/D = 1 si incrementa il cursore, in caso contrariociò non accade.

Attiva o disattiva il display (D) e il cursore (C), stabilen-do se questo deve lampeggiare (B) o no.

lmprega 40 microsecondi ad essere eseguito e il suocodice è:

Mrrove il crrrsore e snosla il disnlav spnza rambiare il

contenuto della memoria dei dati DDRAM.Si esegue in 40 microsecondi. Se il bit S/C vale 1

sposta il dìsplay e se vale 0 muove ilcursore. llcodice è:

0 0 U 0 OOSICR/LXX

, , I r it i

Stabilisce la dimensione della comunicazione con il bus

dei dati, che puo essere da 4 bit (DL = 0)o B bit (DL = 1)

Determina il numero di linee del display fra una (N

= 0)o due (N = 1)e iltipo di carattere, se e 5x7 (F = 0)

o 5 x 10 (F = '1)

lmpiega 40 microsecondi ad essere eseguito e il suo

codice è:

lcaratteri grafici definibili dall'utente sono scritti in una

memoria da 64 byte chiamata CGRAM. Con questa

istruzione sr stabilisce l'indirizzo della memoria CGRAM- ^-.{i.^ !-l ^,,-l^ -i i, i hvfo rhpa parirre oar quare sr Inrzrera a memoflzzaredefiniscono i caratteri grafici.

Eseguendo questo comando tutti i dati che si scrl-vono e si leggono successivamente, lo faranno da que-

sto indirìzzo della CGRAM. lmoieqa 40 microsecondi e

ii suo codice è:

0 0 0 0 lNDrRtzzo

DI CGRAM

"-:,i,:,.l ',..,,;:l::. i:'),.i; :t:':.,.:' .'l t,: ,,;;',';i-,i"i ,::: :, : ': l;i !.::..::,: j:. ,

.:';.,:71:.:;, ", ,, ;,

I caratteri che si visualizzano sono stati precedente-

mente scritti nella memoria DDRAM per poi passare al

video. Questa istruzione stabilisce I'indirizzo dellaDDRAM da cui sono memorizzati i dati. f indirizzo dellaprima linea corrisponde a 80 fino a 8F Hex e quello

0 0 0 0 0 0 0 0 0 I

0 0 0 0 0 0 0 0 1 x

0 0 0 0 't Dt N X x

0 0 0 0 0 0 0rliDs

0 0 0 0 0 0 I n r B

..

Page 34: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

r3rmmcrzione di un IGD

0 r coDtcE

ASCil

O BWE

DEFINITO

DALTJUTENTI

0 0 O INDIRIZZO

DI CGRAM

lVentre il mod:lo LCD esegue istruzion,, e occupato e

non si deve inviare un'altra istruzione. ll flag BUSY (BF)

inrlir: rho é naat tn:tn nrr:nnln vrla '1 n rho À ihornil jvrLu Lr rL L vLLu|.JuLv 9UqllUV volc l, V ll q c Lluclu

quando vale 0

della seconda da CO a CF Hex

condi e il suo codice e

Si o<onr to n LO mirrncp-

lnn nroslo rom,andn si scrivono nella DDRAM i carat-teri da visualizzare e sl ouò anche scrivere nella CGRAN/

ibyte definiti dall'utente. ll suo codrce è.

La sequenra di iriz,o e a segJente.

't

t.. CANCEU.AZ|ONE DEL DTSPLAY ,

ll segnolotore BUSY si montiene oltivo o 1 duronte i 15 ms .

dello sequenzo di inizio. l

2". STUAONE Dft MODO ::

5i sceqlie per defoult lo dimensione .

del bus dei doti q 8 bit e uno lineo nel disploy (N = 0)

,

3'. CONTROLLO ON/OFF DEt VIDEO t,

Per de{oult si sceglie il disploy OFF (D=0}, cursore OFf (€=0) .

e senzo lompeggiomento del cursore {B=0}. :

- . ' --. .- '-- --a

4". SEIEZIONE Dl FUNZ|ONI .,l

Si sceglie per defoult l'incremento del cursore ll/D=ll,modo normole e non spostomento del disploy (S=0).

5". SELEZIONE DEILA PRIMA POSIZIONE DEttA DDRAM l

Se non si compiono esattamente le condizionidi alìmentazione, la sequenza dr in z o dovrà esse-

re rea)tzzala dall'utente via software, È moltoimportante che la prima istruzione che si invia pro-

duca una Iertporizzat ore di 15 rrs pe" poter rea-litzsro rrn,.r qonrrpnz: romn]pt,av,,u JLYUL

Dpsrri'ri,amo .i^ n.lio d

che forniscono un'idea

ur)Proy LL v.

tCD E

routines in assembJer MPASN/

dpll: spr-rnlirit: cli np(.tione dei

Rouîine che genero un impulso di I microsecondo tromite

lo lineo RA2 (segnole E). Si suppone sempre che il PIC

stio lovorondo od uno frequenzo di 4 Mhz.

1 1 CoDICE

ASCtI

O BYTE

DEFINIÎO

DALI]UTENTE

C an at ro<tn rnm:ndn

neilaDDRAMoibytesi leggono i codicr ASCII scritti

neIIa CGRAVI,

tCD_E

rèlurn

bsf

nop

bcl

RA,2 ,'Attivo E

RA.2

;Atendi t microsecondo

:Discttivo E0 BF INDIRZZO

DI CGRAM

ll modulo LCD esegue automaticamente una sequenza

interna di inizìo al momento in cui viene a00licata la ten-

sione di a imenta,zione, se si compiono iseguent, requisit.

b. ll tempo di scollegamento deve essere come minimo di 1 millisecondoprima di tornare a collegarsi.

LCD_REG

Queslo routine deposito il codice di istruzione presente nel registro

W del PIC sullo porlo B. Attende che il disploy ICD

eseguo luhimo oRerolio.ne e 91yro flimqull di ottilofone !i !, .

LCD-REG bcf RA,O ;Disonivo RS {lslruzione}

ovwf R.B ;Prende il codice in W tromite PB

coll LCD-BUSY ;Anende che si liberi LCD

golo LCD-E ;Genero un impulso in F

Page 35: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

NTRO R

(r)Contro[[erdi LCD

Il display LCD è ìa periferica piu interessante di

rrri disnoni:mo ner visualizzare informazionrnei nrodotti e nei sistemt basati sui microcon-

troller. ll suo ridotto costo, la sua flessibilità

nella presentazione di messaggi e di grafica, le

sue piccole dimensioni e il fatto di essere pro-

grammabile, sono caratteristiche che lo rendo-

no insostituibile.

Per sfruttare al meglio i display LCD, sono

state sviluppate, e si trovano in commercio,

schede che facilitano all'utente l'uso e la

gestione all'utente per l'applicazione nei pro-

getti La scheda di controllo rende trasparente

il controllo interno del display LCD, Tramite una

ronnia di linee si colle^- r- --r-^!-.r -^^+.^rloLvvpru ur ilr ruL/ rr LvilLgd ld )Ll ICUC Ul LUl lLlUl

con qualsiasi sistema capace di comunicare tramite una

RS-232, come ad esempio un PC, un terminale divideo-tastiera, un microcontroller, ecc Questi dispositivi fun-zìonano come maestri (Master), rispetto alla scheda di

controllo che funziona come schiava (Slave). Lo schemaIoi rnllon:monti doi hlnrrhi rho no<ti<rnp6 il Ài.^l:',uEt LvilE9Or r rgr rLr uqr ulvLLl ll Lr rE 9E)Lr)!vr ru ll ul)Ploy

LCD è riportato nella figura. La scheda di controllodell'LCD è basata su un microcontroller che ha il com-

Schema di adattamentodella scheda controller fra il PC (MasteÒ e il display LCD (Slave)

nitn nrinrin,alè di intprrlretare le istrUzioni Che riCeve dal

master via RS-232. La decodificazione di queste istru-

zioni si trasforma in segnali di controllo, che si applica-

no al dìsplay per produrre i differenti effetti di visualiz-

zazione programmati attraverso il master.

In generale si possono classificare in due grandi

gruppi:1 + Controller on-line,2 -r Controller programmabili con memoria.

ll controller on-line si oilota in modo oermanentetramite il master. Riceve ed esegue sequenzìalmente leistruzioni del master, che puo essere un PC o un siste-

ma con microcontroller. Le istruzionì di visualizzazione

sono inviate nel momento opportuno, in funzione degli

awenimenti deì mondo esterno che influenzano il pro-

dotto che incorpora il display LCD. Per esempio, in una

macchina distributrice di prodotti, ogni volta che sì

introduce una moneta si mostra il valore della medesi-

ma e il montante totale del credito disponibile. ll con-

troìler on-line e progettato per mostrare messaggi nel

momento in cui si producono gli eventi corrispondenti.

SLAVE

:,::::*rll..

ll display LCD è diventatouno dei terminali pitt utilizzati per visualizzare informazronr

Page 36: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

COMANDI

ISTRUZIONI

ll master è permanentemente collegato al controller LCD, e contiene il programmadi istruzione e di visualizzazione.

COMANDI

ll controller programmabile con memoria, riceve il programma visuale tramite il master in modoprogrammazione, lo memorizza nella sua EEPROM, e dopo lo esegue in modo autonomo.

ln questo caso il programma di istruzione di visualizza-zione è contenuto nella memoria del master, come si

',aÀa nall: fin' 'r. l'rltr1-1 tinn di rontrnllor nrralli nrn-VEUq llEllC ll9UlO. LOlLrv LrVv ut Lvt tLtvilLt/ 'r-,,,, r,-

grammabili con memoria, oltre a disporre delle stesse

funzioni dei controller on-line, disponqono di una

La scheda si compone di dodici blocchi funzionali, elen-cati di seguito e mostrati nella figura:

'l -r Connettore di alimentazione.2 -r Potenziometro di contrasto.

memoria EEPROM in cui sonoscritte le istruzioni di visualizza-zione. Queste istruzioni si ese-guono al reinizializzarsi del srste-

ma, cio significa che questimodelli possono eseguire in

modo indipendente le istruzionic i mcssanni rho in nrecedenza

sono stati scritti nella loromemoria. Questa caratteristica li

rende molto adatti ai sistemi

automatici, come succede neir:rtalli nr rhhliri+eri

:l:::,:

Per avvicinare i lettorr alla realtà

commerciale, descriveremo ilmodello LCD-CON1, di tipo on-line, e l' LCD-CON2 di tipo pro-grammabile con memoria chepossiamo vedere alla paginaseguente.

: " t ', '" :l '.l:' l':'

3 + lVicrocontroller PIC

16C73.', 4 -) Interfaccia LCD 'l

.

Connettore a sinoola fila (SlL)'-'"'vOer LLr.

ì;r 5 -r Clock/calendario in

. tempo reale.

. 6 -r Memoria di pro-

; gramma

: 7 -r Connettore RS232.r B -) Batteria.i 9 + Pulsante di Reset.:.

: 10 -r Microinterruttore: ,,| 0l COnîlgUrazlone.

: 'l 1 + Segnale digitale di

ingresso. Ext. Input (J4)

12 + Interfaccia LCD 2.

Scheda controller LCD-CON2, programmabile con memoriaConnettore a doppia fila (DlL)

per LCD.

I

Page 37: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

:lìu

Pa4

CARATTERISTICHE TECNICH E DEI CONTROTTER "LC D-CON"

Schedr di {ormcro normolizzato dq IOO x 75 mm.*"" Affi;i;;; u vAcnrc, ."" .i.;tùi ."tttiiàit"'il;rimr$;;flru;i"i

-:---:9:::-:s:i:::-:::-1::*:-:.:r:*::"î-'3T-*:k::*-s-::l*::tri-.:::5i:1î: .-"Clock/colendorio in tempo reole, olimenfolo con bofierio ricoricobile di Ni-Cd.

Microcontroller PIC |éCXX di gcmmo medio.

Polenziometro per lo regolozione del controsto del disploy.

Copocito di governore disploy fino o 80 corqtteri con e senzo relroilluminozione, con diverso configurozione di linee e corqtlere per lineo.

Pulsonte di reset.

Memoric EEPROM con 24 Kbyte nelkr versione [CD-CóN2.

Connetlore per otlo segnoli di ingresso che servono per rilevore condizioni di visuolizzozione. :iQeotko modi di hvoro configurcbili con microinierrufiori: tresl, on-line, progrommozicne ed esecuzione. . i.

$rú;é;;vùile.*;";il;;iiú;lili':ifi;r"r6s.;ìi;Jil;ii,tó;É'Èi'i;iil"l^;-ilÈi*;i;;ffirÈ"il "tili,,*""fi"ffiÉ"tà.-""-""1,1

rliguro il Sistemo Integroto di Svíluppo che permetfe uno intertoccio semplíce do utilizzore per l'utente. i:"ffiÈìyffiÍ=:irT-.r:Fryryîrt*rrry7:i:Í"ii:j:"î-?rî-I:îT,ffiìa:iîffirìr.t : î îia::tj"t ti "t - :,1

Cronogramma di un'operazione di scrittura di un'istruzione nell'LCD tramite il PIC

ll connettore per l'alimentazione, indicato con il

numero 'l nello schema, riceve una tensione di 12 V,

che puo essere alternata o continua. La scheda dispo-ne di un circuito di raddrizzamento (D'l), filtraggio (C 1-

C2), e stabilizzazione (U7)" ll potenziometro di contra-sto è evidenziato con il numero 2 nello schema.

1". Suooorta la comunicazrone RS232 con il master.

2". Interoreta le istruzioni che invia il master oer

controllare il display LCD. Grazie al lavoro del PIC non

è necessario che l'utente conosca il funzionamentointerno dell'LCD.

ll connettore a fila singola da 16 pin (SlL), è segna-to con il numero 4 nello schema, e serve per supporta-re i moduli LCD che hanno questo formato.

Nella figura sono assegnate le funzioni ai diversipiedini. Per alcuni tipi di moduli LCD, è necessario un

connettore a doppia fila per la loro inserzione. Questoconnettore è indicato con il

numero 12 nello schema, e

, nella fioura è rioortato il suo.-h^'-- -h^ .i -^|-++- -; -^À^l>Lr rcr rd Lr rc )r dudLLd dr r r\JUcr-

, li deìle case WINTEK, NORI-

I TAKE e SHARP.

. i ,:';..i 1, . l .i'ti. i.i',::t jij,.li.:,.,;,:

E basato sul dispositivoPCFB5B3 (U1) di Phiìips, che

contiene un clock/calendario a

tempo reale, alimentato trami-te le batterie di Ni/Cd.

ll rhin o r-nntrnllet6 l6 gp

cristallo di quarzo da 32.768Khz e inoltre dispone di una

memoria SRAM da 256 byte,

che essendo alimentata con la

batteria si comporta da memo-ria non volatile, e in cui si

scrivono i differenti parametri

ll PlC16C73 è incaricato di realizzare i due comoiti vita-li del controller:

I

;

i

:,,...a

Schema della scheda controller LCD-CON2 con la distribuzione dei suoi blocchi funzionalr

Page 38: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

INIERfACCIA tCD I SEGNATE

GNDVccVao.lR5R/wE

DODID2D3D4D5DóD7L+

L-

PIN

I234567I9lotlt2r314l5

DtSCR|TtONE

Connessione o mosso dell'olimentozioneConnessione positivo di +5V di olimentozioneTensione voriobile per lo regolozione del controsto del disploySegnole di controllo dei registri interni dell'LCDSegnole di controllo per lelturo e scritturo interno dell'LCDSegnole per I'obilitozione inlerno dell'LCDlineo bidirezionole dei doti n" Ilineo bidirezionole dei doti n" 2Lineo bidirezionole dei doti n" 3Lineo bidirezionole dei doti n" 4Lineo bidirezionole dei doti n" 5Lineo bidirezionole dei doti n' ólineo bidirezionole dei doti n" 7Lineo bidirezionole dei doti n" 8Afimentqzione positivo di 4,5V per lo retroilluminozione(se il modello di LCD dispone di esso)Alimenlozione di mosso per lo retroilluminozione(se il modello di ICD dispone di esso)

Assegnazione dei piedini nel connettore a fila singola per alloggiare l'LCD.

J3;

ffii"".o-.",ar,*'-o-t*'*a*r*rj

INTERFACCIA tCD 2

Connettore a doppia fila dt

terminali per supportare alcunimodelli di display LCD

la capacità totale di 24 Kbyte.

,'"1.. | :, i , i i" i,, ,. ,,'t,::' !.;, l; i,

ll ronnpftnrp l5 sr rnnofta la

comunicazione RS232 e utiliz-

za tre linee. ll pin 3 corrispon-

de al segnale di ricezione (Rx)

il pin 2 a quello di trasmissio-ne (Tx), e il 5 di J5 è la massa.

Con il numero '10 si fa riferi-

mento a quattro microinter-

che si utilizzano nella

scneoa.

:i.:: ::ti: ::il; ;:,, ,.,'

','"t.':: t',':" ''

La scheda LCD-CON2 è

programmabile, e

dispone di una memo-ri: npr qrrivere le iqlrrl-

zioni che riceve dal

master, per por eseguìr-le in modo autonomo e

indipendente. È forma-ta da tre circuiti 24C65(U2, U3 e U4) che sonomemorie EEPROM da B

Kbyte, con cui si ottiene

ruttori che selezionano il baude-rate nella comunicazio-ne seriale, e i modi di lavoro, così come riportato nella

tabella della figura. In ultimo il connettore J4, segnato

con il numero 'l 1 nello schema, permette la gestione di

un massimo di otto segnali digital, che opportunamen-te gestiti, permettono di selezionare visualizzazìoni pre-

programmate: a seconda dei segnali che sono attivati,si esegue una routine di visualizzazione memorizzalanella EEPRON/.

ll flusso di controllo del programma è governator-^l; ^++^ -^^^-ri !i i^nresqo rhe fornisrono 255 COm_uo9ll wLLU )E9llqll ul lllvrEJJV Lr rL rvr rilJLvrrv

binazioni diverse di salto.

ll connettore J4 ha 10 terminali, dei quali il numero2 e la massa, e quelli compresi tra 3 e 10 supportano gli

otto segnali di ingresso. ll terminale 1 corrìsponde con

il segnale STB, che inizializza I'esecuzione di un pro-

gramma per il rapido riconoscimento dei segnali di

i n q resso.

ii,

SWI-I ' SWI-2 Modo di lovoro

i oFF i orr i on-line ]:r '********j-"-'--*"-ì - ---"*'. OFF i ON 1 Progrommozione (solo con |-CD-CON2) ]

I .---91!.-...i-.9i,1.,-.1-- F-'-::-s:-l."..1-"*1,::!e-.:,er,!-c--9;S9,\?),. ...".......iON ON Tesi

SWl-3 SWI-4 Boude'--'-J i

--,-9*tt,..: "*9F-*i"--_-"_?J"qo, i i.. oti-.,i. -"9!t * .|^.*..+e. oo.

. j.'t

- qù"-l*srii, -ip.il jo-1.-: 9N i- I??99,,..:i

Microinterruttori SW1 per la configurazione della scheda di controllo.

i:; r;:: J,ri,irif {1fr Íf :rlr*.rir!*slil|ìffi:rNNÌrrrlrì*;l

l;+++ +:+f ij',,É,i t:"1:u+.ir:ii,i'i;ti!"1i;" +iì+,

Page 39: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Controller di LCD

Confezionare i programmi necessari per fare in modoche l'utente risolva facilmente i suoi compiti, e che leistruzioni da utilizzare siano semplici e intuitive, e

importante tanto quanto progettare dispositivi fisici cheadattano il display LCD al master, tramite il quale si sta-biliscono i messaggi da visualizzare. La scheda di con-trollo riceve le istruzioni dal master, le interpreta e leo<onrro in fr rnzinno r,- Jet programma memoflzzato sul

PIC 1 6C73. Le istruzioni sono divise in due tipi:1". lstruzioni che interpreta il PlC16C73.2". lstruzioni che edita l'utente sul master.

ll PlC16C73 deve ricevere le istruzioni dal master,secondo il formato e la sintassi che è capace di inter-pretare. Pero quando l'utente edita il programma divisualizzazione sopra il PC, utilizza un repertorio di

.istruzioni più pratico e facile da comprendere, con l'ob-biettivo di ottimizzare rapidamente lo sfruttamento deldisplay LCD. Questa filosofia di lavoro è mostrata nellafigura.

COMANDIPER LCD

' RS232 |

, 'sfRuztoNt pER LA SCHEDA Dt CONTROLLO

i

,, ,rr.ri, o,n inL," ,i, ,rru lur=nr";";sotrro ;";to;tte aaila cpudel master, per fare in modo che il PIC

della scheda di controlloie possa interpretdre.

.|...:l,|1||..'.|..:.i,:i.,;,:,,:.,i,i;:ì.|;::.,::!

ll PlC16C73 della scheda di controllo contiene nela sua

memoria un codice di programma, capace di interpre-tare un repertorio di istruzioni che converte in segnali digoverno per il modulo di LCD finale. La CPU raccogliele istruzioni che utilizza l'utente, le traduce in formato

(il)

adatto al PIC della scheda di controllo e le invia a que-st'ultima tramite una RS-323. Le istruzioni che utilizzal'utente non sono uguali a quelle che interpreta la sche-da di controllo. L'ideale e che l'utente sia una personacon poca specializzazione tecnica, utilizzi istruzjoniintuitive per creare i messaggi e disponga di una inter-faccia grafica amichevole. Queste istruzioni sono defini-te di alto livello e la CPU del master le traduce nel codi-ce delle istruzioni che sara interpretato dal PIC 16C73della scheda di controllo e riceve il nome di "basso livel-lo", molto piu vicino alla macchina e molto meno com-p ren s ib ile.

' ,'i' ,:: : : ,l ,',',i ,l:1,:1,.1,.:';

l;, '.'','.:'. ).i: :.'

L'interprete dei comandi, ubicato nel PlC16C73,ammette un insieme di istruzioni con le quali si accedea tutte le possibilità di visualizzazione del display LCD.

Tutte queste istruzioni rispondono alla stessa sintassi.lniziano con un carattere ASCII a cui fanno seguito unoo più byte esadecimali, in funzione di operandi. Infinetutte le istruzioni terminano con il codice 0x0D Hex(Ritorno a capo).

Dopo aver completato l'esecuzione delle istruzionirlcevute, la scheda di controllo ritrasmette al master uncodice di riconoscimento ACK del valore di 0x06 Hex.

Alcune istruzioni, inoltre, restituiscono al master i para-

metri richiesti. ll master non invia altre istruzioni allascheda di controllo fino a che questa non invia il rico-noscimento della precedente. In seguito descriveremoalcune istruzioni di basso livello in cui sono esrrosti i

seguenti campi:CODICE: Raooresenta il carattere ASCII che defini-

sce l'istruzione.SINTASSI: Indica la sintassi dell'istruzioneOPERANDI: Esprime i possibili operandi.ESEMPIO: Semplice esempio di applicazione delle

istruzion i.

RITORNO: Valore che restituisce al master.

COMMENTI: Chiarimenti oer comorendere le istru-ztont.

".i1;.;|ll.11').i)l;.'.l:|:i:'i.:||,j.{:i'...:..!;|;i||,ii,,,!..y||1|11\':1|'|\fJ11|'|'|jj.,reww1]il]lllll*|,]!4iEÌiWùlùèiN]]l|]fuÌw1fÍÍi1l'*l&@jl1]ilWùlì|ii]lìì]iÍli]k,|#

Page 40: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

flIICROCONTROLTERdi controller di tCD

Codice: A

Sinhssi: A (coteno) CR

Opelondl, llgtenol è fo

coteno d9i 1gg9!erj do visuolizzore, mox. 40

Esempio: AmcrosistemsCR

Ritorno: ACK

Commenti: Tutte le istruzioni ierminono con un riiorno o copo (CR)

Caratteristiche dell' istruzione che visualtzza caratteri sull' LCD.

Con ouesta istruzione si mostra la catena dei caratteri

che sarà indicata in seguito a partire dalìa posizione

attuale del cursore del display LCD.

I caratteri sino ad un massimo di 40, si memorizza-

no in un buffer interno. Nella figura sono riportate le

principali caratteristiche di questa istruzione.

€odice: C

Sinlossi: CCR

Operondi: Nessuno

Esempio: CCR

. Ritorno: ACK

Commenti: Ognì volto che si esegue questo istruzione.

si commuiolo stoto del cursore ON/OFF

Ca ratte ristich e del I' i struzi onedi attivazione e disattivaztone del cursore.

Mostra o nasconde iì cursore nella sua posizione

attuale. ll cursore si rappresenta come una linea oriz-znntale nella nosizione inferiore del carattere in cui| ,r"v YvJ'4'vi

si trova.

c.D:Elti

l

u.H,

(omondo :

i

: r'-"--'1':s I

I

J

K

tM

N

o

Sintcssi

At,.tóíltm "*

EloollbblCR

ccR

DCR

EIindirizzo]CR

t[coleno]CR

G{nnl[byel ]lbyte2l . [byte8]CR

HCR

l[coteno]CR

JCR

KCR

tcR

Mlmml[hh]cR

N[dd]lmmlcR

ocR

PCR

Q[volor]CR

RCR

5[dirH][dirt]CR

Tlvolore]lìndHllindLlCR

ucR

VlvolorlCR

XlindHllindLlCR

YCR

?CR

Destrizione

v,ú[''oí ;;ffi dì;ùfi;l; ú,ffillio posiiió,àoi,ólil;f;'riore.

Produce un effetto dì {bb) inlermitienzo con un periodo siobilito

do ioo).

Afiivo o no lo visuolizzozione del cursore.

Disotlivo il corottere ACll locolizzoio nello posizione del cursore.

Sposio il cunore n uno nuovo posìziore.

Inserisce uno coleno di corotleri o poriire dollo posizìone del cursore

sposlondolo verso sinìfro.

Genero uno degli oìio posibili corol+eri grofici definibili

doll'utenie.

lniziclizzo il dìsploy LCD concellondolo e posizionondo il cursore

noll^ ^^.irinno

inizinlp

I Inserisce uno coleno di coroiieri o portire dollo posizione del cursore

.""*"""1^1" " .1"*."

r Attivo o disottivo il displcy LCD.

, Altivo o disotiivo 1o visuolizozione dell'oro in corso.

: Aìiivo o disoflivo lo visuollzzozione dello doto conenfe.

, Regolo l'orologio con i minuti [mm] e Ie ore lhhl,

I Regolo il colendorio con il giorno ldd] e il mese [mm],

r Aftivo o disotlivo il lompeggiomento e/o il cursore nello posizione

, in cul sì lrovo.

, Legge e resiiiuisce lo posizione ottuole dove si irovo il cursore,

, Temporizzo ionli decimi dì secondo come si definiscono nel [volore].

: Attivo o disoliivo le luci di tondo {bocklighi} nei dìsploy

, che ce l'honno.

I Sallo incondizionoiooll'indirizzo IindH][indl],: Solfo incondizionoto oll'indirizzo IindH][indL] in funzione del {volore]

, presente sul conneilore esierno J4.

: Fine del proqrommo,

, Corico lo voriobile inierno con lvolore],

I Decremenio 1o vorìobile e solto o [indH][indl]se il risulioio è 00,

: lniziohzzo lo schedo di conhollo LCD'CON.

r Resiiluisce il volore dell'ultimo ìndirizzo dì memorio progrommobile

, disponibile.

Devia il flusso di controllo del

programma quando sr com-nip rrn,r dotprminara condi-zione. La scheda di controlloLCD-CON2 s(rive il program-

ma di visualizzazione nella

memoria EEPROM da 24Khvte che occunA oli indiriz-

zi da 0000 a 5FFF Hex. Le

istruzioni sr scrivono negli

indirizzi correlati inìziandoda 0000 Hex Ogn istruzio-no rìr.r rn; rn rprtn numefodi hvtp I a rondizione rler cui

si realizza il salto viene stabi-li+- ^l-l ,,-l^"^ l.-i^-"i^ ^ilIa oat vatore 0tndrr() presen-

te nelle otto linee di ingresso

a cui si accede tramite il con-

nettore J4 Ext.lnput deììa

scheda di controllo.

Nelìa tabella a sinistra sonorar)0resentate tu t[e le istru-

zìoni, con le loro prrncipali

P

aR

5

I

uVX

Y7

Repertorio di istruzioni di basso livello che ammette la scheda di controllo LCD-CON2

::,4M.".' i::a*i;rtirtiuuuuìììììììììììììììììì!{rlul

Page 41: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

:iìi'ììll

MICROCONÍROtLERModelli di conlroller di LCD

caratteristiche, che la scheda di con-trollo LCD-CON2 è capace di inter-nrot:ro p rnnvortirp noi rnrri<nnnnen-

ti segnali di controllo che sono inviatìal terminale del modulo LCD.

Per semolifirare la ne51j6ne del con-"r""--'rroller LCD-CON il suo produttore,Ingenrería de lVicrosistemasPrograrnados S L, ha svillppato unsoftware molto pratico che imple-menta l'interfaccia grafica e che è

stato battezzato con il nome di

Ambienre Integrato di Sviluppo ElD, il

orralp npr.nette 1e sonrl6pti f unzioni:. Inviare istruzioni in modo on-line

dal rraster alla scheda dr controllo.. Simulare i programmi di visualiz-

zazione sul monitor del PC prima di

eseguirli sopra LCDe Edrtare il programma con il lin-

guaggio di alto livello.. Assembiare le istruztoni di alto

livello e convertirle in istruzioni di

basso livello, interpretabili dal PIC

della scheda dr controlloo Mettere a punto il programma.. Trasferire i programmi assembla-

tr alla scheda di controllo LCD-CON

L'ElD e basato su un repertorio di

istruzioni di alto livello, che purosqpndn onr.iri:lonti : n ,ollo di h:<<n

livello, nsultano piu comprensibili e

f,arili d,r npqt:ro Cnn l'gl119p dei testidell'ElD si puo cance,lare, inserire,

muovere, duplicare, salvare su disco,

recupe'are, ecc. fassenbie" di que-sto ambrente traduce le istruzioni di

alto livello rn altre di basso livello, chenossono essprp inte'rrretate con I,,,.. I

frrmware della scheda di controlio

-l-leltcD

-:--: - :

- lngrc*i: Pda I:t

4,l_l-l-|*l*f-f i* lt,-,j0*.J

: fipo--- '

--1-H

itrr:!or:r..-.-.. --..........

€ Reodv i

' a.",1.

,l on Lin" :

{"- Èogrommozione ,

_I ixl

rE.q":f ..9c*!,:'::ry:B

-,g..4;rii

f $ ,imp .rmc

r-i"g,*"c

, El l*t":,E] l:i..: El po'* ,El n ,*

jlExl Y1 ,' .--:* ;

V= fi* DE< ie

|'ti f lnvìorealLCD :

a- Simulore

:

Modo ON tlNE: Gli ordini soronno invioti direttqmentee in modo seqgenziole ol controller dell'LCD

Videata di lavoro dell'ambiente EID in modo on-líne.

];.==:.,:,:.;iaa=-;li::a,.;-a:E-.::::::":::.,:.,:.,.',,.,,:.:':.:,,.',:::..,::::,:::::::,lile Configurozione Strumenti Aiuto

,-l l rtl5l,i--J qti

Sorgenle

Videata di lavoro di EID in modo programmazione

tcDs

16xZ --_

V: lù

Obiect

LCD-CON. ll simulatore dell'ElD e molto interessante,perche -n sce la possibilita dr presentare rel crsplay delPC i messaonr che vocrliamo visualizzare sull'LCD. lnfineEID possiede un sistema di aiuto on-line, in modo cheposizionando i cursore su qualstasi icona appare unafinestra con un commento. lrequrstti per l'installazionedell'ElD sono:

r PC compatibrle con processore Pentium ad almeno100 MHz.

.2 l\4B come minimo dì spazro libero sul disco fisso.

. B l\48 come minimo di memoria RAN/.r Sistema Operativo Windows 95/98. Floppy disc da 3,5"o Porta seriale libera.

,+,€r+B

, À. ji:m r-Ì

F.tfÈi :":::-

:

---.t_Yrl.L?--:.-ti:#Ì-i. i

q;, xegoro ofs

[-] Regolo doto

Page 42: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

5 Modelli di controller di LCD

;

Nella figura è riportata la finestra che appare sul PC

lavorando nell'ambiente EID in modo on-line, in cui leistruzioni si inviano direttamente alla scheda di control-

lo. Esrste una finestra a video, denominata LCD, in cui

si rappresenta il display LCD disponibile, potendo sce-

gliere tra diverse configurazioni di file e caratteri. Nel

modo sìmulazione i comandi si inviano a questa fine-stra:l nos'to della scheda di controllo, simulando l'ef-

fetto che produrrà ogni istruzione suldisplay LCD. Sulla

linea der comandi sr digitano le differenti istruzioni con

iloro operandi. Se si attiva il pulsante "lnviare a LCD",

l'istruzione si invia tramite il canale seriale alla scheda

di controllo. Se è attivato il pulsante "Simulazione", l'e-

secuzione dell'istruzione sisimula sulla finestra LCD del

PC. Inoltre si puo lavorare in modo programmazione,

descrivendo tutte le istruzìoni nella memoria EEPROM

della scheda di controllo.Come si puo vedere nelìa figura, ìa videata in modo

programmazione dìspone di una finestra "Sorgente",

in cui lavora l'editor deitestiASCll, con cuisi editano le

linee del programma sorgente, Ognuna delle linee puo

terminare con un commento chiarificatore preceduto

da REM.

Instruzione i

lcone corrispondentialle 23 istruzioni di alto livello

dell ambiente FID

l'irnnr rnr"iqnondonto. Nella!v, ì ,JPv, ,vL, , LL

principali caratteristiche delle 9

rllriiflftfllllllrl?lrNlllillll!lìlìì

Inserb"lcoleno]

Inserl<"lcoieno]

Home

SelPos lindl

GetPos

Gef€hcr

Power

Print "CiooPrini'AddioPrinl "Mlcrosystems\0\1

Sì tralta di rrn renerto-

rio di 23 istruzioni chernrrisnnndnno : nrrel-

le dr h,essn livplìn aia-r. ,!i-+^ À l^ll^ f :^^-+.sluotale. t\eila rnesrra

di ìavoro dell'ElD esiste

rrn nrradrn in rrri sono

rappresenrare ognunadi nrpste rstrrzioni

medrante un'icona: ìn

nrpqto mndo lp istrrl-YvLr Lv

zioni dpl nrnnr:mmasi nossono editare

senza la necessità di!i^i+-.1^

^^.+- -ll--0tgtTarle, 0a5ta cilLLa-

re con rl mouse sopract^,.-- -^^^ .l^^.+-+^ leil9Utd )ut tu rPUr LoLE

istruzioni di alto livello.

+l:

:

Print"lcoienol Visuolizzo lo coleno di corotleri o poriire doìlo ioosizione del cursore. ll numero mqssimo di ,

iorolteri di cui è composfq lo coiena è 10. a

5 po:soro v srol zzo'e co'oîler' g'o[icipreceden e-erie delir ii. lr qJeslo coso t uli;zzolo boro r"e'so {oocl slosh) sègti-o dol -rre'odel cototlete gtolico des dero o.

sinrqssi Descrizione , urrare di un secondo.

Si tratta di costruire un prograrnma che presenta sul

display LCD la parola "lngeniería" e "Microsistemas"

alternativamente. Ognr parola si deve mantenere per

due secondi sul disolav e l'intervallo f ra entrambe deve

Home: Inizializza il display tCD.

Pause: Temporizzazìone.

Jmp: Salto all'etichetta indicata.

' : Cursor ::.1 ì Cu.sor

l

Si m bo I i e ca ratteristt ch e

di nove istruzioni di alto livello.

lnserisce lo coieno di corollerì o portire dollo 1

posizione del curoore, sposiondosi verso desko. I

Lo s n'osi e sin; e oll s'-rzoTe D' "'.

lnserl> C'oolnserb'Microsystems\0\ì

1

lnserisce lo coieno di corofleri o ooriire dollo :

por z one de cu-so'e. spos-ordosi vetso s ristro.

Lo :irtossi e siri e o quelro dell ltrrzione p'ecederle.

Corcello i d spioy LCD e posiz,ono I curuote rellop' .o oos z ore dello ptro reo.

Poszono I clso e o ird rzzospec ficolo.

ll corro, e- 'esl'lr sce ol ro;e'lo pos:zione olro e del cursore

segui'o do ACK

ll conlroller resrrr sce o moler co'oierecrec è re o oosizione dove s tovorl.Jtsote

Accenoe, speqre lCD. ll loho cre .CD s o soerlonol 5 0.Lfco c1eI rlorioziore cl^e corereuo s:o 0e du-olo:rcce:sivo islrLziole Powe' o ies-oLro.

A1i!o/o so-i\o o 'isro zzoz ore oel cltore

LoopRIM inizializza LCD

PowerPrint "lngeniería'Pause 20

Home

Pause 10

Print "Microsistemas"

Pauselu

PowerPause 10

, Jmp Loop

Microinterruttori SWlper la configurazrone della

Home

REM attiva ICD

REM visualizza lngeniería

REM temporizza 2 secondi

REM inizializza e cancella LCD

REM temporizza 1 secondo

REM visualizza Microsistemas

REM salta a etichetta Loop

scheda di controllo.

Page 43: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Trasferimento di datitramite R.F.

Trasferire informazioni tra sistemi digitali,comandare strumenti remoti, ricevere

dati da un ambiente distante senza la

necessità di un collegamento fisicomediante cavi fra emettitore e ricevitore,per mezzo di radiofrequenza, risulta una

delle applicazioni elettroniche più inte-ressanti In seorrito citeremo alcuni dei

settori piu interessanti in cui si può impie-gare questa tecnologia:

1". Controllo e gestione dei dispositi-vi remoti mediante invio di ordrni ecomandi: connessione/sconnessione di

allarmi, controlli di accessi, porte dei garages, ecc.' 2". Ricezione di dati in arrivo da oeriferiche remoteper la successiva elaborazione: trasduttori di tempera-tura, pressione, umidità, ecc. Tutti i tipi di variabili ana-

logiche e digitali.3". Trasferimento di informazioni tra srstemi molto

distanti: risultati di determinate ooerazioni. stato inter-no di variabili, ecc.

4". Aoolicazioni in microrobotica: comunicazione framicrorobot per realizzare compiti con-giunti, controllo movimenti, informazionidell'ambiente, ecc.

. ' . ,.:,'1 .,'. t,:'tl

Esiste una certa similitudine fra la funzio-ne della scheda di controllo LCD e i

dispositivi di R"F. Nel primo caso, la sche-

da di controllo riceveva le istruzioni del

master - che poteva essere un PC -, le

interpretava e generava segnalr di con-trollo per il display. In R.F. esiste una sche-

da incaricata di ricevere informazioni in

forma di onde elettromagnetiche a R.F,

interpretarle e fornire iì risultato a un PC

'

Schema di funzionamento del ricevitore dr R.E

(r)

**il;.

$rc

Schema di funzionamento dell'emettitore di R.F

per ìa successiva elaborazione. Nelle seguenti figure si

presenta l'attuazione semplificata delle schede dr emis-sione e ricezione di R.F. La comunicazione fra le sche-

de di emissione e ricezione di R.F. e l'applicazionefinale a cui le destina l'utente, si realizza mediante

comunicazione seriale RS-232, o mediante livelli logiciTTL che si aoolicano direttamente al microcontroller diqueste schede. Nel caso della scheda di emissione,questa riceve via seriale dal PC i comandi di configura-

Page 44: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

zione e idati da inviare all'utente.ll microcontroller della scheda

interpreta i comandi e li invia, insieme

con i dati, tramite l'antenna di emis-

sione, secondo un determinato proto-collo. Nel caso della ricezione si puoimnnrro rho ci: 116 qic+amr .hò f 1,, , ,r -. . -. . ,t) tEt |d, Lt tc tc

parte di un altro più grande. che rice-

ve i dati tramite radiofrequenza, li

verifica, li impacchetta, e li invia in

serie al dispositivo o all'applicazione

-'-:*:.:.:::':: -- -- -T:: "r: i.-i::-L :::" :

Fuigl: drs!!n:l-le-riel-9-"* "."..-.-.i..."".!",.""....:... "- ^- -- -!"!" *, -yD-s* i

-I-t",-g-r-s-,r-'-g--d..i

Velocità di irosmissione dei doti i I I nooo I Boude i

Ronge di lemperoturo

dell'utente.Riassumendo, una scheda codifica l'informazionu ,l''' ',':1.' , '

digitale per trasmetterla poi via R.F. e l'altra la riceve, ll cuore deìl'emettitore R.F. è il modulo RT1-433, pro-

sempre via R.F, la codifica e la trasforma in informazio- dotto dalla ditta italiana "Telecontrolli", che consiste

ne binaria. fondamentalmente in uno stadio di potenza che gene-

ra una portante di 433,92 MHz, modulata in ampiezza

'." . :- ii:,':r il ': ' t '' (AM). È un circuito rbrido che, meotanre un processo di

' ' ': I " r' r'r. 'r'I ."; r ' regolazione che utilizza tecniche laser, offre una grande

Con l'obiettivodi analizzare ilcomportamento di questi stabilita di frequenza. Lantenna dr emissione è integra-moduli che comunìcano tramite R.F., descriviamo l'e- ta nel circurto, ed e possibile ottenere una portata di

' varie decine di metri, a seconda delle condizionr

ambientali. Le sue caratteristiche principali sono ripor-tate nella tabella della figura.

, , . , . . , ,\ , ',

La gestione dell'emettitore MSETX è basata sul pro-

gramma che alloggia nel PlC16F84 e che supporta i

seguenti compiti:a. Gestisce la comunicazione seriale con il sistema di

applicazione dell'utente, che riceve i comandi di confi-nrrrazionp e i dati rhe si vorranro inviare.

b, Interpreta i comandì di configurazione e li scrive in

Emettitore MSETX

mettrtore N/SETX e il ricevitore MSERX, entrambi basati

su un PlC16FB4, che vediamo nella figuraNella scheda di emissione si utilizza un PIC'16F84 per

controllare la trasmissione alla frequenza standard di

433,9 MNz. l l m icrocontrol ler riceve l' i nformazione d i g i-

tale da trasmettere via RS-232, la decodifica e la invia

tramite R.F

La scheda di ricezione raccoglie r segnali di R.F tra-mitp rrn'antenn: e disoone di un altro PlCl6F84 che èincaricato di decodificarla, convertirla nell'ìnformazionedigitale iniziale e portarla all'esterno via RS-232.

Principali caratteristiche del modulo emettitore RTl -433 della ditta italiana "Telecontrolli"

i t;1 r ,t r,, , ,'..... .,, I t. .,,r' l, .,t,',! ,'.:lWfrtrr!ì:ì1ìì1fl111111111iiiii1iiiiiiiifriiiil]]|W.'1'.'..j)jjj...j1l;'j...'4||||j|||:||

Distilbuzione dei blocchi principali sulla scheda MSETX

Page 45: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

MICROCONÎR

un,altra di test o Assegnazione delle funzioni dei cinque terminali del connettore CN3 (TTL DATA)

"checksum " in

-^,J^,l- ^-"-^+i"^ l^ +mooo oa garanlìre ta lrasmtsstone.c. La trama, ottenuta con l'intestazione, ì dati, il

controllo ecc. viene inviata in modo sequenziale, bit a

bit, al modulo RT-433, da cui sono irradiati tramite R.F

I blocchi principali della scheda di emissione N/SETX

sono riportati nella figura e sono i seguenti:1', Modulo RT1-433.

2'. PtC 16F84.3" Inoresso dell'alimentazione.4". Reset.

5". Mìcrointerruttore di configurazione.6". Connettore TTL DATA (CN3).

7'. Connettore ICSP (CN2)

B'. Connettore DB9 (CN1).

una memofla rnter-

na non volatile.I dati sono

i-^---l-^++-+i -^^ilrpoLLilcLLdLr LUrl

formato prestabili-tn o ci aìonor:

un'informazione di

Intestaztone e

ll connettore CN4 rrceve

l'alimentazione, che deve

arrivare dal secondario di

un trasformatore che for-nisca 12 VAC. All'interno,.J^ll- --h^,1- ^-i-+^ ,,ueild 5Lr reud e5t5Le unostadio di raddrizzamento,

di filtro e di stabilizzazio-ne per generare +5VDCner l'elettronir: di 16p1-}'/l'

trollo, e +13VDC per il

modulo RT1-433. Per

resettare il sistema si usa

il pulsante SW-2, che

resetta rl PlC16FB4, senza

modificare iparametriinterni dr configurazione.Gli interruttori SW-'1 a

drre rnntatti spr\/nnn 0efdeterminare i baude con

cui la scheda comunicacon il sistema di applica-

Pin Ne Seonole.,.--.-.,.,-.-.,.,-.-..-....:,..___,,.,.......,..-..=...-

- ..-..1..-- .--i"-"" -".8:".--

I D"scrizione

.: Bidgr".{:ii,g-t|!r.si!:-lsrpji:"g-'::-1,"-d:!!1yt':ll--.--:e:,:sii:n-etti!-qry,!!-s-!Jl.2:Tx Trosmissione dei doti doll'emettitore MSETX verso I'opplicozione dell'utente.

3 i Vcc i Tensione di olimenfozione di +SVDC. Non necessorio. :

....-'f-'..'.'].."s9'!.3..-...i'Ly..s]l'.::i...l.:."d...:.|!1":*linfI.sgI.'!y3**]l:".'.l.l.':ee.li:l'.'.'''.'

..-."..9......i..--"-9]!-?..-..--.l..!:."l.:-::i-r.r

zione dell'utente, che può essere un PC. Se SW-1 e

SW-2 sono a 0 la comunicazione si stabilisce a 2.400baude. Se SW-1 = 0 e SW-2 = 'l si realizza a 4.800baude, e se i due sono a 1 la comunicazione è a 9.600baude.

',,'ll connettore CN3 a cinque contatti e chiamato TTL

DATA e ser\/p ner srnnortare la comunicazione con l'u-tente, mediante livelli logici compatibili TTL.

lsegnali che invia l'utente si applicano direttamen-te al PlC16FB4 e nella tabella della figura si mostra l'as-

segnazione di ognuno dei terminali di questo connet-tore.

ll costruttore della scheda, Ingenieria de

Microsistemas Programados S.1., uliltzza il connettore

llT-r 3::l:rrsPc I Seriol Progroming Clock. Segnole di clock di sincronismo ol momentoì dello scritturo.

MCLR/VPP j Segnole di reset del dispositivo do regislrorei e punto di opplicozione dello îensione Vpp di registrozione.

GND

Assegnazione delle funziont ai terminali del connettore CN2 (CSP)

Pin Ne Segnole 1

Descrizione

2 1. TxD : Trosmissione dei doti R5232 tromire l'emettitore MSETX verso] ; il sistemo di opplicozione dell'utente.

"."....-'...".j'.'-.,.-."'"'"..'"..':-":]''-::::'=.::]:':.'-.:'.|:3 RxD . Ricezione dei doli RS232 doll'opplicozioneI i dell'utente verso l'emetlitore MSETX.i t qcil uterrrg vef t9 | ertte[tlgfe tYtJEtA.

5 : GND i Segnole di mosso comune. i

Assegnazione di funzioni ai tre terminaliche supportano la comunicazione serrale RS-232 nel connettore CN1

Descrizione

:::

Page 46: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

r r\r / l Í \Pr nor <.rr\iore nella/ YLr JLr ''- - -'

-

\_t\Z. \r\_Jrl Ptrr )Lr rvcrc rcild

nemoria del PIC il firmware di CARAITERISTICHE Min Tipico Mox Unità-^^+r^ll^LUr lLr uilu. 1 , . r. r. . . i ? E a . - I .'^a I

nemoria del PIC il firmware di CARAITERISTICHE Min Tipi

N/]ec]ianfeotlestoconnet-iM---"""-j.-.'"*,p-"---L".-".:."*.-.:--"*,-q..,--i----,"Y..P9-'-j'"' l'' .^-...-^ r <'tore il fabbricante puo aggior- €onsumo* 2,J ^ 3,5. mA

nare i suoi clienti dell'ultrma ; -l***.i:**-l9y:lg**,**---**:*f-tigi:::**":**"*p-9*-l-..-.1g1z -:versione delfirmware in modo , *r.:lk::,::g di sinronio -__*i*___^-_L{:.9Éj**__*_ j__*yn:"_..jrapido ed economico. , i*l*.+ 6^^.r*i;n***-]-***^l;;-";"- X-':;:';

"l--*m"- "- r

integrato MAX232 adatta i

Princiaali caratteristiche del modulo rÌcevitore RR3-433 di Telecontrollilrvellr I lL alla normalrva F(>-

232 e viceversa. Utìlizza sola-

"oiÎ:'-o :,:"i:'::" ^.,^ ,- Srri:lrg--djls:de s*9"*'ì:"o,, "9''o ''. u"', ,lo velocitò diricezione deidoti ! i ] zooo ì gqude i ,-.,:,'***--.-.,*-.,.,;**********j ITaoeila 0t assegnazrone oeile _.* " -. ...

mente tre contatti, le cui funzioni sono rappresentate

nella figura.

; i it .i i- :: ',,'l "i ij ;'i j; :: :

i; Ì- i'l i:

Realizza il lavoro inverso dell'emettitore MSETX, cioè

riceve tramite l'antenna le onde R.F, le rnterpreta e lecodifica in informazroni digitali. quindi le invia all'uten-te mediante RS-232 o segnali TTL. Le principali sezioni

del ricevitore sono le seguenti:

1a. Modulo ricevitore.

24. Ptc16tB4.3a. Alimentazione.4u. Reset.

5u. Switches di configurazione.6a. Connettore TTL DATA (CN3).

7u. Connettore ICSP (CN2).

Bu. Connettore DB9 (CN1).

I blocchi del ricevitore realizzano la stessa funzionedpnli nmolonhi dell'cmettitorp npro al ron'trario. ll

modulo ricevitore è il modello RR3-433 di"Telecontrolli". Ha una grande stabilita di f requenza e

offre una buona resistenza alle vibrazioni meccaniche,

oltre ad un ampio margine di temperatura.La sua sensibilità si puo migliorare saldando un filo,

con funzione di antenna, sul terminale ANT della sche-d: ron rrna lrrnnhpzza d,i rire a ?5 cm npr f unztonare

come antenna a mezza onda. Riceve informazioni via

R.F. e ìe invia al PlC16F84 che le interpreta, le prepara e

le invia in serie all'utenter^ ^"i^-i^-r --"--teristiche del modulo RR3_433Ls Pr il rLrPqil Lqror

sono riportate nella tabelìa in alto.

i..:.,l|'||.,...i-'|'.,,|ii...i':...;.i...l.,-.;.:..;...,i

I tre comniti che realizza il PIC del ricevitore sono:

1'. Gestisce la comunicazione seriale.

2'. Interpreta i comandi dr configurazione ricevuti e

li scrive nella memoria non volatile. Scompone i dati

ricevuti via R.F., analizza ìe informazioni delle intesta-

zioni, determina se il messaggio è drretto al ricevitore

adeguato. Infine verifica la valìdità dei dati mediante il

cnecKSUm.

3". Dal totale della trama ricevuta estrae l'informa-zione utile che invia all'utente in via seriale.

i

i,,

t,

ii

Distribuzione delle sezioni principali del ricevitore MSERX.

Page 47: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Trasferimentodei dati tramite R.F.

L'emettitore di R.F studiato, MSETX, comunica con il

sistema dell'utente in modo seriale e bidìrezionale.

Anche il modulo trasmettitore RT1-433 comunica in

modo seriale e riceve le informazionr bit a bit, per inviar-

CONTROLLO

Flusso di informazioni nell'emettitore MSETX

CONTROLLO

"""**"; - Modo asincrono: non necessita di

un clock ausilrario. Sia l'emettitore che il

ricevitore, trasferiscono e raccolgono i

loro bit in un intervallo di tempo "t"

(il)le successivamente tramite R.I così come e rappresenta-

to in modo schematico nella figura. ll ricevitore MSERX

suooorta un flusso di informazioni simili al trasmettitore.

Da un lato la comunicazione con l'utente è in modo

seriale e di verso brdirezionale, e dall'altro l'utente invia i

comandi di configurazione, e riceve lo

stato interno, così come i dati ricevuti tra-

mite R.F., in serie, bit a bit, come si vede

nella figura. Nella comunicazione seriale

dobbiamo tener conto di tre aspettì rile-

vanti per garantire un corretto trasferi-

mento e una successiva irterpretazione.1'. Sincronismo dei bit.2". Sincronismo del carattere.3'. Sincronismo del messaggio.

Questo sìncronismo ha il compito di

ottenere che tutti i bit emessi durante

un intervallo di tempo determinatosiano raccoìti nello stesso intervallo. In

questo modo "non si perde" nessun bit

nel viaggio e per fare questo esistono

due alternative che spiegheremo a

seg u ìre:

- Modo sincrono: ogni bit emesso va

accompagnato da un impulso di clock.

Questo segnale di clock è comune sia

per l'emettitore che per ìl ricevitore.

Quest'ultimo ulilizza il fronte o il ìivello

per stabilire il momento di acquistzione

del bit sulla linea dei dat . Per supporta-ro nrrp<tn <inrrnnismg sono necessarie,L VvrJLv

due linee fra emettitore e rìcevitore: la

linea dei dati (DATA) e quella del clock(CLK), così come si presenta graftcamen-

te nella figura.

Flusso di informazioni nel ricevitore MSERX.

Page 48: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

P89

:'...,'1, tril ttt comuiltcoz

îBtT Dl tNlzto

Struttura dei bit che compongono ogni carattere

Superato il sincronismo di ogni bitdobbiamo risolvere la delimitazionefra ogni pacchetto di bit trasferito,ossia, dove inizia e dove finisceognuno dei caratteri che formano il

messaggio. Questo si chiama sin-cronismo di carattere. ll metodopiù comune per implementare il

sincronismo di carattere e rappre-sentato graficamente nella figura,e consiste nell'inrziare ogni caratte-re con un bit denominato di "ini-zio". Dopo arrivano i bit di infor-mazione che confrgurano,l caratte-

Schema d i f u n ziona m entodel sincronlsmo di bit in modo sincrono, ed esempio di trasferimento.

uguale per entrambi. Se per esempio si decide di realizza-

re un trasferimento di 1 .000 bit al secondo (1.000

baude) ogni bit che fornisce il trasmettitore deve rima-nere sulla linea dei dati per 1 millisecondo, che è il tempoche ha a disposizione il

ricevitore per raccoglierlo.Di solito, per motivi di

sicurezza, il ricevitore fa

un campionamento e rac-

coglie il dato a metà del-l'intervallo del tempo,come si vede nella figura.Nel caso particolare dell'e-mettitore e del ricevitoreche stiamo descrivendo in

queste pagine, entrambiutilizzano il sincronismodei bit in modo asincrono,che e orrello imnienatonella norma RS-232.

EMETTITORE RICEVITORE

re, e in seguito, jn modo opzionale, può esserci un bitdi "parità", terminando con uno o piu bit di "stop" o"fermata". Come si può vedere nella figura, davanti a

ognuno dei caratteri c'è un bit di inizio. Seconoo ra

BIT DISTOP

I

tllrI an DrNrzroBIT DI PARIÀ

EMETTITORE RICEVITORE

Nel modo asincrono non esiste segnaledi clock e ognÌ bit rimane stabile sulla linea dei dati per un tempo fisso

norma RS-232, il bit di inizio consiste in

una transizione del livello 1 al livello 0

sulla linea dei dati. Dopo vengono i bitche compongono il carattere, iniziandoda quelli meno significativi (LSB). In base

al dispositivo utilizzato, il carattere puoessere di 5, 6, 7 o B bit. Attualmente il

carattere è quasi sempre di B bit. Il bit diparità è opzionale. Si puo lavorare conparità pari o dispari. Se si utilizza la paritàpari, il livello logico del bit P è tale che lasomma di tutti i bit che valgono 1 nel

Page 49: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

carattere, piu il proprio bit B deve dare un

tolale di 1 che sia pari. La parità dispari fun-ziona al contrario. ll bit S di stop e queìlo

che termina tutti i caratteri. Nella norma RS-

232 questo bit è di liveìlo 1, in questo

modo, quando la linea dei dati torna a O si

--^:-: -1.^ -i +.-++- f ' ,,n nUOvO bit di iniziOLdPil d Lr rc )r Lr d Lro ur u

ner il carattere sl rccessivo. Alcuni sistemr

permettono di utrlizzare 1, 1,5 o 2 bit di

stop. Tutti i bit hanno la stessa durata, per

questo se si lavora a 1 .000 baude ogni bitrimane stabile sulla linea dei dati I ms.

i':'ir'!'-l;i= iir

Quanto tempo impiegheremmo a trasferire ogni carat-

tere lavorando a 1.000 baude e sapendo che ognicarattere e formato da 7 bit e 1,5 bit di stopr

Soluzione: Ogni bit impiega ad essere trasferito 1 ms

lavorando a 1.000 baude. ll carattere ha 7 bit di informa-

zione più uno di inizio, più un altro di parità e 1,5 bit di

stop. In totale'10,5 bit, rl che suppone un tempo di 10,5

ms per trasferire ogni carattere. Nel caso dei dispositivi

commerciali N,4SETX e M5ERX, il formato di ogni caratte-

re e composto da 1 bit di inizio, B bit di informazione e 2

bit di stop. Lavorando a 9.600 baude per trasferire ogni

carattere, si utilizza un tempo approssimato di 1 ms.

', : :'; i, ;l l r i.l - !' r,.j i.ri i-, j l,t il 1,

Ir jì; j',,i, ; i;Serve per garantire l'integrità dell'informazione trasferita.

li totale delle informazioni da trasferire si divide in blocchi,

ognuno dei quali puo avere un numero fisso o variabile di

caratteri. Ogni blocco dispone di un'informazione di

testa, che determina una serie dì parametri: chi invia

l'informazione, a chi e diretta, quanti caratteri ci sono in

ogni blocco, ecc. Nei moduli MSERX e MSETX ogni bloc-

co o trama è di lunghezza fissa e contiene 20 caratteri o

byte, dei quali i primi 4 corrispondono alle ìnformazioni di

testa e i 16 successivi compongono una informazione

utile. I quattro byte di testa hanno il seguente significato:

Ònni hlnrrn ^ !r)ma À rnmnn<fo

da 20 caratteri o byte, dei quali i primi 4 corrispondono all'informaztone di testa

:1 l'

P90

il petò sono volidi solo i 'n' primii:1",--.--*,...,-**

ii Drr |tdiritto del trosmettifore.

Quando tramite l'applicazione dell'utente si invia-

no i caratteri da trasmettere mediante la norma RS-

232, tl trasmettitore lo fa scrivendo in buffer interno, e

quando si completa con 16 byte si procede alla tra-smissione automatica di tutta la trama. Se al posto di

ricevere i '1 6 caratteri si riceve prìma un carattere di

"ritorno a capo" CR = 013, il resto del buffer si riem-

ITIGROGONTR.OLL.ER

##iti.

,1 ',' " "', """f Dr: Indirizzo del ricevilore. Può volere 253, tufii rimongono ii] oll'oscolro, però occetteró l'informozione solo guello il cui i1] i.dirirto coincide con il volore Dr. findirizzo 254 è universole if ".on esso tutti i ricevitori occethono l'informozione. ftf--*-*****{ Chk eyte di Checksum. Si trolto di un byte colcoloto i| -"'-' -t --

;i doll'"metitore medionle uno serie di operozioni logico- i,.,i oritmeiiche con lulti i byte do tuosferire. Ho il compilo di evitore :

li lo corruzione dell'informozione duronie il trosferimento. i-*****"**'-'-i

$ L, indi.o il numero di byte utili dell'informozione. :,li Nel formoto dello figuro può overe un mossímo di I ó corotleri, I

f orr ,tdiritto del trosmettifore. IÉi ***-*--1! Onnr Dopo i quoftro byte di testo seguono quelli utili Ii-1 dell'informozione. Si lrosferisce sempre uno coteno di ló byle, ili e quelli che non si utilizzono t

; si riempiono come corotleri NULL (OO0).

fB!ìÈt::.fr lwi,f í.f xÉ!ri#Frgry,:=:fla1fitrìJsît.ffi rÍnrtffi q+i

(000)

ilsst o-comeNella

r duerrimaatena'atteri

la unTr:m-

1000)rssro-

:omeNella

duelrimaìtenaatteriaun.ram-

NULL

trasmloCRr

piùrortale

neila f

rna ci

l6 car

;econo

. ln en'

-+^dLr

la pr

cal

cara

ila pr. -î+ì LO L

cara

onda

enrr

odice N.-l^ -ll- +ut dild L

lera n oo

ere inno ripotinto n,

isce un

o di 1€

neila se-.^^i^r)o99rw. r

d Lt c

do(n ni

port^^lttcl

una16

SCC(

). ln

l, consroerar -îra++^r^I LOIOLLEIg

Jura sonoame distintr

+.^-I ^.1- -^Lt d) tut t)LC

>n meno dt^t-\ ^ ^^il.rvrq/ E rrcil(

tro messaqc

con coolnrnrodo;

consider;LOIOLLEIg

ra sonore distinl.^-I ^.1- -.I d) tut t)Lt

meno t-\ ^ ^^tlq/ E rrcrl

) me5saq(

no(^^lttcl

ssag

Juram

tr)n

pte

^-ie >l

ne

un

f igr

tra I

si

cor(Hc

altrEsempio della struttura delle due trame, in cui tutti i byte sono espressi in esadectmale.

Él +,;:, i::É frÈ i? ir -4;,,r'lil,jií ij + i.l +.i,i, :;l =li{ . 5i.fli1, rtl'+,,i iill+r.t +r:t' i l i .,,,{ !,rtll!1ta::r::aaa@t:t:*aaa,a*aa,: t,i.,rt]ffi:r;i6ììììrÌllllll\tLaaaaaaaa:aè.:

Page 50: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

hi si srnnone rhe si:no diretti al ricevitore 12 e che

arrivino dall'emettitore 6. Si fa riferimento al byte di

checksum con XX.

;i,''; :,, l; ' ::t. , ti i, t' ,,;,', ,t,'. i 'i !-'l,f t"

' l r,t;, '':,;' ;.; :," ,

Per calcolare il tempo totale che dura un trasferimento,dobbiamo considerare i seguenti tempi parziali:

1". - Tempo di trasferimento fra l'applicazione del-l'utente e l'emettitore MSETX.

5i suppone di lavorare a 9.600 baude e che ognir-:r:ttertr imnipohi npr traSferirSi 1 mS. ll Sistema Utenteinvia al N/SETX il byte che defrnisce I'induizzo del ricevi-

tore (Dr) e quelli dei dati, con un massimo di 16. Totale

17 ms, come si può vedere dalla figura.2o. - Tempo di emissione in R.F. tramite MSETX.

Dopo aver ricevuto il messaggio dall'applicazionedell'utente, MSETX scompone la trama completa di 20byte, dei quali calcola il byte di checksum (Chk), il

numero di caratteri valido (L), e aggiunge il proprio indi-rizzo (Dt). Dato che la velocità massima della R.F. è di

2.000 baude, un carattere impiega 5 ms ad essere tra-

] CONTROLLO

ll tempo di trasferimentofra l'utente e I'emettitore è di 17 ms

smesso, e la trama completa approssimativamente 100 ms.

3'.- Tempo di ricezione del messaggio tramite R.F

ll ricevitore MSERX inizia a ricevere tramite R.F. latrama dei 2O hvte drrrante oli stpssi 2O ms in Cui vienetrasmessa. L'emettitore e il ricevitore devono essere sin-

cronizzali alla stessa frequenza di 2.000 baude.Ricevuta la trama si separa I'informazione dall'intesta-zione e si calcola il checksum

4".- Tempo di trasferimento fra rl ricevitore e l'appli-cazione dell'utente.

All'utente vengono inviati solo i byte utili e il byte di

induizzo del trasmettitore (Dt), in totale '17 byte, che a9.600 baude impieqano 17 ms. ad essere trasferiti.

Iempo di invio di una trama tramite R.F. 100 ms

Tempo in calcoli intermedi 3 ms

coNTROtto

La ilcedone tramite R.F. della trama impiega gli stessi 100 ms

che dura la trasmissione.

ll trasferimento di una trama tra il rtcevitore e l'aaalicazronedell'utente a 9.600 baude dura 17 ms.

ll tempo di emissronedi una trama via R F, è di circa 100 ms

:it : .,r:,i :; ::+t!'.i;, ,,i1, ,: ,:;,-r.1!t.,1;,.;'1Ì ij u ,;:y:;1;,i ')l;'ii':!,'1';:

Í1fl ÍÍ1fr ililffi lffi r.rffi !ffitsà€i;rirrrrrrrrtit!!*ut!tttililill

Page 51: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Invasione di microcontrollercon memoria flash

ll nostro vecchio amico, il PIC 1 6F84, è stato sceìto per

controllare Monty, ed è utilizzato anche ìn molti pro-dotti sviluooati in tutto il mondo.

Ricrrlt: rrn di<nnciti\rn " nirrnla nÒ\/err'ì ntrrn oq-

senziale". Non ha molte risorse, iniziando dalla capa-

cita della sua memoria, passando per i temporizzalo-ri, terminando con lo scarso numero di pin l/O digita-li. Tutto questo spiega l'appellativo di piccolo. Quellodi oovero fa riferimento alle risorse abituali in altri mi-crocontroller. Così ad esempio non ha convertitoriAD. né oorte di comunicazione.

Pero tutto si risolve con il fatto che è "essenziale"

oerche i orocettisti fanno addirittura miracoli con lesue limitate possibilita. Le altre caratteristiche di spic-

co del PlC16FB4 si riferiscono al suo basso costo e al-

la sua semplicita di funzionamento e di programma-zion e.

Non dà problemi e sia il produttore che molte dit-te che lo applicano offrono una enorme quantità di

informazioni e di strumenti per il suo utilizzo. Però,rhe ros'ha di snprialp oresto PlCT Ia srra caratteristi-

ca principale e la memoria di programma di tipo FLA-

SH: questa e la ragione per cui la Arizona Microchipha deciso di potenziare la Iinea di prodotti basata sul-la tecnologia FLASH.

La "f lessibilità" e la parola chiave che definisce questa

tecnologia e le sue principali caratteristiche sono espo-

ste nella tabella.

1". Facilità della cancellazione elettrica dell'informazione contenuta,

tn ione con le memorie EEPROM.

30, Basso costo degli strumenti di sviluppo.

5". 5i facilita la messa a punto del codice nel chip stesso, già installato sopra il

7". 5i può sempre inserire nel prodotto l'ultima versione

del firmware

9". ll cliente finale ouò riscivere il codite.

11". Non esiste una differenza apprezzabile fra il costo

delle memorie FLASH. OTP e R0M.

Nello sforzo per migliorare le specifìche e il com-portamento dei circuiti integrati con questa tecnologia,Microchip ha ottenuto all'inizio del secolo XXI delle ele-

vate prestazioni, passando da una produzione di 0,9

micron ad una di 0,5 micron: così si riduce considere-vnlmonto il fomnn di crritfr rr2 nor rirln d:i 1O m< nor,,vv v, q vr, !,L,v

parola a 1-2 ms per blocco di programma, che a se-

L'umile PlCl 6FB4

si impiega in migliaia di prodotti in tutto il mondo

Page 52: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

, I **f|el

., ::.ttyr, Nîl4OlNl,, . z_s,s voc I z_s,s vocvdd

::::::1':111111',,111L,: .,7gy1tto*rot .:':,:," 12,5-13,5Eterno i toSffsso

conda dei modelli può contenere 8 K parole, 32 o solo

una. In altre parole, nei moderni microcontroller PIC

con memoria FLASH, si puo scegliere fra cancellare escrivere tutta la memoria, un blocco di diverse parole, o

una sola parola. ln questo modo si arriva a gestire pro-grammi fino a 64 K parole in meno di 2 secondi.

Inoltre la capacità di autoprogrammazione di questinrrovi PIC nermottp di realizzare cambi e modifiche delprogramma a distanza Sotto questo aspetto, sia Mi-crochip che diversi costruttori OEM, come Ingeniería de

Microsistemas Programados S.1., dispongono già di

CARATTERISTICA : MEMORIA FLASH i MEMORIA FTASH

: VECCHIA : MIGLIORATA

ROM CONMASCHERA

FtESSIBILITA

Andamento dell'evoluztone della memoria FLASH migliorata,e della memoria ROM con maschera.

chip e di strument, focalizzati a potenziare l'autocari-camento dei programmi, e la messa a punto in temporeale. Nella tabella si mostrano i dati riguardanti il

romnnrhmcnto c lp raratteristiChe rjlevanti delle me-morie FLASH classiche, e quelle migliorate con la pom-pa di carica. Alla fine del 2001 si è arrivati all'equipa-razione delle memorie FLASH migliorate, con le me-morie ROM con maschera, rispetto al rapporto PREZ-

ZOIFLESSIBILITA' così come sì puo vedere graficamen-te nplla f inrrr: ll nrin\/o nro.esso di nrodrrzione dellamemoria FLASH con tecnoìogia a 0,5 micron, non so-

lo riduce il costo dei microcontroller, sino a permette-re l'inleorazione conoiunta della memoria EEPROM dei

dati, ma ha portato le capacita di queste fino a'128zhvio a rirlarrn l^ Àirnensioni delle Celle di infOrma_,\vy r!,

zione a un solo transistor.

Other Fmtures

F, l/o,lcD, PSP

sellPrqrcming, 9-hit

PROGR,A"MMAZIONE 5V Vdd RANGE DI Vdd

PrcróF874

2só13ó8133 40P.441 |

upO,spr | 8 {10-bil) r lt

tolit l'aper l/0,1C0, PSP,

Self'Prqromins, 9-bii20

USART

Mk/sPl

,

PREZZO

Nuovr microcontroller PIC a B bit fabbricati da Microchta con tecnolooia FLASH

Page 53: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

.:,,**r*,,:-,.....urn;.--rirr*r.rt**^*"r.r-,llil

í*'F*,,,,R,'*2*,,,.***tr:rin**rrirr*N'IICROCONTROLLERll successo della memoriei flash

reUna volta provata la tecnologia FLASH con ilPlC16F84, gli utenti hanno richiesto con for-z: mndolli nir r nnionti o nndarn< rnn rr ri nn-,\, ! vvuLl

tor qyillnn:ro nr^notti ^i,' lmh:-inci I r rannLLr rviluVVurL prvVLLLr PIU OIllUl4lW)1. Ld ICVU-

la fondamentaìe nello sviluppo di un proget-

to basato su microcontrollel è che la soluzio-np r^omnlct.r de I sistema sia conter;ta in un

chip. Per questo al PIC 16F84 brsognava au-'-^^+îr^ l^ --^--i+- ^liilrerLdre re LdlJdLrrd ur memofì4, aggiUngefe

dispositivi esterni, includere un convertitoreAD, delle porte di comunicazione, e aumen-

tare il numero delle linee di l/O digitali Conquesta f rnalita Microch o ha messo in vendi-

ta alla fine del milienn o una famiglia di mo-Contenitori ttpici dei nuovi PIC con memona FLASH

2$Lead SOIC 28-Lead SSOP.so" "ss,,

44lead MQFP"PQ,,

reffi44'Lead,PLC

rew40'Lead PDIP

44-Lead TqFP

Principali differenze fra il PlCl6FB4 e i suoi fratelli maggiori

quanto riguarda la memoria FLASH, lo supe-

rano tutti, dato che hanno il doppio di capa-

cita (2 K), il quadruplo (a K) ed esistono al-

cuni modelli che arrivano fino a B K parole dr

14 bit ognuna. Non dobbiamo dimenticarerho nr ro<ti Plf :nn:r+^h^^^^ 1llî ^î'î'hî!l lL vuLrLl tElrVUl lU atta gqtttttto

'nedia e utilizzano lo stesso formato e reper-

torio di istruzioni del PlC16FB4. Nella figurasi possono vedere r contenitori piu utilizzati

in cui sono introdotti questi nuovi PlC.

In un microcontroller, tanto importantequanto la capacita di memorra, e ii numero

TMRO.SBITS :

nrìio-tí- r

TMRI -I óTMR2-8

UIART . IMr'c/sPL-.'---..-- --: --. -

U.5ART , rMr'c/sPr ,

MEMORIA : MEMORIAPROGRAMMA : DEI DATI

MEMORIADEI DATIq{ut."

1

111:128 x 8

128 x 8

,|nr*,

192 x 8

aat-t

3ó8x8

LINEE

t/o

t3

22

22

22

22

PINCONTÉNITORE

_'l:l::"

'':u::10Ptct óF87t

Ptct óF872

-- ,orurrra-

Ptcl6F874

- *n.t.rrti

Ptcl6a877

19lH.,

luilo

'l"''n2kx14

4kx14 ì

4kx14 |

'.. . .... ' . ' . . . . ,:

8kx14 .

--.- -.- .- -t

8kx 14 ,

IT!9M64x 8

:::'64 xB

- ----"-:---- --- --- -- ..---

2kx 14 , 64xB

I'28

40

o;

40

delli dr rricrocontroller con tecnorogia FLA-

SH, ai quali auguriarno un successo maggio-ro di crrrplln ronsenrito con il conosciuto

PIC 16F84 Per chiarire alcune caratteristìche

d questi nuovi PIC presentiamo una tabella,presa dalcatalogo di Microchip Come s, puo

vedere dall'analisi della tabella, il PlC16F84rimrna :ll'rrltimn nncin ,^ ^, rîh+^ . --^--i+.|iltd|c dil urLilru pu)tu rr \_.luorLw o LoPoLrrcn ricnrcn Trr In r:r:ttarictirho niij r:nnro(on-c ll)ul)c. llo lc LoloLLE|r)rLr rE Pru rol.JfJrs)Err-

tative, che rrflettono la differenza tra questo

PIC e i nuovi modelli, le piu importanti sonorîn^r^.^n+î+a nnll- +.ho1l: doll: finrrr: l-):l dPPl c)cl Ld Lc rcilo tcvsilo uEilo r tgut a. va

^,,^c+a trhnllr .i .^^.ondo rhe r fr;tolli m:n-qutr)Ld toucllo )l opPlErruc Lr rq r oLcilr rrrov-ninrr dol Pla 16FR4 h:n^^ mnl+r nir rrnrri+rJ'-' .--, - ,,_ ilru ||rurrc Pru LoPoLrLo

di memoria, molte piu risorse e piu piedini

Esistono versioni da 28 e da 40 pin. Per

CONVERTITORE

A/D iro BrT) íf-T TEMpoRrzzAloRr Lo^l]î. ccp PoRTA

cANAg rvorr sERlALE

MICROCONTROI.I.ER ,

:"'."'-'... ..... ..........:

PlClóF84 i...-. ..'.'......"'-..:

Ptcl óF820

Ptc Iót87r

Prcl61872

PtctóF823

''iii,'iiPtc'tót87ó

I

2

2

TMRO-8TMRI-Ió.Ii!tB?:9TMRO-8

TMRI -I óll!!B?:8,TMRO-8

TMRI -I ó..T.t'n?:8TMRO-8

TMRI.I ó.-rMRz-8TMRO-8

TMR'I-IóIMR2.8

Ptcl6t877TMRO.8TMRI'I óTMR2.8

Dotazione delle risorse austliarte nei nuovi PIC

USART

Ml'?c/sPl

Page 54: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

di lìnee di l/O e la quantità e la potenza delle risorse au-siliarie che realizzano i lavori specificì e scaricano di la-

voro il processore. Ricordiamo le seguenti:'1". Convertitore AD. I convertitori AD dei PIC FLA-

SH sono da 10 bit e a diversi canali.

PWM (modulazione di ampiezza di impulso).Temporizzatore (TMR).

Porte di comunicazione seriali (USART, l2C

e SPI).

5'. Modulo di Campionamento e Comparazione(CCP)

6'. Porta di Comunicazione Parallela (PSP).

ll kit MPLAB-ICD di Microchippermette di lavorare con i PlCl6FB7X sul prTdotto finito

1'. Incorpora un programmatore o scrittore di

PIC 1 6FB7X.

2o. Strumenti per la messa a punto del microcon-troller collocato sopra il circuito di applicazione.

3". Esecuzione in tempo reale con punti di fermata.Lo F<ort rzinnp n:q,,-

"-,5O a pa55o.

5". Funzionamento con range di tensione 3-5,5VDC e con range di frequenza 20-32 MHz.

La possibilità di scrivere un programma nei PIC FLASH

montati sul prodotto finale riduce considerevolmente il

costo del prodotto, diminuisce il tempo di realizzazione,

rende possibile la calibrazione finale del prodotto e abili-ta l'inclusione di codici di identificazione sul prodotto ter-minato. Per poter lavorare con il PlC16FB7X mediante il

sistema dì sviluppo MicroPlC Trainer, il suo costruttore ha

progettato un economico adattatore, denominatoZOCBTX, che si inserisce su uno degli zoccoli e permette

di accoppiare, scrivere e sviluppare progetti con nuovi PlC.

Per lavorare con i PlCl6FBTXsul sistema di sviluppo MicroPlC Trarner, bisognautilizzare lo zoccolo adattatore ZOCBTX, che e mostrato nella fotoqrafta.

2".3".Ao

40

{rffi LINEADEI

ffi .à'$ff"',l"

La porta di <omunicazione parallela e supportdLasolo dai PIC-FLASH da 40 pin.

Nì^rl- +-t.^ll-,.J^lr- fit\eld Lduerd ueld lgura riprodotta nella pagina pre-

cedente in basso, sono riportate le risorse ausiliarie dei

nuovi PlC. La porta di comunicazione parallela e sup-portata solo dai nuovi PIC a 40 piedini, dato che per la

sua implementazione si richiedono 11 inee

di l/O, delle quali B sono destinate a suppor-tare le B linee di trasferimento bidirezionale,e tre per il segnale di controllo (WR#, RD#, eCS#). I PIC FLASH a 40 pin destinano le por-te D e E alle porte parallele. Nella figura so-nn rinnrt:to lp j6pl6lpmant:zinni nli nrrac+1rrv |Vvr 'rrrvrLlllEllLo4lUIll ul l-.lUC)Ld

porta dr comunicazione con i PlC16FB74/7 a

40 pin.

:; '!,: i

it ' !'

Microchip ha tenuto in grande considerazioneir {-++^ ,.Ji ---^'.^-^^are i nuovi plc FLASHil rcLLv ur oLLUr rPovr r(

con potenti strumenti che facilitano lo svilup-no dei nrooetti Per ottenere cio ha com"ner-cializzalo il kit MPLAB-lCD, adattabile all'am-biente MPLAB, che già conosciamo e che uti-lizziamo in questa opera. ll kit è caratterizzafodalle seguenti prestazioni:

'; ti..t

't:

Page 55: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

I quattro moschettieriPIC-FLASH

MrcRocoNno[ERI'lemorio diprogrommo Memorio doti Àfumorio

hroh d0 14 birl MM {bFel tEpRoM {byb}

:* : : l

. .. lFlqi9-71,.. " .,.-.:..-

- ffIfl9. -.iPl0l6l877 l

-9_|f-._,, 3_8ó --8k 38ó

128 22 3 28

128 33 5

256 22 3

256 335

Parallela Slave (PSP), che si conf iguracon le otto linee di l/O della porta E

che srrnnorta le linee hidirezionali deid:fi o lo tre linoo doll: nnrf: D rho

servono per implementare itresegnali di controllo: WR#, RD# e CS#.

[inee

ll1 Porte Piedini

PrclóF873 1924k

49

28

Differenze rilevanti fra i 4 modelli di PlCl6FB7X

Considerata la somiglianza in termini di hardware esoftware che hanno i nuovi modellì di PIC con memoriaFLASH, che potenziano la linea di lavoro del notoPlC16F84, per descriverli abbiamo scelto i quattro che

la mî^^i^.î^-z rlalla :<nott:tivo rnmmorri:li aLUPIUI lU ld llld99luldl l4u uLilL UJVLTLULTvL LwrrllllelLldll e

tecniche. Si tratta dei modelli P1C16873, PlC16FB74,

PlC16FB76 ePlC|6FB77. Due di essi hanno 28 pin e gli

altri due 40. ln ogni modello con la stessa piedinaturane esiste uno con doppia capacità di memoria dell'altro:

40 Come abbiamo gia spiegato, i van-taggi dei PlC16FB7X consistono nonsolo nella maggiore capacità di me-moria, ma anche nella dotazione di

abbondanti risorse ausiliarie che facilitano moltissimo le

applicazioni più esigenti. Un convertitore AD con diver-si canali, tre temporizzatori, porte di comunrcazroneseriali tipo USART, l2C e SPl, porta di comunicazioneparallela, PWN/, moduli di captur e comparazione e sinoa '14 possibili sorgenti di interrupt, sono alcuni degli ele-

menti che sono stati integrati nel chip dei PlC16F87Xe vengono presentati nella tabella seguente, che vuolesottolineare i vantaggi di questi moderni mlcrocon-troller.

la differenza più visibile ricade

nel maggior numero di linee di

l/O che possiedono quelli da

40 pin, dato che dispongonodi cinque porte: A, B, C, D, E.

Quelli da 28 pin hanno solo treporte A, B, C. Nella tabelladella figura si mostrano lecaratteristiche che differenzia-no i quattro modelli. Analiz---^,1^ l- +-l-^ll. ra-^-"-+i,,-LAttuw ta LouEilo LvIrPctoLtvd,qi dodr tro 16,o l: nrinri^.lo Ài{-rr uLu ULL \ | rL ru yr il rLrPo lc u ll-

ferenza f ra i 4 modelli da 2B

e da 40 pin e quella relativaal numero di linee di l/O.

Questo dato puo essere impor-tante in alcune applicazioni chenecessiîano di oeslire moiteperiferiche diverse. Inoltre, i

PlC16FBl4 e 877 dispongonodi un dispositivo extra: la Porta

Line l/0 i ta

coMuNrcazroNE I No USART/SERIALE I MSSP

3ó8 3ó8. .

..-.. - l-ll9birl .. ,.-,-9,{19"19-*--isisii

:-''....- ' '---'t22 33'-"-'- -irsrrii/' --*'-niÀi'T/"

IMSSP I

t)

i.iii'i' g''ii*' -ìì;il ; ;ú,;;i 1

MODEUO : PlCtóF84A PtclóF873 PrcIóF874 PIC|óF87ó pt0l6Í877I

iI

1t11,4O96xl4

_.]01-*.8192x14

1433ó i.. . ..- - ..'.-'.''-'.'.,-'.-]

8ì92x14 :

256 :,

....1?8.. .

t??

,"-9-U-9"ti:1.

si

^.- ìiÀit'

M55P

ccPìNo22IEMPORIZZATORE t.8 bir, i -WDT t-tó bir, 2.gBlT, I-WDT l.tó bir, 2.8Bll I.WDT

''--''''|'|!9."l,!AI,'-tl|r'...'?0."'..'.-?9ICSP (Progrommozionu ,, Si Si

sefrole rn crrcurtll- r'ro'*otu* i8B t8so,2oss 28p,28so 4op:44ttypo,Mpr

SORGENTI DI

,,_ ?:"5i

.19 -l)l

tit,'r 19t1'.*'i4!.11 1À

INIERRUPT

COMUNICAZIONEPARAr-rErA (PSP)

Tabella comparativa del PlCl6FB7X con il PlCl 6FB4A.

Page 56: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Cercando di riassumere le prestazioni che accompa-gnano i quattro nuovi modelli, offrramo una descrizio-

ne di quelle più importanti e il loro funzionamento.

l'. Architettura RISC avanzata, tipo Harvard.

, Tutte le istruzioni si eseguono in un ciclo di istruzione, meno quelle di

salto che ne impiegano due.

5'. Modelli con 4 e 8 K parole da 14 bit per memoria

di codice tipo FLASH.

7". Sino a 256 bvte di memoria dei dati EEPROM,

9". Sino a 14 possibili sorgenti di intenupt,

1 1". Modi di indirizzamento degli operandi immediato,

diretto e indiretto,

13", Codice di protezione programmabile.

l5o. Programmazione della memoria in modo seriale, utilizzando

solo due

l7o. Basso consumo. Meno di 2 mA a 5 VDC e 5 MHz.

risorse ausiliariela rsrranlio arrit-

r^ ^,,î6'^ -il- ri-oonibilita delleil t tludrtu dilo ur)l

nrp<ontt:mn t: <ontlpp+n +rhnlìr rhaprc)sr rLrqrrrv ro rLVuLrlLc LdUclld, Ll lE

nata menre.

Quesra archite'ttura ulilizzala da Microchip neìl'imple-mentazione dei suoi microcontroller da B bit, e caratte-

rizzala dall'indipendenza fra la memoria di codice e

nrroll: doi d:ti

t^^^ ^,,^-+- {il^-^{i- l- --^--i+-..Ji ^^^iLOn qUeSIa TllOSOTlcì ld LdpdLltd ul u9rìl memOfì4,

così come la dimensione dei suoi bus, si adatta allanoro<qit: dol nrnnottn di nnni mndolln rondpndn nnc-

sìbile il lavoro in parallelo delle due memorie: questo si

riflette in modo positivo sul rendimento e sulla produt-

tivita del processore. Neila figura e riportata ìa strutturadei PIC16FB7X con le due memorie indipendenti.

Poiche quella di programma puo arrivare ad una

capacità dìB K parole da 14 bit ognuna, necessita di un

bus di indirizzo da 13 lrnee e di un bus per trasferire al

processore ie istruzioni da 14linee, che e la dimensione

di ogni istruzione.

La memoria dei dati SRAM accetta una capacità

"nassima di 4 banchr da 128 byte ognuno, il che esige

un bus diindirizzi da 9linee, due delle quali sono desti-

nate a selezionare il banco e le 7 restanti a selezionarerrn: dollo 17R nncizrnni Ài nnni h:nrnul lu uLllL I Lv VvJtLtvt ll ul wVl ll Uol llv.

8US DEGU INDIRIZZIDETTE ISTRUZIONI

f,

I bus delle memorte hanno la dimensionerichiesta dalle caratteristtche specifiche di ognuna di esse

Nella figura è rappresentato uno schema semplìfica-

to dell'architettura Harvard deì PIC 16FB7X, dove si puo

vedere che il contatore di programma è composto da

13 hit ner indirizzare le momnr p di rndiro tioo FLASH.rJ v,r vr,

ll contenuto del PC puo essere salvato e recuperato

nello stack che possiede B livelìi.

La memoria dei dati, a secoîda se si impiega l'indi-rizzamenlo diretto o indiretto, ottiene l'indvizzo dell'o-perando tramite l'informazione contenuta nella propria

istruzione o in nrella che risiede risnettivamente nel

registro FSR. La sezione della ALU, legata al registro di

lavoro W e ai registro di stato con i flag, e srmile a quel-

la studiata per il PlC16FB4.| ^ ri.^r.^ i^+^"^^ ^ lo divcrsp npriferiche rhe aCCOm-LC ll)ul)c lllLql llE E rg urvLrJL vLrilLrrrt tL rl

pagnano ogni modello di microcontroller sono gli ele-

BUS DEGLI INDIRIZZIDELLE IsIRUZIONI

1'r i r::Ll ,l

lo. Tre temporizzatori:TMR0 da 8 bit con predivisore da I bit.

TMRI da f6 bit con predivisore,

TMR2 da 8 bit con predivisore e postdivisore.

30, Due moduli di captur e comparazione e di PWM (C€P).

5". UsART.

.''.':l',,:l'.'l'ill','''''..'..,.,:...i:..,l

Page 57: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

:",t ,, ...

menti di differenziazio-ne. lnfine si offre unafinrrr: rhe r:nnrtrqpntalo schema comnleîodelì'architettura internadi un P|C16FB7X a 40pin. Nei modelli con 28pin sono state eliminatelp norte D pd F l: filo-.^{; .,.Ji t-,,^"^,.t^t ^",soild ur rdvoro uer pro-

cessore è identica a

nrrpll.a ctrrdiat,a npr ilvLl

PIC'1 6F84, rinforzata,,^i---^^+^,.J-ll- --^.unrcdmeIre oaila capa-cità di memoria e dal-

l'inclusione di diverseperiferiche e risorsecomplementari.

flffi.^tIJ

--13rcre8 TIVELLI

\8 .\8

8\ 8\'W8-\

mm

GN

ISTRUZIONE

'!4

:=-=

DATI

Architettura Harvard semplificata dei PlCl 6FB7X}ii {:[,1,] l,{a:1'f iJfi;Ji

Nella figura della pagina<r rrroqqiri: À rinnrt:t: l:)u!Lq))rvo q rrPwr (qLq ro

distribuzione e l'asse-nn:zinne dei nipdìni nei

modelli PIC 1 6FB7X.I p nicdrn altrc (on

2B nin manrano dellenortc fl od F In <onrri{6

rinortia mo r rna descri-

zione sommaria dellefunzioni e delle nomen-rlatrrre di oonrno dei-' 'Y'pin dei nuovi PIC-

FLAS H.

Piedini di utilizzogenerale:

- OSC ,1/C LKIN C

OSC2/CLKOUT: servo-nÒ ntrr q,rnnrìrlAro

It,-'

collegamenti del cri-stalìo di orr:rzn inter-no. Nel modo oscillato-re R-C il pin CLKINriceve la freouenza di

lavoroeCLKOUTforni-sre nr resta frpnr renza

divisa per 4.

- Vss e VDD: piedi-

ffi '::::'l1l'l'1i'iffi'osc2,/ctKouf

!.'w

lffirlinrir:ll:r:r|lii€ i

'ffi%ffi,#i,'; j,1',i,::,1:,:,)'),)',:,1:

*u#,

ìÌììì,ri,iiiiiIii,ìÌì,r,;;ìÌì'i,úFg

ilffi

ry

l3ilitÍútgdt*

ffiffiffiffiHÉ#Kg#i

1

rl4

Woscr /cr-KtN

:l

t1ffi.-'

'."......,

ffi

. ':.\'I

ffi\9sm

\8..m:l

''' 'tl '''r. :"3dw

,_:: gi.

%tr8\

ffi

RAO/ANOR,A I /AN IRA2/AN2RA3/AN3/VmrRA4lToCKlRA5/AN4/55#

RAO/ANORA] /ANìRA2/AN2RA3/AN3,rVn+RA4/rocKlRA5/AN4/55#{

.8 .m Rco/iloso/ilcKlB RCì/lrosr/ccP2gù Rc2/ccPr,. uj Rc3/scK/scr

r m Rc4/sDt/sDAi U Rcs/sDO' uJ Rcó/rxlDT',' l!] Rc7lRX/Dr

" El RDo/PsPo

[-.1 RD2/PSP2

' m RD4/PSP4

Er RDs/PsP5

U RDó/PsPórìrÌììììììììììììììììììììì' ". w RD7lpsp7

-=I=+=t ffiArchitettura interna dettaoliata dei PlCl6FB7X a 40 oin

+È+$ trH# E #sS#,ÌflFl'.

Page 58: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

f;fatx

it

l9

Ii

MCLR#/VppITHVlà,,,,,','11,1.1,.,,,,,,,,,,,,,..,,,.

RAo/AN0íi3 ,.;,,,,,a,,,4,4,,,,,4,,.,,4,,,,

RAI/ANl*up',,,,"t,,,,,,,,,,,,,,,,,,,,,,,t

nm7nr.rzru-" $ lll,rrìiliiììì

RA3/AN3/Yn*, -*É,,:i:

RA4/TocKl it r

RA5/AN4/5S# :

v*È

oscr/cLKrN i

osc2/cLKour I

RC0/TIOsO/TrCKr I

RCr/TrOS|/CCP2 iRC2/cCPr i

Rc3/scK/scL I

Piedinatura dei ctrcuiti integrati corispondenti ai PlCl6FB7X.

ni a cui si applca la tensione di alimentazione.

- MCLR#A/PP/THV: Ingresso di Reset/Tensione di

Programmazione /Tensione alta in modo Test.

Piedini della porta A:Supportano le 6linee di l/O digitali, RAO-RAS, mul-tiplexate con quelle corrispondentr ai canali di

ingresso del convertitore AD AN0-AN4, con quelledella tensione positiva e negativa di riferimentoVREF+ e VREF-, con quella di ingresso degli impulsidi clock per il TMR0, chiamata TOCKl, e con quelladi selezione come slave (SS#) per la porta serie sin-crona.

Piedini della porta B:

Supportano le 8lrnee di l/O digitali, RB0-R87, multi-nlpxate ron l,a line: PGN/ di innresso dplla tensionebassa per la programmazione deìla memoria, e dellelinee PGC e PGD per la programmazione seriale(segnale di clock e dei dati).

Piedini della porta C:

Supportano ìe S linee di l/O digitali, RC0-RC7, multi-plexate con l'uscita del TMRl (T1O5O), l'ingresso del

clock TN/R1 (Tl CKl), l'ingresso dell'oscillatore TMR'l(T1OSl), l'ingresso del modulo CCP2, l'ingresso al

CCPI, l'lngresso del clock sincrono (5CK/SCL) dei

modi SPI e 12C.

Innltrp qrnnnrt2no lp linpp di rnoresso dei dati inJuvvvl

modo SPl (SDl) o quelle dei dati in modo l2C (SDA),

l'uscita dei dati in modo 5Pl (SD0), la linea di tra-smissione dell'USART (Tx) e quella del clock sincrono(CK), quella del r cevitore dell'USART (Rx) e la linea

dei dati in modo sincrono (DT).

Piedini della porta D:

Oltre a supportare le B linee di l/O digitali, RD0-RD7,ha mulliplexate sopra queste Inee, queìle di trasferi-mento bidirezionali dei dati della Porta Parallela

Slave (PSP0-PSP7).

Piedini della porta E:A, ,nr+r ^^"+- h - .^r^ tre linee che f UnziOnanO COmevuc)Lú pur Ld rrd )uru

l/O digitali, RE0-RE2, e hanno multiplexate le se-

guenti funzioni: segnali di controllo della portaparallela PSP (RD#, WR# e CS#)

Innltrp noqqono anche funzionare come canali di

ingresso per il convertitore AD nei modelli a 40 pin(AN5, 6 e 7).

MCLR#/VppiTHV

RAo/AN0

RAI /AN I

M2/AN2/Vner-

RA3/AN3/VruH

RA4/ToCKl

RAs/AN4/SS#

RE0/RD#/AN5

RE r /WR#/ANó

RE2/CS#/AN7

Voo

Vss

osc r /cLKrN

osc2/cLKouT

RCo/Tr OSO/Tr CKr

RC r /Tr O5r/CCP2

RC2/CCPI

RC3/5CK/SCr

RDo/P5P0

RDr /PSPr

RBryPGD

RBó/FCC

R85

RB4

RB3/PGM

R82

RBI

RB0/rM

Voo

Vss

RÙ7IPSP7

RDó/PsPó

RD5/PSPs

RD41PSP4

RC7/RX/DT

RCófix/CK

RCs/SDO

RC4/SD|/sDA

RD3lP5P3

RmlPsP2

NBTPGD

RBó/PGC

nB5

RB/T

RB3/PGM

RSz

ÍBl

RBOIINT

Vm

Ys

RC7/RX/DT

RCé[X/CK

RC5/sDO

RC4/SD|/SDA

$e s* e * d* *+ l+ F,iE H F- # *+E + #,,* È F+ H ff 'E S F ".# ig H.

Page 59: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Organ izzazione delle memoriee repertorio delte istruzioni

L'architettura Harvard dei PlCl6FB7X determina l'esi-stenza delle due memorie indipendenti, una dedicata acontenere le istruzioni e l'altra per i dati. Questa carat-teristica migliora notevolmente il rendimento del pro-cessore potendo accedere simultaneamente alle duememorie, di modo che mentre unalocalizza il codice diuna istruzione, nell'altra si legge o si scrive un operan-do o il risultato dj una operazione. Un altro vantaggioinerente alla separazione delle memorie, è collegato allapossibilità dl progettare la capacita e la dimensione deibus per ognuna di queste memorie. La memoria di pro-gramma dei PlC16F87X è ditipo FLASH, il che indica lasua capacita di tollerare fino a circa 1.000 cicli di scrit-tura /cancellazione. Dato che la scrittura e la cancella-zione si realizzano mediante energia elettrica, non è

necessario nmuovere dallo zoccolo il microcontrollerper eseguire queste operazioni; tali caratteristichehanno convinto molti tecnrci ad

ulilizzare d ispositivi con memoriaFl ASH | : r:n:rit: m:,,,Jsstma sup-portata dai quattro modelli di

PlC16F87X che sono stati sele-zionali e di I K n:rnle da 14 bitognuna. La lunghezza delle^-.^l^ ^

l^^-+- -ll- ^pdrore e regala aila otmenStone

del formato del codice delleistruzioni dei PIC della gammamedia. Per poter indirizzare 8 K

posizioni, il Contatore diProgramma, o PC, ha unadimensjone da '13 bit ed e legatoa uno stack LIFO a 8 livelli. ll valo-re del PC si puo scrivere nellostack e, parimenti, il primo livellodello stack ouo essere caricatonel PC. Oueste onerazioni di sal-vataggio e di carica del PC con Iostack si realizzano automatica-mente senza l'intervento del pro-grammatore. Non esistono istru-

IFFF h

l3

zioni che gesriscono lo stack, Ogni volta che si esegueuna istruzione CALL o si produce un interrupt, il valoredel PC si salva automaticamente nello stack. Ogni voltache si esegue una istruzione di ritorno dalla subroutine,RETURN, o una istruzione di ritorno dall'interrupt, RET-

FlE, il valore che si ritrova in cima allo stack si depositanel PC. C'è anche un'istruzione simile a queste ultimedi ritorno, pero con una particolarità, ed e la RETLW

Come si vede nella figura, le 8 K parole da '14 bitognuna che ammette come massimo la memoriaFLASH dei PlC16FB7X, sono divise in 4 pagine da 2 K

l'una Cosr come nel PIC 16tr84, jl vector di Reset e quel-lo di lnterrupt si trovano rispettivamente negli indirizzi0000 e 0004 Hex.

Per memorizzare i dati e gli operandi, i PlC16F87Xdispongono di due zone diverse. Esiste una zona di

MEMORIADrcoDrcE

0004 hoo05 h

r3\

tNDtRtzzl

1'OTFF h

0800 h

OFFF h

r000 h

ITFF h

r800 h

Organizzazione interna e rndtrizzamento della memorra di proqramma FLASH.

Page 60: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

I

P95

REGISTRO DISTATO

Struttura interna del Registro di Stato, i cuibit 6 e 5, RPI e RP), selezionano il banco della RAM dove sonoposizionati gli indirizzi a cui accedere.

memoria dei dati non volat li, di tipo EEPRON/ e un'al-

tra indipendente SRAM volatile. A seconda del modello

d PIC la EEPROM puo arrivare ad una capacìtà di 256byte, che si gestiscono mediante dei registri appositi

che contengono gli indinzzi, il dato e il bìt di controllo.

ll loro funzionamento e la loro gestione sono stati stu-

diati nel PlC16FB4,

e sono identici Peri suoi fratelli mag-giori. Nella zona

della memoria dei

dati di tipo RAM,

sono ubicati i regi-

stri specifici (SFR), i

cui bit controllanoil f unzionamentodelle risorse, idi-spositivi del pro-

cessore e r registri

di utilizzo generale(GPR), dove si scri-

vono i dati che

desidera il pro-grammatore. La

RAM sr organtzza

in banchi da 128

byte ognuno. Ci

sono due modelli

di PIC'l6F87X che

dispongono di 192byte e gli altrì due

arrivano a 368hrito Por colozin-

nare uno oel quar-

Modi di realizzareI'indirizzamento

diretto e indirettonella memoria RAM.

tro possibili banchi dove sì trovano le posizioni a cui

accedere, si utilizzano due bit: RP1 e RP0, che occupa-no le nosizioni 6 e 5 del Ronis,fro di Stato rome si vedeI rv ,L vvJ,4,v vLr | \LYIJLI

nella figura.

',", , i"'':,"', I :' .

La memoria RAM ha due forme di indirizzamento, che

sono chiamate "modo di indirizzamento" e che sono il

modo diretto e il modo indiretto. Nel modo di indiriz-

zamento diretto i bit RP1 e RPO del Registro di Stato

selezionano il banco. Per puntare ad una delle '128 posi-

zioni del banco scelto, sono necessari 7 bit che arrivano

dal codice delle istruzioni dove occupano le sette posi-

zioni meno signìficative. Nell'indirizzamento indiretto laposizione del banco si determina con i sette bit meno

significativi contenuti dal registro FSR, delì'area SFR

INDIRIZZAMENTO INDIRETTOIN DIRIZZAMENTO DI RETTO

STATO

ffiffiììììì ffiX

CODICE OP. ISTRUZIONE

13 ó 0

STATO

.r'SELEZIONEDEL BANCO

FSR

.-27 tNDtRtzzAMENTO'--aLnNTERNo DEL BANco

INDIRIZZAMENTOALnNTERNo orl slNco -

7

SETEZIONEDEL BANCO

BANCOO BANCO I BANCO 2 BANCO 3

Page 61: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

00h

0rh

02h

03h

04h

05h

0óh

07h

08h

09h

0Ah

0Bh

0ch

0Dh

0Eh

0Fh

r0h

ilh

r2h

tJn

ì4h

l5h

róh

r7h

r8h

r9h

rAh

lBh

rch

lDh

rEh

tFh

20h

80h

8rh

82h

óJn

84h

85h

8óh

87h

88h

89h

8Ah

8Bh

8Ch

8Dh

8Eh

8Fh

90h

9rh

92h

93h

94h

95h

9óh

97h

98h

99h

9Ah

9Bh

9Ch

9Dh

9Eh

9Fh

A0h

l00h

r0r h

r02h

t03h

I 04h

| 05h

r0óh

l07h

t08h

r 09h

I oAh

roBh

toch

t0Dh

r 0Eh

I 0th

I l0h

lilhI l2h

I t3h

I t4h

Ir5h

r róh

It7h

I t8h

I l9h

r tAh

ilBh

I tch

IIDh

ilEh

ilFh

| 20h

I óFh

r 70h

| 7th

r 80h

t8th

I 82h

r 83h

r 84h

ì 85h

I 8óh

I 87h

r 88h

r 89h

I 8Ah

I 8Bh

r 8ch

r 8Dh

I 8Eh

r 8Fh

I 90h

r9rh

r 92h

| 93h

I 94h

I 95h

r 9óh

t97h

| 98h

I 99h

r9Ah

I 98h

r 9ch

r gDh

I gEh

| 9Fh

I Aoh

ilm@N@reryffrutr-

il::MEilreltrmG!!ilrc

ffiil::rffi

Bonco 3

reryrurereffiSffi \rììì

ìliì$ltll,llllrllllrltllffis

@Wrem:

ffiffi

Bonco 2

Eth

rercrurerurureretWìS$Willlffffiffill

@reru'ìliiiiliiiliisWffi$Wll

$r$$llllIililiifitffi:re-ilroKllllllltllllllti\iù.wnr

,tlllffiNNlllllllll

$ll$|fillllilllllmNreMltlllllrlílrlllllllill$wffi i

r:iffi ffi N$ììtlilrlliilliIilì

:llllllllllilfii&nx\

.llillllllllltlllllli,tl:llllllliffireffitffi

Bonco I

reffiffitrffiffiwllllllllllllllllirllllrllffi!l,

della RAM. Per trovareil h:nrn in nr rocin rrliil ucr rlv | | 9uE)Lv utLl-

mo modo di induizza-mento, si utilizza il bitmeno significativo del

FSR insieme al bit lRP,

che occrrna anche la

posizione meno signifi-r:tiv: dpl Renistro di

Stato.Entrambi i modi dr

indirizzamento sonosnieoati oraficamentenplla finrrr: Pcr nrral-+^ .;^,,-",J- l- ^li-+"il^.,ro flguarOa ra orslr|0u-zione interna degliindirizzi della RAN/,

com'è abituale nell'ar-chitettura dei micro-controller PlC, le primeposizioni di ogni bancosono destrnate a con-tpnore i rpnistri snorifl-ci ner il controllo delle-'r-' "ri<nr<o dol nrnra<<nro

- ^,,^-+î -.^- -i -Ai--' queSIa area sr cnrama

SFR. Gli ultimi indirizzi,-li ^^^i h-^-^.^^ut ogilr udrìL() 50no

dedicati a contenere i

d:ti di riilizzo ntrnpra-

le che necessitano al

programmatoreQuesta zona si chiamaGPR Come rinorlalonella figura, ci sonomolti renistri snprifici

nelle prime posizioni di

ogni banco.Molti di piu che nel

PIC 1 6F84. Questo è

lnnirn norrhó i nrrnr'

PIC disnnnnnnn di

molte risorse (convertr-

tore AD, CCP, porte di

I thi.aTionp dci raoistri

specifici (SFR) e di utilizzogenerale (GPR) nei

PlCl 6FB7X dei 368 bytedella RAM.

.:

I EFh

:," "

F0h

Bonco O

FFh

Page 62: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

t, t - ,t ,tt'

P 96

PAAA.lrtETRl

f,drdferdrdfdf,dîdièe

Íd,,rràÍÀ

fÀfÉ

MNEftIO.Nlco

oddwfondwfclrfclrwcomfdecfincfiorwfmovfmovwfnoPrlfrrÍsubwfswopf

,Iofiwf4lì::iì.':::,1'j!

bcfbsf

l

btfsc,bú..s.É,,,,1,.

éúgÉind;ì',,

,1.;;,b:::l,tlt\,,,

,lrlli.l:rf;,:d:

OPERAJZIONE

SOMMA W e fANDdiWefCANCETTA;ZTONE di fCANCEI.I.AJZIONE di WCOMPLEMENTO di fDECREMENTO di fINCREMENTO di fORdi WconfMOVIMENÎO difMOVIMENIO di tto fN ES5UNII. OPER'T'ZEINE,i-';$ìRQIAZIONE di f oROfAaOt{È di f ,csonnÀzKfr{jlNlERltCArrtBpdCGoni4EOR ho

ISTRUZIONI CHE GESTISCONO RIGISTRI

CICil FORÀTAIO 14 BIT

000rrr dfllÍftro0 otol dfff fftr

cfiÍdfff fftr

trl dfffffff

ll lllxkkkkkkkkr r I ro0r kkkk kkkk| ,,,,1i 1000 kkkk kkkk

Renlrt.in cli i<fn tzinni

dei PIC dellagamma media, validoper ì Plcl6FB7X

che le ui.ilizza il

PIC'l 6FB4 di cui è

dotato Monty. Vistoche i PlC16FB7X ap-partengono alla gam-

ma media dei PIC a BAi+ -,,^^^r'+î^^ l^urL, )uppur Ldr ru ru

stesso insieme dii<irr rzinni l- nm'À nn<-

<ihilo no<tira rnn lo

stesse istruzioni un

microcontrolloer così

semplice come il

PIC'l6FB4 e altri cosìnnl-anti a rnn mnl+oPv Lr | ,Ll

risorse come i

PlC16F87X? La diffe-renza non sta nelle

istruzioni, ma neiron i ctri <norifiri .l i

controllo dei disposi-tivi. Ognuna dellenuove risorse disponenella zona SFR della

RAM di registri ade-nrr:ti nor nrnnrrm-Y-'mare il proprio com-nnri:montn lnnltro i

piedini dei PIC'1 6FB7Xh:nnn mrlfinloY:tomolte funzioni di

zzzzzzz

fitrk"t t

o000

FTAG

c, Dc, zz

c, Dc, zzz

c, Dc, zz

MTSSA

,, E;' i:,,::.ttlétl;

;.ffi$,trd*,

oddlw:ondhr!orlwmovlwsublwxorlw

collclrwdtgotoreffieretlwreturnsleep

K ANDV:,,:tL,:,,,1p;lR.|àLi

comunicazione, diversì temporizzatori, ecc.) e ognu-na ha bisogno cìi registri programmabili che ne con-trollino il funzionamento. Nella figura esiste unazona di registl nei banchi 1,2 e 3 che è mappata nelr..-^-^ ^ -^li i^..1;.i--, -7n_-7tr t-.iov (inni{ir' .he gli indi_udtrLU u o9il iltutttLLt Iw-/ | | lE^. JtytilrrLo Ll

rizzi di nrro<ti tro h:nrhi rnrri<nnndnnn .nn nrrolli dal

h,anco 0 pseo,rendo rln accesso ad essi e corne se si

realizzasse un accesso al registro corrispondente del

banco 0.

ll lettore conosce e ha utilizzato rnolte volte le 35 istru-

zioni cornspondenti ar PIC della gamma media, dato

l: '. t,

oW I ll00xxkkkkkkkk{k-tt4r' t ll llOx kkkk kkkk

con'ì/il I ll l0l0kkkkkkkkÉ SPECIAII

iubrotrrine 2 t0 okkk kkkk kkkkr 00 0000 0r r0 0r00 #To, #PDdelWATCHDOG

SAtiU a un indirizzo 2 l0 lkkk kkkk kkkkRITORNO dg",.illàtrupt 2 OO 0000 0000 l00lRITORNO rciivcndo un tetterqle in W 2 I I 0lxx kkkk kkkkRIORNO do subroutine 2 00 0000 0000 t000MESSA del microprocessore in riposo I 00 0000 0l I0 001 I #TO, #PD

innresso rtscita clock tr(e dr nrrpsti elpmenti. Nella

figura è riportata una tabella con l'insieme delle istru-zinni doi PIC doll: .ì:mm: mpdi: ll nnrnnÒ rho ooct;<.oi roniq.tr p il nrr rnnn rho nocticro i hit snnn nrroili rho/ L i, y u|./yv L'

nprr-eltnno ,ai nrrovi PIC di onerare al rnenlio delle loropotenzialrta, visto che con le loro istruzioni si possononr^nr:mm:ro ironiqtri o ihit <norifiri doi rani<tri rho

gestiscono le risorse ausiliarie.G'i altri tre gruppi dr istruzioni, che contengono le

istruzioni di salto, le istruzionl che gestiscono operandiimmedrati e le istruzioni specrali e di controllo, hannop"aticamef te lo stesso sign f,cato e la rredesina aprlii-cazione in tutti i modelli di PIC della qamma medra

Page 63: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

resentando questi PIC come i f ra-

telli maggiori del PIC 16F84, è

stato detto che possiedono una

capacità di memoria molto mag-giore, però sono i dispositivi e le

ricnrco rho [\rlirrnrhin h: inrnrnnr:tn:lloro interno quelli che forniscono la vera

f orza.

Anche se in quest'opera non si disponedi spazi sufficienti per descrìverli in detta-glio, vogliamo fornire un'idea generale sul.rlmnort:montn o lo r:n:ritÀ donli olo-

menti piu interessanti che sono incorporatiner PIC 16FB7X.

I nuovi temporizzatori o Timer, i moduli di Capture,Comparazione e Generazione di lmpulsi e di AmpiezzaVariabile, il Convertitore AD, le Porte di Comunicazione'Seriale, sono i disposìtivi di cui faremo una breve anali-si, senza approfondire il discorso sui registri di control-lo, la cui corretta programmazione suppone la gestione

dei medesimi.

Dei tre temporizzatori disponibili nei PIC 16F87X, questo

è l'unico che ha una dimensione di 16 bit e che funzio-ne cnmp rrn TcmnorizZatOre/COntatore. Per oestire 16

bit è necessario concatenare due registri da 8 bit:

nco/rroso/rrcrr B # ncr /rrosr

Questi sono i poteridei PICl6F87X

ffi&a_ IMRì|E

I r=b, --...:-i'

./-\il w E@IE

@

4

4\îliw-."n}:

try mwx: , :,t ttW

USCITA TMR2 A SSP WNW

4\

:ffi;

TMR2IF

,AREsET re

w

,.ilil@

Struttura interna del TMRl con i blocchi principali e i segnali di controllo

TN,4R1 H:TMR1L, che sono incaricati di memorizzarne il

contenuto in ogni istante. Questo valore evolve da

0000 sino a FFFF Hex e ouando oassa nuovamente sul

valore 0000 si attiva il flag TMRl F e se si desidera si puoprovocare una richiesta di interrupt. ll valore presente in

TMR'lH:TMR1L puo essere letto e scritto e gli impulsi di

clock che originano il conteggio ascendente possonoprovenire dall'esterno o dalla frequenza di funziona-mento del microcontroller (Fosd4). ll TMRl può funzio-nare in tre modi:

'l ". Come temporizzatore.2". Come contatore sincrono.3". Come contatore asincrono.

Nlal mnÀn +amnnri77;1gfe il ValOfe COn-

catenato TMR'1H:TMR'lL si incrementa con

ogni ciclo di istruzione (Fosd4). Nel modocontatore l'incremento si puo produrre conifronti disalita di un clock, ilcur ingresso è

applicato alla linea RC0 e RC1 della porta

C, o tramite gli impulsi applicati sulla linea

RC0. Nella figura è riportato il diagrammaa blocchi del TMR1, in cui possiamo vede-re il predrvisore di frequenza

'"1ì

Questo potente PIC dispone anche del tem-porizzalore TMRO, pero dato che il suo

Schema a blocchi del temporizzatore TMR2

Page 64: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

comportamento è simile a quello studiato nel PlC16F84nnn In nrondtrrpmo in ronsiderazione e ci concentreremo| ,v, , ,v v,Ll

sui due aggiunti: il TMRl appena considerato e il TMR2.

Quest'ultìmo è un temporizzalore ascendente a 8hit 2ll'intornn dol nrr:lo cì nrro lonnprp p q66jrroro innl-utL, oil iltLEr rru ugr 9uo,- -,r-- ,-JJ-,- - '',,vqlq' lÌlul-

tre può realizzarc operazioni speciali per la Porta Seriale

Sincrona (SSP) e per i moduli di Capture e

Comparazione.ll segnale di clock del TN/R2 e quello interno Fosd4,

prima di essere applicato passa attraverso un prediviso-

re di f requenza con range 1 :1 , 1 .4 e 1 :16. L'uscita del

TMR2 attraversa un postdivisore di frequenza con range

compresi da 'l:1 a '1:16, passando per '16 valori possibi-

li. Quando il microcontroller entra in modo riposo s

ferma l'oscillatore interno e il TMR2 smette di funzio-nare.

,: : :i'.._,:1, , ,1

I PlC16FB7X dispongono di due moduli CCB che si dif-ferenziano fra loro solo per la nomenclatura, CCPl e

CCP2, visto che il loro funzionamento è praticamente

ug ua le.

nzlccpr ffil

RC2 ABILITATO

COME USCITA

Schema semplifrcatoelel moclt tln Ce P1 ottanrlo funziona rn modo PWM.

Quando funzionano in modo capture una coppia di

registri cattura ilvalore che e presente sulTMR'l alveri-ficarsi di un evento speciale sul piedino RC2/CCP1 per il

modulo CCPl e sul piedino RC'l/T'lOSl/CCP2 per il

modulo CCP2. Gli eventi che possono accadere su que-

sti pìedini sono:

1". Un fronte di salita.

2". Un fronte di discesa.

3". Ogni 4 fronti di salita.

4' Ogni 16 fronti di discesa.

Effettuando il capture si attiva il flag CCPl F per il

modulo CCP'1, e se il bit di abiìitazione è attivato si

puo anche originare una richiesta di interrupt.I ln'intoro<<:nte :nnlir:zinno dol mndn r:n+' rr^ ò lautt il rrqrE))orrLq oPPilLdzlullE uEl lllwuu lqPtulE c lo

misura degli intervalli di tempo esistenti fra gli impulsi-r^^ -i -^^r;- ^ rin del PlcLr rc )r oPPlLorw o url l.

,','1' rl ',',' '

In questo modo lavoro, la coppia di registri CCPRl H-L

compara il suo contenuto, in modo continuo, con il

valore del TN/R1.

Quando coincidono entrambi i valori viene messo a

1 il flag CCPllF, e il piedino RC2/CCP1 che deve essere

configurato come uscita, supporta uno dei seguenti

eventi:

Passa a livello alto.Passa a livelìo basso.

9\lO0

ro*ffi9lo-o

90t0\

98-o

grc70

8\

nzlccprffiE @

*zuccerB @

RC2 ABITITATOCOME USCITA

4\

F\' it '"*i

10

)o

ffiry """A a1'=--=;

4\

Schema generale a blocchi del modulo CCP| in modo capture

ATTIVMIONE SEOUENZIATE IIN CCP2ì

ffi^re

Schema a blocchi del modulo CCPI

quando funtiona in modo comparatrone

mnmro

Page 65: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

3". Non cambia di stato pero si produce un inter-rupt.

Fì;;ii.r{.:! fij"í+ln nrroctn mnrln l:rrr,,,--- ,-"Jro si ottengono impulsi la cui

ampiezza del livello alto è di durata variabile, molto utiliper il controllo dei motori. ll piedino RC2/CCPl è confi-gurato come uscita, e passa dai ìivelli logici0 e 1 a inter-valli variabili di tempo.

Si vuole ottenere un impulso il cui livello alto abbiaun'ampiezza variabile (Duty Cicle), all'interno di unintervallo fisso del periodo dell'impulso.

Per ottenere il cambiamento di stato del piedino, si

utilizza un comparatore che pone a 1 (Set) un flip-flopquando il valore del registro PR2 coincide con la parte

alta del TMR2, momento in cui TMR2 prende il valore00 Hex.

Dopo il flip-flop si resetta, e si pone a 0 quando un

altro comparatore rileva la coincidenza sul valore esi-

stente nel CCPRl H con quello della parte alta del

TMR2. Variando ivalori che si caricano in PR2 e in

CCPRlL si varia l'intervallo di tempo in cui il piedino di

uscitastaa'l ea0.

H [", {.{F # tlÈ,fi l=.l.{É f,q ilÀ {S.+ È-# # 1 i- $-t -, # } -* 3'3};-i È- È:

I PlC16F87X dispongono di un convertitore AD da '10

bit di risoluzione e 5 canali di ingresso nei modellida 2B

pin, e 8 canali in quelli da 40 pin.

Attraverso uno degli ingressi selezionati si applica il

segnale analogico ad un condensatore di cattura e

+

IE a/ BUs TNTERNo DEr DAfli t'

TETTURA

8>.

V scRrrruRA

8\

8\

,Àq\

srNcRoNrSMoDt ctocK

USCITA DEIBIT DEI DATI

INGRESSODEI BIT DEI DATI

p

Struttura base del modulo MSSP

con i registri di lavoro SSPBUF e 55P5R

t l'tt','

ffireVoo

+4-f.:W

reVss

Sl nrzTmz

ffi ner/rno

SlerrTmsS[ us/rNl

S[ us/rt'ts7v"' *

ffi uz7lNz7v"'-

ffi ur/rur

fil uo/ltro

Struttura sempliftcata del collegamento del convertitore AD

mantenimento, successivamente questo valore vieneportaro al convertitore, che utilizzando la tecnica del-l'approssimazione successiva fornisce il risultato digita-lp onr,iv:lpnto <r r '1 0 hil.

La tensione di riferimento puo essere generata con

la tensione interna di alimentazione del PIC oppure con

una esterna introdotta con i pin RA3/AN3I/REF+ e

RA2/AN2A/REF-.

Nella figura è rappresentato uno schema semplifi-r:tn doi rnllor^r:monti del COnveftitOre AD.

tr# 5CTè #E {*# ii€ U g'$ gt&;H,-{{F È\$ fi

F tr ffi.E& *".f, *q.€ ru fl ffi # SÉ Fq

Questo modulo chiamato NiSSP, integrato nei

PlCl6FB7X fornisce un eccellente mezzo di comunica-zinnp rnn nli :ltri mirroconlroller o con le neriferiche

che lavorano in modo seriale. Ha due modi possibilì di

lavoro:

1". SPI (Serial Peripheral lnterface).2" . lzc (lnter-lntegrated C ircuit).

La comunicazione in modo SPl, che utilizza tre linee,

viene usata in modo particolare dalle memorie RAM e

EEPRON/ ll protocollo l2C utilizza solo due linee, ed e

de$ trF# E #trffiF"H@$sp**é€$w$ e ,$,9 ,#,#ff#€#trqqfu,F

Page 66: Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

PIC MAsIER

5555

impiegato soprattutto nella comunicazione fra circuiti

integrati diversi.

Fondamentalmente il modulo N1SSP è basato su due

registri: SSPSR, che e un registro di spostamento che

trasporta l'informazione seriale in parallelo e viceversa,

e il registro SSPBUF, che funziona come buffer del-

l'informazione che si riceve o si trasmette in serie. Nella

trasmissione il byte che si desidera inviare è caricato nel

SSPBUF e automaticamente viene spostato a SSPSR,

dove si sposta bit a bit, portandolo all'esterno al ritmodonli imnrrl<i di rlnrL"-Y" "

ln ricezione i bit entrano al ritmo del clock tramiteun pin del PIC e si spostano nel registro SSPSR sino al

suo riempimento, momento nel quale si trasferisce

l'informazione al SSPBUF

Nel modo SPI si utilizzano tre linee del PIC che fun-ziona come Master nello schema della figura, mentre

nel modo l2C si utilizzano solo due linee per la comu-

nicazione del PIC master con i circuiti integrati che fun-zìonano come slave.

l.1i';"i.if USART supporta la comunicazione seriale sincrona e

asincrona. Puo funzionare come un sistema di comuni-cazione bidirezionale sincrono o full duplex, adattando-si a una moltitudine di dispositivi che trasferiscono

informazroni in questo modo. Inoltre può lavorare nel

modo unidirezionale o half duplex. Riassumendo puo

lavorare in tre modi.

'1" SERIALE ASINCRONO (Full duplex, bidirezionale)

2'. SERIALE SINCRONO-MASTER (Half duplex, unidi-rezionale).

3'. SERIALE SINCRONO-SLAVE (Half duplex, unidire-

ziona le).

Nella figura è riportato lo schema del funzionamen-to dell'USART in modo asincrono e sincrono. Nel

primo, i trasferimenti di informazione si realizzano su

due linee TX e RX; i bit entrano ed escono da queste'r' '^ ri^^^ - ' '^- {-^^uenza controllata internamenteuuc ilr cc o uro rvv

dall'USART.

Nel modo sincrono, la comunicazione si realizza su

due linee, la DT che trasla ibit in entrambi iversi alla

frequenza degli impulsi del clock che escono dalla linea

CK del master.

In entrambi i modi, le linee di comunicazione sono

le due piu signifrcative della porta C: RC6/T)lCK e

RC7lR)7DT.

ffiffisDo

sDl

5CK

Comunicazione seriale in modo SPI

tra un PIC Master e i due dispositivi che funzionano come slave

-==

=Nel modo l2C il Mastercomunica con tutti gli slave tramite due sole linee

TRASMISSIONE

RICEZIONE

MODO SINCRONO PEróF67x

Nel modo asrncrono la comunicazione seriale dell'USART utilizza

le linee TX e RX, mentre nel modo sincrono le llnee DT e CK.

5DA

5Cr

MODO ASINCRONO

',, 't..'! :.,'

Prcìót87x

MASTER SIAVE