Microrobotica Monty Peruzzo Editore - 06 C - Microcontroller

Page 1

l

PD#: Flag di "power-on" Vale 1 quando sr collega l'alrmentazrone VDD o si esegue l'islruzione CLRWDT. St pone a zero quando st esegue 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

',:EIt,.;:;i;i:,:!;:;:1í.:,

iffigfruryirrFììrìì

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 compito 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

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 svegliarlo producendo un cambio di stato logico su alcune delle linee di l/O della porta GPIO. Questi pin risvegliano il PIC apposttamente programmato, generando un 'l Reset nel microprocessore. Se GPWUF vale il Reset è stato provocato da un cambio di stato su uno dei piedini della porta GPIO; se questo bit vale 0, il Reset e stato provocato da altre cause.

GPIO (INDIRIZZO 0ó Hex)

::

,.

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 chiamate 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 configurazione delle linee e per contenere l'informazione digitale da trasferire tramite le linee che lo compongono. :i

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

La selezione

',: : t":;:

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: 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 oscillatore ìnterno da 4 MHz, con il 5% di tolleranza, frequenza che viene calibrata dalla fabbrica. Reinizialrzzando il microcontroller, il registro W si

1'. lmmediato 2". Diretto 3". lndiretto Nel modo ìmmediato l'operando è incluso nel formato della propria istruzione, generalmente occupa gli

MOVLW OSCCAL (lNDlRlzzO 05 Hex)

FF

CODICE DÉL['ISTRUZIONE

OPERANDO

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

(FF)

Nell'istruzione "MOVLW FF", l'operando FF è un letterale, o valore immediato, che è contenuto nell'istruzione sressa.


MOWV

OB

CODICE DE[TISTRUZIONT

0

7 .:

\'

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

INDIRIZZO DATO

,

matrcamente, quando si eseguono le istruzioni TRIS

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

B bit meno significativi dei 12 che compongono il formato. Frequentemente questo valore viene caricato nel registro w Nel l'indirizzamento diretto, l'operando occupa alcune delle posizioni della memoria dei dati RAM che si selezionano con i 5 bit dr indirizzo compresi nella propria 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

zzo

cl e I l' o

N,IOVLW

TRIS

b',001

1

1000',

GPIO

tre linee meno significative di GPIO sono configurate come uscite e le altre tre come ingressi. Se ora vogliamo portare sulle linee di uscita il valore binario GP2 = 1, GP1 = 0 e GP0 = 1, si eseguiranno le seguenti istruzioni:

MOVLW MOVWF

INDIRIZZO DATO

i rì

ingresso o come uscita le linee della porta GPIO; ricordate 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 come ingresso, 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'

Le

INDF

F5R

L' i nd

e

OPTION. ll registro TRIS si ulilizza per configurare come

pe ra n cl o, n

e I l' i n

d i rizza me n

ri<icrlc nci 5 hir mpno <innificalrvi

di

to

in

b',00000'101' GPIO

lnfine, il registro OPTION, anch'esso senza indirizzi assegnati nella RAM, e che si carica con il valore di W eseguendo l'istruzione OPTION, è dedicato principal-

d i retto,

FSR.

ufilizzare i bit 5 e 6 del registro FSR per selezionare banchi stessi, come rappresentato nella figura. Nel caso del modo di indirizzamento indiretto, nello

mente al controllo del temporizzatore TN/R0 e del Watchdog, che si studierà in modo approfondito piu avanti Nella frgura è riportata solo la distribuzione dei

mnemonico dell'istruzione si usa come operando il registro INDF, che non e implementato fisicamente. Nella realtà si utilizzano i 5 bit meno significativi del registro FSR per selezionare l'induizzo dell'operando

hit nli nrrocin ranictrn

i

nella RAM. Se il PIC avesse diversi banchi si utilizzerebbero i bit 5 e 6 di FSR, ma questo non è il caso del 508A, come si può vedere nella figura.

OPTION

Questi due registri non dispongono di induizzi definiti nella zona SFR della memoria RAN/. Si utilizzano auto-

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

;,1:y1 ,1'

,::

;!,;1.1;

l


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

ll PIC'12C5084 ha quattro modi di lavoro, in base al tipo di 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 consumo da 32 KIlz sino a 200 KHz. Ouando si lavora con oscillatori esterni basati su cri-

stalli

di quarzo o

+VDC

risonatori ceramici, ipiedini

GPS/OSC1/CLKIN e GP4/OSC2, supportano i piedini del

quarzo. 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 in modo LP In questo caso, lavorando a 32 KHz, il consumo di corrente e di pochi microampere, invece dei milliamoere necessari oer lavorare in modo XT a 4 MHz. Nel modo di lavoro con l'oscillatore esterno, il generatore degli impulsi di clock puo essere un circuito indipendente, in questo caso si collega al piedino GP5 e la frequenza 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 esterno con porrc TTI e cristallo di qua,zo rn configuratione parallela.

porte TTL e cristalli di quarzo in configurazione parallela e seriale. I valori dei componenti passivi sono forniti da MICROCHIP, nelle specifiche tecniche. Infine nella fiorrra e rinortato lo schema di un oscillatore R-C. La modalità R-C dell'oscillatore è molto semplice ed economica, però non offre eccessiva stabilità nella frequenza.

Generatore esterno con porte TTL e cristallo di quarzo in configurazione seriale.

!,

..,

t. :

,.,:

: t'

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

t',.,.


+Voo

, : i ' Disposizione

di un oscrllatore esrerno

| Con l'obiettivo di ,,;t,.i

',,t"

,,.i:.',',i;;i

pochi piedinr del

di tipo R-C

PIC

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.

','

:'i.; f':i,, ; lasciare lberi la maggior parte

lì PlC12C508A dispone di due temporizzatori da B bit. Uno e di ulilizzo generale e si impiega in tutte le applicazioni che richiedono un controllo preciso del tempo, l'altro e il Watchdog, il cui compito e resettare il microcontro ler quando il programma si ferma in modo imprevisto, e cessa il suo periodico aggiornamento. Entrambì i temporizzatori funzionano come contatorì ascendenti che sì caricano con un determinato valore e

, dei

Dato che i temporizzafori da 8 bit hanno un range di conteggio ridotto, dispongono di un divisore di fre-

12C50BA per la gestione delle peri-

feriche e le funzioni delle risorse interne, l'oscillatore

A

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 fabbrica per oscillare ad una frequenza di 4 MHz. con un 5% di tolleranza, quando è alimentato a 5 VDC, ad una temperatura di 25"C. Per la corretta operatività di questo oscillatore, dobbiamo 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 utilizza 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'induizzo

05

Hex.

ffi IMPUISO DI CONTEGGIO

FLAG DI OVERFLOW

Struttura dei temporizzatort del PlCl 2C50BA

quenza che riduce il numero degli impulsi, aumentando così il conteggio massimo a cui possono arrivare. Questo divisore divide ìa frequenza degli impulsi applicati oer le srrccessive notenze del 2. Nel caso del WDT il range di divisione arriva sino a 128, mentre se si tratta del TMR0 arriva sino a 256.ll controllo dei parame-

tri fondamentali dei temporizzatori e fatto tramite registro OPTION.

, ': ;','t'i:. I F l'rrn ro temnorizzatore di ftilizzo nenerale di ;

r

INDIRIZZO 05 Hex. VATOTE DI

il

O{UBflAZIONE

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

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

cui

dispone il PIC 12C5084, e puo utilizzare il drvisore di frequenza quando si scrive uno 0 nel bit PSA del registro OPTION Quando il PSA vaie 1 il divisore di frequenza 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 impostare il bit TOCS a uno mentre per il secondo caso biso-

gna porre questo bit a zero. Osservate nello schema


Se il

bit

0, si assegna il diviquesto caso f unziosore al TN/R0, in PSA vale

na all'ingresso degli impulsi,

t'ffi:ffiryffimffi \f-À

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 fronte attivo dell'impulso di clock: quando vale 1 è il fronte di discesa, quando

Controllo della frequenza nel TMR0

vele O e nrrello di s,alita TOSC selezio-

na il tipo di generatore di frequenza Quando vale 0

della fìgura il funzionamento della linea TOSC, controìlata dal multiplexer. ll segnale T0SE seleziona il fronte attivo dell'impulso

t

iilizza nor il rnntonnin

l:

f

ronr ronz: intarn:

si

npr nrn-

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

di rlnrk rhc nrodrrrp l'incremento di valore nrrando !,

,v

v,

vu

ulL

Y vs,

,vv

questo proviene da un generatore esterno. Se vale zero srenlic 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 numero definito di impulsi, il valore con cui si deve inizializzare ilTMR0 è ilvaìore massimo FF, meno ilvalore desi-

PREDIVTSORE

TMRO

wDr

ooo

lz2

l:I

ool oro

l:4 l:8

l12

derato piu una unità, dato che l'overflow si produce passando dal valore FF a 00 Hex.

i;i;

PREDfVISORÉ

F52'P5I:F5O

l:4 l:8

oll

l:Ió

too ror

l:32

l:ló

1264

lt32

tto

l:128

t|64

i j'.iii1l

ll suo compito principale è configurare il comportamenreale

to dei temporizzalon. Non occupa un indirizzo

dell'area SFR, esiste un'istruzione speciale che carica in questo registro il valore che contiene il registro W. I bit di 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 impulsi 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.

Tabella che indica

i valori di funzionamento del divisore di frequenza

con gli impulsi di clock prodotti da un generatore esterno 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;

= 1 queste resistenze di polarizzazione vengono disabilitate. Il bìt più significativo di OPTION, GPWU#, ha una funzione particolare, nel repertorio

se GPPU

delle istruzioni dei PIC della gamma base ne esiste una chiamata SLEEB che manda il microcontroller nel modo dì 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-

OPTION

ma "addormentato". :

Struttura interna del registro OPTION

Per "risvegliarsi" da questa situazione e riprendere logico piedini l/O GP0, GPl o GP3. Se GPWU# è a0 dei di pin menzionati sono abilitati a risvegliare il PlC, quan-

il normale lavoro dobbiamo cambiare lo stato

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

i


do su di essi awiene un cambiamento di stato. ll risveglio sr realizza producendo un reset, e se GPUW# disabilita ouesta oossibilita.

='l

si

'tt'

lNDlRlZZl 0ó Hex.

E un contatore ascendente, simile al TMRO, che ha la particolarita di andare in overflow, e al passaggìo dal valore FF al valore 00 Hex genera un reset. ll suo compito è supervisionare il buon funzionamento del pro-

gramma; si utilizza caricando nel WDT un valore iniziale, passando poi all'esecuzione sequenziale delle istruzioni 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 funziona alla sua uscita, come s puo vedere dalla figura. l,.t'1. :-;,q.r, rt

'',

,t::

,',.1'

Struttura del registro GPIO

::

lPlC nani dedicano sei dei loro otto piedini alle linee di l/O multifunzionali, per rendere più alta possibile la connottivit: fr,a lp nerifprirhe e le risorse interne. Queste sei linee si chiamano GP0-GP5 e tutte possono funzionare sia come ingressi sia come uscita, ad eccezione di GP3 che ouo solo funzionare come inores<n Por rnntrnll:ror nrpste linee si tiilizza il renistfO GPIO YvrJLr

all'indvizzo 06 Hex della RAM dei dati, la cui struttura è riportata nella figura. Nello schema della figura vediamo 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-

Schema elettrico

rlal 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 e uno dei bit del registro GPIO. Se nel flip-flop TRIS scriviamo 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 corrispondente del registro GPIO. L'istruzione TRIS GPIO carica il valore memorizzalo in W nel flip-flop TRIS e lo configura come ingresso o r^mors u)LrLq. 1<.it; nu Ad c)gr o<omnin docidor2 Lvr 666fi^"rîr^ I rPrw <a )E <i Jr usjruEro il lvur olE lî lo LVrr

e il resto come ingressi e in portare seguito su GP0 un livello logico alto, sì dovrannn trqpnrriro lp spnrronti istruzioni. linea GP0 come uscita

IMPULSO PER TMRO

ffi PSA

OVERFLOW

WDT

ll divisore di frequenza funziona all'uscita del WDT.

TRIS

GPl0

MOVWF

GPIO

; Configuro

GPO

rome uscita

; Da GPO esce uno 0


It reset e [e istruzioni det PICl2C508A ',j.

.,i,

.:':,':

t'

:..':

:.,.

La reinizializzazione del PIC

ll PlC12C50BA, carente di interrupt, dispone solo del Reset ner reiniziare rA qeflrrenza rhp def ermina il f lusso delle istruzioni del programma. Resettare il microi-- --îpnnArp -^^+-^tt^rorE rrn LUt tLtuiltrt -i^^if )tvil| tLd d))Egr ur I v:lnrp vorvrE nntO rvL a tUtti 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'indirizzo 0000 0000, che è la prima della memoria di pro-

si

:'i,):t;,",

'',

nrrò nrnrinr:ro

noi

seguenti modi: o Collenamento dell'alimentazione. 1

i

STATO

I

bit GPWUE TO# e PD#

determinano la causa che ha provocalo i/ Rese/

gramma.

2'. RESEI PER Reset per offivozione di MCI,R#, lNDlllÍao REGrsrRo coiiió-a,r,riiìro '**';;;È;J"i'di;'ilffo KA|n nrcsrRo DEUAuMENTAZIoNE combio di stoto su GPlo

:*--*d**

,rr'r,:

rNor ì **rr x xxx IMRO xxxx TMRO'l

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

xxxx '::'::r::'uuuu ui ,ùj; 'uuuu xxx x uuuu xxxx:ì lllt: l':',i:,',7]îri:.:i: llll ,Q;':;:i qs u u I xx i,ì ,. 03 i ,SfAfO l.1ù OO I lllu uuuu FSR Illx xxxx ',,:1119.,6;', 04 05 : oscclt i':*,:::aaa oo - uÈ,ù$,-_4, u - oo i

Ol i 02 ; pC rj "'ì1 111

Oó :

GPIO

i t:txx

opagltj Í.Ír I TRIS :, - i:,Ll

xxx*,;;',,'.;;;::;.;;$.;$.$fr1!il,,iÚuuu 1.1,1';lt';;':t:.:;;;,:rtìiìit.$1iffi"! t I I

I I.l tr:,!,,,:,,,r:rlri:,,:ì::rrr''t t qqxi qqqq

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

Abbreviozioni

/

II||

qquu

fcolibrozionel

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 provoca un Reset, il microcontroller esce dal modo riposo.

Per conoscere la causa che ha orovocato il Reset. si utilizzano tre flag del registro di STATO: GPWUF, TO# o P# rhc snnn nresentati nella Nl^llt\cild

I

un

in

figura.

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

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

Overflow del Watchdog

modo normale o in modo riposo.

Reset

+-A^lltductìd

,.J^ll. ucild

f;^,,"^ il9utd

.^^^ )uilu

mostratì i valori che assumono i bit dcl rpnistro di STATO ner le differen-

ti cause di

Reset.

Esistono diverse forme per provocare un Reset, e non tutte le volte i registri di controllo rimangono caricati in modo r-rguale. Nella tabella della figura sono

riportati i valori che assumono registri SFR del PIC '12C508A dopo che si è prodotto un Reset, sia per il collegamento dell'alimentazione che per l'attivazione del piedino 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


ll circuito per rilevare Voo ffiffi

PIN SPX STEEP

MCLR#

M

ltettrolico

det.

cyy.trltlo

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

diodo

Tener come si nro vedere nell.r fiorrra dove e stato

@ Schenl

N/CLR# si puo semplifica-

re elìminando il

w

CAMBIO DI STATO

!1tt'

ffiffi

sostiruito dalla coppia di resistenze R'l e R2. ln ouesto caso il îransistor Q1 si blocca e attiva il

FtIP-FtOP

:,

RESET

t;,

,. . i

attivaziolte del Reset,

Reset portando

a

Iivello

basso il pin MCLR# quando la tensione di alimentazione scende al di sotto

di 0,7 lR1 / (Rl +

R2)1.

tti:, ]

Nello schema elettronico della figura, l'attivazione del Reset interno del processore e provocato in base al valore Q# del flip-flop R-S. Questo dispositivo si ^' '-^r^ )r 'i crtf--.iv: il cró innro(<n Set rho p purc d II L]udruu controllato dall'uscita di una porta OR a 4 ingressi, ognuno dei quali corrisponde ad una delle cause che cpne rano il Respt | 'attivazione del f ronte attivo del Reset è ritardata da un oscillatore DTR e da un contàtoro. e R hit npr :qoettare che si siano stabilizzate sia 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'alimentazione quando la tensione VDD che riceve il PIC scende sotto un valore minimo, e poi recupera. In questa situazione go lvllVElllEllLE aón\/anionto llE

nonor:ro VEllLrurL

il

buco di tensione sul pin

OVERFLOW WDT

rrn ur

Rocot

ll Pa<of <i nrndt

tra at tanr]a

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

p17it:ra m 61p6 lllcl-rl VLr LvlLOlE

funzionamenti nel sistema e nei circuiti assocrati. Questo Master Clear Reset (N/ICLR) si puo programmare in modo che si produca internamente, quando si 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 Reset quando la tensione applicata ad esso scende a valori f ra 2,1 e 1 ,5 VDC. Esistono due circuiti classici per implementare questa funzione di rivelazione dell'abbassamento della tensione sul pin menzionato. Nello schema 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 corrispondenti alla giunzione emettitore-base del transistor Q'1.

ll pin MCLR# genera un Reset quando la tensione scende al di sotto di 0,7

[Rl I (Rl +

R2)]


P70

it. l:,,:..i::..,:t:"i

,'t

';; t,,t.i..':';,t;rtt,t,t

re gli impulsi di clock che sincronizzano l'invio

t

In molte applicazioni e frequente che il PIC non abbia

niente da fare per lunghi periodi di tempo. Questo succede, ad esempio, nelle macchine distributrici, inoltre è comune nei prodotti piccoli, in cui i PIC nani sono idonei, alimentati a pile, come ad esempio nei microrobot. Rrdurre il consumo di energia in queste situazioni e vitale per mantenere il sistema operativo per periodi accettabilr. Se rl sistema sta aspettando che l'utente prema un tasto, bisogna fare in modo che durante questa attesa, a volte molto lunga, il consumo di energia sia minrmo. Per questo si "addormenta" il PlC. Per fare ìn modo che il microcontroller entri in stato di riposo, o di basso consumo, bisogna eseguire l'istruzione SLEEP ln questo modo passa dal consumare alcuni milliampere ad aver bisogno solamente di pochi microampere, cosicche una pila puo durare degli anni.

Quando il PIC entra in stato di riposo, ipiedini di l/O mantengono lo stato precedenle, cessano di eseouirsi le islrLrzioni e se si uliltzza un oscillatore al J" quarzo questo si fermerà, riducendo ulteriormente il

del-

l'informazione seriale.

VSS+: Voo(+SVoc)+,r

Vpp+., SERIALE+| IMPULSI >. Dt ctocK

DATO

Collegamenti base per la programmazione in modo seriale del

PlC.

Nel caso del PlC12C5084. il pin GP0 funziona come ingresso dei dati seriali, il pin GP1 come ingresso del clock di sincronismo, e il pin GP3/MCLR#Vpp per l'inoro<qn _,,lmaztone, r. ---- dpll: ton<inno <nori:lo di nrnnr:r

come indìcato graficamente in figura

consu mo.

Per svegliare il PlC, e farlo uscire dal suo stato di 'congelamento, bisogna produrre una situazione speciale. Dato che il PlC12C508A non dispone di interrlnt ,,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

, ., i 5i puo scrivere nella memoria di programma del PlC12C50BA in modo serrale, sullo stesso circuito delt::'

:'

t:'i.t

l:.,

+Vss

Voo+: :

<4PO

j

<+Pt

GP3/

MC[R#/+,. Vpp

Watchdog.

,

l

!;';:,,,,1:..0!

1.1,,-.,,,'

'

a :lt

:,

A<<oonazínna daì nin rtol PlCl )aqnRA nar ls

<t

ta nraarsmms zinna <arialo

l':nnlir:zinnn :l LvrLt rnctrl urftnro nor ptVnrnI OPPllLO4lUl lC. Arrnc+r1 \<'UC)LU normetta LLvtg UEt pLr | | rL r!L ur

dotto finale di produrre la scheda elettronica con il microprocessore senza doverlo programmare, e realizzare la scrittura del programma solo al momento della vendita, 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 della

lino. per tonsinno l: programmaztone, nrnnr:mm:zinno und rrn: il|ea ,, <nori:lp -r_.',_,* ner ^o' r_, ,a inviare i dati in modo seriale al PIC e un'aìtra per invia-

I r':'f

i t'f'

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 solo 33, da 12 bit ognuna. Questo fa sì che sia molto facile comprendere la programmazione del nano, dato che la


1 '..1 . '

, ".,

I

I

i,

,t,

,

programm a, l'induizzamento si effettua con 9 bit. Nell'istruzione CALL gli 8 bit meno signif cativi del

di ISTRUZIONI DEI PIC DI GA'YIMA OPERAZONI CON BII

movtÀr

clRw

r

suo codice di istruzione sono caricati

: MuowWsf

rpl

:

Clnqellgw. :Concellof

CfRf f súÉùr ,1"4 ; P'F"9f,

,

.loRwF aDDwF

.t,,d,-:

frd.

f,C

iÀovF " Íd

I

"

messo a O. Qualcosa di simile accade con le istruz oni che spostano un

OPERAZIONI CON IMMEDIATI

oR"-fry*\,ye

valore al contatore di programma, nel quaì caso gli 8 bit dell'operando si scrivono negli B bit meno significativi del PC, mettendo a zero il nono. Secondo le stime di MICROCHIP, la dimensione del codice che si crea

il-"r11gelry e z

o: Indirizzo di progrommo; b:

Bit;

k:

per la gamma base e inferiore a quella dei competitori, come si

Lefierole immedioto.

W@ffiF-* Tabella che raccoglie le

mostra nel grafico seguente. Per quanto riguarda la velociià

dr esecuzione, il vantaggio che si ottiene utilizzando i PIC della gamma base è molto più marcato,

33 istruzioni dei PIC della gamma base

maggior parte delle istruzioni sono simili a quelle del PIC

1

reoistro PCI dell'area SFR della ll nono bit del PCL viene

RAN/.

come si puo vedere dal relativo grafico.

6F84.

ii- iÍ: rl;jjiil i t,. j.' ;.. i ; ; t ii lt t Analizzeremo solo il comportamento delle !i..

DIMENSIONE RETAÍIVA DEt CODICE

ì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 caricati nel registro W si caricano sul flip-flop TRIS e configurano la direzione della linea. Un'l fa sì che la linea corrispondente sia ingresso, uno 0 che sia uscita. Se si desidera configurare le sei linee GPx come ingressr, bisogna eseouire le seorrenti istruzioni:

GPiO

STó2

Notionol

5GS

Grafico della dimensione del codice dei PIC base confrontato con quello dei suoi competitort

vrlocttA

TRIS

coP800

RELATTvA Dr

EsEcuztoNE

; 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'istruzione

a cuì bisogna

saltare. Rlcordatevi che siccome il PlCl2C50BA dispone solo di 512 parole nella memoria

"-,':rr

i;-i:,;i,'ii

ll orefirn ovidenzia la differenza di velocità di esecuzione dei PIC base.

r't::il-:iî::ì l:i: ti,y i;i; t:;,,,,,r,t'l,

r'.t


Applicazioni con la Micro'PIC Trainer Plus 1;f:rit ' :;: ,,',:

::

,i',::

',.

In quest'opera sono presentati diversi strumenti di riconosciuto prestigio internazionale, per gestire i PlC. Fra questi notiamo il sistema di sviluppo Micro'PlC Trainer. che oltre a funzionare come uno scrittore di memorie

dispone delle periferiche piu comuni utilizzate nelìe applicazioni: display LCD, display a sette segmenti,

neriferirhe sncrifirhe destinate a risolvere lavori comuni in diverse aree di applicazione. ll lettore puo ottenere informazioni più dettagliate su questi prodotti, nelle pagine del sito Internet del costruttore. In linea di massima la Micro'PlC Trainer Plus mette a disposizione del progetto da implementare risorse quali tastiera, convertitore AD e DA, porte di l/O, ecc. La Micro'PlC lO e specializzafa in applicazioni industriali e la MSx84 nel controllo di motori e sensori.

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

':.,

Aggiunge alle risorse della Micro'PlC Trainer quelle elencate 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

tutti gli elementi di questa scheda è riportata nella fotografia alla pagina seguente, in cui si possono vedere i suoi tre connettori di comunicazioLa disposizione di

,".i*,,,, ;r t:;:r,;;:;; t:; ;;;;';:,;;'P;;: r"t; interruttori, pulsanti, potenziometri, barra di LED, ecc. il che permette di eseguire in tempo reale i programmi in fase di messa a punto e prova. Al Micro'PlC Trainer mancano ancora numerose periferiche tipiche dei progetti con i microcontrollel per questo il produttore ha sviluppato altre schede di espansione che ne forniscono di nuove. Queste schede sì collegano al sistema di sviluppo tramite il connettore PICBUS. La ditta "lngeniería de Microsistemas Prnnr:medn<(l" h: progettato tre schede di espan, ,-y,-, , ,,-

sione che sono commercializzate sotto

il

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.

marchio

MICROSYSTEMS ENGINEERING:

. Mrcro'PlC Trainer Plus 2. Micro'PlC lO 1

3. MSxB4 Oonrrn: di nrrpstp srhpdp

Schema dell'espanstone delle risorse della Micro'PlC Trainer mediante il collegamento alla Micro'PlC Trainer Plus tramite il qr

rnnortà rrn insieme di

connettore PICBUS.


P7l

,.r

.!

i,l

Insieme all'hardware della Micro'PlC Trainer Plus, il costruttore fornisce un disco che contiene tutti ì programmi e le routines che si utilizzano nelle diverse applìcazioni e nei progetti dimostrativi del sistema, per iniziare l'utente alla sua gestione. Questi programmi sono progettati esclusivamente a fini didatticì e sono abbondantemente documentati per facilitarne la comprensione, andando oltre la descrizione tecnica di pura programmazione. ,.,t' Fotografia della schlda Micro'PlC Trailer. |:

"ii

t,'

;

t1

ely

',

,:

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

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

t,.:.

,,

Per fornire al lettore un'idea delle grandr possibilità della Micro'PlC Trainer Plus, studiamo in modo sommario la sezione che controlla il circuito ìntegrato l2C

.t',;

Alcuni PIC hanno integrato sul silicio il bus 12C, e dedicano 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 devono implementare via software, utilizzando le linee RB6 e RB7 per la loro gestione.

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 o scrivendo 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

è stata questa descrìtta la Micro'PlC Trainer Plus, scheda utilizza quattro circuiti rntegrati specializzati per controllare le principali periferiche che supporta: 1": SAA1064: Controller per quattro display a sette segmenti 2'. PCF8591: Convertitore AD e DA 3". PCFB\744: Porta di l/O da 8 linee digitali Come abbiamo potuto vedere quando

4". PCF8583P: Clock/calendario oiù memoria RAM Sia lo schema dei collegamenti sra il funzionamento delle sezioni che formano la scheda sono state spiegate in precedenza; nella figura si mostra la distribuzione delle risorse sulìa superficie della PCB.

I

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

.l

Schema a blocchi del PCFB5B3.

' r

implemenlati sui primi 16 indkizzi della memoria SRAM. Lo schema a blocchi è rappresentato nella figu-^^ "^,,; sopra. ra "ì^^"+-+flpoftara qur

,; , , r I I

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/calendario funziona con formato da 12 o 24 ore, con una base tempi da 50 o da 32.168 Nz. Ha funzione di allarme, di temporizzazione, contatore di eventr e interrupt. La piedinatura, la descrizione


NilICROCONTROLLER Strumenfi di lcrvoro

di ogni pin e le caratteristiche del funzionamento sono riportate nelìe figure seguenti.

{a 00 DoPo

Bf

DI STOP DEL

I

REsEr)

úéuiilmffi

CONT@ìO

COffi@O

0 =

I :MNTENÈ [COME6IO,

cNctu I

S]

DI

0 =

il dispositivo quando si collega la tensione t.

i

di

nzzi della RAM (00 - 07) lunzronano come regrstrl

a

0F si nossono rrtiìizzare come

coNlatoRt tN

PAuuilo

nere dati.

SEGNAI-E DESCRIZIONE

I

OSCI

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

2

OSCO

Uscitodell'oscillorore

AO fngreso eslemo legtli,|$irizí Vss Negotivo dell'oiiàentozhle sDA Linq dei dqti del bus l2C SCt Lineo del clock del bus l2C INT Uscito dell'interrupt in collettore operto Vdd Positivodell'qlimentozione

4 5

6 7

I

;

l

Descrizione funzionale dei piedini del PCFB5B3

SrMBOtO

PARAMETRO

fensione dr consumo dj

ìrilmenùlon!

toi*èoB

r

Tensione di ].in:gresso

Corrente di inle3so Correnle di

vritq

Dissipozione di pobnz€ Porenzo

,

: VpD

MTNIMO

MASSIMO

-O,8

vl

50 -O,8

o

VdJ

UNlTÀ

+7

IDD

mA

VDD+O,8

h

lo Pror

di useifti

Caratteristiche di funzionamento del PCFB583

to

ó

impulsi da contare sono applicati al piedino OSCI, e si possono scrivere, dato che può funzionare come contatore di eventi da 6 digit. Nella figura riprodotta qui sopra è riportata la distribuzione 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 mantengono il loro stato fino a che sirealizza su di essi un'oA' )Lr --''++' ^^'--i^^^ '"^ Se non si usa la funzione di allarrLLurd. pct dztut rc ur possono a 0F essere adibtti a conteme, i registri da 09

registri per il controllo di allarmì, oppure come indirizzi di ulilizzo generale. Mediante il registro di controllo e di stato, si imposta 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 formato BCD. Nel modo contatore di eventi esterni, qli

a

É

<frt tftt tr) a s<<aanazinno

i

N9 DI PIN

r = DAU rcSgONt5

dei bit del registro di controllo e di stato.

di LUtìLtuilu p E 6li ut qfr+n )LqLv, mnn I tErtut rnnirnlln tre i successivi 7 ccntengono parametri della f unzione

oraria. Gli indirizzi da 0B

,

COtrEGA]O

i-Hom I 0:[rcstzrcN:5Eó $ reNO SENAMSCHEMRI

m

I

reoistro sitr rato all'indtrizzo 00, funziona come registro

Piedinatura del PCFB5B3

l

MOrc OW'O A 32,7ó8 Hz 0ì =MorcouRloa 50 Hz l0 = MOD CONIAIORT Dl EVEMI il = MOrc ftsl, 00 =

soecifici di controllo. ll primo

i

=AUHf

wom-

alimentazione. I primi 8 indiPCF8583P PcF8583T

-FffiMMil ._, 0: auwE scoffiafo -tffistówt;uM ]

RftNZPNI CONÌE60

I -MIMORIZAERIIIENE fULIhO VALORE CONIATO

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

zializza

DtvtSoRE

frA

.to

300 50

Mappa dei registri specifici


P72

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 formato BCD è utilizzato anche dal contatore di eventi

CONTATORE DILIE ORE, POSìZIONE 4

A

OO DOPO

II

RESTT

estern

Nello schema della figura sono rappresentati i collegamenti dei due PCFB5B3 e un PCFB570, che contiene 256 byte di memoria RAM. Tutti questi dispositivi sono per il bus 12C. Questitre hanno assegnati glistessi indi-

FORMAIO DEI.I.E ORE 0 = FORIvIATO 24h, fl.

I

flAG AM/PM NON CA ,tSrA

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

rizzi (1010), per cui bisogna differenziarli mediante le linoa n nin rli inÀiriz.amento. così il primo pcFB583

Registro contatore delle ore

.,...

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

'',',

.:'

avrà A0 = 0 e il secondo A0 = 1. ll PCFB570 ha le sue tre linee di indirizzo A0 = A1 = A2 = '1. ll primo dei

,

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 modo contatore di eventi. Nel modo orario si può scegliere il formato 12 o 24 ore, attivando il bit più significativo del registro contatnro

rf

i aro

i.

in .l+. rha À rinnrl:l-n ,,f,-,tdto nall: neild {in' Tr9urd 'r: tn atlo.

-

ll registro che occupa la posizione 05 contiene l'anno e il giorno, il registro 06 il giorno della settimana e il mese Orreste fiorrre mostrano la distribuzione interna d; entramb reO strl nttlvando blt d maschera de

PCFB583 lavora in modo orario con il clock al quarzo

Come esempio di gestione per il Micro'PìC Trainer Plus, il dischetto allegato al kit contiene un file con il programrna CRONO.ASN/, che implementa tutte le funzioni di un cronometro classico, in base al dispositivo PC

F8583.

I I CONTATORE DI ANNI/GIORNI,

MSB

A

0l D0P0

lL

POSIZIONE 5

RESET

ISB

Registro del grorno e dell'anno.

CONTATORE DI GIORNI DEI.I.A

PostztoNt 8 A

0l

DoPo il.

SilIMANA/MESI

RESET

R: resistenzo

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

"t"

Resistro del mese e del oiorno della settimana

a

32.768 Hz, mentre il secondo lavora come contatore di eventi applicato al piedino OSCI.

Schema del collegamento dei vari dispositivi al bus l2C

di pull-up


MICROCONTROTTER Strurnenti per

il progello

con

il

l:"'l 73

PIG

Applicazioni detla Micro'PIC I0 (r) ll grande successo a livello internazionale del sistema di svrluppo Micro'PlC Trainer, ha indotto il suo costruttore a potenziarne l'efficacia, mediante l'ampliamento con nrovc 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 sistema di sviluppo come indica la seguente tabella.

Fotografia della Micro'PIC lO

adattamento a nuovi PlC, ecc., si possono trovare sulle

pagine

di

Internet del costruttore " lngeniería

de

Microsistemas Programados S.1." che sono ubicate alsito www.microcontroladores.com. Nella figura si può vedere la distribuzione di tutte le risorse della Micro'PlC lO. Encoder ottico per il controllo

.:

del senso di roiazione e della velodtà dei motori

Per espandere la Micro'PlC Trainel è stato progettato

un connettore normalizzato chiamato PIC-BUS, €ontrollo di potenza per angolo di accensione dei

che

triaa

Osrillatore

Micro+elè 0mron da 5 VDC

Alimentatore stabilizato

La Micro'PlC lO è adatta a risolvere Ie applicazioni

industriali inerenti al controllo dei motori, controllo di potenza, gestione dei segnalì analogici, generazione di treni d'onda, attivazione di relè. ecc. Una informazione più 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

Accoppiamento mediante cavo piatto fra i connettori PIC-BUS del sistema di sviluaoo Micro'PlC Trainer e la Micro'PlC lO.

S*ra*wepe*$

gss

€*

p*sg*#e *e*

$* tr*€


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,

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

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

applicazioni più rilevanti dell'area industriale, per questo

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'accoppiamento 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-

le tre schede: Micro'PlC Trainer. Micro'PlC Trainer Plus e Micro'PlC lO.

siamo collegare simultaneamente

è 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

di misurare la velocità angolare dell'asse del motore quando questo è accoppiato a un encoder. permette

Come possiamo osservare nella fotografia, per realizzare un semplice encoder, basta ritagliare un disco di materiale 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 strisce radiali nere, o opache ai raggi infrarossi. ll numero RD

m u0 M] w M3 w w RM

R82

RB

M

RB5

&

R87 RCo RCt RC2

M Rg M Rg RD

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

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 impulso ogni giro dell'asse, mentre se ci sono quattro raggi, per ogni giro dell'asse del motore si genereranno quattro impulsi. Nello schema della seguente figura è rrpor-

tato il collegamento del fotoaccoppiatore. che rileva Collegamento tramite i connettori PIC-BUS della Micro'PlC Trainer, la Micro'PlC Trainer Plus e la Micro'PlC IO

i

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


P74

Nello schema a blocchi riportato in figura sono rappresentati ì 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-

ll segnale di controllo EN'1, attiva la coppia dì canaliformata dai driver'l e 2. EN2 attiva idriver3 e4. srmo.

ENI

Schem a del col I eg a m ento

del fotoaccoppiatore per I'encoder del motore.

tNl OUTI

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 eccrtazione, o driver tipo push-puì1, a quattro canali integrati sullo stesso chip 12938 di SGS-THOMSON, le cui caratteristiche piu importanti sono indicate qui sotto.

Schema a blocchi dell'12938.

Le uscite OUTn sono associate ai corrispondenti Corrente di uscita di picco da 2 A per canale

ingressi lNn. ; segnali di uscìta sono amplificati rispetto a quelli di ingresso sia in tensione (fino a + Vss) che in

corrente (fino a

Alimentazione per il carico

,lata dall'alimentazione di controllo

Protezione con 'o le sovratemperature

Nella figura è riporta' rra predinatura del driver 12938 insieme alla sua ro renclatura e descrizione.

. :

i , ' r ,

ENI

tNl

lN4

._

out4

owt

GND

cr.ro

GND

GND

OUT3

OUT2

tN3

lN2

EN2

PIN I 2 3 4 5 6 7 I 9 lo Ir 12 13 t4 t5 ló

v|

IE

El.

tNi OUT

GND GND

cut2 tN2 VDD

ENz

tN3

DESCRlzlONE Abilibzione dei conoli ì e 2 Ingresso del conole ì Uscib del conole ì Mosso dell'olimenmzione Mossq dell'olimentozione Uscito del conole 2 Ingresso del conole 2 Alimenhziore del corico Abilitozione dei conoli 3 e 4

GND GND

Ingresso del conole 3 Uscilo del conole 3 Mosso dell'olìmentozione Mosso dell'olìmeniozione

0uT4

Uscih del conole 4

tN4

Ingresso del conole 4 Alimenbzione o + 5VDC

ouT3

Vcc

Piedinatura dell'12938 e descrizione dei suoi aiedini

.,; t,

5:ffi*:l

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

.

'1A).

Nello schema della figura è riportato il controllo dei due motori DC che girano in un verso unico. Ml si attiva con livello 0 applicato all'ingresso, mentre M2 lo fa applicando un livello '1 all'ingresso B, come si puo verificare nella tabella della verità. Un altro schema mostra

--r--T543

2l

f ::4;"

É_+_

T

T,

Controllo dei due motori DC che qirano in un unico verso.


TNICROCONÍROLtER

verità. Quando il segnale ENABLE riceve un livello 0 da qualsiasi uscita del PlC, il motore si ferma, indipendentemente dallo stato di lN'l e lN2. E proprio attraverso questo ingresso che si puo applica-

VinhAMlBM2 -- r'._..:-.-t1.--.r

H ì L i Rorozione

_

,__j--__L_ i.l'::g-"::-efd-C-!"g!,n:g-'.9 _.

t i X , Motore scollegoto. rotozione libero ; X j Motore L:Livello "O"; H=Livello " 1 "; X=lrrilevonte Tabella della verità per rl controllo dei due

.,

,,1

scollegoto, rotozione libero

j

re un

i

segnale con modulazione di

ampiezza di impulsi (PWM), che permette di regolare la velocità di rotazione del motore in un verso o nell'altro. Un segnale PWM è un'onda quadra, in cui il tempo di permanenza del livello a 1 si puo variare. Tanto maggiore sara

motori DC che girano in un unico verso.

il controllo di entrambi i versi di rotazione del motore, mediante due canali dell' 12938. Se l'rngresso C è a 0 e quello D e a 1, il motore riceve una certa polarità che lo fa girare in un verso. Cambiando i livelli logici degli ingressr C e D, si produce la rotazione in senso contrario. Se entrambi gli ingressi sono allo stesso livello logico, si produce un arresto rapido del motore. Nello schema della figura successiva è riportato il collegamento del motore DC alla scheda Micro'PlC lO.

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

il

motore che girerà più velocemente.

rNl

i j .

rN2

,

-i*"-

Controllo di un motore DC nei due versi di rotazione

Tabella della verità del motore DC della Micro'PlC lO.

segnali lN1 e lN2, provenienti da qualsiasi linea dell'uscita 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ír ll kit della Micro'PlC lO è accompagnato da un completo e chiaro manuale dell'utilizzatore. così come da un dischetto che contiene un insieme di progetti da 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 accedere

I

alle pagine di Internet di "lngenierÍa Microsistemas Programados

Collegamento del driver 12938 e del motore DC della Micro'PlC IO.

#*rwmeae*€

p*r

pr*ge*** **xa *A F**

de

" nel sito Tutti gli esempi S.1.

www.microcondroladores.com. sono 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 molto importanti come il convertitore AD e DA, PWM, comparatori, catturatori di segnale, ecc.


P75

Applicazioni

(il)

detl,a Micro'PIC I0

zata di +5 VDC per la circuiteria elettronica generale, : 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 scheda 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 PICBUS.

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 connettore 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-

mentre il secondo genera 12 VDC che si utilizzano principalmente nell'alimentazione del motore DC. :,t

.t

.

'.: 't,

'

,;

,, i"l

,,'.,t1'

Produce un segnale a onda quadra, la cui frequenza principale 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 firmware del 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 questo 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 ottiene dall'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{128 x/64 x/32 x/16

x/8

xl4 x/2 x ENABTE

Schema dell'alimentatore della Micro'PlC lO

Schema elettrico del generatore di funzione

i


del generatore. Lampeggia quando lavora a frequenze piu basse. Per il resto delle frequenze sembra rimanere acceso in modo permanente. Nella tabella della figura qui sotto sono indicate le distinte frequenze ottenute all'uscita, in funzione dello stato dei microinterruttori di SM/1 la freorenza massima è attorno ai 200 KHz e la minima è di 'l KHz.

, 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, uno misura la luminosità e l'altro la temperatura. Entrambi sono alimentati da una tensione dr rrferimento di 2,5 VDC, come mostra lo schema della figura. Come generatore della tensione di riferimento, è stato utilizzato

LM33622.5

(D4)

National Semiconductor.

di E

basato fondamentalmente su di un diodo zener da 2,5 VDC. Tramite la resistenza di assorbimento R7, si alimenta da +5VDC, ottenendo ai suoi capi 2,5 VDC generando quindi la

tensione di riferimento \/ref chp si nrro annlirerp .^.i sr ue5ruetd, A^.t.J^"ti, -il5e dild ilnea Tabella con le frequenze fornite

dal generatore di funzioni a seconda della posizione dei mrcrointerruttori di SWl

.i

funzione principale di questo circurto è fornire impulsi di elock ai temporizzatori o timer di cui dispongono microcontroller, che realizzano misure di tempo. Così, ad esempio, il TN/lR1 della famiglia PlC16FB7x puo utilizzare come base dei tempi ìl segnale fornito da un oscillatore esterno. In questo modo l'overflow del TMRl si puo ultlizzare per risvegliare un PIC che si trova in stato di riposo. Come mostra la figura e stato scelto un -.,.+^|^ ^,,-.-^ ud r)Loilu .Ji Lr ur Lluor4u ^- 32,769 KHz, poiché è un valore 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 La

i

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 alimenta questo divisore può provenire da 5 o da 2,5 VDC, a seconda della posizione in cui si trova il lumper JP2.ln questo modo sulterminale "Luce" dello schema si ottiene una tensione che varia fra 0 e 5 V oppure, fra 0 e 2,5 f utilizzatore preoccuparsi deve che la tensione che alimenta questo

V. a seconda della luce che incide sull'LDR.

le aoolicazioni orarie.

c5

rtH

Troso

27pF

rl

H

Tr

osr

27 pF

Schema elettrico dell'oscillatore da 32,768 KHz

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


divisore coincida con la tensione

di riferimento a

cui

lavora il convertitore ADC del PlC. In nessun caso la tensione dì riferimento può essere minore della tensione analogrca di ingresso da misurare. ll sensore di temperatura è il modello LM35D (D3), e su uno dei suoi ter-

minali si ottiene una tensione " T"" che è proporzionale alla temperatura esistente. Fornisce una tensione di '10 mV/'C e il margine ditemperatura a cui puo funzionare è compreso fra -55' e 150"C.

Neìla configurazione impiegata nella

ne saturo, e la tensione sul collettore è 0V Tramite il connettore "ZEROCROSS" si ottiene un impulso positivo ogni volta che il segnale alternato arriva a valori intorno allo 0 V come è rappresentato nell'oscillogramma della figura. Questo impulso si puo utilizzare per provocare un interrupt nel PlC. Nella figura si offre un semplrce schema per la regolazione delìa po'tenza alternata

i=Éj

scheda lO il range Micro'PlC dr temperature è compreso tra 2 e 150"C. Quando si alimenta il sensore con 5 VDC per la

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

&móryr | ru'-yr | lr/12le9 p.r. I l0:rs:ll YS.de= 20 V/Dv | 2 V/Dv YAr 50%= -30,4 V | 3,ó3 V NdFé=

Dok= lr/12/99 nne= ì0rs:ll p.r.

di 150'C, rl sensore

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

Mo^imlm

: ta'

Una grande quantità

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 elementari ed è necessario conoscere l'istante ìn cui la corrente alternata passa per lo zero e disporre di un segnale pilota che si attivi quando awiene questo passaggro. ll circuito 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

^5.

ì3

4V

| 4 eó V I oav

.,

x2

di

^^^+^ "-^r-r.i---+^.^ UJ. ILE lOUUll44OLVrg PUI

=

T2 0,0

v

ri",.J.,,".-

",." ",.".-,{

ma del la ri levazione del passaggio dallo zero della tensione àlternalò. Osci I log ra m

di guLJLv nrresto Lqrrrrrrrorq uJ D5 ur SUI )Wt terminale

ponte si ottiene un ìmpulso doppio di 100 Hz, pari ad una frequenza di rete di 50 Hz. Questo segnale siapplica 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-

:

:

i.,

.'

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

-^^li--+-^.,-^ .^ apprLcLo ,=sistivo, come può essere una lamo^ ,,^ ur Lcr,..

pada. Un livello 1, che arriva daì PIC sul terminale "TRIAC" dello schema, attiva iì diodo emettitore dell'optotriac MOC3041 (U7) che provoca l'innesco del triac, facendolo condurre e applicando la tensione alternata 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 in Schema del circuito uttlizzato

per il controllo della corrente alternata

conduzione 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


produce ogni 10 ms. Se l'innesco dell'optotriac si produce 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'innesco si produce a '10 ms dal passaggio dallo zero, abbiamo un ritardo di 'l 80" nell'innesco e il carico non riceve ootenza. In altre parole controllando il ritardo con cui si

Sono perrferiche di uscita molto facili da controllare tramite qualsiasi ìinea di uscita del microcontroller. Basta

un semplice circuito di eccitazione per pilotare la possibile attivazione delle bobine incaricate di aprire o chiudere i contatti, come si vede dalla figura. I relè impiegati nella Mrcro'PlC lO sono due, le loro bobine vengono alimentate con +5 VDC e i loro contatti sono doooi e a due posrzioni (DPDT). Un livello logico 1, applicato ai

il segnale di innesco, prendendo come punto di riferiproduce

mónt^ il qonn:lo di passaggro per lo zero, si controlla la poten-

-,

r

__ +^+_t^ _t-^ -i OVVilLO -^^ti__ al CariCO: zd LULOTC Lr rE )r

ilil I"i+-"r^ ,,-"i-"^ *fa 0 e 10 TLOTVV ^,,À PUV VOr rOrq m< rho rnrricnnnda: ,-, - un angoL

lo di ritardo da 0' a 180', rispettivamente. Nella figura è riportato un oscillogramma che illu-

stra la tensione alternata di innressn e la tensione reale applicata al carico. Si applica al carico solo la metà della potenza di ogni semiciclo. L'angolo di ritardo è di 90", che corrisponde a un'ritardo di 5 ms.

'i

Circuito di eccitazione dei relè

connettori "Relè1/Relè2",

in arrìvo da

qualsìasi

linea di uscita del PlC, fa sì che si attivi il corrispondente relè. ll livello logico O produce un effetto contrario. Questo livello si applica alla base dei transistor Q1/Q2, mediante le resistenze di polarzzaztone R12lR14. Ouesti transistor lavorano in commutazione. Quando stanno conducendo, la loro tensione sul collettore Vce e praticamente zero. ldiodi D6/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+î++^ -^^+-++^ Le u: uuL drre vvJr4rvril. nosizioni vrl llnO dei dUe ^ V9rrr ^^^i LVTTtOLLU LOLLU q rnnielf i ci rrtilizz:

nor :if irrero i I Fl-l niln+2 D7/D9, che monitorizzano lo stato di ogni relè. Il LED illuminato indica che è stato attivato il relè a cui fa

Esempio di rnnesco del triac con ritardo di 90", che corrisponde a un

ij,ll:;

i::i

t,:":

t':,"'ri;

i',;'4

11j,,1'!ii

-1'r1

:.lr

itardo di 5 ms.

ir:t;rr:.-"

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

'''iit,i:; I

.

riferimento. L'altro contatto del rele e a disposrzione dell'aoolicazione dell'utente tramite due morsettiere a tre contatti ognuna. Un relè a riposo mantiene chiuso il contatto Cx-Ax, mentre Cx-Bx rimane anerto Frritando la bobrna del relè si cambia lo r: LlUtr)tl -+-+^ Ul -^^+^iti. ^' '--+i LUI :nertÒ Ltr Ora L^-H^ Cx-Ax llllldllC rimane upLrLv >LdLU LdLLL UId Cx-Bx chiuso.


Appti cazioni con [a scheda di controll,o MSx84 i;i.irt, li;í"i'liií.i:il

,trlli'riri,lí,li*ll

sensori digitalidi ingresso.Questecaratteristichesonoti-

Traiespan-

In precedenza sono stati descritti i sistemi Micro'PlC ner Plus e Micro'PIC lO. composti da schede che dori:nn lp ricÒr<o o lo rrossibilita del sistema di sviluppo

i

Micro'PlC Trainer. Con la scheda di controllo MSx84 il suo costruttore "tngeniería de Microsistemas Programados S.L." ha perseguito un altro obiettivo: offrire all'utilizzalore una scheda autonoma e indipendente che in

I i ,

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

piche in molte applicazioni industriali e la MSxB4 è indicata per quattro tipi di impiego, che si adattano bene alle sue caratteristiche e che sono elencatì nel riquadro. ;1rii ? i É'' iLir ii' |1":" lirii;l;í.lt.l'rii.ii i-iil'niii;'1";4,i1iîl{-i:iii

,l- ,ti

1;7

Net riquadro allegato possiamo notare le specifiche più rmportanti della MSx84.

: ll*:------ti_xii**"*ffiilffi;fri;-=-.,*'.:-.

.-

:

1,

-"*.l

I I i*-;il;;;;;

**

;;;;;i;;;;

rs

vAC;;;;;;'

i

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

i ì

i -,.-.:--*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 ! di sviluppo Micro'PlC Troiner, per reolizore i

Fotografia del microrobot PICBOT-2 basato sulla M5xB4

j

"'".

l' Monipolozione dei sensori di ingresso che permetfono lo sperimentozione con differenti tecniche per lo rilevozione di fronti, eliminozione dell'effetfo rimbolzo, impulso, misuro dello dimensione di un impulso, ecc. misuro dello frequenzo, codenzq fro impulsi ecc. 2" Cmlrollo di motori

DC

-"rro

o punto 'in-circuito', così come lq scritturo del PlC.

'i"i ;

:

,r

ìl ì

Ì

cm ozionomenlo digitole tutio o nimte,

tecniche di PWM, controllo del verso di rotczione. retrocziiane; poiiziilromèrrio,

3" Controllo di motori

lo

étc.

:i

PAP.

4- Microroboticc. Lo MSx84 si odotto perGettomente olle necessito di un microrobot. Può controllore direliomente due motori D€ e sino o 5 sensori che roccolgono ínfomozioni doll'ombiente, ln bose o quesio xhedo il costrutlore ho progeltoio il micuobot commerciole PICBOT-2 che consiste in uno slrutturo di metocriloto che supporlo lo MSx84. due motori DC e vori sensori.

i. ,,.

,,,,. ,,,,..,,.,

Seigrafia del circuito stampata della MSxB4

a.rwffi

ntììììììììììììììììììììììììììììil1Ììlrl

:


Nella figura della pagrna precedente .+.'a^î+^ serigrafia del circuito JLOT TPOLU, .J^,,^ UUVC -i )l buzione di tuttÌ i suoi componenti.

À .;^^"+-+E rl.JUr LOtd lrd ,,^-J^ l- ut)LI ^li-+.i tvEuc tc

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 tensione di '12 VDC, che si stabilizza a 13 VDC grazie al regolatore 7812 (U4) piu la tensione dei diodi D2-D5. SW3 applica 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 elettronico. ll diodo D6 monitorizza questa tensione. falimentatore funziona anche a00licando una tensione di corrente continua derivata da una batteria tramite il connettore J5. Chiudendo SW3 si applica questa tensione a +VBAT e al regolatore 7805, per ottenere +5 VDC.

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

D3

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 insieme ai condensatori C7 e C8, genera la frequenza di funzionamento di 4 Mhz. ll circuito di Reset è formato dal pulsante SW2 e dalla resistenza R11. ll connettore Pic-bus e compatibile 'pin-to-pin' con quello del sistema di sviluppo Micro'PlC Trainer. Tramite esso tutti I segnali del PIC sono a disposizione dell'utente. Questo permettera di collegare e/o aggiungere altri tipi di periferiche tra quelle supportate dalla scheda MSxB4, così come programmare il PIC della MSx84 senza estrarlo dalto zoccoto.

tMou : c2

,

Schema del l' a I i mentatore

,f

I'

I :

'r"l

.t

)

::t

:t

.r

I sensori sono i sensi del sistema per captare lo stato dell'ambiente. Nella sezione "Sensori e Attuatori" ne sono stati descritti molti, e in microrobotica quelli otticì spiccano per la loro precisione, semplicità, efficacia, ridotte dimensroni e prezzo.

m


ll modello CNY70 e il H2'1A sono ipiù popolari. ll primo contiene l'emettitore e il ricevitore ad infrarossi, nella stessa LqvJuru, cansula ed p idpalp npr rilcv:re cambi di tono sulla stessa superficie. La luce emessa dal LED riflessa dall'oggetto viene rrlevata da un fototransistor. ll contenitore a forma di U del H21A ha l'emettitore separato di tre millimetri rispetto al ricevitore, però entrambi sono alla stessa altezza, in modo che il raggio di ìuce emessa colpisca il fototransistor. E l'rdeale per rilevare oooettì che franoonendosi tra l'emettitore e ìl ri-

KC AE

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

rrnrr:nlrn

norn i+r utLo

--.\ o o))ut ---^"F )dt

quindi,

il

+Vcc

a E,

foto-

transrstor non n-

ceverà luce.

Se

coincide con un

riquadro bianco si rifletterà sul ricevitore, cambiando il livello ./

logico della

sua

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

Conten itore e disposizione degli elementi dei sensori CNY70 e H21A

-^ )U_

Schema di collegamento di un sensore ottico ai pin di ingresso del PIC

no utilizzati due sensori CNY70

cevitore, taglìno il raggio di luce, come si vede nella fi,rr I ln'rnnlirrziana inir: Uql dol )Ell)uls <on<nro Il--.1? o nr roll: 14 1l^A L ^, vuLilu 9UId. Ull dPPilLO4rUr rs fLrPllO di implementare un circuito di misura della velocità angolare di rotazione dell'asse del motore, in base a un encoder formato da un disco trasparente con raggi ra.înOSCendO ^^rr- fi^,,.diali vpulr onachi come prLJ(j| nrec^^+-+^ !U ILdLU llElld llgulO. uruil

il numero di raggi si determina il numero di giri che ha dato l'asse. Nella figura si presenta una possibile applicazione del sensore CNY70, che consiste in un nastro

trasportatore con il fondo formato da riquadri neri

e

bianchì. Quando la luce dell'emettitore coincide con un

per conoscere non solo la velocità del nastro trasportatore, ma anche il verso del movimento. Lo schema della figura mostra i collegamenti tipici del sensore ad infrarossi con i pin dr ingresso del PlC. Per poter gestire sino a cinque sensori digitali di ingresso, la MSxB4 dispone di un circuito il cuì schema è

mostrato in figu-

ra e nel quale posstamo veoere t,^--^-;--i^^^ I d))uLtdztut

rro tc f.-

iconnettori dei sensori

:

di ingres-

'; ',

KC AE

Esempio di applicaztone del sensore ottico H21A

Controllo di velocità di un nastro trasportatore con un sensore CNY70

Schema della sezione degli ingressi digitali della MSxB4.


so, imicrointerruttori e le linee del PlC. ll sensore collegato a J4 resta associato alla linea RA4 del PlC. Questa linea funziona come ingresso degli impulsi TOCKI del temporizzatore TMR0, il quale quando funziona in modo contatore di eventi, può contare il numero di impulsi ricevuti da questo ingresso, permettendo misure di frequenza, dimensione di impulsi, intervalli fra impulsi, ecc jl i: rrl,i+

i

ii

ir I i_ il r.l r!'ria * l. :_i,] i.: i;.1 i,,1 i.ll'f.: ì; Uno dei principali impieghi a cui è destinata la MSxB4 e quello del controllo di due motori DC o uno PAP A questo scopo utiìizza il driver L2938, il cui funzionamento e le applicazioni al controllo di motori DC e stato 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 applica al segnale lNl e, mediante l'inverter U'lF, al segnale lN2 dell'1293B. Questo segnale pilota le uscite OUTl e OUT2 che controllano il motore M'1. La stessa spiegazione vale anche per la linea RA'l del PlC, che pilota OUT3 e OUT4 per il motore M2. Ì+

,J^--;^ rrorrE uo

-^^ti-^-^ -l dPPrlLdlc dr drrver 12938, in rno-

1

le

do che sr attivino

MoroREpAp

oo----l" ,^.

;*?(ry ;:ijffi..;:;i:r t, struttore, riportate nella tabella della

1.[\ À tvDJ

fi-

J

gura.Permaggiori ; r.,..,,,,.,.,.-,...,.",,.".....,.,,.,,.,..,,.,,..,,,",...,.,,",".,.,,,..,,:;

informazioni tecniche sulla MSxg4, consigliamo di consurtar le ,, n:nino rha il rncf

r-y,,

schema di collegamento di un

yo:o,:".'!P

untn;ota.11.

"rr rttnro

h: ma<<n e r{ic -,-postzione nel sito nternet www. m icrocontroladores. com. I

:

;: ;; : o' ;; i;, u; u',,,;; n

di un motore

PAP

a quattro fili con la MS B

,.'',,..:

Schema della sezione di controllo dei motori della MSxB4

SENSO ORARIO

Per quanto riguarda il controllo dei motori PAB es-

si possono avere 4 o 6 cavi, a seconda se sono bipolari 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 cavi corrispondono agli estremi delle due bobine, e gli altri 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 scheda MSxB4. La bobina L2 si collega ai morsetti segnati come M2, e la bobina L1 a quelli M'1. Tramite le linee RA3 e RA2 del PlC, si ottengono le combinazioni bi-

ii::

,t':

nA3 RA2 RAl llltl+-+ illl0lr-i llOO3+-+ tlf04++

RAO

RA3 RAi! RAr lllOf+-+ llOO2.++ tlllg3+-+-; ill!14-++-,.

RAO

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

WBffi'E'ffi ri*sffiffi SENSO ANTIORANTO

Ì'-"-'.'

-':

PASO Ml+{A}

Àlt{B} M2+(C}

llr2-(D}

-

'--:"

Tabella che indica i valori btnari che devono assumere le linee della porta il senso di rotazione adeguato.

A del

;

PlC, per ottenere

ii:i n!r: 'tt t ttt':':l rrlìrÌììììììììììììììììììììììrililr1ii:ililiririì..

'::

,.....4;;;;nì;ìì;;;;l;a;a:.:iaa.,:...:......),..)....,....)...)))t:\N1


Display a cristalti

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

ldisplay a cristalli liquidi LCD, sono iterminali di visualizzazione più utilizzati neglì strumenti basati su mtcrocontroller; il loro compito è presentare informazioni, valori o qualsiasi altro tipo di dato. Uno dei primi prodotti in cui sono stati utilizzafi gli LCD su larga scala sono state le calcolatrici digitali, come quella mostrata nella figura.

no, perciò maggiore è l'illuminazione ambientale, più elevato è il contrasto dell'informazione presentata. Un tipico settore di applìcazione dei display LCD è la strumentazione. La maggioranza degli strumenti di misura utilizza un LCD per visualrzzare i dati. È il caso del multimetro, che si puo considerare lo strumento più comune nei laboratori di elettronica, e di cui riportramo una fotografia nella figura.

i-rffi

Le calcolatrici sono state

il primo prodotto a impiegare

i display

LCD su

larga scala

ll display LCD consiste in un condensatore planare formato da due placche metalliche, una delle quali e talmente sottile da risultare trasparente. Fra queste

ll tester è attualmente uno degli strumenti che piit utilizza visualrzzatori LCD

Nei multimetri digitali, è molto frequente l'utilizzo di display LCD a tre digit e mezzo, come quello che si ve-

de in figura.

placche si trova un dielettrrco isolante, che è un cnstatlo liquido in fase nematica. Quando non si applica tensione fra le placche il cristallo rimane trasparente, ma e sufficiente applicare una piccola tensione, in mooo cne si generi un piccolo assorbimento di corrente, per pro-

durre una variazione nelia riflessione e nella rifrazione della luce, tale da rendere opaco il cristalio. Una delle principali disfunzioni a cui sono soggetti i diodi LED, si riscontra quando c'è molta luce, perche questi si distinuguono meno. specialmente se la luminosità dell'ambiente è grande. Invece nei display LCD succede l'opposto, utilizzano la luce ma non la qenera-

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

., lr


Oltre agli strumenti di misura e le calcoìatrici, esistono molti dispositivi che utilizzano gli LCD, fra cui ricordiamo i telefoni fissi e mobili, le agende elettroniche, le macchine fotografiche. i distrìbutori automaticì, i pannelli di comando dei veicoli, ecc. Come esempio di una semplice applicazione, presentiamo nella fotografia sottostante un termometro, che dispone di un sensore di temperatura esterno, collegato tramite un cavo di una certa lunghezza, che permette dì misurare la temperatura all'interno di un frigorifero, fuori dalla casa, fuori dalla macchina, nell'acqua, ecc. ln questo termometro si ufilizza un display a tre dirha he drra filo di niof,in1, g 6hg ait c mozzo tino SP52c g llls44v, ttvv Jt JLJ' 9lt

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, utilizzato per supportare lo sviluppo completo dei pro-

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

tl sistema di sviluppo Micro'PlC Trainer utilizza un display LCD come principale terminale di visualizzazione

getti basati sui microcontroller PlC, utilizza come terminale principale un dispìay LCD da due linee con 16 caratteri ognuna, come si vede nella fotografia della figura. l"]

9:5il

ÉiE,i:.i

L.:

lj +: l"F, {. FJ ti:,i:i

I 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'

Scheda del termometro che supporta il disPlaY LCD

:- . _.\6o -

,

*T,

Inoltre possono, o meno, avere l'opzione di una lampada di retro-illuminazione, cìoè illuminazione da dietro, che migliora notevolmente il contrasto dei caratteri in ambienti poco illuminati.


t'"""-"I

Fotooyfya.1,,r,

lr?

da z

ly1ee

per 16 caytteri

Per rendere l'idea, abbiamo scelto di descrivere un LCD tipico, modello C-1602, da 2 linee per '16 caratteri, la cui fotografia è riportata qui sopra. Le misure dell'LCD selezionato sono approssimativamente 100 x 42 mm, e la dimensione del display di visualizzazione B0 x 20 mm. | 16 terminali di collegamento del modulo LCD corrispondono ai segnali di controllo e ditrasferimento dei

dati, in accordo con l'assegnazione delle funzioni ^^r+ĂŽ+a ^^llLO rq rEilO PWr

ri-

Vss

Massa dell'alimentazione

;

+-l^.^llLdUCild.

Nella figura della pagina successiva troviamo lo schema di connessione dei segnali esterni ai terminali dell'LCD. Fondamentalmente si dividono in segnali

fl ;$il:r.ione,

di controllo, di dari e di retro-iilu-

Terminoli di collegomento

:

Vo

Contrasto del cristallo liquido. Generalmente si collega a un potenziometro che applica una tensione da 0 a +5 V

i

5

RAI/

Segnale di lettura o scrittura R/W = Q, 561i11rr13'

7-14

D0-Di

RM = 1, lettura

Bus dei dati bidirezionale

Dimensioni dell'LCD e del displav di visualizzazione.

t:j

,l

dell'LCD.


MICROCONTROLLER CcrroHeristiche dei display tCD

L'insieme dei caralterì che si possono z

vedere

R vtt 3 voo =

LCD

display

figura. ln essa le posi-

zioni indicate

I

DATI

nel

è riportato nella come

CGRAN/ (n) corrispon-

DO-DZ

dono a uno degli VO

B

--"-++^"i ^^--iL.;li grapossr0ilr cararrer

RS

f

R/W

ici da 5 x 7 puntt che

nossono esserP lihera-

mente definiti dall'utente. Questi caratteri si definiscono introducendo nei successi-

E

vì indirizzi della schema

di

interconnessione dei,"gruti

a'li

ur)'*u,o ,ro

CGRAN/ dei byte con determinati parametri

binari. La CGRAM è una memoria da 64 byte, di cui se ne utilìzzano B nor do{inira 116 1-,l62ffpro E J x7 e 16 se si tratta di un urrLuruL(clq vqt ugtililrL caraltere 5 x 10. g&&. xa&&.

E AN:SB *EXKr E Antrn x&xx& ingSn ffigxes E &NIEE K&KMX ffiK'X&& SAgFI ' rlsFt wK'xwffi XSKgX gw&xK . nt*EE WXKg& wxw€K st#at &&xms &g&Kg EEHgC SKXWK X&WKK tnrÍnt gxgsg 6&mgx ,r:lrril&l&K&W &X&K& Kgxffiw .

tEm56 En*66 AET*g gEffiMM

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

gffiKKT

X&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ì sovrapposti, ognuno dei quall corrisponde a una delle linee.

lnsieme di caratteri ASCII del modulo LCD


Ì: í

.

,.-

'

Funzionamento

dei display

LCD

Come abbiamo gia commentato in precedenza, il display LCD è un visualizzatore di caratteri, sra di testo che grafici, molto potente e flessibile, che si puo pilotare facilmente tramite un microcontroller inserito all'interno del prodotto. Nella fotografia qui sotto si mostra la parte posteriore dell'LCD, in cui si può apprezzare

sus

ort

otorout

DATI

BUs DI coNTROLLO

1E,Rs,R/w-)

la

sua struttura elettronica.

Schema dei collegamenti del modulo LCD

'

'

''

1 . '

:'

,

: .

:

:

Per pilotare un display LCD tramite un PlC, si utilizzano

'l linee di l/O digitali del microcontroller Le otto linee della porta B (RBO-RB7) servono per supportare i trasferimenti bidirezionali di informazioni 1

tramite il bus dei dati dell'LCD (DB0-DB7). Le linee di controllo dell'LCD (RS, RA//# ed E) si pilotano con le linee RAO, RA1 e RA2 della porta A rispettivamente, come si puo vedere nello schema seguente.

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

Nella descrizione dell'architettura del modulo LCD,

le linee dei

collegamento esterno

si dividono

nei

seguenti gruppi:

Linee dei dati: BDO

-

BD7

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

Linee di retro.illuminazionel BL+ e BL- {lngressi per I'alimentazione

per Ia lampada di retro-illuminazione)

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

La tensione di alimentazione dell'LCD coincide con quella del PlC, e se si desidera variare il contrasto dei caratteri che sono visualizzati, si ulilizza un potenziometro da 1O K con cui si applica una tensione variabile all'ingresso, V0, che regola il contrasto del display.

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

tt |

,t i.t.t..1

!.,.t.

|.:,

it

tt

,i.,

t,i,

t


".

i:i ri; ;r ir ir lri ;" i'ri {i i.;

I il:

i

ir.l

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

ì

ll f' fl i. r ;i. í fi 5 l.

Nella comunicazione del PIC con il display LCD si possono inviare comandi da eseguìre o caratterì da visualizzare 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 istruzione o un comando all'LCD, puo realizzare operazioni

il

moìto interessanti, come cancellare tutto R5

*3!9Ì9rrffi

R/w#i i

i

t

display,

muovere il cursore a una determinata posrzione, indirizzare una delle matrici, ecc. ll PIC colloca il codice dell'istruzione 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'istruzione 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.

ii i1 J 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. iì

r I4O n5

' 450ns

BUS DEI DATI

r

codice islruzione

I r il È'i i;i ilt i i-i

Cro nog

ramma d i u n' oPerazi one

I

L

i, 1'í'i

d-1:

Tra i comandi più importanti troviamo quelli di can-

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

gramenti,

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

i;r

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 definire 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

i

memorizzano negli tndirizzi successivi della memorta CGRAM. In seguito sono descritte le principali istruzionr utilizzate con il display LCD tl

:

r40:

450ns

n5

BUS DEI DATI coroilere ASC|I

i-

i

i:.j

i: il i- i. r:1.r"i { : i'+ xr i; ri

i ij

:=:

Ì: {,;

Cancella tutti i caratteri del video e colloca nella prima posizione della prima linea.

il

cursore

lnoltre pone il bit di controllo l/D = 1 per defauìt, il che significa che con ogni carattere il cursore tncreCronog di

ra m

ma d i u n' operazone

::ittu::,|i

u'

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

5

,ri

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

menta la sua posizione. lmpiega 1,64 microsecondi ad essere eseguito, sup-


ponendo che funzioni

a 4 Mhz, e il suo codice

è:

Mrrove il crrrsore e snosla il disnlav spnza rambiare 0

0

0

0

0

0

0

0

0

I

Colloca il cursore nella posizione di inizio, prima posizione della prima linea, e forza il d splay a visualizzare da quel punto. li contenuto dei dati nella DDRAM non varia e l'indirizzo della visualizzazione si pone a zero. lmpiega 1,64 microsecondi ad essere eseguito e il suo codice è:

0

0

0

,.':,. i. . ;' ,,',;

0

0

0

0

0

1

x

i';',;.r t.t.,t:.,ti.

, : :.,;'1,',. : )rit:';:":'::i.

:':

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

,

,

I

0

U

it

r

OOSICR/LXX

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 è:

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 controllo S = 0. Se S = 1, la visualizzazione si sposta ogni volta che si scrive un dato. lmpiega 40 microsecondi ad essere eseguito e il suo

codice

0

Se l/D

0

0

0

't

Dt

N

X

x

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

!-l quare - ^-.{i.^ ^,,-l^ -i parirre oar a sr i, Inrzrera a memoflzzare i hvfo rhp

è:

0

0

0

0

0

0

definiscono i caratteri grafici. Eseguendo questo comando tutti i dati che si scrlvono e si leggono successivamente, lo faranno da questo indirìzzo della CGRAM. lmoieqa 40 microsecondi e ii suo codice è:

0rliDs

= 1 si incrementa il cursore, in caso contrario

ciò non accade. 0

0

0

0

lNDrRtzzo DI CGRAM

Attiva o disattiva il display (D) e il cursore (C), stabilendo se questo deve lampeggiare (B) o no. lmprega 40 microsecondi ad essere eseguito e il suo

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

;,

I caratteri che si visualizzano sono stati precedentemente scritti nella memoria DDRAM per poi passare al

codice è:

video. Questa istruzione stabilisce I'indirizzo della 0

0

0

0

0

0

I

n

r

DDRAM da cui sono memorizzati i dati. f indirizzo della B

prima linea corrisponde a 80 fino a 8F Hex e quello

..


r3rmmcrzione di un IGD

della seconda da CO a CF Hex Si o<onr to n LO mirrncpcondi e il suo codice e

La sequenra di iriz,o

e

a segJente. 't

t..

CANCEU.AZ|ONE DEL

DTSPLAY

,

ms

ll segnolotore BUSY si montiene oltivo o 1 duronte i 15 0

0

O

dello sequenzo di

INDIRIZZO

.

inizio.

DI CGRAM

2". STUAONE Dft

l

MODO

5i sceqlie per defoult lo

: :

dimensione

.

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

lVentre il mod:lo LCD esegue istruzion,, e occupato e non si deve inviare un'altra istruzione. ll flag BUSY (BF) inrlir: il jvrLu

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

3'.

,

VIDEO

CONTROLLO ON/OFF DEt

t,

Per de{oult si sceglie il disploy OFF (D=0}, cursore e senzo lompeggiomento del cursore

quando vale 0 4". SEIEZIONE Dl

OFf

{B=0}.

(€=0)

. :

-

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

FUNZ|ONI

.

,l

Si sceglie per defoult l'incremento del cursore

0 r

ll/D=ll,

modo normole e non spostomento del disploy (S=0). coDtcE ASCil

5". SELEZIONE DEILA PRIMA POSIZIONE DEttA

DDRAM

l

O BWE DEFINITO

DALTJUTENTI

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

lnn nroslo rom,andn si scrivono nella DDRAM i caratteri da visualizzare e sl ouò anche scrivere nella CGRAN/ ibyte definiti dall'utente. ll suo codrce è.

1

1

re

rea)tzzala dall'utente via software, È molto importante che la prima istruzione che si invia produca una Iertporizzat ore di 15 rrs pe" poter reaqonrrpnz: romn]pt,a litzsro v,,u rrn,.r JLYUL

.i^ n.lio

d routines in assembJer MPASN/ che forniscono un'idea dpll: spr-rnlirit: cli np(.tione dei

Dpsrri'ri,amo

CoDICE ASCtI

O BYTE

ur)Proy LL v.

DEFINIÎO DALI]UTENTE

tCD

E

Rouîine che genero un impulso C

an at ro<tn rnm:ndn

si leggono i codicr ASCII scritti

neilaDDRAMoibyte neIIa CGRAVI,

stio lovorondo od uno frequenzo di 4 Mhz. bsf

tCD_E

RA,2

BF

bcl

INDIRZZO DI CGRAM

,'Attivo

E

;Atendi t microsecondo

nop 0

di I microsecondo tromite

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

RA.2

:Discttivo

E

rèlurn LCD_REG

ll modulo LCD esegue automaticamente una

sequenza

interna di inizìo al momento in cui viene a00licata la tensione di a imenta,zione, se si compiono iseguent, requisit.

Queslo routine deposito il codice di istruzione presente nel registro

W del

PIC

LCD-REG

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

sullo porlo

B. Attende che

eseguo luhimo oRerolio.ne e

il disploy ICD

91yro flimqull

di

ottilofone

!i !,

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

.


NTRO

R

Contro[[er

di LCD (r) Il display LCD è ìa periferica piu interessante di SLAVE

rrri disnoni:mo ner visualizzare

informazionr nei nrodotti e nei sistemt basati sui microcontroller. ll suo ridotto costo, la sua flessibilità nella presentazione di messaggi e di grafica, le sue piccole dimensioni e il fatto di essere pro-

:,::::* rll..

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 progetti La scheda di controllo rende trasparente il controllo interno del display LCD, Tramite una

ronnia di colle^- rilr ruL/ si rr LvilLgd ld ur linee Lvvpru

--r-^!-.r )Ll ICUC Ul

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

-^^+.^rlo lLlUl LUl

con qualsiasi sistema capace di comunicare tramite una RS-232, come ad esempio un PC, un terminale divideotastiera, un microcontroller, ecc Questi dispositivi funzìonano come maestri (Master), rispetto alla scheda di controllo che funziona come schiava (Slave). Lo schema

nitn nrinrin,alè di intprrlretare le istrUzioni Che riCeve dal master via RS-232. La decodificazione di queste istruzioni si trasforma in segnali di controllo, che si applicano al dìsplay per produrre i differenti effetti di visualizzazione programmati attraverso il master.

il Ài.^l:', Ioi uqr hlnrrhi ulvLLl ll rho Lr rE no<ti<rnp6 uEt rnllon:monti LvilE9Or r rgr rLr doi 9E)Lr)!vr ru ll ul)Ploy

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

In generale si possono classificare in due

grandi

gruppi: 1

+

2

-r

Controller on-line, Controller programmabili con memoria.

ll controller on-line si oilota in modo oermanente tramite il master. Riceve ed esegue sequenzìalmente le istruzioni del master, che puo essere un PC o un sistema con microcontroller. Le istruzionì di visualizzazione sono inviate nel momento opportuno, in funzione degli awenimenti deì mondo esterno che influenzano il prodotto che incorpora il display LCD. Per esempio, in una macchina distributrice di prodotti, ogni volta che sì

ll display LCD è diventato uno dei terminali pitt utilizzati per visualizzare informazronr

introduce una moneta si mostra il valore della medesima e il montante totale del credito disponibile. ll controìler on-line e progettato per mostrare messaggi nel momento in cui si producono gli eventi corrispondenti.


memoria EEPROM in cui sono scritte le istruzioni di visualizzazione. Queste istruzioni si ese-

COMANDI

guono al reinizializzarsi del srstema, cio significa che questi

modelli possono eseguire

ISTRUZIONI

in

modo indipendente le istruzioni

c i mcssanni rho in nrecedenza

sono stati scritti nella

loro memoria. Questa caratteristica li

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

rende molto adatti ai sistemi automatici, come succede nei r:rtalli

nr

rhhliri+eri

:l:::,:

COMANDI

Per avvicinare i lettorr alla realtà commerciale, descriveremo il modello LCD-CON1, di tipo online, e l' LCD-CON2 di tipo programmabile con memoria che possiamo vedere alla pagina

seguente.

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

: " t

ln questo caso il programma di istruzione di visualizzazione è contenuto nella memoria del master, come si fin' tinn nrralli nrnVEUq nall: llEllC ll9UlO. LOlLrv LrVv di ut rontrnllor Lvt tLtvilLt/ ',aÀa 'r. l'rltr1-1 r,'r-,,,, grammabili con memoria, oltre a disporre delle stesse

funzioni dei controller on-line, disponqono

di

una

',

l':'

'" :l '.l:'

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. 3 + lVicrocontroller

PIC

16C73.

',

4 -)

Interfaccia LCD

Connettore a sinoola fila '-'"'v

r . . ; : r

Oer

ì;

LLr.

5 -r

Clock/calendario in

6 -r

Memoria

7 -r B -) 9 + 10 -r

Connettore RS232.

+

Segnale digitale di

pro-

,,

Batteria. Pulsante di Reset.

Microinterruttore

0l COnîlgUrazlone. 'l

1

ingresso. Ext. Input (J4)

I

di

gramma

:.

Scheda controller LCD-CON2, programmabile con memoria

.

(SlL)

tempo reale.

i

:: | :

'l

12 + Interfaccia LCD 2. Connettore a doppia fila (DlL) per LCD.


ìu

:l

Pa4

CARATTERISTICHE TECNICH E DEI CONTROTTER "LC D-CON" *""

Affi;i;;;

Schedr di {ormcro normolizzato dq IOO x 75 mm.

.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. u

vAcnrc,

.""

.-"

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

Qeotko modi di hvoro configurcbili con microinierrufiori:

tresl,

visuolizzozione. esecuzione.

:i

on-line, progrommozicne ed

. i.

$rú;é;;vùile.*;";il;;iiú;lili':ifi;r"r6s.;ìi;Jil;ii,tó;É'Èi'i;iil"l^;-ilÈi*;i;;ffirÈ"il rliguro il Sistemo Integroto di Svíluppo che permetfe uno intertoccio semplíce do utilizzore per l'utente. i: "tili,,*""fi"ffiÉ"tà.-""-""1,1 "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 dispone di un circuito di raddrizzamento (D'l), filtraggio (C 1C2), e stabilizzazione (U7)" ll potenziometro di contrasto è evidenziato con il numero 2 nello schema.

ll PlC16C73 è incaricato di realizzare i due comoiti vitali del controller:

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 funzionamento

interno dell'LCD. ll connettore a fila singola da 16 pin (SlL), è segnato con il numero 4 nello schema, e serve per supportare i moduli LCD che hanno questo formato. Nella figura sono assegnate le funzioni ai diversi piedini. Per alcuni tipi di moduli LCD, è necessario un connettore a doppia fila per la loro inserzione. Questo connettore è indicato con il numero 12 nello schema, e , nella fioura è rioortato il suo .-h^'-.i dudLLd -^|-++- dr -h^rc )r -; r-^À^l r\JUcr>Lr rcr rd Lr

, li deìle case WINTEK, NORII TAKE e SHARP. .i

,:';..i 1,

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

E basato sul

dispositivo Phiìips, che contiene un clock/calendario a tempo reale, alimentato tramite le batterie di Ni/Cd. ll rhin o r-nntrnllet6 l6 gp PCFB5B3 (U1)

i

cristallo di quarzo da 32.768 Khz e inoltre dispone di una memoria SRAM da 256 byte, che essendo alimentata con la

:

batteria si comporta da memo-

I ;

,,...a

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

di

ria non volatile, e in cui scrivono

i

si

differenti parametri


INIERfACCIA tCD

I

PIN

DtSCR|TtONE

SEGNATE

GND

I 2

Connessione o mosso dell'olimentozione Connessione positivo di +5V di olimentozione Tensione voriobile per lo regolozione del controsto del disploy Segnole di controllo dei registri interni dell'LCD Segnole di controllo per lelturo e scritturo interno dell'LCD Segnole per I'obilitozione inlerno dell'LCD

Vcc

3

Vao.l R5

4 5

R/w

6 7

E

lineo bidirezionole dei doti n" I lineo bidirezionole dei doti n" 2 Lineo bidirezionole dei doti n" 3 Lineo bidirezionole dei doti n" 4 Lineo bidirezionole dei doti n" 5 Lineo bidirezionole dei doti n' ó lineo bidirezionole dei doti n" 7 Lineo bidirezionole dei doti n" 8 Afimentqzione 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)

DO

I

DI

9

D2 D3 D4 D5 Dó D7

lo

tl

t2 r3 14

l5

L+

L-

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

che si utilizzano

nella

scneoa.

INTERFACCIA tCD 2

J3;

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

ta da tre circuiti 24C65 (U2, U3 e U4) che sono memorie EEPROM da B

con il numero 'l 1 nello schema, permette la gestione di un massimo di otto segnali digital, che opportunamente gestiti, permettono di selezionare visualizzazìoni preprogrammate: a seconda dei segnali che sono attivati, si esegue una routine di visualizzazione memorizzala nella EEPRON/. ll flusso di controllo del programma è governato r-^l; ^++^ )E9llqll !i i^nresqo -^^^-ri ul rhe rL fornisrono rvr rilJLvrrv 255 COm_ lllvrEJJV Lr uo9ll wLLU binazioni diverse di salto. ll connettore J4 ha 10 terminali, dei quali il numero 2 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-

Kbyte, con cui si ottiene

gramma per

,.,'

t',':"

','"t.'::

''

La scheda LCD-CON2 è

programmabile,

e

dispone di una memori: npr qrrivere le iqlrrl-

ffii

zioni che riceve

dal master, per por eseguìrle in modo autonomo e

indipendente. È forma-

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

Connettore a doppia fila dt terminali per supportare alcuni modelli di display LCD

la capacità totale di 24 Kbyte. ,'"1..

|

:, i

,

i

i"

i,,

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

ll ronnpftnrp l5 sr rnnofta

ruttori che selezionano il baude-rate nella comunicazione seriale, e i modi di lavoro, così come riportato nella tabella della figura. In ultimo il connettore J4, segnato

i

nq

il rapido riconoscimento dei segnali di

resso.

i

i,

la

SWI-I ' SWI-2

Modo di lovoro

SWl-3 SWI-4

Boude

'--'-J

oFF i orr i - on-line ] ---"*' --,-9*tt,..: "*9F-*i"--_-"_?J"qo, i i comunicazione RS232 e utiliz- i:r '********j-"-'--*"-ì OFF ON Progrommozione (solo con |-CD-CON2) ] . i 1 .. oti-.,i. -"9!t * .|^.*..+e. oo. . j.'t pin 3 corrisponza tre linee. ll j de al segnale di ricezione (Rx) I .---91!.-...i-.9i,1.,-.1-- F-'-::-s:-l."..1-"*1,::!e-.:,er,!-c--9;S9,\?),. ...".......i o-1.-: 9N i- I??99,,..:i ON ON Tesi il pin 2 a quello di trasmissione (Tx), e il 5 di J5 è la massa. Con il numero '10 si fa riferiMicrointerruttori SW1 per la configurazione della scheda di controllo. mento a quattro microinter-

- qù"-l*srii, -ip.il

l;+++

+:+f

ij',,É,i

t:"1:u+.ir:ii,i'i;ti!"1i;"

+iì+,

i:; r;::

J,ri,ir

if {1fr Íf :rlr*.rir!*slil|ìffi:rNNÌrrrlrì*;l

i


Controller di

Confezionare i programmi necessari per fare in modo che l'utente risolva facilmente i suoi compiti, e che le istruzioni da utilizzare siano semplici e intuitive, e importante tanto quanto progettare dispositivi fisici che adattano il display LCD al master, tramite il quale si stabiliscono i messaggi da visualizzare. La scheda di controllo riceve le istruzioni dal master, le interpreta e le o<onrro in fr rnzinno ,- rJet programma memoflzzato sul 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 interpretare. Pero quando l'utente edita il programma di visualizzazione sopra il PC, utilizza un repertorio di .istruzioni più pratico e facile da comprendere, con l'obbiettivo di ottimizzare rapidamente lo sfruttamento del display LCD. Questa filosofia di lavoro è mostrata nella figura. PIC

1

COMANDI PER LCD

RS232

'

|

pER LA SCHEDA Dt

,

CONTROLLO

'sfRuztoNt

,,

,rr.ri, o,n

inL,"

,i, ,rru lur=nr";";sotrro ;";to;tte

(il)

LCD

i

adatto al PIC della scheda di controllo e le invia a quest'ultima tramite una RS-323. Le istruzioni che utilizza l'utente non sono uguali a quelle che interpreta la scheda di controllo. L'ideale e che l'utente sia una persona

con poca specializzazione tecnica, utilizzi

istruzjoni

intuitive per creare i messaggi e disponga di una interfaccia grafica amichevole. Queste istruzioni sono definite di alto livello e la CPU del master le traduce nel codi-

ce delle istruzioni che sara interpretato dal PIC 16C73 della scheda di controllo e riceve il nome di "basso livello", molto piu vicino alla macchina e molto meno comp

ren s ib ile.

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

: : ).i:

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

L'interprete dei comandi, ubicato nel PlC16C73, ammette un insieme di istruzioni con le quali si accede a tutte le possibilità di visualizzazione del display LCD.

Tutte queste istruzioni rispondono alla stessa sintassi. lniziano con un carattere ASCII a cui fanno seguito uno

o più byte esadecimali, in funzione di operandi. Infine tutte le istruzioni terminano con il codice 0x0D Hex (Ritorno a capo). Dopo aver completato l'esecuzione delle istruzioni rlcevute, la scheda di controllo ritrasmette al master un codice di riconoscimento ACK del valore di 0x06 Hex. Alcune istruzioni, inoltre, restituiscono al master i parametri richiesti. ll master non invia altre istruzioni alla scheda di controllo fino a che questa non invia il riconoscimento della precedente. In seguito descriveremo alcune istruzioni di basso livello in cui sono esrrosti seguenti campi: CODICE: Raooresenta il carattere ASCII che definisce l'istruzione. SINTASSI: Indica la sintassi dell'istruzione OPERANDI: Esprime i possibili operandi. ESEMPIO: Semplice esempio di applicazione delle i

aaila cpu

del 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 interpretare un repertorio di istruzioni che converte in segnali di governo per il modulo di LCD finale. La CPU raccoglie le istruzioni che utilizza l'utente, le traduce in formato

istruzion

i.

RITORNO: Valore che restituisce al master. COMMENTI: Chiarimenti oer comorendere le istruztont.

.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,|#

".i1;.;|ll.11').i)l;.'.l:|:i:'i.:||,j.{:i'...:..!;|;i||,ii,,,!.


flIICROCONTROLTER di controller di

Codice: A Sinhssi: A (coteno) CR Opelondl, llgtenol è fo coteno d9i 1gg9!erj do visuolizzore, Esempio:

Ritorno: Commenti:

tCD

€odice: Sinlossi: mox. 40

Operondi:

AmcrosistemsCR

ACK

.

Tutte le istruzioni ierminono con un riiorno o copo (CR)

C CCR

Nessuno

Esempio:

CCR

Ritorno:

ACK

Commenti:

Ognì volto che si esegue questo istruzione. si commuio

lo stoto del cursore ON/OFF

Caratteristiche dell' istruzione che visualtzza caratteri sull' LCD.

Ca ratte ristich e del I' i struzi one di attivazione e disattivaztone del cursore.

Con ouesta istruzione si mostra la catena dei caratteri

che sarà indicata in seguito a partire dalìa posizione

Mostra o nasconde iì cursore nella sua posizione attuale. ll cursore si rappresenta come una linea orizznntale nella nosizione inferiore del carattere in cui

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 principali caratteristiche di questa istruzione.

(omondo

: i

: r'-"--'1

':s

"*

v,ú[''oí ;;ffi dì;ùfi;l; ú,ffillio

YvJ'4'vi

posiiió,àoi,ólil;f;'riore.

Produce un effetto dì {bb) inlermitienzo con un periodo siobilito

EloollbblCR I

do ioo).

c. D: El ti

u.

| ,r"v

si trova.

Destrizione

Sintcssi

At,.tóíltm

le

ccR

Afiivo o no lo visuolizzozione del cursore.

DCR

Disotlivo il corottere ACll locolizzoio nello posizione del cursore.

EIindirizzo]CR

Sposio il

t[coleno]CR

Inserisce uno coleno di corotleri o poriire dollo posizìone del cursore

G{nnl[byel ]lbyte2l . [byte8]CR

Genero uno degli oìio posibili corol+eri grofici definibili

l

cunore n uno nuovo posìziore.

sposlondolo verso

sinìfro.

doll'utenie.

H,

HCR

I

l[coteno]CR

lniziclizzo il dìsploy LCD concellondolo e posizionondo il cursore noll^

I

.""*"""1^1" J

JCR

K

KCR

t

tcR

M N

Mlmml[hh]cR

o

ocR

P

PCR

a

Q[volor]CR

R

RCR

N[dd]lmmlcR

r

inizinlp

^^.irinno

Inserisce uno coleno di coroiieri o portire dollo posizione del cursore

"

.1"*."

Attivo o disottivo il displcy LCD.

, Altivo o disotiivo visuolizozione dell'oro in corso. : Aìiivo o disoflivo lo visuollzzozione dello doto conenfe. , Regolo l'orologio con i minuti [mm] e 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 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 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. 1o

Ie

5

5[dirH][dirt]CR

I

Tlvolore]lìndHllindLlCR

u V

VlvolorlCR

ucR

X

XlindHllindLlCR

Y 7

YCR ?CR

Devia il flusso di controllo del

programma quando sr comnip rrn,r dotprminara condizione. La scheda di controllo LCD-CON2 s(rive il programma di visualizzazione nella memoria EEPROM da 24 Khvte che occunA oli indiriz-

zi da 0000 a 5FFF Hex. Le istruzioni sr scrivono negli indirizzi correlati inìziando da 0000 Hex Ogn istruziono rìr.r rn; rn rprtn numefo di hvtp I a rondizione rler cui si realizza il salto viene stabili+^l-l ,,-l^"^ ^ ilIa oat vatore l.-i^-"i^ 0tndrr() presente nelle otto linee di ingresso a cui si accede tramite il con-

nettore J4 Ext.lnput

deììa

scheda di controllo.

1o

Repertorio di istruzioni di basso livello che ammette la scheda di controllo LCD-CON2

Nelìa tabella a sinistra sono rar)0resentate tu t[e le istru-

zìoni, con le loro prrncipali

::,4M.".'

i::a*i;rtirtiuuuuìììììììììììììììììì!{rlul


MICROCONÍROtLER : iìi

Modelli di conlroller di

LCD

'ììll

caratteristiche, che la scheda di controllo LCD-CON2 è capace di internrot:ro p rnnvortirp noi rnrri<nnnnen-

ti segnali di controllo che sono inviatì

-:--:

-

-l-lel tcD

:t

al terminale del modulo LCD.

--1-H

:

lngrc*i: Pda

I

4,l_l-l-|*l*f-f i*

t,-,j0*

F.t ,+,€ r+B

l

fÈi :":

::-

.J

: fipo---

jlExl Y1 '

Per semolifirare la ne51j6ne del con"r""--'

rroller LCD-CON

il suo produttore,

Ingenrería de lVicrosistemas Prograrnados S L, ha svillppato un software molto pratico che implementa 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 visualizzazione sul monitor del PC prima di eseguirli sopra LCD e Edrtare il programma con il linguaggio di alto livello. . Assembiare le istruztoni di alto

livello e convertirle in istruzioni di basso livello, interpretabili dal PIC della scheda dr controllo o Mettere a punto il programma. . Trasferire i programmi assemblatr alla scheda di controllo LCD-CON L'ElD e basato su un repertorio di istruzioni di alto livello, che pur

.--:* fi*

V=

e |'t i f lnvìorealLCD a- Simulore

nossono essprp ,,,.. inte'rrretate con I frrmware della scheda di controlio

ji: r-Ì

DE<

--:.

, ;

-ti:#

i

Ì-i. i :

:

Modo ON tlNE: Gli ordini soronno invioti direttqmente e in modo seqgenziole ol controller dell'LCD

itrr:!or:r..-.-..

€ q;, [-]

xegoro

ofs

'

--..........

Reodv

i

a.",1.

,l

Regolo doto

on

Lin"

:

{"- Èogrommozione

,

Videata di lavoro dell'ambiente EID in modo on-líne.

_I ixl

];.==:.,:,:.;iaa=-;li::a,.;-a:E-.::::::":::.,:.,:.,.',,.,,:.:':.:,,.',:::..,::::,:::::::,

lile

Configurozione Strumenti Aiuto

,-l

l rtl

5l,i--J qti tcD

rE.q":f ..9 c*!,:'::ry:B

s

-,g..4;rii 16xZ V: Sorgenle

--_

f $

,imp .rmc

r-i"g,*"c

Obiect

osqpndn onr.iri:lonti : n ,ollo di h:<<n

livello, nsultano piu comprensibili e f,arili d,r npqt:ro Cnn l'gl119p dei testi dell'ElD si puo cance,lare, inserire, muovere, duplicare, salvare su disco, recupe'are, ecc. fassenbie" di questo ambrente traduce le istruzioni di alto livello rn altre di basso livello, che

À.

rl.L? m

:

---.t_Y ,

'

, :

El l*t":,E] l:i.. El po'* ,El n ,*

Videata di lavoro di EID in modo programmazione

I

LCD-CON. ll simulatore dell'ElD e molto interessante, perche -n sce la possibilita dr presentare rel crsplay del PC i messaonr che vocrliamo visualizzare sull'LCD. lnfine EID possiede un sistema di aiuto on-line, in modo che posizionando cursore su qualstasi icona appare una

i

finestra con un commento. lrequrstti per l'installazione dell'ElD sono:

r

PC compatibrle con processore Pentium ad almeno 100 MHz. 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.

.2


Modelli di controller di

5

LCD

;

rllriiflftfllllllrl?lrNlllillll!lìlìì

Nella figura è riportata la finestra che appare sul PC lavorando nell'ambiente EID in modo on-line, in cui le istruzioni si inviano direttamente alla scheda di controllo. Esrste una finestra a video, denominata LCD, in cui si rappresenta il display LCD disponibile, potendo scegliere tra diverse configurazioni di file e caratteri. Nel modo sìmulazione i comandi si inviano a questa finestra:l nos'to della scheda di controllo, simulando l'effetto 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'esecuzione 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

sinrqssi Descrizione

i

+l: Print"lcoienol :

, doìlo di 10.

Visuolizzo lo coleno di corotleri o poriire oosizione del cursore. ll numero mqssimo iorolteri di cui è composfq lo coiena è

5 po:soro v srol

di ìavoro dell'ElD esiste rrn nrradrn in rrri sono rappresenrare ognuna

di

rstrrzioni

lcone corrispondenti alle 23 istruzioni di alto livello dell ambiente FID

zioni dpl nrnnr:mma si nossono editare senza

la

necessità di -ll-0a5ta cilLLa0tgtTarle, ^^.+re con rl mouse sopra -^^^tu .l^^.+-+^ l'irnnr !v,rnr"iqnondonto. rPUr LoLE le il9Utd )ut Nella ct^,.-,vL, LL ì ,JPv, livello. istruzioni di alto principali caratteristiche delle 9 !i^i+-.1^

,

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 urrare di un secondo.

i , a

Home: Inizializza il display tCD.

Print "Cioo Prini'Addio Prinl "Mlcrosystems\0\1 Inserb"lcoleno]

lnserisce lo coieno di corollerì o portire posizione del curoore, sposiondosi verso Lo s

n'osi e sin; e oll s'-rzoTe

lnserl> Inserl<"lcoieno]

D'

dollo

desko.

:irtossi e

SelPos lindl

Poszono

GetPos

ll

Gef€hcr

e o quelro

s

1

:

Jmp: Salto all'etichetta indicata.

ristro.

dell ltrrzione p'ecederle.

d spioy LCD e posiz,ono I curuote rello reo. oos z ore dello

Corcello

.o

siri

i

Home

p'

I

"'.

por z one de cu-so'e. spos-ordosi vetso Lo

Pause: Temporizzazìone.

1

C'oo

lnserb'Microsystems\0\ì lnserisce lo coieno di corofleri o ooriire dollo

ptro

I

clso

e

o

RIM inizializza

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'oiere crec è re o oosizione dove s tovo

rl.Jtsote

Power

nol

5

':

s

o soerlo

0.Lfco c1e

I rlorioziore

cl^e

corereuo s:o 0e du-o

lo:rcce:sivo islrLziole Powe' o ies-oLro.

Cursor ::.1

ì

Cu.sor

A1i!o/o so-i\o o 'isro zzoz ore oel cltore

Home

Loop

ird rzzo

spec ficolo.

loho cre .CD Accenoe, speqre lCD. ll

,

LCD

Power Print "lngeniería'

REM attiva ICD

Pause 20

REM

Home

REM inizializza e cancella LCD

Pause 10

REM

Print "Microsistemas" Pauselu Power

REM

temporizza 1 secondo visualizza Microsistemas

REM

salta a etichetta Loop

REM visualizza lngeniería

temporizza 2 secondi

Pause 10 Jmp Loop

l

Si m bo

I

i e ca ratteristt

ch e

di nove istruzioni di alto livello.

ìn

nrpqto mndo lp istrrlLv YvLr

t

e-erie delir ii. lr

nrpste

medrante un'icona:

zzo'e co'oîler' g'o[ici qJeslo coso uli;zzo lo boro r"e'so {oocl slosh) sègti-o dol -rre'o del cototlete gtolico des dero o. preceden

tralta di rrn renerto-

rio di 23 istruzioni che rnrrisnnndnno : nrrelle dr h,essn livplìn aia ,!i-+^ À l^ll^ :^^-+. -r. sluotale. t\eila frnesrra

Microinterruttori SWl per la configurazrone della scheda di controllo.


Trasferimento di dati

tramite R.F. (r) Trasferire informazioni tra sistemi digitali,

comandare strumenti remoti, ricevere dati da un ambiente distante senza la necessità di un collegamento fisico mediante cavi fra emettitore e ricevitore, per mezzo di radiofrequenza, risulta una delle applicazioni elettroniche più interessanti In seorrito citeremo alcuni dei settori piu interessanti in cui si può impiegare questa tecnologia: 1". Controllo e gestione dei dispositi-

vi

remoti mediante invio di ordrni e comandi: connessione/sconnessione di

$rc

.

Schema di funzionamento dell'emettitore di R.F

allarmi, controlli di accessi, porte dei garages, ecc. ' 2". Ricezione di dati in arrivo da oeriferiche remote per la successiva elaborazione: trasduttori di temperatura, pressione, umidità, ecc. Tutti i tipi di variabili analogiche e digitali. 3". Trasferimento di informazioni tra srstemi molto distanti: risultati di determinate ooerazioni. stato interno di variabili, ecc. 4". Aoolicazioni in microrobotica: comunicazione fra microrobot per realizzare compiti congiunti, controllo movimenti, informazioni dell'ambiente, ecc.

. ,.:,'1

. '

per ìa successiva elaborazione. Nelle seguenti figure

.,'. t,:'tl

ne della scheda di controllo LCD e

i

Nel primo caso, la scheda di controllo riceveva le istruzioni del master che poteva essere un PC -, le interpretava e generava segnalr di controllo per il display. In R.F. esiste una scheR"F.

-

da incaricata di ricevere informazioni in forma di onde elettromagnetiche a R.F, interpretarle e fornire iì risultato a un PC

'

Schema

si

presenta l'attuazione semplificata delle schede dr emissione e ricezione di R.F. La comunicazione fra le schede di emissione e ricezione di R.F. e l'applicazione finale a cui le destina l'utente, si realizza mediante comunicazione seriale RS-232, o mediante livelli logici TTL che si aoolicano direttamente al microcontroller di queste schede. Nel caso della scheda di emissione, questa riceve via seriale dal PC i comandi di configura-

Esiste una certa similitudine fra la funzio-

dispositivi di

il; **

di funzionamento del ricevitore dr R.E


zione

ll

e idati da inviare all'utente. microcontroller della scheda

interpreta i comandi e li invia, insieme

-'-:*:.:.:::'::

con i dati, tramite l'antenna di emis-

Fuigl:

sione, secondo un determinato protocollo. Nel caso della ricezione si puo qic+amr .hò f 1 imnnrro rho ci: 116 ,, , ,r -. . -. . ,t) tEt |d, Lt tc tc parte di un altro più grande. che rice-

-I-t",-g-r-s-,r-'-g--d..i

ve

i

dati tramite radiofrequenza,

verifica,

li

impacchetta,

e li invia

:::" -- -- -T:: "r:^- --i.-i::-L *, i -!"!" :

drs!!n:l-le-riel-9-"*

Velocità di irosmissione dei

-yD-s*

"."..-.-.i..."".!",.""....:... "-

doti i

I

I nooo I Boude

i

Ronge di lemperoturo

li

in

Principali caratteristiche del modulo emettitore RTl -433 della ditta italiana "Telecontrolli"

serie al dispositivo o all'applicazione dell'utente. ',':1.' , Riassumendo, una scheda codifica l'informazionu ,l''' digitale per trasmetterla poi via R.F. e l'altra la riceve, ll cuore deìl'emettitore R.F. è il modulo RT1-433, prosempre via R.F, la codifica e la trasforma in informazio- dotto dalla ditta italiana "Telecontrolli", che consiste fondamentalmente in uno stadio di potenza che genene binaria. ra una portante di 433,92 MHz, modulata in ampiezza t :il ii:,':r '' . (AM). È un circuito rbrido che, meotanre un processo di '." ': ' r I r' r'r. 'r'I ."; ' ': ' regolazione che utilizza tecniche laser, offre una grande ' " Con l'obiettivodi analizzare ilcomportamento di questi stabilita di frequenza. Lantenna dr emissione è integrata nel circurto, ed e possibile ottenere una portata di moduli che comunìcano tramite R.F., descriviamo l'e'

'

varie decine

di

metri,

a

seconda delle condizionr

ambientali. Le sue caratteristiche principali sono riportate nella tabella della figura.

, , . ,.

.,

,\ ,

',

La gestione dell'emettitore MSETX è basata sul programma 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 confinrrrazionp 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 figura Nella scheda di emissione si utilizza un PIC'16F84 per controllare la trasmissione alla frequenza standard di 433,9 MNz. l m icrocontrol ler riceve l' nformazione d g itale da trasmettere via RS-232, la decodifica e la invia i

l

tramite

i

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'ìnformazione digitale iniziale e portarla all'esterno via RS-232.

i

t;1

r ,t r,, ,

,'..... .,,

I t.

.,,r' l, .,t,',!

,'.:l

Wfrtrr!ì:ì1ìì1fl111111111iiiii1iiiiiiiifriiiil]]|W.'1'.'..j)jjj...j1l;'j...'4||||j|||:||

Distilbuzione dei blocchi principali sulla scheda MSETX


MICROCONÎR

una memofla rnterPin

na non volatile.

I dati

Ne

Seonole

.,.--.-.,.,-.-.,.,-.-..-....:,..___,,.,.......,..-..=...-

sono

- ..-..1..-- .--i"-""

2:Tx 3 i

-".8:".--

I

D"scrizione

.: Bidgr".{:ii,g-t|!r.si!:-lsrpji:"g-'::-1,"-d:!!1yt':ll--.--:e:,:sii:n-etti!-qry,!!-s-!Jl. Trosmissione dei doti doll'emettitore MSETX verso I'opplicozione dell'utente.

i-^---l-^++-+i -^^ ilrpoLLilcLLdLr LUrl prestabiliformato tn o ci aìonor:

....-'f-'..'.'].."s9'!.3..-...i'Ly..s]l'.::i...l.:."d...:.|!1":*linfI.sgI.'!y3**]l:".'.l.l.':ee.li:l'.'.'''.'

un'informazione di

..-."..9......i..--"-9]!-?..-..--.l..!:."l.:-::i-r.r

Intestaztone e un,altra di test o

Vcc

i

Tensione di olimenfozione di +SVDC. Non

1', Modulo RT1-433. 2'. PtC 16F84.

zione dell'utente, che può essere un PC. Se SW-1 e SW-2 sono a 0 la comunicazione si stabilisce a 2.400 baude. Se SW-1 = 0 e SW-2 = 'l si realizza a 4.800 baude, e se i due sono a 1 la comunicazione è a 9.600 baude.

',,' ll connettore CN3 a cinque contatti e chiamato TTL DATA e ser\/p ner srnnortare la comunicazione con l'utente, mediante livelli logici compatibili TTL. lsegnali che invia l'utente si applicano direttamente al PlC16FB4 e nella tabella della figura si mostra l'assegnazione di ognuno dei terminali di questo connet-

Inoresso dell'alimentazione.

4". Reset. 5". Mìcrointerruttore di configurazione. 6". Connettore TTL DATA (CN3).

7'. Connettore

:

Assegnazione delle funzioni dei cinque terminali del connettore CN3 (TTL DATA)

"checksum " in l^ ^-"-^+i"^ mooo oa garanlìre ta +lrasmtsstone. -^,J^,lc. 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:

3"

necessorio.

ICSP (CN2)

B'. Connettore DB9 (CN1).

tore.

ll

costruttore della scheda, Ingenieria

de

Microsistemas Programados S.1., uliltzza il connettore

ll connettore CN4

rrceve

l'alimentazione, che deve arrivare dal secondario di un trasformatore che fornisca 12 VAC. All'interno

llT-r 3::l: rrsPc

,.J^ll,, ^-i-+^ ueild --h^,15Lr reud e5t5Le uno

di filtro e di stabilizzazio}'/l'

resetta rl PlC16FB4, senza

modificare iparametri interni dr configurazione. SW-'1 a

GND

Assegnazione delle funziont ai terminali del connettore CN2 (CSP)

Ne Segnole Descrizione 2 1. TxD : Trosmissione dei doti R5232 tromire l'emettitore ; il sistemo di opplicozione dell'utente. ] "."....-'...".j'.'-.,.-."'"'"..'"..':-":]''-::::'=.::]:':.'-.:'.|: Pin

1

3

Gli interruttori drre

rnntatti

determinare

spr\/nnn 0ef

I Seriol Progroming Clock. Segnole di clock di sincronismo ol momento ì dello scritturo.

MCLR/VPP j Segnole di reset del dispositivo do regislrore i e punto di opplicozione dello îensione Vpp di registrozione.

stadio di raddrizzamento,

ne per generare +5VDC ner l'elettronir: di 16p1trollo, e +13VDC per il modulo RT1-433. Per resettare il sistema si usa il pulsante SW-2, che

Descrizione

I

RxD

i

5

:

GND

MSETX verso

. Ricezione dei doli RS232 doll'opplicozione dell'utente uterrrg verso vef t9 |l'emetlitore ertte[tlgfe tYtJEtA. MSETX. ti qcil

i Segnole di mosso

comune.

i

i baude con

cui la scheda comunica con il sistema di applica-

Assegnazione di funzioni ai tre terminali che supportano la comunicazione serrale RS-232 nel connettore CN1

:::


r\_t\Z. r\r / l\r\_Jrl Í \Pr/ nor <.rr\iore JLr rvcrc )Lr nella rcild YLr Ptrr -' ''nemoria del PIC il firmware di -^^+r^ll^ lLr uilu. LUr

Tipi Mox CARAITERISTICHE Min Tipico 1 ,

.

r.

r.

.

.

i

?

E

a

. -

Unità I

.'^a

I

N/]ec]ianfeotlestoconnet-iM---"""-j.-.'"*,p-"---L".-".:."*.-.:--"*,-q..,--i----,"Y..P9-'-j '"' l'' .^-...-^ r2,J mA tore il fabbricante puo aggior- €onsumo* ^ 3,5. 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

j__*yn:"_..j

-__*i*___^-_L{:.9Éj**__*_ "l--*m"- ", i*l*.+ 6^^.r*i;n***-]-***^l;;-";"economico. X-':;:'; "oiÎ:'-o :,:"i:'::" u"', ^.,^ ,- Srri:lrg--djls:de s*9"* gqude rapido ed

'ì:"o,,

"9''o ''.

Taoeila 0t assegnazrone

,lo oeile

integrato MAX232 adatta lrvellr I lL alla normalrva F(>-

velocitò diricezione _.* " -. ...

deidoti

!

i

] zooo ì

-.,:,'***--.-.,*-.,.,;**********j

r

i

,

I

i

Princiaali caratteristiche del modulo rÌcevitore RR3-433 di Telecontrolli

232 e viceversa. Utìlizza solamente tre contatti, le cui funzioni sono rappresentate

5u. Switches

;

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 le codifica in informazroni digitali. quindi le invia all'utente mediante RS-232 o segnali TTL. Le principali sezioni del ricevitore sono le seguenti: 1a. Modulo ricevitore. 24. Ptc16tB4. 3a. Alimentazione.

4u. Reset.

i i

di configurazione.

6a. Connettore TTL DATA (CN3). 7u. Connettore ICSP (CN2).

nella figura.

Bu. Connettore DB9 (CN1).

I blocchi del ricevitore realizzano la stessa funzione

dpnli 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 sched: 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'utente

r^ Ls ^"i^-i^-r Pr il rLrPqil

--"--teristiche Lqror

del modulo

RR3_433

sono riportate nella tabelìa in alto.

,,

i..:.,l|'||.,...i-'|'.,,|ii...i':...;.i...l.,-.;.:..;...,i t,

i 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 intestazioni, determina se il messaggio è drretto al ricevitore adeguato. Infine verifica la valìdità dei dati mediante il cnecKSUm.

Distribuzione delle sezioni principali del ricevitore MSERX.

3". Dal totale della trama ricevuta estrae l'informazione utile che invia all'utente in via seriale.


Trasferimento

dei dati tramite

R.F.

(il)

le successivamente tramite R.I così come e rappresenta-

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-

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 comandi di configurazione, e riceve lo stato interno, così come i dati ricevuti tramite R.F., in serie, bit a bit, come si vede nella figura. Nella comunicazione seriale dobbiamo tener conto di tre aspettì rilevanti per garantire un corretto trasferimento e una successiva irterpretazione. i

1'. Sincronismo dei bit. 2". Sincronismo del carattere. 3'. Sincronismo del messaggio.

CONTROLLO

Flusso di informazioni

nell'emettitore MSETX

Questo sìncronismo ha il compito di ottenere che tutti i bit emessi durante un intervallo di tempo determinato siano raccoìti nello stesso intervallo. In questo modo "non si perde" nessun bit nel viaggio e per fare questo esistono

due alternative che spiegheremo seg

u

a

ì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 supportaro nrrp<tn <inrrnnismg sono necessarie ,L VvrJLv fra emettitore e rìcevitore: la due linee linea dei dati (DATA) e quella del clock CONTROLLO

"""**";

(CLK), così come si presenta graftcamen-

te nella figura. - Modo asincrono: non necessita di un clock ausilrario. Sia l'emettitore che il ricevitore, trasferiscono e raccolgono loro bit in un intervallo di tempo "t" i

Flusso di informazioni nel ricevitore MSERX.


P89 '1,

tril ttt comuiltcoz ..,:'.

Superato il sincronismo di ogni bit dobbiamo risolvere la delimitazione fra ogni pacchetto di bit trasferito,

ossia, dove inizia RICEVITORE

EMETTITORE

e

dove finisce

ognuno dei caratteri che formano il messaggio. Questo si chiama sincronismo di carattere. ll metodo

più comune per implementare il sincronismo di carattere e rappresentato graficamente nella figura, e consiste nell'inrziare ogni caratteSchema d i f u n ziona m ento del sincronlsmo di bit in modo sincrono, ed esempio di trasferimento.

uguale per entrambi. Se per esempio si decide di realizzare un trasferimento di 1 .000 bit al secondo (1.000 baude) ogni bit che fornisce il trasmettitore deve rimanere sulla linea dei dati per 1 millisecondo, che è il tempo

che ha a disposizione

re con un bit denominato di "inizio". Dopo arrivano i bit di informazione che confrgurano,l carattere, e in seguito, jn modo opzionale, può esserci un bit

di "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

il

ricevitore per raccoglierlo.

Di solito, per motivi

di

sicurezza, il ricevitore fa un campionamento e raccoglie il dato a metà dell'intervallo del tempo, come si vede nella figura.

BIT DISTOP

I

Nel caso particolare dell'e-

mettitore e del ricevitore che stiamo descrivendo in queste pagine, entrambi utilizzano sincronismo dei bit in modo asincrono,

tllr

î

BtT

I

Dl tNlzto BIT DI

an DrNrzro

PARIÀ

il

che

e

orrello imnienato

nella norma RS-232.

EMETTITORE

Nel modo asincrono

Struttura dei bit che compongono ogni carattere

RICEVITORE

non

esiste segnale

di 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 bit che compongono il carattere, iniziando da quelli meno significativi (LSB). In base al dispositivo utilizzato, il carattere puo essere di 5, 6, 7 o B bit. Attualmente il carattere è quasi sempre di B bit. Il bit di parità è opzionale. Si puo lavorare con parità pari o dispari. Se si utilizza la parità pari, il livello logico del bit P è tale che la

somma di

tutti i bit che valgono 1 nel


:1

ITIGROGONTR.OLL.ER i.

l'

P90

##it

carattere, piu il proprio bit B deve dare un tolale di 1 che sia pari. La parità dispari funziona 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 +.-++f ,,n nUOvO bit di iniziO Lr d Lro ur u

-i --^:-:d Lr-1.^ rc )r LdPil

' 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 bit rimane stabile sulla linea dei dati I ms. i':'ir'!'-l;i=

Ònni hlnrrn !r)ma À rnmnn<fo ^ da 20 caratteri o byte, dei quali i primi 4 corrispondono all'informaztone

iir

Quanto tempo impiegheremmo a trasferire ogni carattere lavorando a 1.000 baude e sapendo che ogni carattere 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 informazione 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 carattere 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.

',

di testa

: :'; 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 blocco o trama è di lunghezza fissa e contiene 20 caratteri o byte, dei quali i primi 4 corrispondono alle ìnformazioni di e i 16 successivi compongono una informazione utile. I quattro byte di testa hanno il seguente significato:

testa

,1

',' "

"',

"""

Dr: Indirizzo del ricevilore. Può volere 253, tufii rimongono i oll'oscolro, però occetteró l'informozione solo guello il cui i 1] i.dirirto coincide con il volore Dr. findirizzo 254 è universole i f ".on esso tutti i ricevitori occethono l'informozione. f

f i]

tf--*-*****

eyte di Checksum. Si trolto di un byte colcoloto {| Chk i -"'-' -t -i ;i doll'"metitore medionle uno serie di operozioni logico,.,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 il petò sono volidi solo i 'n' primi i:1",--.--*,...,-**

Drr ,tdiritto |tdiritto del trosmettifore. trosmettifore. fiiÉiorr

! i-1

li

I

***-*--1

Onnr Dopo i quoftro byte di testo seguono quelli utili dell'informozione. Si lrosferisce sempre uno coteno di e quelli che non si utilizzono si riempiono come corotleri NULL

;B!ìÈt::.fr lwi,f

I

ló byle, i t

(OO0). rÍnrtffi

í.f xÉ!ri#Frgry,:=:fla1fitrìJsît.ffi

q+if

Quando tramite l'applicazione dell'utente si inviano i caratteri da trasmettere mediante la norma RS232, tl trasmettitore lo fa scrivendo in buffer interno, e quando si completa con 16 byte si procede alla trasmissione automatica di tutta la trama. Se al posto di ricevere i 6 caratteri si riceve prìma un carattere di "ritorno a capo" CR = 013, il resto del buffer si riempte con cool NULL (000) odice N 1000) '1

.-l^ dild + -ll- d trasm nrnrodo; ut Lt c ilsst rssroonel, consroera oo loCRrcome :ome consider; lera n do( n ni -îra++^r^ ere in più Nella LOIOLLEIg unrI LOIOLLEIg -+^ r due rortale port no ripo dLr f igr ra sono Jur Jura ^-i>l e

L

tinto n, pr neila ttcl ^^l ila la pr lrima traam ame I re distintr distinl frrima si

Esempio della struttura delle due trame, in cui

+.^-I .^-I ^.1-t)Lt -î+ -^ un -. LO LtI d) tut isce t)LC una rna.ì cal ci atena ìtena tr L

no( 16 l6 cara car'atteri atteri cor )n >n meno o tddi 1€ t^t-\ -\ q/ (Hc ttcl rvrq/ E ^ ^^l neila SCC( ^^il. rrcil( ^^tl rrcrl se ;econo onda la aun un E -.^^i^r Tr:maltr messaqc )o99rw. ).. ln en' enrr .ramtro) me5saq( ssag

tutti i byte sono espressi in esadectmale.

r

fli1,

rtl'+,,i

iill+r.t

+r:t'

il

i

.,,,{

!

Él +,;:,

i::É

frÈ

i?

ir -4;,,r'lil,jií

,rtll!1ta::r::aaa@t:t:*aaa,a*aa,:

+

+.i,i,

:;l

. 5i.

i.l =li{ t,i.,rt]ffi:r;i6ììììrÌllllll\tLaaaaaaaa:aè.:

ij


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.

t,'.

;i,''; :,, l; ' 'i !-'l,f t"

i

::t. , ' l

ti

i, t' ,,;,',

r,t;, '':,;' ;.; :,"

,

,

Per calcolare il tempo totale che dura un trasferimento, dobbiamo considerare i seguenti tempi parziali: 1". - Tempo di trasferimento fra l'applicazione dell'utente e l'emettitore MSETX. 5i suppone di lavorare a 9.600 baude e che ogni r-:r:ttertr imnipohi npr traSferirSi 1 mS. ll Sistema Utente invia al N/SETX il byte che defrnisce I'induizzo del ricevitore (Dr) e quelli dei dati, con un massimo di 16. Totale 17 ms, come si può vedere dalla figura.

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. la trama dei 2O hvte drrrante oli stpssi 2O ms in Cui viene trasmessa. L'emettitore e il ricevitore devono essere sincronizzali alla stessa frequenza di 2.000 baude. Ricevuta la trama si separa I'informazione dall'intestazione e si calcola il checksum 4".- Tempo di trasferimento fra rl ricevitore e l'applicazione dell'utente.

All'utente vengono inviati solo i byte utili e il byte di induizzo del trasmettitore (Dt), in totale '17 byte, che a 9.600 baude impieqano 17 ms. ad essere trasferiti.

2o. - Tempo di emissione in R.F. tramite MSETX.

Dopo aver ricevuto il messaggio dall'applicazione dell'utente, MSETX scompone la trama completa di 20 byte, dei quali calcola il byte di checksum (Chk), il

Iempo di invio di una trama tramite

numero di caratteri valido (L), e aggiunge il proprio indirizzo (Dt). Dato che la velocità massima della R.F. è di 2.000 baude, un carattere impiega 5 ms ad essere tra-

]

R.F.

100 ms

Tempo in calcoli intermedi 3 ms

CONTROLLO

coNTROtto

ll tempo di trasferimento

La

fra l'utente e I'emettitore è di 17 ms

che dura la trasmissione.

ll tempo di emissrone di una trama via R F, è di circa 100 ms

ll trasferimento di una trama tra il rtcevitore e l'aaalicazrone dell'utente a 9.600 baude dura 17 ms.

:it

:

.,r:,i

:; ::+t!'.i;, ,,i1, ,: ,:;,-r.1!t.,1;,.;'1Ì

ij u ,;:y:;1;,i

ilcedone tramite

R.F.

della trama impiega gli stessi 100 ms

')l;'ii':!,'1';: Í1fl ÍÍ1fr

ililffi

lffi r.rffi !ffitsà€i;rirrrrrrrrtit!!*ut!tttililill


Invasione di microcontroller con memoria flash ll nostro vecchio amico, il

PIC

1

6F84, è stato sceìto per

controllare Monty, ed è utilizzato anche ìn molti prodotti sviluooati in tutto il mondo. Ricrrlt: rrn di<nnciti\rn " nirrnla nÒ\/err'ì ntrrn oqsenziale". Non ha molte risorse, iniziando dalla capacita della sua memoria, passando per i temporizzalori, terminando con lo scarso numero di pin l/O digitali. Tutto questo spiega l'appellativo di piccolo. Quello di oovero fa riferimento alle risorse abituali in altri microcontroller. Così ad esempio non ha convertitori AD. né oorte di comunicazione. Pero tutto si risolve con il fatto che è "essenziale" oerche i orocettisti fanno addirittura miracoli con le sue limitate possibilita. Le altre caratteristiche di spicco del PlC16FB4 si riferiscono al suo basso costo e alla sua semplicita di funzionamento e di programmazion e.

SH: questa e la ragione per cui la Arizona Microchip ha deciso di potenziare la Iinea di prodotti basata sulla tecnologia FLASH.

La "f lessibilità" e la parola chiave che definisce questa tecnologia e le sue principali caratteristiche sono esposte 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

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 caratteristica principale e la memoria di programma di tipo FLA-

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.

L'umile PlCl 6FB4 si impiega in migliaia di prodotti in

tutto il mondo

Nello sforzo per migliorare le specifìche e il comportamento dei circuiti integrati con questa tecnologia, Microchip ha ottenuto all'inizio del secolo XXI delle elevate prestazioni, passando da una produzione di 0,9 micron ad una di 0,5 micron: così si riduce considerevnlmonto il fomnn di rirln d:i 1O m< nor q nor ,,vv v, crritfr rr2 !,L,v vr, parola a 1-2 ms per blocco di programma, che a se-


I

,

**f|el

conda dei modelli può contenere 8 K parole, 32 o solo

PREZZO

una. In altre parole, nei moderni microcontroller PIC con memoria FLASH, si puo scegliere fra cancellare e

tutta la memoria, un blocco di diverse parole, o una sola parola. ln questo modo si arriva a gestire programmi fino a 64 K parole in meno di 2 secondi. Inoltre la capacità di autoprogrammazione di questi nrrovi PIC nermottp di realizzare cambi e modifiche del scrivere

ROM CON MASCHERA

programma a distanza Sotto questo aspetto, sia Microchip che diversi costruttori OEM, come Ingeniería de Microsistemas Programados S.1., dispongono già di

: :

CARATTERISTICA

.,

::.ttyr,

Nîl4OlNl,, vdd

::::::1':111111',,111L,:

.,7gy1tto*rot

.

MEMORIA

FLASH

i

VECCHIA :

z_s,s

voc I

.:':,:," 12,5-13,5Eterno

PROGR,A"MMAZIONE 5V

Vdd

i

FtESSIBILITA

Andamento dell'evoluztone della memoria FLASH migliorata, e della memoria ROM con maschera. MEMORIA FTASH MIGLIORATA

z_s,s

voc

toSffsso RANGE DI Vdd

chip e di strument, focalizzati a potenziare l'autocaricamento dei programmi, e la messa a punto in tempo reale. Nella tabella si mostrano i dati riguardanti il

romnnrhmcnto c lp raratteristiChe rjlevanti delle memorie FLASH classiche, e quelle migliorate con la pompa di carica. Alla fine del 2001 si è arrivati all'equiparazione delle memorie FLASH migliorate, con le memorie ROM con maschera, rispetto al rapporto PREZZOIFLESSIBILITA' così come sì puo vedere graficamente nplla f inrrr: ll nrin\/o nro.esso di nrodrrzione della memoria FLASH con tecnoìogia a 0,5 micron, non solo riduce il costo dei microcontroller, sino a permettere l'inleorazione conoiunta della memoria EEPROM dei dati, ma ha portato le capacita di queste fino a'128 zhvio 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

PrcróF874

2só13ó8133

40P.441

|

upO,spr

|

8 {10-bil)

r

Nuovr microcontroller PIC a B bit fabbricati da Microchta con tecnolooia FLASH

,

tolit l'a

lt

USART

Mk/sPl

20

per l/0,1C0, Self'Prqromins,

PSP,

9-bii


.:,,**r*,,:-,.....urn;.--rirr*r.rt**^*"r.r-,llil

N'IICROCONTROLLER

í*'F*,,,,R,'*2*,,,.***tr:rin**rrirr*

ll successo della memoriei flash re Una volta provata la tecnologia FLASH con il PlC16F84, gli utenti hanno richiesto con forz: mndolli nir r nnionti,\, o rnn rr ri nn! nndarn< vvuLl tor LLr qyillnn:ro rviluVVurL

SOIC 28-Lead SSOP .so" "ss,,

2$Lead

re ffi

lmh:-inci I r rann nr^notti prvVLLLr PIU ^i,' OIllUl4lW)1. Ld ICVU-

la fondamentaìe nello sviluppo di un progetto basato su microcontrollel è che la soluzionp r^omnlct.r de I sistema sia conter;ta in un chip. Per questo al PIC 16F84 brsognava au-

44'Lead,PLC

re w

re --^--i+'-^^+îr^ ^li ilrerLdre l^ LdlJdLrrd ur

memofì4, aggiUngefe dispositivi esterni, includere un convertitore AD, delle porte di comunicazione, e aumentare il numero delle linee di l/O digitali Con questa f rnalita Microch o ha messo in vendita alla fine del milienn o una famiglia di moMEMORIA PROGRAMMA

: :

_'l:l::"

--

quanto riguarda la memoria FLASH, lo supe-

MEMORIA

DEI DATI

DEI DATI

LINEE

ut."

t3

64x

luilo

q{

8

t/o

PIN CONTÉNITORE

I'

1

'':u::10

'l"''n

:::'

Ptct óF87t

2kx14

64 xB

Ptct óF872

----"-:---- --- --- -- ..--2kx 14 , 64xB

,orurrra-

4kx14

-

22

111:

40

128 x 8 128 x 8

22

,|nr*,

4kx14

Ptcl6F874 '..

.

....

.

. ..

8kx14 .8kx 14

--.- -.-

Ptcl6a877

'.'

22

in cui sono introdotti questi nuovi

o;

192 x 8

|

aat-t

22

.

-t

3ó8x8

,

delli dr rricrocontroller con tecnorogia

40

In un microcontroller, tanto importante quanto la capacita di memorra, e ii numero

FLA-

CONVERTITORE

SH, ai quali auguriarno un successo maggio-

MICROCONTROI.I.ER

ro di

"'."'-'... ..... ..........:

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 PlC16F84 rîh+^ o. LoPoLrrc rimrna :ll'rrltimn --^--i+. rr ^, pu)tu ,^ |iltd|c dil urLilru nncin \_.luorLw ricnrcn Trr In LoloLLE|r)rLr r:r:ttarictirho r:nnro(onllo lc rE niij rol.JfJrs)Errcn ll)ul)c. Pru

tative, che rrflettono la differenza tra questo PIC e i nuovi modelli, le piu importanti sono rîn^r^.^n+î+a nnll- +.ho1l: doll: finrrr: l-): tcvsilo uEilo r tgut a. va l dPPl c)cl Ld Lc rcilo trhnllr .i .^^.ondo rhe r fr;tolli m:nrrrovqutr)Ld )l opPlErruc Lr rq r oLcilr toucllo ^,,^c+a mnl+r nir LoPoLrLo rrnrri+r ninrr h:n^^ ilru ||rurrc .--, Pla 16FR4 J'-' dol Pru - ,,_ di memoria, molte piu risorse e piu piedini

Esistono versioni da

PlC.

,:

Principali differenze fra il PlCl6FB4 e i suoi fratelli maggiori

crrrplln

rano tutti, dato che hanno il doppio di capacita (2 K), il quadruplo (a K) ed esistono alcuni modelli che arrivano fino a B K parole dr

14 bit ognuna. Non dobbiamo dimenticare 1llî gqtttttto ro<ti Plf :nn:r+^h^^^^ ^î'î'hî lL nr tElrVUl lU atta !lrho vuLrLl formato reperlo stesso e e utilizzano 'nedia torio di istruzioni del PlC16FB4. Nella figura si possono vedere r contenitori piu utilizzati

28

ì

- *n.t.rrti

44-Lead TqFP

MQFP "PQ,,

Contenitori ttpici dei nuovi PIC con memona FLASH

MEMORIA

IT!9M

19lH.,

44lead

40'Lead PDIP

28 e da 40 pin.

Per

,

:

PlClóF84

...-. ..'.'......"'-..:

A/D iro

BrT) íf-T rvorr

cANAg

TEMpoRrzzAloRr

sERlALE

TMRO.SBITS

i

nrìio-tí-

Ptcl óF820

TMRI -I ó TMR2-8

Iót87r

TMRI-Ió .Ii!tB?:9

Ptc

Lo^l]î. ccp

:

r

TMRO-8

Prcl61872

I

TMRO-8 TMRI -I ó

PtctóF823

2

TMRO-8 TMRI -I ó

ll!!B?:8, ..T.t'n?:8 TMRO-8

''iii,'ii Ptc'tót87ó

Ptcl6t877

2

UIART

.

TMRI.I ó .-rMRz-8

Mr'c/sPL -.'---..-- --:

TMRO-8

U.5ART

TMR'I-Ió IMR2.8 TMRO.8

TMRI'I ó TMR2.8

Dotazione delle risorse austliarte nei nuovi PIC

Mr'c/sPr USART

Ml'?c/sPl

--.

, ,

I -

r

PoRTA


di lìnee di l/O e la quantità e la potenza delle risorse ausiliarie che realizzano i lavori specificì e scaricano di lavoro il processore. Ricordiamo le seguenti: '1". Convertitore AD. I convertitori AD dei PIC FLASH sono da 10 bit e a diversi canali. 2". PWM (modulazione di ampiezza di impulso). 3". Temporizzatore (TMR). Ao

Porte e

di

comunicazione seriali (USART, l2C

SPI).

5'. Modulo di

Campionamento

e

Comparazione

ll kit MPLAB-ICD di Microchip permette di lavorare con i PlCl6FB7X sul prTdotto finito

(CCP)

6'.

1'. Incorpora un programmatore

Porta di Comunicazione Parallela (PSP).

PIC

o

scrittore

LINEADEI

"-,5O 5". Funzionamento con range

ffi .à'$ff"',l" porta di <omunicazione parallela e supportdLa solo dai PIC-FLASH da 40 pin. La

Nì^rlt\eld +-t.^ll-,.J^lrLduerd ueld filgura riprodotta nella pagina pre-

cedente in basso, sono riportate le risorse ausiliarie dei nuovi PlC. La porta di comunicazione parallela e supportata 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 supportare le B linee di trasferimento bidirezionale, e tre per il segnale di controllo (WR#, RD#, e CS#). I PIC FLASH a 40 pin destinano le porte D e E alle porte parallele. Nella figura so-

di tensione 3-5,5

VDC 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 abilita l'inclusione di codici di identificazione sul prodotto terminato. Per poter lavorare con il PlC16FB7X mediante il sistema dì sviluppo MicroPlC Trainer, il suo costruttore ha

progettato un economico adattatore, denominato ZOCBTX, che si inserisce su uno degli zoccoli e permette di accoppiare, scrivere e sviluppare progetti con nuovi PlC.

nli l-.lUC)Ld nrrac+1 nn rinnrt:to lp j6pl6lpmant:zinni ul rrv |Vvr 'rrrvrLlllEllLo4lUIll porta dr comunicazione con i PlC16FB74/7 a 40 pin. :; it

'!,: '

'; i

ti..t

!'

Microchip ha tenuto in grande considerazione ir ---^'.^-^^are il {-++^ rcLLv ,.Ji ur oLLUr rPovr r( i nuovi plc FLASH con potenti strumenti che facilitano lo svilupno dei nrooetti Per ottenere cio ha com"nercializzalo il kit MPLAB-lCD, adattabile all'ambiente MPLAB, che già conosciamo e che utilizziamo in questa opera. ll kit è caratterizzafo dalle seguenti prestazioni:

't:

di

6FB7X.

2o. Strumenti per la messa a punto del microcontroller collocato sopra il circuito di applicazione. 3". Esecuzione in tempo reale con punti di fermata. Lo F<ort rzinnp ,- n:q, a pa55o.

40

{rffi

1

Per lavorare con i PlCl6FBTXsul sistema di sviluppo MicroPlC Trarner, bisogna

utilizzare lo zoccolo adattatore ZOCBTX, che e mostrato nella fotoqrafta.


:

:*

:

l

I quattro moschettieri PIC-FLASH I'lemorio

MrcRocoNno[ER

hroh

diprogrommo Memorio d0 14

birl

MM

4k

PrclóF873

doti

{bFel

l

3_8ó

8k

--

38ó

Parallela Slave (PSP), che si conf igura

Porte

con le otto linee di l/O della porta

Piedini

E

28

128 33

che srrnnorta le linee hidirezionali dei d:fi o lo tre linoo doll: nnrf: D rho

5

49

servono per implementare

256

3

28

128

192

-9_|f-._,,

ll1

tEpRoM {byb}

. .. lFlqi9-71,.. " .,.-.:..-

-.i - ffIfl9. Pl0l6l877

[inee

Àfumorio

22 22 335

256

3

itre

segnali di controllo: WR#, RD# e CS#. Come abbiamo gia spiegato, i vantaggi dei PlC16FB7X consistono non solo nella maggiore capacità di me-

40

Differenze rilevanti fra i 4 modelli di PlCl6FB7X

moria, ma anche nella dotazione di abbondanti risorse ausiliarie che facilitano moltissimo le applicazioni più esigenti. Un convertitore AD con diver-

Considerata la somiglianza in termini di hardware e software che hanno i nuovi modellì di PIC con memoria FLASH, che potenziano la linea di lavoro del noto PlC16F84, per descriverli abbiamo scelto i quattro che LUPIUI

rlalla UJVLTLULTvL :<nott:tivo lU la ld mî^^i^.î^-z llld99luldl l4u uLilL

rnmmorri:li LwrrllllelLldll

si canali, tre temporizzatori, porte di comunrcazrone seriali tipo USART, l2C e SPl, porta di comunicazione parallela, PWN/, moduli di captur e comparazione e sino a '14 possibili sorgenti di interrupt, sono alcuni degli elementi che sono stati integrati nel chip dei PlC16F87X e vengono presentati nella tabella seguente, che vuole sottolineare i vantaggi di questi moderni mlcrocon-

a 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 piedinatura ne esiste uno con doppia capacità di memoria dell'altro: la differenza più visibile ricade

nel maggior numero di linee di l/O che possiedono quelli da 40 pin, dato che dispongono di cinque porte: A, B, C, D, E. Quelli da 28 pin hanno solo tre

troller.

I

MODEUO

:

PlCtóF84A

PtclóF873 PrcIóF874

_.]01-*.

1t11, 4O96xl4

....1?8..

8192x14 .

,"-9-U-9"ti:1.

Line

+-l-^ll. LouEilo

ra-^-"-+i,,LvIrPctoLtvd, 16,o l: nrinri^.lo \ | rL ru yr il rLrPo lc Ài{u ll-

l/0

coMuNrcazroNE

i

ta

I

No

SERIALE I

Questo dato puo essere importante in alcune applicazioni che

necessiîano di oeslire moite periferiche diverse. Inoltre,

USART/

PlC16FBl4 e 877 dispongono

.

sisii

:

MSSP

M55P

MSSP

bir, 2.gBlT,

I-WDT

l.tó

ICSP

,,

sefrole rn crrcurtll

i8B

Si

t8so,2oss 28p,28so

2.8Bll I.WDT

Si

4op:44ttypo,Mpr

SORGENTI DI INIERRUPT

-ìì;il i.iii'i' g''ii*' 5i

tit,'r 11

COMUNICAZIONE PARAr-rErA (PSP)

Tabella comparativa del PlCl6FB7X con

bir,

,,_ ?:"

i

di un dispositivo extra: la Porta

:

:,

-''....- ' '---'t 22 33 - ìiÀit' '-"-'- -irsrrii/' --*'-niÀi'T/" I

''--''''|'|!9."l,!AI,'-tl|r'...'?0."'..'.-?9 (Progrommozionu r'ro'*otu*

3ó8.

i

I

t)

IEMPORIZZATORE t.8 bir, i -WDT t-tó

-

- ..'.-'.''-'.'.,-'.-] 8ì92x14 256

^.

ccPìNo22

ferenza f ra i 4 modelli da 2B

1433ó

..-.. - l-ll9birl .. ,.-,-9,{19"19-*--i

si

Analiz-

e da 40 pin e quella relativa al numero di linee di l/O.

i

.. . ..-

3ó8

t??

caratteristiche che differenzia--^,1^ LAttuw lta qi tro rr dodr uLu ULL

pt0l6Í877

I

porte A, B, C. Nella tabella della figura si mostrano le

no i quattro modelli.

PIC|óF87ó

il PlCl 6FB4A.

;

;ú,;;i

1

.19 -l )l

19t1'.*'i4!. 1À


Cercando di riassumere le prestazioni che accompagnano i quattro nuovi modelli, offrramo una descrizione 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,

Quesra archite'ttura ulilizzala da Microchip neìl'implementazione dei suoi microcontroller da B bit, e caratterizzala dall'indipendenza fra la memoria di codice e nrroll:

doi d:ti

t^^^ {il^-^{i^,,^-+TllOSOTlcì lld --^--i+-..Ji LdpdLltd LOn qUeSIa

ul ^^^i u9rìl memOfì4, così come la dimensione dei suoi bus, si adatta alla noro<qit: dol nrnnottn di nnni mndolln rondpndn nncsìbile il lavoro in parallelo delle due memorie: questo si riflette in modo positivo sul rendimento e sulla produttivita del processore. Neila figura e riportata ìa struttura dei 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 destinate a selezionare il banco e le 7 restanti a selezionare rrn: 17R nncizrnni ll Ài ul nnni wVl ll h:nrn Uol llv. uLllL I Lv ul lu dollo VvJtLtvt

13", Codice di protezione programmabile. 8US DEGU INDIRIZZI DETTE ISTRUZIONI

f, l5o. Programmazione della memoria in modo seriale, utilizzando

1'r

l7o. Basso consumo. Meno di 2 mA a 5 VDC e 5 MHz.

r^ ri-oonibilita -il- ur)l ^,,î6'^ dilo il t tludrtu

delle risorse ausiliarie +rhnlìr Ll lE la rsrranlio arritLdUclld, rha

nrp<ontt:mn ro <ontlpp+n rLVuLrlLc prc)sr rLrqrrrv t:

nata menre.

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,

BUS DEGLI INDIRIZZI DELLE

solo due

Due moduli di captur e comparazione e di PWM (C€P).

5". UsART.

.''.':l',,:l'.'l'ill','''''..'..,.,:...i:..,l

i

IsIRUZIONI r::Ll

,l

I bus delle memorte hanno la dimensione

richiesta dalle caratteristtche specifiche di ognuna

di

esse

Nella figura è rappresentato uno schema semplìficato dell'architettura Harvard deì PIC 16FB7X, dove si puo vedere che il contatore di programma è composto da 13 hit vr, ner indirizzare le momnr p di rndiro tioo FLASH. rJ v,r 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'indirizzamenlo diretto o indiretto, ottiene l'indvizzo dell'operando 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 quella studiata per il PlC16FB4. |LC^ ri.^r.^ i^+^"^^ lo urvLrJL divcrsp npriferiche rhe aCCOmtL rl ll)ul)c lllLql llE E ^ rg vLrilLrrrt pagnano ogni modello di microcontroller sono gli ele-


menti di differenziazione. lnfine si offre una

flffi.^t IJ

finrrr: rhe r:nnrtrqpnta lo schema comnleîo

--13

rc re

delì'architettura interna

di un

P|C16FB7X

a

...

,,

:"

,t

40

8

:=-= ISTRUZIONE

TIVELLI

'!4

pin. Nei modelli con 28 pin sono state eliminate

lp norte D pd F l: filo.^{; .,.Ji ^", soild ur t-,,^"^,.t^t rdvoro uer pro-

cessore è identica a nrrpll.a ctrrdiat,a vLl npr il PIC'1 6F84, rinforzata ,,^i---^^+^,.J-ll--^. unrcdmeIre oaila capacità di memoria e dall'inclusione di diverse

periferiche

e

DATI

\8

W 8\

GN

{:[,1,] l,{a:1'f

risorse

mm Architettura Harvard semplificata dei PlCl 6FB7X

iJfi;Ji

Nella figura della pagina l: À rrPwr rinnrt:t: q (qLq ro

<r rrroqqiri: )u!Lq))rvo

distribuzione e l'assenn:zinne dei nipdìni nei

ilitÍútgdt*

modelli

HÉ#Kg#i

PIC

1

6FB7X.

p nicdrn altrc (on 2B nin manrano delle nortc fl od F In <onrri{6 rinortia mo r rna descrizione sommaria delle funzioni e delle nomenrlatrrre di dei 'Y' -' oonrno

ffiffi ffiffi

-

OSC

,1/C

LKIN

osc2,/ctKouf

C

OSC2/CLKOUT: servo-

q,rnnrìrlAro nÒ ntrr t,-' collegamenti del cristalìo di orr:rzn interno. Nel modo oscillatoI

re R-C il pin

t1ffi

.-

'''

lffirlinrir:ll:r:r|lii€ i '::::'l1l'l'1i'iffi'

RAO/ANO RA] /ANì

RA2/AN2 RA3/AN3,rVn+ RA4/rocKl RA5/AN4/55#

'

:l

.8

!.'w ffi

generale:

RA5/AN4/55#

..m

{

RA2/AN2 RA3/AN3/Vmr RA4lToCKl

\8

W

RAO/ANO R,A I /AN I

:l

\9

rl4

oscr /cr-KtN

Piedini di utilizzo

':.\

ffi sm

ry

PIC-

FLAS H.

.'I

ilffi

l3

1

I

pin dei nuovi

8\'

8-\

complementari.

}ii

.\8

'ffi %ffi,#i,';

j,1',i,::,1:,:,)'),)',:,1:

'tl '''r.

3dw gi.

,_::

%tr 8\

ffi

*u #,

.m Rco/iloso/ilcKl

:"

B

'

."......,

ffi

RCì/lrosr/ccP2

,. uj Rc2/ccPr Rc3/scK/scr r m Rc4/sDt/sDA

i Rcs/sDO 'U uJ Rcó/rxlDT

','

"

l!]

Rc7lRX/Dr

El

RDo/PsPo

[-.1 RD2/PSP2

'

m

Er rìrÌììììììììììììììììììììì'

".

U w

RD4/PSP4 RDs/PsP5 RDó/PsPó

RD7lpsp7

ìÌììì,ri,iiiiiIii,ìÌì,r,;;ìÌì'i,úFg

CLKIN

riceve la freouenza di lavoroeCLKOUTfornisre nr resta frpnr renza divisa per 4. - Vss e VDD: piedi-

ffi -=I=+=t

Architettura interna dettaoliata dei PlCl6FB7X a 40 oin

+È+$ trH# E #sS#,ÌflFl'.


ni a cui si applca la tensione di f; MCLR#/VppiTHV fa tx

RBryPGD

RAo/AN0

RBó/FCC

RAI /AN I it

R85

M2/AN2/Vner- l9

RB4

RA3/AN3/VruH

RB3/PGM

RA4/ToCKl

R82

Ii

RAs/AN4/SS#

RBI

RE0/RD#/AN5

RB0/rM

/WR#/ANó

Voo

RE2/CS#/AN7

Vss

RE r

-

MCLR#A/PP/THV: Ingresso

alimentazione.

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 quelle

della tensione positiva e negativa di riferimento VREF+ e VREF-, con quella di ingresso degli impulsi di clock per il TMR0, chiamata TOCKl, e con quella di selezione come slave (SS#) per la porta serie sincrona.

Piedini della porta B: Supportano le 8lrnee di l/O digitali, RB0-R87, multinlpxate ron l,a line: PGN/ di innresso dplla tensione

Voo

RÙ7IPSP7

Vss

RDó/PsPó

osc r /cLKrN

RD5/PSPs

osc2/cLKouT

RD41PSP4

bassa per la programmazione deìla memoria, e delle linee PGC e PGD per la programmazione seriale

RCo/Tr OSO/Tr CKr

RC7/RX/DT

(segnale di clock e dei dati).

/Tr O5r/CCP2

RCófix/CK

RC r

RC2/CCPI

RCs/SDO

RC4/SD|/sDA

RC3/5CK/SCr RDo/P5P0

RD3lP5P3

RDr /PSPr

RmlPsP2

NBTPGD

MCLR#/VppITHVlà,,,,,','11,1.1,.,,,,,,,,,,,,,..,,,.

RAo/AN0íi3

RBó/PGC ,.;,,,,,a,,,4,4,,,,,4,,.,,4,,,,

nB5

RAI/ANl*up',,,,"t,,,,,,,,,,,,,,,,,,,,,,,t

nm7nr.rzru-" $

RB/T

lll,rrìiliiììì

-*É,,:i:

RA3/AN3/Yn*, RA4/TocKl

it

RB3/PGM r

RA5/AN4/5S# :

v*È

CCPI, l'lngresso del clock sincrono (5CK/SCL) dei modi SPI e 12C. qrnnnrt2no lp linpp di rnoresso dei dati in Innltrp Juvvvl (SDl) modo SPl o quelle dei dati in modo l2C (SDA), l'uscita dei dati in modo 5Pl (SD0), la linea di trasmissione 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

ÍBl

Oltre a supportare le B linee di l/O digitali, RD0-RD7, ha mulliplexate sopra queste Inee, queìle di trasferi-

Vm

osc2/cLKour I

C:

Supportano ìe S linee di l/O digitali, RC0-RC7, multiplexate 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

RSz

RBOIINT

oscr/cLKrN i

Piedini della porta

Ys

D:

mento bidirezionali dei dati della Porta

Parallela

Slave (PSP0-PSP7).

Piedini della porta

RC0/TIOsO/TrCKr I

RC7/RX/DT

RCr/TrOS|/CCP2

i

RCé[X/CK

A, ,nr+r ^^"+h - .^r^ )uru vuc)Lú pur Ld rrd

RC2/cCPr

i

RC5/sDO

Rc3/scK/scL

I

RC4/SD|/SDA

l/O digitali, RE0-RE2, e hanno multiplexate le seguenti funzioni: segnali di controllo della porta

Piedinatura dei ctrcuiti integrati corispondenti ai PlCl6FB7X.

$e s*

e * d* *+ l+

F,iE

H

F-

#

*+E

+

#,,* È

F+ H

ff

'E

S

F ".# ig H.

parallela

E:

tre linee che f UnziOnanO COme

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).


delle memorie e repertorio delte istruzioni Organ izzazione

L'architettura Harvard dei PlCl6FB7X determina l'esistenza delle due memorie indipendenti, una dedicata a contenere le istruzioni e l'altra per i dati. Questa carat-

teristica migliora notevolmente il rendimento del processore potendo accedere simultaneamente alle due memorie, di modo che mentre unalocalizza il codice di una istruzione, nell'altra si legge o si scrive un operando o il risultato dj una operazione. Un altro vantaggio inerente alla separazione delle memorie, è collegato alla possibilità dl progettare la capacita e la dimensione dei bus per ognuna di queste memorie. La memoria di programma dei PlC16F87X è ditipo FLASH, il che indica la sua capacita di tollerare fino a circa 1.000 cicli di scrittura /cancellazione. Dato che la scrittura e la cancellazione si realizzano mediante energia elettrica, non è necessario nmuovere dallo zoccolo il microcontroller per eseguire queste operazioni; tali caratteristiche hanno convinto molti tecnrci ad ulilizzare d ispositivi con memoria

ASH

ognuna che ammette come massimo la memoria FLASH dei PlC16FB7X, sono divise in 4 pagine da 2 K l'una Cosr come nel PIC 16tr84, jl vector di Reset e quello di lnterrupt si trovano rispettivamente negli indirizzi 0000 e 0004 Hex.

Per memorizzare i dati e gli operandi, i PlC16F87X dispongono di due zone diverse. Esiste una zona di

MEMORIA

: r:n:rit: m: ,,,Jsstma supportata dai quattro modelli di Fl

zioni che gesriscono lo stack, Ogni volta che si esegue una istruzione CALL o si produce un interrupt, il valore del PC si salva automaticamente nello stack. Ogni volta che si esegue una istruzione di ritorno dalla subroutine, RETURN, o una istruzione di ritorno dall'interrupt, RETFlE, il valore che si ritrova in cima allo stack si deposita nel PC. C'è anche un'istruzione simile a queste ultime di ritorno, pero con una particolarità, ed e la RETLW Come si vede nella figura, le 8 K parole da '14 bit

|

DrcoDrcE

PlC16F87X che sono stati selezionali e di K n:rnle da 14 bit

I

ognuna. La lunghezza delle l^^-+-ll- otmenStone ^ ^-.^l^ pdrore e ^ regala aila del formato del codice delle istruzioni dei PIC della gamma media. Per poter indirizzare 8 K posizioni, il Contatore di Programma, o PC, ha una dimensjone da '13 bit ed e legato a uno stack LIFO a 8 livelli. ll valore del PC si puo scrivere nello stack e, parimenti, il primo livello dello stack ouo essere caricato nel PC. Oueste onerazioni di salvataggio e di carica del PC con Io stack si realizzano automaticamente senza l'intervento del programmatore. Non esistono istru-

0004 oo05

h h

OTFF h

0800 h

tNDtRtzzl

1'

r3\

OFFF h

r000

h

ITFF h

r800

h

IFFF h

l3 Organizzazione interna e rndtrizzamento della memorra di proqramma FLASH.


I

P95

tro possibili banchi dove sì trovano le posizioni a cui accedere, si utilizzano due bit: RP1 e RP0, che occupa-

REGISTRO DISTATO

Ronis,fro di Stato rome si vede no le 6 e 5 del | \LYIJLI ,L nosizioni vLr I rv vvJ,4,v nella figura.

',", Struttura interna del Registro di Stato, i cui bit 6 e 5, RPI e RP), selezionano il banco della RAM dove sono posizionati gli indirizzi a cui accedere.

,

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 puntare ad una delle '128 posiselezionano il banco. Per zioni del banco scelto, sono necessari 7 bit che arrivano dal codice delle istruzioni dove occupano le sette posi-

memoria dei dati non volat li, di tipo EEPRON/ e un'altra indipendente SRAM volatile. A seconda del modello d PIC la EEPROM puo arrivare ad una capacìtà di 256 byte, 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 studiati nel PlC16FB4, e sono identici Per i suoi fratelli mag-

giori. Nella

zioni meno signìficative. Nell'indirizzamento indiretto la posizione del banco si determina con i sette bit meno

significativi contenuti dal registro FSR, delì'area

INDIRIZZAMENTO INDIRETTO

IN DIRIZZAMENTO DI RETTO

zona

della memoria dei

dati di tipo

RAM,

sono ubicati i registri specifici (SFR), i cui bit controllano

il f unzionamento delle risorse, idispositivi del processore e r registri di utilizzo generale

13

ó

FSR

STATO

CODICE OP. ISTRUZIONE

STATO

0

ffiffiììììì ffiX .-2

7

.r' tNDtRtzzAMENTO

'--aLnNTERNo

DEL

BANco

INDIRIZZAMENTO

SELEZIONE DEL BANCO

ALnNTERNo

orl slNco - 7

(GPR), dove si scri-

vono

i dati

che

desidera il programmatore. La RAM sr organtzza

in banchi da 128 byte ognuno. Ci sono due modelli di PIC'l6F87X che dispongono di 192 byte e gli altrì due arrivano a 368 hrito

Por colozin-

nare uno oel quar-

BANCOO BANCO I

Modi di realizzare I'indirizzamento diretto e indiretto nella memoria RAM.

SETEZIONE DEL

BANCO

BANCO

2

BANCO 3

SFR


della RAM. Per trovare h:nrn rocin utLlrrli ilil ucr rlv in | | nr 9uE)Lv mo modo di induizza-

mento, si utilizza il bit meno significativo del

al bit lRP, che occrrna anche la FSR insieme

posizione meno signifi-

r:tiv: dpl

Renistro di

Stato.

Entrambi

i modi dr

indirizzamento sono snieoati oraficamente nplla finrrr: Pcr nrral+^ ^li-+"il^., ro .;^,,-",JflguarOa l-ra orslr|0u-

re

ffi ffi

ffitrffi

w llllllllllllllllirllllrllffi!l,

00h

0rh 02h

03h 04h 05h 0óh 07h

08h 09h 0Ah 0Bh

zione interna degli indirizzi della RAN/,

0ch

chitettura dei microcontroller PlC, le prime posizioni di ogni banco sono destrnate a contpnore i rpnistri snorifl-

I

04h

85h

|

05h

8óh

r0óh

87h

l07h

88h

ìS$Willlffffiffill

t03h

\rììì

ìliì$ltll,llllrllllrltllffis

t08h

89h

r

09h

8Ah

I

oAh

8Bh

roBh

8Ch

toch

0Eh

0Fh

8Fh

I

0th

90h

I

l0h

9rh

lilh

'ìliiiiliiiliisWffi$Wll

re

$r$$llllIililiifitffi:

-il ro

rem:

ru

tr

il:: MEil

re -

ltrm G!!il

rc

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

92h

I

l2h

r

92h

93h

I t3h

|

93h

94h

I t4h

I

94h

l5h

Kllllllltllllllti\iù.wnr 95h

Ir5h

I

95h

róh

,tlllffiNNlllllllll

9óh

r róh

r

9óh

$ll$|fillllilllllmN

97h

It7h

t97h

98h

I t8h

|

98h

99h

I

l9h

I

99h

r

tAh

r9Ah

ì4h

SFR.

r7h

i

d:ti di riilizzo ntrnprale che necessitano al

84h

r02h

r

tJn

Gli ultimi indirizzi ,-li ogilr h-^-^.^^ ^^^i ut udrìL() 50no dedicati a contenere

r0r h

ru re ru re ffiSffi ret W @ re @ ru W óJn

ilm @N@

re ryru re re ryff

t0Dh

r2h

'- queSIa -i -.^-Ai-^,,^-+î area sr cnrama

82h

8Eh

ilh

ri<nr<o dol nrnra<<nro

8rh

l00h

8Dh

r0h

ci -'r-'ner "il controllo delle

80h

0Eh

0Dh

com'è abituale nell'ar-

re rc ru re

r8h r9h

re

programmatore

rAh

Questa zona si chiama

Mltlllllrlílrlllllllill$wffi i 9Ah

lBh

r:iffi ffi N$ììtlilrlliilliIilì

9Bh

ilBh

I

98h

rch

:llllllllllilfii&nx\

9Ch

I

tch

r

9ch

lDh

ffi re

9Dh

IIDh

r

gDh

9Eh

ilEh

I gEh

9Fh

ilFh

|

9Fh

A0h

|

20h

I

Aoh

GPR Come rinorlalo nella figura, ci sono molti renistri snprifici nelle prime posizioni di ogni banco.

Molti di piu che PIC

1

tFh

nel

6F84. Questo

lnnirn

rEh

20h

è

norrhó i nrrnr'

PIC disnnnnnnn

di

molte risorse (convertr-

tore AD, CCP, porte

di

I thi.aTionp dci raoistri specifici (SFR) e di utilizzo generale (GPR) nei PlCl 6FB7X dei 368 byte della RAM.

.llillllllllltlllllli,tl:llllllli

ffi ffi ffi t il::r ffi ffi ffi Eth

I óFh

F0h

r

70h

|

7th

FFh

Bonco

O

Bonco I

Bonco 2

Bonco 3

.:

I EFh

:," "


t,

t

-

96

P

MNEftIO.

PAAA.

Nlco

lrtETRl

,t

,tt'

CICil

OPERAJZIONE

FORÀTAIO 14 BIT

FTAG

ISTRUZIONI CHE GESTISCONO RIGISTRI

f,d

SOMMA W e

rd

ANDdiWef

clrf

f

CANCETTA;ZTONE

clrw

e

comf decf

rd rd

incf

fd

iorwf

f,d

movf

îd

movwf

i

MOVIMENÎO dif MOVIMENIO di

noP

èe

N ES5UNII.

rlf

Íd

RQIAZIONE di

rrÍ

,,r rà ÍÀ

ROfAaOt{È di f ,c

subwf

swopf ,Iofiwf

000rrr dfllÍftr o0 otol dfff fftr o0 fitr

f

oddwf ondwf

di f CANCEI.I.AJZIONE di W COMPLEMENTO di f DECREMENTO di f INCREMENTO di f ORdi Wconf

k"t t

00

c, Dc, z

z z z

che le ui.ilizza il

PIC'l 6FB4 di cui è dotato Monty. Visto che i PlC16FB7X ap-

z z z

z z

tto f

partengono alla gamma media dei PIC a B

OPER'T'ZEINE,i-';$ì

fo

bú..s.É,,,,1,.

,1.;;,b :::l,tlt\,,,

éúgÉ

,lrlli.l:

ind;ì',,

rf;,:d:

semplice come il PIC'l6FB4 e altri così

MTSSA

,, E;'

nnl-anti Lr | ,Ll

i:,,::.ttlétl;

Pv

;.ffi$,trd*,

trl

K

!orlw movlw

V:,,:tL,:,,,1p;lR.|àLi

r |

AND

I

oW

{k-tt4r' t

sublw

con'ì/il I

xorlw

I ro0r kkkk kkkk

z

1000 kkkk kkkk

z

ll00xxkkkkkkkk ll llOx kkkk kkkk ll l0l0kkkkkkkk

2 r

return sleep

delWATCHDOG

2 2 RITORNO 2 RITORNO rciivcndo un tetterqle in W RIORNO do subroutine 2 MESSA del microprocessore in riposo I indirizzo dg",.illàtrupt

SAtiU a un

0000 0000

ma

nei

ctri <norifiri .l controllo dei disposi-

z

i

tivi.

i

Ognuna

delle

nuove risorse dispone #PD

l00l

I I 0lxx kkkk kkkk 00 0000 0000 t000 00 0000 0l I0 001 I

istruzioni, ron

c, Dc, z

t0 okkk kkkk kkkk 00 0000 0r r0 0r00 #To, l0 lkkk kkkk kkkk OO

nella zona SFR della RAM di registri adenrr:ti

mare

nor Y-' nrnnrrm-

il proprio

nnri:montn #TO, #PD

piedini dei

h:nnn

com-

lnnltro PIC'1

trollino

il

funzionamento. Nella figura esiste una

zona di registl nei banchi 1,2 e 3 che è mappata nel -7n_-7tr (inni{ir' .he r..-^-^ -^li i^..1;.i--, gli indi_ iltutttLLt Iw-/ | t-.iov | lE^. JtytilrrLo Ll udtrLU u o9il

^

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 istruzioni cornspondenti ar PIC della gamma media, dato

l:

'.

t,

i

6FB7X

mrlfinloY:to

molte funzioni comunicazione, diversì temporizzatori, ecc.) e ognuna ha bisogno cìi registri programmabili che ne con-

i

renza non sta nelle c, Dc, z

,,,,1i

mnl+o

PlC16F87X? La diffe-

dfffffff

ll lllxkkkkkkkk r

a rnn

risorse come

cfiÍ dfff fftr

É SPECIAII

iubrotrrine

coll

retlw

lo

stesse istruzioni un microcontrolloer così

ho

ondhr

goto reffie

di

<ihilo no<tira rnn

oddlw:

clrwdt

stesso insieme

lNlERltCArrtBpdC

Goni4

l

btfsc,

l^ ru

sonnÀzKfr{j EOR

fÀ fÉ

Ai+ urL, -,,^^^r'+î^^ )uppur Ldr ru

i<irr rzinni l- nm'À nn<-

4lì::iì.':::,1'j!

bcf bsf

Renlrt.in cli i<fn tzinni dei PIC della gamma media, valido per ì Plcl6FB7X

di

innresso rtscita clock tr(e dr nrrpsti elpmenti. Nella figura è riportata una tabella con l'insieme delle istruzinni doi PIC doll: .ì:mm: mpdi: ll nnrnnÒ rho ooct;<.o i roniq.tr/ Lp i,il ynrru|./yv rnnn L'rho nocticro i hit snnn nrroili rho nprr-eltnno ,ai nrrovi PIC di onerare al rnenlio delle loro potenzialrta, visto che con le loro istruzioni si possono nr^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 operandi immedrati e le istruzioni specrali e di controllo, hanno p"aticamef te lo stesso sign f,cato e la rredesina aprliicazione in tutti i modelli di PIC della qamma medra


Questi sono i poteri dei PICl6F87X resentando questi PIC come

if

ra-

telli maggiori del PIC 16F84, è stato detto che possiedono una capacità di memoria molto maggiore, però sono i dispositivi e le ricnrco rho [\rlirrnrhin h: inrnrnnr:tn:l loro interno quelli che forniscono la vera f

USCITA TMR2

A

REsET

re

NW

,.ilil@

:ffi;

TMR2IF

,A

orza.

W

SSP

4\

4\

Anche se in quest'opera non si dispone di spazi sufficienti per descrìverli in dettaglio, vogliamo fornire un'idea generale sul

îliw."n}:

.rlmnort:montn o lo r:n:ritÀ donli olomenti piu interessanti che sono incorporati ner

PIC

Struttura interna del TMRl con i blocchi principali e i segnali di controllo

16FB7X.

I nuovi temporizzatori o Timer, i moduli di Capture, Comparazione e Generazione di lmpulsi e di Ampiezza Variabile, il Convertitore AD, le Porte di Comunicazione 'Seriale, sono i disposìtivi di cui faremo una breve analisi, senza approfondire il discorso sui registri di controllo, 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 funzione cnmp rrn TcmnorizZatOre/COntatore. Per oestire 16

bit è

necessario concatenare due registri

da 8

bit:

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

TN,4R1

valore 0000 si attiva il flag TMRl F e se si desidera si puo provocare 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 possono

provenire dall'esterno o dalla frequenza di funzionamento del microcontroller (Fosd4). ll TMRl può funzionare in tre modi: 'l ". Come temporizzatore. 2". Come contatore sincrono. 3". Come contatore asincrono. Nlal mnÀn +amnnri77;1gfe il ValOfe COn-

nco/rroso/rrcrr

B

#

ncr

/rrosr

@

4

w

:

,

&

a_

I

ffi

try :,t

il mwx ttW

r=b,

w

IMRì|E

./-\

E@IE --...:-i'

catenato TMR'1H:TMR'lL si incrementa con ogni ciclo di istruzione (Fosd4). Nel modo contatore l'incremento si puo produrre con ifronti 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 diagramma a blocchi del TMR1, in cui possiamo vedere il predrvisore di frequenza '"1ì

Schema a blocchi del temporizzatore TMR2

Questo potente PIC dispone anche del tem-

porizzalore TMRO, pero dato che

il

suo


comportamento è simile a quello studiato nel PlC16F84 nnn in ronsiderazione e ci concentreremo | ,v, , In ,v nrondtrrpmo v,Ll sui due aggiunti: il TMRl appena considerato e il TMR2.

Quest'ultìmo è un temporizzalore ascendente a

e per i

moduli

di

Capture

ro*ffi

8

hit 2ll'intornn nrro ,-JJ-,lonnprp p- q66jrroro lÌluliltLEr rru dol ugr nrr:lo utL, oil -,r-'',,vqlq' innl9uo,- cì per la Porta Seriale tre può realizzarc operazioni speciali

Sincrona (SSP)

9\lO0

e

9lo-o nzlccprffiE

Comparazione. ll segnale di clock del TN/R2 e quello interno Fosd4, prima di essere applicato passa attraverso un prediviso-

@

90 t0\

RC2 ABILITATO

98-o

COME USCITA

grc

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-

70

8\

li. Quando il microcontroller entra in modo riposo s ferma l'oscillatore interno e il TMR2 smette di funzionare.

,: :

:i'.._,:1,

,

Schema semplifrcato elel moclt tln Ce P1 ottanrlo funziona rn modo PWM.

,1

I PlC16FB7X dispongono di due moduli CCB che si differenziano fra loro solo per la nomenclatura, CCPl e CCP2, visto che il loro funzionamento è praticamente ug ua le.

Quando funzionano in modo capture una coppia di registri cattura ilvalore che e presente sulTMR'l alverificarsi di un evento speciale sul piedino RC2/CCP1 per il

modulo CCPl e sul piedino RC'l/T'lOSl/CCP2 per nzlccpr

il

modulo CCP2. Gli eventi che possono accadere su questi pìedini sono:

ffil

ffiry """A

a1'=--=;

1". Un fronte di salita. 2". Un fronte di discesa. 3". Ogni 4 fronti di salita. 4' Ogni 16 fronti di discesa.

4\ 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. Schema generale a blocchi del

modulo CCP| in modo capture

rr^ ò Iutt ln'intoro<<:nte :nnlir:zinno dol mndn r:n+' c la lo uEl lllwuu lqPtulE il rrqrE))orrLq oPPilLdzlullE misura degli intervalli di tempo esistenti fra gli impulsi -r^^ rc -i )r oPPlLorw o url^ l.rin del Plc Lr

-^^r;-

rl

,','1'

ATTIVMIONE SEOUENZIATE IIN CCP2ì

',','

'

In questo modo lavoro, la coppia di registri CCPRl H-L *zuccerB

@

RC2 ABITITATO COME USCITA

ffi^re 4\ F\'

t '"*i

i

mnmro

compara il suo contenuto, in modo continuo, con

configurato come uscita, supporta uno dei seguenti eventi:

Schema a blocchi del modulo CCPI

quando funtiona in modo comparatrone

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

10

Passa a livello alto.

)o

Passa a livelìo basso.


3". Non cambia di stato pero si produce un inter-

t

rupt.

Fì;;ii.r{.:!

l'tt','

fij"í+

,,,---

ln nrroctn mnrln l:rrr ,-"Jro

si ottengono impulsi la

cui

ampiezza del livello alto è di durata variabile, molto utili per il controllo dei motori. ll piedino RC2/CCPl è configurato come uscita, e passa dai ìivelli logici0 e 1 a intervalli variabili di tempo.

intervallo fisso del periodo dell'impulso. Per ottenere il cambiamento di stato del piedino, si utilizza un comparatore che pone a 1 (Set) un flip-flop quando il valore del registro PR2 coincide con la parte alta del TMR2, momento in cui TMR2 prende il valore

00

ffi

ner/rno

ffi uz7lNz7v"'ffi ur/rur

fil uo/ltro

reVoo +

:W 4-f.

Hex.

Dopo il flip-flop si resetta, e si pone a 0 quando un altro comparatore rileva la coincidenza sul valore esistente 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

nrzTmz

SlerrTms S[ us/rNl S[ us/rt'ts7v"' *

ffi

Si vuole ottenere un impulso il cui livello alto abbia un'ampiezza variabile (Duty Cicle), all'interno di un

Sl

[", {.{F # tlÈ,fi l=.l.{É

À {S.+ È-# # 1 i-

$-t -,

f,q

# } -*

il 3'3};-i

reVss Struttura sempliftcata del collegamento del convertitore AD

mantenimento, successivamente questo valore viene portaro al convertitore, che utilizzando la tecnica del-

È- È:

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

l'approssimazione successiva fornisce il risultato digitalp 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-

+

I

a/ t'

E i

TETTURA

BUs TNTERNo DEr DAfl

8\

8>.

V

q\

8\

srNcRoNrSMo Dt USCITA DEI BIT DEI DATI

INGRESSO DEI BIT DEI DATI

r:tn

ctocK

tr# 5CTè #E {*# scRrrruRA

F tr ffi.E&

con i registri di lavoro SSPBUF e 55P5R

*".f,

*q.€ ru

ii€ U

fl

ffi

g'$

#

gt&;H,-{{F

È\$

fi

Fq

Questo modulo chiamato NiSSP, integrato

nei

PlCl6FB7X fornisce un eccellente mezzo di comunicazinnp rnn nli :ltri mirroconlroller o con le neriferiche che lavorano in modo seriale. Ha due modi possibilì di lavoro:

p

Struttura base del modulo MSSP

doi rnllor^r:monti del COnveftitOre AD.

(Serial Peripheral lnterface). C ircuit).

1".

SPI

2" .

lzc (lnter-lntegrated

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

@$sp**é€$w$

e ,$,9 ,#,#ff#€#trqqfu,F de$

trF# E #trffiF"H


impiegato soprattutto nella comunicazione fra circuiti

ffiffi 55

PIC

MAsIER

55

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 sDo sDl 5CK

Comunicazione seriale in modo SPI tra un PIC Master e i due dispositivi che funzionano come slave

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 ritmo donli imnrrl<i di rlnrL " "-Y"

ln ricezione i bit entrano al ritmo del clock tramite un 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 funziona come Master nello schema della figura, mentre nel modo l2C si utilizzano solo due linee per la comunicazione del PIC master con i circuiti integrati che fun-

-==

zìonano come slave. 5DA 5Cr

l.1i';"i.i f USART supporta la comunicazione seriale sincrona

e

asincrona. Puo funzionare come un sistema di comunicazione bidirezionale sincrono o full duplex, adattandosi a una moltitudine di dispositivi che trasferiscono

modo l2C il Master comunica con tutti gli slave tramite due sole linee Nel

=

informazroni in questo modo. Inoltre può lavorare nel modo unidirezionale o half duplex. Riassumendo puo lavorare in tre modi.

MODO ASINCRONO Prcìót87x

TRASMISSIONE

'1"

SERIALE ASINCRONO (Full

2'.

SERIALE

3'.

SERIALE SINCRONO-SLAVE (Half duplex, unidire-

duplex, bidirezionale) SINCRONO-MASTER (Half duplex, unidi-

rezionale). RICEZIONE

ziona le).

Nella figura è riportato lo schema del funzionamenMODO

SINCRONO

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 - uro 'r' '^ ri^^^ ' '^- {-^^uenza ilr cc o rvv controllata internamente uuc

to dell'USART in PEróF67x

dall'USART.

Nel modo sincrono, la comunicazione si realizza su due linee, la DT che trasla ibit in entrambi iversi alla MASTER

SIAVE

Nel modo asrncrono la comunicazione seriale dell'USART utilizza

le linee TX

e

RX,

mentre nel modo sincrono le llnee DT e CK.

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.

',, 't..'!

:.,'


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.