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
Bì
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ó
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
sì
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 $
lù
,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
Sì
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
gù
,. 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
SÉ
È\$
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..'!
:.,'