“E ora qualcosa di completamente diverso” - Esperimenti di traduzione dai Monty Python
Microrobotica Monty Peruzzo Editore - 06 B - Micro Controller
-
Upload
montymicrorobot -
Category
Documents
-
view
278 -
download
3
description
Transcript of Microrobotica Monty Peruzzo Editore - 06 B - Micro Controller
IWCROCONTROLTERlnterrupt per fine scriilurei nellcr EEPROITI
di scrittura netla EEPROM
La delicata operazione
a EEPROM dei dati del PIC 1 6F84 ha una capa-
cità di soli 64 byte, ma il suo pregio sta nella
non volatrlità dei dati. Scollegando l'alimenta-zione, l'informazione memorizzata nelle sue
celle viene nantenuta; ouesta caratteristicarondp nrroqta momoliS indi-spensabile in molte applicazioni
commerciali.l-nmo ni: dotfn in nraee-sv, |,! y,q
denza. ogni indirizzo di questampmoria nlro esqprc scritto ìn
modo indipendente, anche se
la grande quantità di tempo(relativo) che richiede questa
completata. non è possibile ripetere I'operazione stessa,
ìnoltre conviene verrficare che non siano stati prodotti
errori durante la sua realizzaztone, per questo test esi-
stp rn fl,an dpdirato npl rpnicfrn di rnntrgllo della
EEPROM.
i1t:ttll1:)l::
I bit di permesso dell'interrupt GIE e EEIE devono essere é 1 per permettere un interruptquando termina la scrittura della EEPROM e il flag EEIF passa a 1 .
operazione, a volte rappresenta un problema. Scrivere
un byte nella EEPROM puo richiedere sino a 10 ms.
Questo tempo è enorme, se comparato con la veìocttà
di lavoro del microcontroller; per dare un'idea bastr
pensare che un PlC16FB4 funzionante con quarzo da
4 MHz può eseguìre 10.000 istruzioni normali nel
tempo in cui si scrive un byte nella EEPROM.
ll tempo di scrittura di una cella della EEPROVI non
è costante, dipende dalla temperatura, dalla frequenza
di campionamento, e da altri parametri; pero questo
tempo è critico, perche se non si compie non si riesce a
scrivere in modo corretto ìl byte nella memoria, e il
sistema resta degradato e inservibile. Pertanto è assolu-
tamente necessario verificare con certezza che l'opera-zione di scrittura terminì correttamente.
Così come ner le altre tre cause di interrr rnt nel
PIC 16F84, l'interrupt per frne della scrittura nellaFFPROIV psinp la oestione di tre bit:
- GIE: Permesso Globale di Interrupt.- EEIE: Abilitazione dell'interruot oer fine scrittura
nella EEPROM.
- EEIF: Flag di fine scrittura della EEPROM
Quando termina l'operazione dì scrittura di un byte
nella EEPROM, il flag EEIF viene messo a 1 automatica-mente. Sino a che l'operazione di scrittura non e stata
Per poter conoscere immediatamente la fine delle
operazioni, è raccomandabile attivare un interrupt incur il processore verifichi che le procedure siano termi-nate correttamente e possa scrivere gli eventuali byte
SUCCESSIVI,
I bit GIE e EEIE sono ubicati nel registro INTCON,
mentre il flag EEIF si trova nel bit 4 del registro
EECONl; questo flag viene messo automaticamente a
1 quando termina la scrittura.
Dobbiamo considerare che quando si utilrzza un
interrupt per fine scrittura nella EEPROM, all'internodella routine dedicata, prima dell'istruzione di ritornodobbiamo porre il bit EEIF = 0, perche in caso contrarioappena ritornati al programma principale si ripetereb-
be la chiamata alla routine di interrupt. Nella figura e
riportata la situazione dei bit che gestiscono l'interruptper fine scrittura.
Quando GIE = EEIE = 1, e termina Ia scrittura nella
EEPROM, il bit EEIF si pone a 1 e si genera un interrupt.La routine dedicata deve esaminare se vi sono stati
eventuali errori, testando il bit che lo segnala, e suc-
cessivamente porre EEIF = 0 prima del rìtorno al pro-
gramma principale.
Una buona tecnica e verificare che sia stato scrittonell'indirizzo voluto il valore corretto. Nello schema
logico della figura si mostra il modo in cui si genera un
interruot oer fine scrittura nella EEPROM.
illICROCONTROLLER
Schema logico che mostra il controllodella generazione di interrupt per fine scrittura nella EEPROM
. t': l':.,.,:,..,i:'i]." I
ll microcontroller è in continua esecuzione del oro-gramma a cui è stato dedicato, il quale controlla moltielementi esterni che fanno oarte dell'ambiente di lavo-ro. Questi dispositivi sono influenzati dalle caratteristi-che e dai parametri di molti fattori, sia interni che
ambientali. Se ad esempio stiamo controllando un
motore, la velocità di giro dell'asse è un fattore fonda-mentale per lo sviluppo delle sue operazioni, pertanto
dobbiamo verificare continuamente che rimanga all'in-terno'di margini adeguati, un altro fattore fondamen-tale potrebbe essere la temperatura. Sia la velocità di
giro che la temperatura sono valori di cui deve tenerconto il microcontroller, e reagire immedìatamente in
caso vengano superati i limiti stabiliti. Per poter rispon-
dere in modo immediato alle condizioni esterne, il
microcontroller dispone degli interrupt. Nel caso del
PIC 1 6F84 sono state descritte quattro cause che posso-
no oenerare interruot:
2'. Che vada in overflow il fMR0 al termine di un periodo di tempo.
41 Che sia terminata la scrittura di un byte in una cella della EEPR0M.
Quando si progetta un'applicazione si deve adatta-re una di queste possibili cause di interrupt alla gran-dezza esterna che si intende controllare, per interveniresu di essa immediatamente. Nel caso di un sensore digi-tale, che cambia rl suo stato logico alvariare della situa-
nellcr EEPROilI
zìone che sta controllando, come ad esempio un sen-
sore optoelettronico che rileva il passaggio di un ogget-to, si puo collegare direttamente l'uscita del sensore al
piedino RB0 in modo che generi un interrupt. Quandoil parametro è analogico, puo essere necessaria la sua
conversione in digitale, mediante un ADC (Analog toDigital Converter), oppure l'utllizzo di un comparatoreche cambi lo stato della sua uscita se il valore analogi-co supera una soglia determinata. Per chiarire al lettorela gestione degli interrupt sia nell'aspetto fisico che inquello logico descriveremo un progetto basato sul
Ptc 16F84.
. ,, ', ,'t." 't.'.:1,
Prendiamo in considerazione il progetto dì un allarmeantifurto per un'automobile. Per controllare l'aperturadelle quattro porte principali della macchina si utilizza-
no quattro sensori a contatto che saranno collegati alle
quattro linee più significative della Porta B (RB4-RB7).
Quando si attiva I'allarme, l'apertura di una qualsiasi
delle porte genera un cambio di stato in uno dei pin
RB4-R87, che saranno programmati in modo interrupt,originando il medesimo. La routine di interrupt ha il
compito di attivare due sirene o altoparlanti di grande
potenza, controllati dai piedini RAO e RA'l della Porta Adel PlC16FB4. Ouesti elementi acusticì resteranno in
funzione sino a che un sensore ad infrarossi riceverà il
comando adeguato originato da un telecomando a
distanza. Questo sensore sarà collegato al piedino
RB0/|NI, come mostrato dalla figura.Lo schema elettrico corrispondente all'allarme anti-
furto, è riportato nella figura alla pagina seguente, in
cui sono stati aggìunti i circuiti ausiliari dr alimentazio-ne, clock e reset.
Schema generale del sstema di allarme antifur-to.
INTERRUPISCRITruRA
EEPROM
EEIF
EEIE
SIRENAI
SIRENA2
P50
Nelì'allarme per l'automobile abbia-
mo un programma principale che si
occupa di configurare le porte per
adattarle alle periferiche, dopo di che
entra in un ciclo dr attesa da cui non
esce se non si attiva l'allarme per l'a-pertura di una porta, o si scollega
l'allarme. Queste piccole operazioni,
si riflettono nell'organìgramma della
figura.L'implementazione, con le istruzio-
ni del PlC, dei blocchi che compon-gono I'organigramma, si realizza coni <onrrpnti n:<<i'
Per chiarire la programmazìone del
regrstro INTCON per l'abilitazione
27pF
i+PoRrA4'#PORTA3t+PORTA21'+POnrAt
frqA A,-Itlv\Ar
2". Definizione di inizio del programma principale e inizio del ptogramma di
4". Configurare la pora B (ome ingresso.
6". Attivare i bit di permesso dell'intenupt, il bit di permesso globale, quello
di intenupt esterno tramite RBO e quello per il cambio di stato nelle linee
RB+RBi,
degli interrupt, riportiamo nella figura Ia struttura inter-
na del medesimo.Nella pagina a lato svilupperemo il programma di
allarme, con i gruppi di istruzioni divisi nelle parti prìn-
cipali di cui è composto.
SENSORE ADINFRAROSSI
Schema elettrico semplificato dell'allarme antifurfo
Un buon programmatore ha la capacità di ordinare ìl
lavoro di sviluppo in parti, o moduli, di piccole dimen-sioni. In questo modo al momento di scrìvere le istru-
zioni farà nferimento a piccoli moduli, facili da eseguire
e da capire, e rapidi da editare.Por rennrpqpnlartr comodamente la divisione deì
problema da risolvere è fortemente consigliabile utiliz-zare gli organigrammi.
€onfiguroporle
Ciclo
!ip' Allorme?
Roulinedi interrupt
Organigramma del programma principale Struttura interna del registro di controllo degli interrupt INTCON.
TWCROCONTROttERInterrupt per fine gcrlftura nellei EEPROilI
PROGNAITTffIA PRIIICIPA1E DI AII.ARThE
Definizione delle caratteristiche e dei registri del PIC
LISTRADIXWF
STATOPORTAAPORTABINTCON
P=16F84HIXEQUEQUEQUEQUEQUEQU
01
0x030x050x060x0B
Definizione degli indirizzi di inizio del programma principale e della routine di interrupt
ORGgotoORG
9otoORG
0inizio4inter5
Configurazione delle porte di ingresso e uscita
tntzto bsfmovlwmovwfmovlwmovwfclrfclrf
STATO,5b'0000 0000'PORTAAb'1111 1111'PORTABPORTAAPORTAB
Bit di abilitazione dell'interrupt
ciclo
movlwmovwfgoto
b'r001 1000'INTCONciclo
Programma principale
INTCON,Ofermareallarme
PORTABb'l001 1000'INTCON
PORTAA,O
PORTAA,OPORTAA,l
PORTAA,lsirena
PORTAAPORTAB,Ob'1001 1000'INTCONciclo
;Ciclo infinito in attesa di interupt
inter
allarme
sirena
btfssgotogoto
clÉmovlwmovwf
bsfNOPbcfbsfNOPbcfgoto
clrfbcfmovlwmovwfgoto
end
fermare
,;.
5r
fimportanzadel consumo
bbiamo un distributore di bibite in mezzoalla spiaggia. Ha avuto una buona acco-
cesso. Pero lr non abbiamo una presa dicorrente, e il distributore deve funzionare
con una batteria, o delle pile ricaricabilr.
Evidentemente è fondamentale che il consumo dellamacchina sia molto basso, per evitare le continue sosti-tuzioni delle batterie, e periodi con mancanza di servi-zio. Inoltre funziona realmente da mezzogiorno fino a
sera, fuori da questo periodo si awicina solo qualchecliente occasionale.
Non c'è attività nemmeno nei giorni in cui manca ilsole, quindi ci sono lunghi periodi in cui la macchinanon funziona.
Per ridurre il consumo sarebbe auspicabile che la cir-cuiteria elettronica consumasse energia solamentequando deve fornire il servizio. ll caso del cellulare, è
simile a quello appena esposto, trascorre lunghi periodidi tempo in cui non è utilizzato, in attesa di ricevere^,,-l-h^ -l-i-*-+-v uorLr rE Lr ild I I to Ld.
Nella maggioranza delle attrezzature portatili ali-mentate con pile, e che non dispongono di energiaelettrica, conviene ridurre il consumo al minimo neiperiodi in cui sono in attesa di realizzare un'operaztone.
ll nostro microcontroller puo rimanere molto tempo in
uno stato in cui consuma una quantità ìnsiqnificante di^^^"^;^ ^l^++.;--qr rEruro crctLt tLd.
Questo modo si chiama di riposo o di basso consu-mo, e la corrente di alimentazione tipica, che e circa 2
milliampere, passa ad essere inferiore a 10 microampe-re; questo significa che è possibile alimentarlo con unapiccola pila, che può durare sino a due anni.
Questa caratteristica lo rende molto adatto a quelleapplicazioni in cui ci siano lunghi periodi di inattivrtà in
attesa che succeda qualche evento esterno, come l'at-tivazione di un pulsante. Durante questa condizione si
dice che il microcontroller sta dormendo. ll telefono cellulare resta molto tempo in stato di attesa
MODO RIPOSO
STATO RISORSA
Oscillotore principole fermo
WDT
linee l/O congelote
Consumo minimo
Tabella che raccoglie le principali conseguenze degli ingressi nel modo riposo.
Per addormentarsi al microcontroller basta eseguire
l'istruzione SLEEP, di conseguenza il primo elemento
che si ferma è l'oscillatore principale, lasciando il com-
pito di produrre gli ìmpulsi di lavoro alla frequenza
Fosc/4.
ln questa condizione il processore non esegue alcu-
na istruzione, né tantomeno funziona ilTMR0 dato che
non riceve impulsi interni.Per fare in modo che il TMR0 non funzìoni con gli
impulsi esterni, si porta il piedino RA4/TOCLKl aì positi-
vo. In questo stato dobbiamo evidenziare che il
Watchdog che rimane in funzione, entrando in modoriposo viene resettato, o reinizializzato, però continua a
funzionare, dato che dispone di un oscillatore proprio
e indipendente. In questo caso i flag del registro STA-
TUS resteranno TO# = '1 e PD# = 0.
Le linee di ingresso e uscita mantengono lo statoprecedente all'ingresso in modo riposo, e quelle che
non sono collegate a delle periferiche e che assumono
lo stato di alta impedenza si raccomanda di colìegarle
al positivo o a terra, per evìtare possibili fughe di cor-
rente. Vedere la tabella della fiqura.
CONSEGUENZA
Non si eseguono istruzioniNon funziono il TMRO
{RAM/TOCKI collegoto o VDD}
- Si resetto però conlinuoo funzionore
- Montengono lo stoto precedente
- Posso dq 2mAo meno di IOpA
:'l
Il microcontrollore si addormenta eseguendo l'istruzio-
ne SLEEP nel programma e si sveglia, riprendendo il suo
funzionamento normale, per le seguenti cause:
2', Per l'ovedlow del
Quando si attiva ìl piedino MCLR# e ìl PlC16F84 è
stand-by, si sveglia e inizia ad eseguire la prima istru-
zione del programma, che risiede nel Vector Reset. Lo
stesso succede quando va in overflow il WDT: se il
microcontroller stava dormendo, si sveqlia e si reini-
zializza.Per determrnare quale delle due cause ha origina-
to il Reset, sì testano iflag TO# e PD# del registro
STATUS, seguendo i valori indicati dalla tabella della
f igura.
Quando si sveglia il PIC si sviluppa la sequenza del
VALORE DET FLAG
PD#=0
PD#= |
TO#=0
TO#= |
Stato e significato dei flag PD# e TO#.
Iemoorizzalore OST rhe ritarda di 'l024.Tosc l'inizio del
f unzionamento normale, con l'obiettivo di dare il
tempo alla frequenza di funzionamento di stabilizzarsi.
. ':.. 1.., 'l'
La terza causa che puo fare risvegliare il PIC avvienequando si verifica un interrupt. Dei quattro possìbili
INDICAZIONE
- Esecuzione SIEEP. Modo riposo
- Si è sveglioto
- È ondoto in overflow il WDT
- Non è ondoto in overflow il WDT
RISVEGLIO CON
STATO DEI BIT
GIE- 0 (tnibizione)
RBIE= INTE- EEIE-- I
PC + | (Successivo o sleep)
PC + 2 (Successivo)
PC + t (Successivo o sleep)GIE= I (Abilitozione)
RBIE- INTE= EEIE= | 0004 {Vector di lnterrupt)
interrupt che ammette il PlC16t84, quella relativa al
TN/R0 non e possibile, dato che mancano gli impulsi,quindi sono valide soÍo le altre tre opzioni (vedi tavolain alto alla pagina seguente).
Quando venne eseguita l'istruzione SLEEP, il PC si
fermò caricato con I'indinzzo dell'istruzione successiva(PC+1).
INTERRUPTI
ISTRUZIONI SUCCESSIVE :
lstruzioni che esegue il PlCl6FB4 quando si sveglia tramite un interrupt a seconda del valore del bit GIE
P52 MTCROCONTROttERll modo riposo
2'. Cambio di stato in uno dei piedini RB7:R84,
Per accettare uno dei tre interrupt e necessario che i
relativi bit di abilitazione (lNTE, RBIE, e EEIE) siano a 1.
ln questo caso quando si attiva uno deiflag di interruptsi testa il valore del bit GlE, che è il bit di abilitazionenlnhrlo donli intorrr rnt"-v" "
Se GIE = 1 e quindi gli interrupt sono abilitati, il PIC
si sveglia ed esegue l'istruzione (PC+1) successiva a
SLEEP, e infine si carica nel PC l'ìndirrzzo 0004 H, sal-
tando alla routine di interrupt.Dato che a volte non sì desidera eseguire nessu-
na istruzione prima di saltare alla routine di inter-rupt, dopo SLEEP si inserisce un'istruzione NOP.
Se si genera un interrupt abilitato a livello indivi-duale ma non a quello globale, cioe con GIE = 0
(lnibizione Globale), il PIC si sveglia dallo stato di
riposo, e continua l'esecuzione del programma a
or 02 03 04 al a2 03 a4 Qr
t I l l I f 'g ,'
PIEDINO INT
INTF flos(|NTCON <t>)
partire dall'istruzione successiva a SLEEP comemostrato nella tabella della figura.
Quando GIE = 0 e si attiva il flag di un interruptche ha 1 sul bit di abilitazione individuale, può veri-ficarsi una delle seguentì condizioni:
1") Se l'interrupt avviene prima dell'istruzioneSLEEP, questa si completera come se si trattasse di
un'istruzione NOP. Non si cancella né il WDT né il
suo Divisore di frequenza. ll bit TO# non vienemesso a 1 e il bit PD# non si cancella.
2") 5e l'interrupt avviene durante o dopo l'istru-zione SLEEP, il microcontroller si sveglierà immedia-îamente dono aver esporrito l'istruzione SLEEP Si
cancella il WDT e il suo Divisore di frequenza, il bitTO# passa a 1 e il PD# passa a 0.
Per assicurare la cancellazione del WDT quandosi esegue l'istruzione SLEEP, si raccomanda di met-tere davanti ad essa l'istruzione CLRWDT.
Nella figura è presentato un cronogramma che
illustra la forma di risveqlio del PIC tramite inter-ru pt.
or 02 a3 04 0l 02 a3 04 Qr 02 a3 a4 ar a2 a3 a4
;,r$ 1,,|'|,,1'l f::1 1 I,,i,I,[.]-']
GIE bit{tNTCON <7>) < PROCESSORE > ':. ::::'..:..:'.t,'
ir.iirìHi-si
-PC
; '"tlfitooìf Insr (PC)= srEEP Inst {PC+l}
'tTJ,fl!ilf hsi(PC-r)
i NoTE i;, 1. XT, HS, o LP sono i modi possibili per l'oscillotore. I', 2. Tost = 1024 lost. Queslo ritrordo non c'è nel modo RC. t
3. Se si suppone che GIE = I ol suo risveglio il processore solto ollo routine di interrupt.Se GIE = 0 l'esecuzione conlinuo con le istruzioni successive ollo sleep. i,
4. CTKOUT non è necessorio in questo modo, però si uso come riferimento. j
Cronogramma del risveglio del PIC al prodursi di un interrupt.
lnsi (PC+l) Ciclo Dummy Ciclo Dummy
MICROCONTROLLER
II Micro PIC Programmer:uno scrittore di PIC
Un microcontroller è un piccolo computer, che esegue il
programma che si trova scritto nella sua memoria, per
assolvere al compito a cui è stato destinato. La memo-
ria dove risiede il programma non deve essere volatile,
le istruzionr devono rimanere inalterate anche se viene
tolta l'alimentazione.
Quando il programma risiede nella memoria ROM o
in un modello OTP (One Time Programmable), non si
puo né cancellare né modificare; mentre se la memoria
di programma è di tipo EPROM, EEPROM oppure
FLASH, si puo scrivere, cancellare, e riscrivere un nume-
ro di volte molto grande.
La scrittura del programma sorgente. e la sua suc-
rwic. (l.ì) systa,t's\È Frrdirroertn
ll kit dello scrittore MICRO PIC PROGRAMMER
è composto da una scheda elettronica, un dischetto con il programma, il cavo per il collegamento al PC e il manuale d'uso in italiano.
cessiva compilazione, sono fatti su di un personal com-puter, utilizzando i programmi necessari forniti dal fab-bricante del microcontroller o da una ditta esterna. Una
volta ottenuto il codice binario, o esadecimale, che
deve essere memorizzato nel PlC, si passa alla fase di
scrittura, tramite l'hardware esterno, collegato ad una
porta del PC, da cui si scarica il programma in questio-
ne, con l'ausilio di un software di comunicazione fra il
PC e lo scrittore.
Per scrivere i PlC, oltre ai dispositivi forniti dal fabbri-cante, ve ne sono moltr altri sviluppati da ditte esterne.
Per questa spiegazione abbiamo scelto il programmato-
{wattaaaaaaaatltjjtlllll:11::iìrìììììilri.ffi Birrrrllllr,
ONTROLTER
: . '::.
'' I l
Fotografia del Micro PIC Programmer collegato alla porta parallela del PC
re dr PIC N/ICRO PIC PRO-
GRAMMER della ditta "MSE
Microsystem Engrneering ".
Si tratta di uno scrittoredi PIC di gamma media,caratterizzato dalle sue ri-dotte dimensioni, dal bassoprezzo e dalla semplicitàdi utilizzo. Fra i PIC chenro scrivere troviamo ilY""
PlC16F84, e i moderniPIC'l 6FB7x.
E basato su una scneoa
in cui si trova tutta la circui-teria elettronica, compresigli zoccoli su cui inserire il
PIC che si desidera program-mare.
ll sistema comprendeanche un cavo a 25 fili da
collegare alla porta parallela
Fotografia della scheda elettronica del Micro PIC Programmer. Anche se disponesolo di due zoccoli liberi, esrtono molti adattatori per gli altri tipi di contenitori del PIC
MICROCONTR,OLLERUno scriltore di PIC
del computer. Uimpiego di questa porta permette una
maggiore velocità di scrittura e una maggiore protezio-
ne del PC, dato che la scheda dispone di alimentazioneautonoma.
lnoltre è incluso anche un dischetto con il oro-gramma di comunicazione e controllo PICME-PR, e leinformazioni tecniche sull'utilizzo e sul funziona-mento.
Questo programmatore dispone di un circuito per la
stabilizzazione delle tensroni di alimentazione, quindipuò funzionare sia con due pile da 9 VDC che con un
trasformatore da 220/15 VAC e una corrente uquale osuperiore a 0.5 A.
Anche se sulla scheda del MICRO PIC PROGRAMMER ci
sono soìamente due zoccoli da 1B e da 40 piedini per
inserire i PIC da programmare, esistono diversi adatta-tori che supportano i modelli a 2B piedini, con conteni-tori di differente larghezza, permettendo l'uso del pro-
grammatore con la maggior parte dei PIC della gamma
media. Per proteggere i piedini del microcontroller
Fotografia dello zoccolo a forza di inserzrone nulla, e un adattatore per un PIC con contenitore diverso.
durante la fase di scrittura, in cui bisogna inserire e
togliere il circuito integrato dallo zoccolo del program-
matore, si possono uttlizzare zoccoli a "forza di inser-zinno nr rll: " rnmo 61 lnlln Ànllr {n+nnrrfir4rvr rE ruro , lvrrs vucllu uEllo luLU9lollo.
' . . ' jt ,
"
tinizializzazione del funzionamento del MICRO PIC
PROGRAMMER e molto semplice e rapida, e consta di
quattro passi:
1" Passo: Cooiare il software PICME-PR del dischet-
to, in una subdirectory sull'hard disk del PC.
2" Passo: Collegare il cavo da 25 fili fornito insieme
al programmatore alla porta parallela del PC.
3" Passo: Fornire la tensione di alimentazioneallo scrittore, o con due pile da 9 VDC o con un tra-sformatore da 220/15 VAC e una corrente superio-re a 0,5 A.
4" Passo: Eseguire dal PC il programma PICME-PR
con il quale si possono realizzare le funzioni di lettura,
scrittura, verifica, cancellazione, ecc. del microcontrol-ler. Dovrà aooarire neì monitor del PC la finestra di lavo-
ro rioortata in fiqura.
I'IICROCONfROttER
Videata di lavoro del aroqramma PICME-PR.
Quando si esegue il programma PICME-PR, sul monitorappaiono una serie di finestre e dì pulsanti di comando,-^^ i ^,,-li -; -++i,,1^^ tt ttté lo fr rnzinni del nrcon I quarì sr arrvano ,. --, tr,ogramma-tore, che descriviamo di seguito:BUFFER DELLA MEMORIA DI PROGRAMMAÈ la finestra più grande della videata, e in essa appare il
contenuto che arriva da, o che deve essere trasferito a,
la memoria del codice interno del microcontroller.Mediante i pulsanti adeguati si puo visualizzare tutto il
conten uto.SELEZIONE DEL MODELLOln nrocf: finpctr,a qi cronlip il Pll- rho <i dociÀo'. ^'^rL Jr uLrluEIo PIU-
Ofammafe. F Of OaniZZ=+: in a' ,a++rn ^r, ^^i di modelltvtYutt'LLara ilrquqLLrv gruPpt I
16C6X, 16C62X, 16C7X, 16C84 (16F84). Selezionandouno di questi gruppi appare un menu a tendina, con i
diversi modelli disponibili. Dopo aver selezionato quelloche si desrdera, nella parte inferiore della f inestra si pos-
sono leggere le caratteristiche piu importanti del
modello scelto,
PAROLA DI CONFIGURAZIONETramite olestà finestra si scenlie ,a conf iarrrazione di
lavoro del PIC: protezione del codice, attìvazione del
Watchdog, Brown-Out, Power Timer e tipo di clock(XT).
VERIFICADI CANCELLAZIONE
Quando si attiva questa^^-i^^^ +. .++- l-
--opzrone, IUIIa ta memonadel circuito integrato, prima
della fase di scrittura, e sot-toposta a una verifica di can-cellazione.ID/CHECKMediante questa frnestra, si
puo scnvere un numero dr
identificazione che verrascritto nella memoria del PIC
(parola di identif icazione) Inegual modo verra visualizza-to il "Check-sum" delconte-nuto attuale della memoria.APRI FILE
Questo pulsante permette di
leooere il contpnrrto di un
file eseguibile in formatoINTEL.HEX e depositarlo nel
buffer della memoria.
PROGRAMMA TUTTOTrasferisce il contenuto del buffer di memoria e la
Parola di Configurazione attuale nella memoria interna
del microcontroller.
PROGRAMMA PAROLAScrive unicamente la parola di configurazione attualesul microcontroller, lasciando inalterato il contenutodella sua memoria interna.VERIFICA
Verifica il contenuto della memoria interna del PIC con il
contenuto del buffer di memoria. Se viene rilevata qual-
che differenza appare il corrispondente messaggio. Si uti-ltzza per verificare la corretta programmazione del PlC.
LEGGI PIC
Legge il contenuto della memoria interna del PIC e lodenosita nel hrrffer dolla memoria.
CANCELLA PIC
Cancella il contenuto della memoria ìnterna del PlC.
Questa icona risulta attiva solo quando la memoria e di
tioo FLASH e ouo essere cancellata.VERIFICA DI CANCELLAZIONEVerifica che la memoria interna del PIC sia totalmentecancellata.ESCI
Chiude il programma PICME-PR e restituisce il control-lo del PC al sistema operativo.
NilICROCONTR L[ERConcetli e utilifer del di sviluppo
It MICRO PIC TRAINER:
un sistema di sviluppon sistema di sviluppo è un insieme di stru-menti hardware e software, che permettonodt realizzare tutte le operazioni necessarieper porre in essere un progetto basato su di
un microcontroller.Mediante un sistema di sviluppo si puo editare il
programma, memorizzarlo, cancellarlo se la memoria lopermette, compilarlo, assemblarlo, eseguirlo in temporeale e farne il "debug", owero la messa a punto.
Per poter eseguire queste operazioni e necessario
uno scrittore/cancellatore, un insìeme di periferiche tipi-che, da collegare ai piedini di l/O del microcontroller,
I'alimentazione e un pacchetto software contenentel'editor per scrivere il programma, rl compilatore, l'as-
semblatore, il simulatore e il proqramma di comunlca-zione e controllo.
Per questa descrizione ci siamo basati su un sistemadisviluppo economicamente accessibile, efficace e sem-plice da ultlizzare, denominato MICRO PIC TRAINER
della ditta "MSE: Microsystem Engineering".È destinato ai PIC della gamma media, con un mas-
simo di 28 piedini, fra cui troviamo anche il PlC16FB4.
Nella figura si puo vedere l'insieme dei materiali checompongono il MICRO PIC TRAINER.
;$
f
lnsieme dei materidi che formano il sistema di sviluppo MICRO PIC TRAINER
. .'., "r,,' | .',.,i',.,,'. .,t,,.1,,....,,',
Nella tabella seguente sono riportate le caratteristiche e
i componenti principali di cui è composto il MICRO PIC
TRAINER.
2. - Frequenza di lavoro standard da 4 MHz, che può essere cambiata
sostituendo il cristallo di quarzo.
4, - Cinque ingressi digitali implementati con cinquecommutatori,
6, - Otto uscite digitali collegate a otto diodi LED o ad un display
8. - Possibilità di collegare e scollegare le periferiche mediante
lumpers.
10. - Circuito scrittore "in circuit". Permette di scrivere un PIC montato su
uno qualsiasi degli zotcoli a disposizione, ll PIC'!6F84
si può scrivere, cancellare e riscrivere tutte le volte che si desidera,
senza toglierlo dallo zoccolo.
12. - Connettore DB25 a 25 fili per il collegamento con la porta parallela
del PC.
14. - Tutti icomponenti che compongono il MICR0 PIC TMINER sono
montati su di un circuito stampato professionale, a doppia faccía, con forimetallizzati, ampiamente serigrafato, di dimensioni EUROCARD da
100 x 160 mm. lJinsieme può anrhe essere acquistato in kit, da montare.
il controllo del sistema di sviluppo si realizza per
mezzo del PC, al quale si collega tramite la porta paral-
lela. Dispone inoltre di un connettore chiamato PIC-
BUS, tramite ìl quale sono portati aìl'esterno tutti i
segnalì di l/O e l'alrmentazione del mrcrocontroller. Con
Scheda MICRO PIC TRAINER
questo connettore si puo espandere verso l'esterno il
N/ICRO PIC TRAINER, permettendo la connessione di
numerose schede di espansione, sviluppate dal fabbri-cante stesso, oppure con le schede sviluppate dall'uti-ltzzaTjre.
Quando si lavora ad un progetto basato su di un
microcontroller, uno dei compiti piu comuni è la ste-
sura deì programma, e la verifica della sua efficienza.ll progetto si divide in moduli, e la stesura del softwa-re che controlla ognuno di loro, propizierà ìl risultatof ina le.
Per verificare l'idoneita delle istruzioni di ognì
modulo, dobbiamo provarle ed eseguirle in temporeale sulle periferiche o sui dispositivi da gestire. ll
sistema di sviluppo MICRO PIC TRAINER, collega e
scollega ai piedini di l/O del PIC le periferiche di cui
dispone: commutatori, pulsanti, potenziometri, diodiLED, display a 7 segmenti, e anche un display LCD.
Inoltre tramite il connettore PICBUS, è possibile
aggiungere qualsiasi componente esterno.Dato che ìl dispositivo e collegato alla porta paral-
lela del PC, quest'ultimo è utilizzato per editare, com-pilare, assemblare e simulare i programmi.
Dopodiché il programma oggetto si scarica nella
memoria del PlC. Infine si esegue questo programma
sul sistema di sviluppo, e si analizzano i risultati otte-nuti sui dìspositivi del mondo reale, che sono le peri-
feriche che abbramo collegato ai piedini di l/O. Alla
vista diquesti risultatisi può valutare se ilsoftware che
abbìamo scritto funziona o meno, passando alla suc-
;
cessiva fase di messa a punto e
alla ripetizione del processo.
' : :l : ".1,'i: l. y ,'i:::, i :': :
l: :t :: t: :!i!: :: ;''i:';.';;1,'ii,. :;.:,.1: : 1;
Anche se sulla scheda del MICRO
PIC TRAINER ci sono solo due zoc-coli da 1B e 28 piedini, esistonodiversi adattatori che permettonodi lavorare con i differenti modellidi PIC e di piedinature. Come rife-rimento ricordiamo che l'adattato-re "2OC0603" adatta i PIC a 28piedini con drmensione 0.6" alla
dimensione 0,3"; invece lo"7OC8lx" è un kit di adattamen-to ner I'tiiltzzo dei PlC16t87x.
Raccomandiamo l'uso deglizoccoli "a forza di inserzionenulla ", che dispongono di unar^,,- -r-^ -^.^ i {^.i ^ 'acilita l,in_|EVC Lt IE OPtE I tUI I C
serzione e l'estrazione dei PlC.
Grazie al connettore di espansionePlCBUS, è possibile collegare al MICRO PIC TRAINER
una serie di schede, alcune delle quali sono descrrtte di
Seguito, e che offrono molteplici possibilità di sviluppo.
MICRO PIC TRAINER PLUS
Basata sul collegamento con il bus l2C permette l'im-piego di nuove periferiche, come le tastiere matriciali,un visualizzatore da 4 display a 7 segmenti, convertito-n AD, clock in tempo reale, espansione della memoriaRAM non volatile, nuove porte di l/O, ecc.
MlcRo Plc roMeî'te a d snos'z,onp do'l'r,rilizz,'tnro norifori6le indu-stnalr come motorì DC, microrelé, cicalini p ezoelettrict,sensor ottici, controlli di illuminaz one, ecc
lVì5x84
Scheda control a'ta da un PIC 1 6FB4 e adatÌabrle tramiteI connettore PICBUS, orientata a control o di motoriDC c PAPeadre's a'tri senso'r. F ascneda n"r.rinaledel microrobot PICBOT-2.
:i ;i Í:i f . í ii # ÉÌi:l +: ;i r--, i4,i {; ii: s. j;Tix
.:' i- i'.il,i{!t i.! ii;{{." i'fi;":,iri,,! g fiOltre al manuale dell'utilizzatore, realizzato in rtaliano,per i -ostrr lettori, che accompagna il sistema d svilup-
Collegamento del sistema di sviluppo alla porta parallela del PC.
po e che contiene sezioni sul montaggio, messa in mar-cia, installazione del software, funzionamento, moduloLCD e tutorial per realizzare i primi progetti, si possono
trovare su Internet gli aggiornamenti del software e leultime novità consultando il sito: www.microcontrol-ler.com.
Per fornire a professori e ad autodidatti un metodopratico e chiaro per gestire il N/ICRO PIC TRAINER, la
ditta costruttrice ha sviluppato un "corso di progettop.atico con il PlC", in cui la prima parte e dedicata al
PIC'1 6FB4 con esercizi semp ici, e la seconda parte pro-nnnA Irn: cnllaz ana di ennlir:.inni ^i,' .',----, ,, -, dpfJilLd4uf ìt FJtu dvdtìtaIe realtz-
zate con il PIC 16F873.
Anche l'opera edita da N/c Graw-Hill "Microcon-
troladores PlC. Drseno Préctico de Apiicaciones" e scrit-ta da Jose Vl" Anguìo, Susana Romero e lgnactoAngulo, tltlizza ll MICRO PIC TRAINER come strurnen-to base pe' l'esecuzione d, turri g1 ese.c z e g i esemp
che contiene La prima parte di quest'opera gurda I let-+^"^ - ^"i*^ -^^.^--t) con il plC16FB4Lwrq o Pr r w oPPruLLrr
ll secondo ibro è più avanzato, ed è dedicato allapresentazione teorica e pratica dei moderni mic'ocon-troller PIC 16FBlx e all'insieme di schede che ruotanoattorno al MICRO PIC TRAINER
Inoltre e anche consigliabrle il libro " Micro-controladores PlC. La solucion en un chip" edito da ITP
l,iil+r.ee;+:É{,t$ ',T+
ari+'1#*++}#: #+nÈ +,€e*+$È.ÈÉ.+ #SÈ Ée+r-. *È:sr$s,$,É*#
Paraninfo e scritto da José
M" Angulo, Eugenio Martín e
lgnacio Angulo.Nella parte dedicata alle
applicazioni pratiche, sonodescritti sia il MICRO PIC
TRAINER che le altre sche-
de.
:;i- l,r i- íi".-;;.:i- i 1r a,:Ì'i ii:j i i i!:,
La scheda dei prototipi,come si può osservare nelìa
fotograf ia, dispone di una
zona libera con fori presta-^^-+; -i+,,-+i - ^lia+rn-gnalt stTua| a 0r5r.dnza nor-
malizzala, dove si possono
montare i dispositivi da pìlo-
tare con rl PlC. Nella zonapremontata, è situato lo zoc- ._L--t t :r'- - - ----- : --, Scheda dei prototipi con alcuni componenti di un'applicazione.colo che conterrà il PlC, e la -- --- --:- -
sua circuiteria fissa, formatadal cristallo diquarzo con isuoidue condensatori, ilcir-cuito di Reset e lo stabìlizzatore di tensione.
Esiste una scheda dei prototipi per iPlC da 18 piedi-
:;,....,..
Scheda dei prototipi per progetti basati sui PIC della gamma media
ni che si chiama MPIC-18M, e un'altra destinata ai PIC
da 28 e 40 piedini, denominata MPIC-28/40M.
Dopo che il programma è stato messo a punto sul
sistema di svilunoo MICRO
; PIC TRAINER ed è stato scrrt-
to nel PlC, quest'ultimo viene
, montato sulla scheda dei
nroîoîini clove îramite i suoi|\,IvLv||H|,
piedini di l/O, pilotera i dispo-, sitivi periferici definitivi. In
questo modo si disporrà di
un prototipo del progettocon prestazioni professionali,h:<<n nrozz6 p 6rniÀi+: rliuoJJv ylL44v L I OUìUltO Ul
r montaqqio.In modo complementare,' lngeniería de Microsistemas
Proora.nados Sl fornisce, due kit di componenti e un
manuale con eserczr per svr-
Irrnnare una serie di progetti
con il MICRO PIC TRAINER e
le schecle clei orototipi. ll kit
di inizio si chiama "KlT DE
IPROYECTOS BASICOS" C
nrello avan.zato " KlT DE
PROYECTOS TíPICOS".
ti:a !r''t,'t:::
II proto PIC 2, scrittore di PIC
nche se le basi fondamentali dell'elettroni-: ca attuale sono le stesse che la accompa-
gnano dalla nascita, 50 anni fa, il suo stu-- ,1 ':
notevoli cambiamenti.I semiconduttori e in particolare ì transistors, che
sono i più caratteristici tra i componenti microelettroni-ci, hanno ridotto moltissimo le Ioro dimensioni. e ora ne
possramo disporre a milioni sulla piccola superficie di un
chip di un circuito integrato. ll loro utilizzo e basato
sulla programmazione, che ha semplificato la parte
relativa all'hardware introducendo e sviluppando un
nuovo componente: il software.Comunque esistono numerosi prodotti elettronici
che non sono programmabili, perché anche se i micro-controller lo sono, devono poi essere collegati a dispo-sitivi semplici per sviluppare le applicazioni commer-ciali.
Per facilitare lo studio della moderna microelettroni-ca in modo progressivo, pratìco e modulare, descrivere-
mo uno strumento didatticoprofessionale che, oltre a
supportare un programmaproprio di autoinsegnamentosperimentale nelle principali
aree dell'elettronica e deì
microcontroller, serve comelaboratorio e banco di provaper montare, modif icare,moftoro A nrntn c noffe in
marcia qualunque tipo di
progetto commerciale o
industriale in modo rapido,
economico e srcuro.
Sotto la denominazione UNI-
VERSAL TRAINER della MSE:
Microsystems Engineering, si
presenta un laboratorio di
sperimentazione contenutoin una valigetta leggera e
facilmente trasportabile che
contiene tutti i dìspositivi e i
circuiti princìpali che richie-
dono il montaggio ed il fun-zionamento di qualsiasi pro-Laboratorio di microelettronica e microcontroller UNIVERSAL TRAI NER
getto basato sulla microelettronica o sui microcontrol-ler. Come si può vedere nella fotografia, dispone di una
zona con una scheda protoboard per il montaggio dei
circuiti senza saldatura e, attorno. vi sono raggruppatela maggior parte delle periferiche e dei circuitì funzìo-nali comuni a queste applicazioni, accessibili anche loro
mediante cablaggio a pressione.
I sistemi e r blocchi oiù imoortanti dell'UNIVERSAL
TRAINER sono descritti nella tabella sequente.
. Alimentatore ad uscita variabile positiva
e negativa
. Generatore di funzioni
. Potenziometro regolabile
. Sezione da 2 pulsanti
Utilizzando la tensione che fornisce l'alimentatoredel laboratorio, i segnali dei generatori di funzronr e
del generatore logico, le periferiche disponibili e la
zona per il montaggìo senza saldatura, si possono
costruire e provare rapidamente schemi elettronicicomolessi.
I :niiiÈ:.rLi ini,irij"iti.if :ij i j ij :ii *, {-., fj s':r irt !; i-'E i: _l- Í, ::,!,i1 5 e. ;.,
f UNIVERSAL TRAINER non serve solo da supporto per
i montaggi e i progetti dell'utilrzzatore. ma costituisce
anche un eccellente banco di prova per inizrare a fami-liarizzare con le aree più rappresentative della micro-
Dettag I io del col leg a mentodei componenty util zzati in un esperimento
elettronica. Per raggiungere questo obiettivo formativo,"lngegnieria di Microsistemi Programmabili S.1." ha
creato sette moduli specializzatì nell'insegnamento di
altrettante sezioni che coprono l'elettronica moderna e
che sono elencate nella tabella.
M0DUt0 6r AMPilFICATORI 0PERAZIONALI
Ognuno di questi sette moduli è composto da:. Una serie dr schede estraibili a colori contenenti gli
esercizi e i progetti proposti per I'insegnamento del
corrispondente tema trattato nel modulo.. Scatola di plastica contenente i componentì elet-
tronici necessari per il montaggio degli esercizi dell'o-pera sull'UNIVERSAL TRAINER.
. Cicalino piezoelettrico
. Valigetta trasportabileMODUL0 2: SEMICOi,IDUTTOR|
MODULO 4: MICR0CONTROLLER I (PlCf6F84)
i:,,'igt.,ri+++Ì,ur:l*Ée*+ae;+lii# #;'tÈ,t'+É+t+È!-f:É:-.;.Èg'íitj;i!, F?;lnF':é+lt'Íi:r+
Scric rli srherlc ron oli cscrcizi e imatertali necessarl npr il mnntennindegli esperimenti proposti sull'LJNIVERSAL TRAINER, facenti parte del modulo 1,
úe tratLa di eleLtronica digitale.
. Dischetti con programma per quei moduli che lo
richiedono.
ll programma parte con I'insegnamento, nel Modu-lo 1, dell'elettronica digitale. Nel Modulo 2 si sperimen-
tano e studiano i semiconduttori, diversi tipi di diodi, larettifìcazione e gli alimentatori.. ll Modulo 3, f ocalizzalo sull'elet-tronica analogica, fornrsce numerosi
esercizi e montaggi con i transistor.Nel Modulo 4 si inizia lo studio dei
microcontroller, concentrandosi sul le
applicazroni con il PlC16F84.ll Modulo 5 approfondisce la
gestione dei microcontroller, con
esperimenti più avanzati, basatr sul
PIC 16F873 ll Modulo 6 copre le
funzioni e le applrcazioni degliamplificatori operazionali e, infine, il
Modulo 7 si dedica alla manipolazio-ne e ai progetti con circuiti logiciprogrammabili, come quelli del tipoPAUGAL.
I Moduli 4 e 5 che completanoI'UNIVERSAL TRAINER insegnano il
progetto e la programmazione dei
microcontroller PlC. Nel Modulo 4 si
Montaggio di un progettobasato su di un PIC ne\|'UNIVERSAL
P58
collega il PlCl6FB4 ai cir-cuiti funzionali e alle peri-
feriche presenti sul labo-ratorio, e si sviluppano 17
progetti di applicazioniNel Modulo 5, basato sul
P|C16F873, sono conte-nuti dei progetti di diffi-coltà maggiore, compre-
sa la gestione delle peri-
feriche più comuni, comele tastiere matriciali e i
dìsnlav ICD Cnmp tuttigli altri moduli, anchequesti contengono una
serie di schede a coloridove sono nresentatl I
progetti, una scatola con
i materiali necessari per
montarli sull'UNIVERSAL TRAINER e un dischetto conte-nente i programmì sorgente per tutti gli esercizi.
Sul sito lnternet: www.mìcrocontrolladores.com tro-viamo costantemente nuovi esercizi, modrfiche a quelli
proposti, aggiornamenti dei software e programmi, e
NilICROCONfROttERL'insegnqmento dell'eleltronico moderna
TRAINER, utilizzando il PROTO PIC 2
novità che possono essere liberamente visionate.All'interno della scatola con il materiale per il montag-gio degli esercizi dei Moduli 4 e 5, deve esserci uno
scrittore di PlC. Per coprire questa esigenza di scritturadei programmì nella memoria dei codici del PlC16F84
e del P1C16F873, sono disponibili due opzioni.Per gli utenti che dispongono dello scrittore del PIC
esistente sul MICRO'PlC PROGRAMMER o il MICRO'
PIC TRAINER, descritto in precedenza, si offre una
scheda di adattamento a ouesti tramite il connettorePIC BUS.
Questa scheda, che si adatta ai menzionati scritto-ri esterni e si inserisce nella scheda protoboard del
laboratorio, viene chiamata PROTO'PlC. Per gli utiliz-zatori che non dispongono di scrittore di PIC viene
fornita un'altra versione che comprende la scheda
PROTO' PlC2, la quale contiene su di essa uno scrit-tore di PlC.
Questa scheda si collega alla porta parallela del
PC, il quale controlla il suo funzionamento e il pro-cesso di scrittura e, dall'altra parte, viene inserita suifnri doll: <rhad: 6p6rinhn:rÀ À:l nrrll^ -^ll^^- irvr I vLilu rLrrLvu VrUtUUUdlU, Udl qUdltr LUllCVd I
dispositivi presenti sull'UNIVERSAL TRAINER a quelli
esterni che sì possono aggiungere.
Tramite un connettore D825 la scheda PROfO PIC 2 si
collega alla porta parallela del PC, che ne gestisce ilfunzionamento. Con ouesta scheda si oossono scrivere
iprogrammi che sono stati editati, compilati e assem-
blati sul computer. Per questa operazione esiste un pro-
gramma di comunìcazione tra il PC e il PROTO'PIC 2
con il quale si scarica il programma oggetto residente
nel PC nella memoria di programma del PIC che si trova
sulla scheda. I piedini del PROTO'PlC 2 si inseriscono
nei fori della scheda protoboard e tramite questi,
mediante fili inseriti a pressione, si collegano con le
periferiche dell'UNIVERSAL TRAINER o con quelle mon-tate sulla propria scheda. Senza bisogno di modifìcare
l'hardware, né muovere il PIC dallo zoccolo del PRO-
TO'PlC 2, si puo riscrivere un nuovo programma e veri-
ficarne il funzionamento immediatamente e sur dispo-
sitivi reali che possiamo gestire. La scheda PROfO'PlC2
serve come scrittore di PIC della gamma media, da 18
a 28 piedini, e come elemento di interfaccia rapido per
collegare componenti montati su una scheda proto-
board, e collegati mediante fili inseriti a pressione nei
fori della protoboard stessa.
,.
!........,. ;
Scheda PROTa PIC 2, che coytille il OroOryo s:rittor: di llc Oer realizzare i proget! dei Modult 4
1 5
i:-'n1:i...,:'!;i'4::],:.lt+t,:!];4Ì].í..;i'.'t:t.'u!.r:i!;lrli"'i;.lu,'.li.;-:i11;;':i',1,';,;.l1.;|,
MICROCONTROTLERUn pioniere in microroboticei
Altri microcontroller per microrobot:
il 68HC77 di Motorola
I microcontroller MC68HC11 è stato uno deipreferiti dai progettisti di microrobot. Le suenrestazioni e le sue eccellenti caratteristicheYr!J!vL'v'" L
'
tecniche lo rendono molto adatto per questa
tecnologia. Un esempio è rl microrobot TRITT.
mostrato nella fotografia in basso, progettato e com-mercializzato a partire dal 1997 dalla ditta MICRO-ROBOTICA S.L.
La struttura del TRITT è modulare, Ia sua parte
elettronica è configurata sulla base di varie schedesovrapponibili, e la scheda che occupa la posrzione
superiore è quella che contiene il 68HCl1 e la cir-cuiteria ausiliaria. La scheda inferiore della fotoqra-
fia, contiene il circuito incaricato della gestione deimotori e dei restanti sensori e attuatori.
La struttura interna di questo microcontroller è di
16 bit, pero il bus dei dati esterno, utilizzato per
collegarlo al resto dei componenti del sistema, è di
sole 8 linee, per potersi adattare ai dispositivi cheutilizzano questa dimensione del byte, così comuneed economica. L'architettura è di tipo Princeton,nella quale la memoria dei dati e quella del pro-qramma sono unite. Nella tabella sottostante sono
Memoila di proEamma: 512 x 8 bit EEPR0M
Alimentazione: da 3 a 6 V nominale 5 V
Temporizatore da 8 e da 16 bit
Porta di comunicazione sincrona SPl
Interrupt in tempo reale
Software in ROM per caricare nella RAM
un programma esterno.Microrobot TRITT costruito attorno al microcontroller 6BHC| 1 di MOTOROLA.
riportate le principalicaratteristiche delmodello 6BHC 1 1A1 .
,, ; :, i ,i. :,t .,,. ,
ll MCGBHC11 è di, '
sponibile in commer-cìo in contenitore l
l)l( ( .lr \,/ nrn ó rnJ- V"' r ",DIP da 48 pin Questinier-lini clovnnn qrrn-."f,
n^rtrró qR {r rnzinniPv, rq,L
dif{oranti nar rrri l:ur rErcru, PEr Lur rc
maggior parte di essi t,
^--^t,,^ -il^ at,,^--^asS0tve dile 0tver5e{,,^-i^^i ^"-,i^ -ll,-,,lulf zlut| 9taz rc dil du-
silio di un multiplexerinterno. :
Nl^ll^ +i^,,.^ i^l\elld I 19Urd lrì r' .,
basso e riportata la Struttura interna del 6BHCnionlinrtrrrr nar il rnn-
tenitore PLCC montato sul TRITT. ll fatto che ogni pie-
dino svolga drverse funzioni, obbliga a fare molta atten-zione al progetto dell'hardware, perche qualunqueerrore. potrebbe causare ìa rottura del chip. Molti dei
segnali di uscita sono a "collettore aperto", e in questi
casi si raccomanda di mettere una resistenza di "oull-
up" da 4K7.
XTAT EXTAL E rRa XIR-a RESET
| 1 con i blocchi che lo configurano e i relativi piedíni
I pin del microcontroller sono raggr,uppati in insiemi
che realizzano le stesse funzioni. come si ouo vedere
dalla tabella.
:'
GRUPPI FUHZIONAII DI PIEDTNI
I Alimentozione: VDD e VSS :
2 Clock: EXTAL, XTAL e E
. 3 Resel: RESET I
4 , Comunicozione seriole osincrono (SCl): TxD e RxD :
5 , Interrupt hordwqre: lRQ, XIRO, ICQ-3, PAI e STRA . :ó, Selezione del modo di lovoro: MODA e MODB ì
7 Comporotori: OCI-5 ) ,
8 lmput Copture: lcl -3, PAI : '
9 , Comunicozione seriole sincrono {SPl): SCt, MISO, MOSI e SS l
:' 10 , pou" di l/o: PA0-7, PBo-7, Pco-7, PD0-3 e PE0-3 :
, I I : Conoli del convertiiore AD: AN0-7 ) :
', 12: Piedini dei bus esterni: AD0-7, A8-Al 5, AS e R/W 1 |
:l:
Nello schema della figura in alto è riportata l'archi-
tettura interna del 68HC11, con i diversi blocchi che locompongono e i relativi pin.
Nella fotografia della pagina seguente, vediamo la
scheda di controllo del TRITT, nella quale possiamo
notare il microcontroller nella versione con contenitorePLCC, circondato dalla circuiteria ausiliarìa e dai con-nettori dr adattamento.
farchitettura del 68HC11 mostrata nello schema
precedente, e utilizzata in molti modelli di questo
microcontroller, i quali si differenziano fra di loro prin-
MODA MODB
ffircffi
ruffi-r--==
@I
-IE-NONONOÉ------f É------É H------H
boNodd
ÈÉ*à
XTAL
PCO,/ADDRO,/DATAO
PC ] /ADDR ],/DATAI
PC2 / ADDR2 /DAI A2
PC3/ADDR3,/DATA3
PC4/ ADDRA/Dl\1A4
PC5,/ADDR5,/DATA5
PCólADDRó/DATAó
PC7 / ADDRT /DAfA7
.xtRa^ PPE
ÒPD0/RxD
ì ^1: *- " ,-. ; ' zzzz1e q < < << ó < !!:i-;ii's'"ì[ii
,'ZÒ41;!?vvvgvv\< <:Fsr-òE <ìilflff"ÒÒdùxxxY_
N-VVYà< d d r (ld<<<ódÀÀ<
.PE5/AN5
PE] /ANIPE4lAN4
] PEO/ANO
I PS0/ADDR8
PB] /ADDR9
] PB2lADDR] O
] PB3lADDRI I
PB4IADDRI 2
r PB5/ADDRl3
PBólADDRI 4
PBZIADDR] 5
PAO/ C3
Piedinatura del 6BHC1 1
nella versione con il contenitore PLCC da 52 pin
IT'IICROCONTROLLERUn pioniere in microroboticer
Scheda di controllo del TRITT in cui si può vedere rl 6BHCI 1
Configurazione della mappa di memoriaper i differenti modi di funzionamento del 68 HCI 1
(512), dai registri di controllo e da una ROM dove risie-
de un programma che si esegue alla partenza.
2', Circuito espanso, o "expanded" (N/ODA =MODB = 'l).
Schema semplifícato dei collegamentidel 6BHCI 1 per il funzionamento in modo circuito unico
@t's""E!$ffi.ir;*"
ffi*t*ffi**t*"Effiffi
l*"l*:f,'
mre
roffiffi
",::î'
ryryr
-ro-
ffi'$,î."
EPROM
0t't, o
'0o
0
0
4k
0
00
.00
l2k
..,, 0
.t,,t.ó::'.....*Uè:ìrlììrì:,:-,...
o
i:i:Ét-'
EEPROI\,I
0
srzo
512
0
0
0
0
0
512
0
5t2512
2k
5t2512
512
Tabella con i diversi modelli del 6BHCI 1,
che si differenziano per le diverse capacita della loro memoria
cipalmente dalla capacità della loro memoria, comepuo vedere dalle relazioni della tabella in figura.
::,A seconda dei livelli logici che sono applicati ai piedini
MODA e MODB, il 68HC'11 puo lavorare in 4 modi dif-f erenti:
1". Circuito unico o "single chip" (MODA = 0 e
MODB = 1).
Come si puo vedere dalla figura, la mappa dellamemoria è formata dalla RAM (256), dalla EEPROM
RAM ROM
E**0ryèo?5+ 8k
tl;.:.j O:|: .: :,l:,4k, -..,.O
o
ì:.:O.a.
F:::izt
i-*,]i?h
:
MICROCONTROTLERUn pioniere in microrobolicei
In questo modo oltre ad avere accesso alla
mappa del circuito unico si puo anche accedere
agli induizzi di un'eventuale memoria esterna.
Le porte B e C supportano i bus di espansione.
Si puo disabilitare la memoria interna e lavorare
solo con la memoria esterna, che dovrà conte-
nere i vector di interrupt.3'. Circuito speciale di Bootstrap (MODA =
MODB = 0).
A drfferenza deì circuito unico i vector di
interrupt risiedono in una ROM speciale, chia-
mata "ROM di avvio". Alla partenza viene ese-
guito questo programma che rimane in attesa
di ricevere informazioni tramite la porta seriale;nrró<ta nrnrodrrr: <or'- --,ve per scflvere un pro-
gramma nella RAM dall'indirizzo 00 a FF.
4". Circuito speciale di Test (MODA =1 e
MODB = O)
Funziona come nel modo bootstrap, in piu
si puo accedere alla memoria esterna e anche
ad alcuni registri protetti. E utilizzato nelle prove di fab-
brrca.
Nello schema della pagina precedente è riportato il
collegamento semplif icato deì piedinì principali del
6BHC11 quando funziona in modo circuito unìco
,'
Sia il funzìonamento che la gestione e la programma-
zione del 68HC11 sono molto diversi del microcontrol-ler PlC. La porta A del 6BHCl'l ha 8linee, delle quali 3
funzionano come ingressi e 4 come uscite, la restante è
configurabile sia come ingresso sia come uscita. Inoltrequeste linee sono condivise da altre risorse, come i
Fotografia della scheda di controllo del motore esensori del mrcrorobot TRITT diseqnati per MICROROBOTICA S.L
Questa versione espansa del microrobot TRITT puo ptlotaremolti sensori e attuatori, grazte alle numerose linee di l/O del 6BHC1 1.
comparatori, gli Input Capture e gli accumulatori di
impulsi.| - ^^-+- ^ ^--"^- t'indirizzo esadecimale 'l 000 dellaLO PUr LO n VLLUPO I
zona dei registri; se si scrive in questo induizzo il valore
sr rifletterà sulle corrispondenti lìnee di uscita.loncrondn nrpqt: nosizione riceviamo l'informazionedai tre pin che funzionano come ingressi. Di conse-nt?n7à drrrante nrrpqta fr rnzinno i disnositivi interniy uu "-q,associati a questi piedini sono scollegati. Nella fotogra-fia si mostra una variante del microrobot TRITT che sup-
porta moìtissìmì sensori e attuatori, i quali sono con-
trollati perfettamente dal 68HC11, grazie alle sue
numerose linee di l/O.
Un esempio della programmazione delle linee dellanar+r A .hirr;rì rl In++^.^ lr cnmnliri+r Ài nrrocin nrn-iJUl td A Ll lldrrd dr rcLturc rd )cll vllLlLo ul 9uE)Lw Plu-
ce5so.
Programma per accendere un diodo LED montatosulla linea PA6:
ORG
LDA
STAA
BRA
END
$0000 ;ll simbolo $ rapprerenta il valore esadetimale
#40 ;ll regifro è caricato con il valore 40
$1000 ;5i scrive sull'indirizo $1000 ehe corrisponde
;alla Porta A, con PA6 = 1
CICLO ;Generiamo un "salto su se stesso" provocando
;un cklo infinito.
clcL0
NilICROCONTROLLERMicro'PlG froiner Plus
Micro'PIC Trainer Ptus
a scheda MICRO'PIC TRAINER PLUS è un
modulo opzionale di espansione del sistema
di sviluppo MICRO'PlC TRAINER descritto in
precedenza. Entrambi i prodotti sono statiprogettati dalla ditta Ingeniería de
Microsistemas Programados S.1., che li commercializzain tutto il mondo.
Lo scopo di questa scheda e permettere l'espansio-ne di diverse periferiche, molto comuni nelle appltca-zioni basate sui microcontroller, per poterli controllaretramrte il MICRO'PlC TRAINER, con il quale si accoppiagrazie al connettore PICBUS, che ha 26 linee e che sr
trova sulla scheda.
Per facilitare l'utilizzo congiunto di questi duemoduli, è possibile acquistare il MICRO'PlC LAB PLUS,
un drspositivo che su una scheda di metacrilato suppor-ta il sistema di sviluppo MICRO'PlC TRAINER, la scheda
di esoansione delle oeriferiche MICRO'PlC TRAINER
PLUS e un trasformatore professronale che alimentatutto il sistema a 220 YAC. come si ouò vedere nella
fotograf ia.
ll MICRO'PlC TRAINER PLUS, permette di realizzare e
sviluppare progetti basati sui microcontroller PIC dellagamma media, aggiungendo alle periferrche esistentì
P óI
nel sistema di sviluppo MICRO'PlC TRAINER i seguentidispositivi:
1. Canale di comunicazione seriale RS-232.
2. Tastiera matriciale 4x4.3. Barra di diodi per visualizzare lo stato logico dei
segnali più significativi4. Rete di periferrche comunicanti tramite il bus l2C.
5. Vrsualizzatore da 4 display a 7 segmenti pilotatodal SAA1064 02Ò.
6. Quattro canali di conversione A/D e uno D/A con
ìl circuito 12C PCFB591
7. Porte di l/O digitali supportate dal PCF8574 (l2C).
B. Clock/Calendarìo in temoo reale oiù RAM nonvolatile grazie al PCF8583 (l2C).
La scheda MICRO'PlC TRAINER PLUS ha una dimensio-ne normalizzata da 100 x 160 mm, Eurocard. È alimen-tata con +5 VDC che riceve tramite le linee del connet-tore PICBUS, Ie quali arrivano dal sistema dr sviluppo su
cui si trova il microcontroller.Nella figura è riportato lo schema della scheda, che
viene accompagnata da un Manuale di Utilizzo, il quale
Sistema MICRO'PlC LAB PLUS. Scheda MICRO'PlC TRAINER PLUS
N:oo I
| :BATJ I Ni-cd 3.óv
s*me ECO ló250Oó
5--l:l
Schema generale della scheda MICRO'PlC TRAINER PLUS
descrive tutte le sue parti in modo approfondito,numerosi esercizi, programmi e routines tipiche. Tutti
i programmi sono contenuti in un dischetto allegato.La maggior parte delle periferiche contenute in questa
scheda sono controllate tramite il bus l2C, cui si colle-gano i seguenti circuiti integrati:
- SAA1064: Controller per 4 display a 7 segmenti.- PCF8591: Convertitore D/A e A/D.
D3 D2
QIscroT
- PCFB574A: Porta da B linee di l/O digitali.- PCF8583P: Clock/Calendario + RAM non volatile.
Nella figura sono riportati i collegamenti della tastiera
matriciale 4 x 4 con i piedini del microcontroller, trami-te le lrnee che arrivano dal connettore PICBUS del siste-
ma dr sviluooo MICRO'PìC TRAINER. Osserviamo che la
UTsAAr oó4
Dir:OlltOltr/w
a:
è"".."$.
sA3ó-l I
tastiera è controllata tramite le B linee della porta B
(RB7 - RB0) del microcontroller. ll software di applica-zione configura le linee RB7 - RB4 come uscite, che
sono attivate in modo sequenziale, applicando un livel-
lo attivo ad ognuna delle file della matrice. Le linee RB3
- RBO sono configurate come ingressi che ricevono
l'informazione delle colonne della matrice, e vengonolette per determinare se qualche pulsante è stato pre-
muto.
Quando il mìcrocontroller non dispone del bus 12C
implementato sul chip, come succede nel caso del
PlC16FB4, il software incaricato di gestirlo utilizza i pin
Schema dei collegamentl della tastiera
RB6 e RB7 per implementare le linee SDA e SCL. Se iì
PIC ha il bus 12C integrato all'interno, i due segnali
sono supportati dai piedini RC4 e RC3. Per realizzare la
selezione del tipo di implementazione del bus l2C via
software o via hardware, si debbono utilizzare i jum-pers J1 e J2, che commutano isegnali SCL e SDA.
| :,,' i ,.,.i: .,.i1,,,.',; i j,rf-r.,1;t.,
Nello schema della figura possiamo vedere che e statobasato sul circuito MAX232 (U5), il quale ha ii compitodi convertire i livelli TTL, presenti sul pin 'l '1 di trasmis-
sione (Tx)a livelli logici RS-232, che siottengono sul pin
14 (TxD) e si applicano al connettore CN2, per il loro
ulilizzo esterno.
1 i i-];-:f , i.,.ì ;. r" a',,,i i,:;:i i;; 1:,t 1;,, fr.;:. jii
ll dispositivo PCFB583P adattabile al bus l2C, contieneun clock/calendario in tempo reale, con funzioni ora-rie tipiche, più allarmi e temporizzazioni. Inoltre inclu-
de una RAM statica da 256 byte dei quali i primi
Schema del canaleseriale RS-232 basato sul circuito
:ntegrato MAX232
16 sono riservati, lasciando Iiberi per l'utente 240 byte.ll PCFB5B3P risponde all'indirizzo di 7 bit del bus
l2C'. 1010000, dato che il pin 3 (A0) è collegato a
massa. ll pin 1 (OSCI) è l'ingresso degli impulsi che si
applicano come frequenza standard al clock, e chenrrÀ accoro di (fì f.lz C di 32.768 HZ, genefati da Un
cristallo di quarzo montato sui piedini 1 e 2 (OSCO).
ll piedino 7 (lNT) si attiva con un livello basso, nel---^ -i ^"^,1,,--,,^ -ll-.*^ ^,,^- +amnari,caso sl proouca un arlarme o una tempor|zzaztone.
Questo dispositivo si puo alimentare con una
batteria ricaricabile al Ni/Cd, quando c'è una man-canza nell'alimentazione principale Vcc. In presenza
della tensione Vcc, l'alimentazione arriva tramiteil diodo D5, e nello stesso tempo si ricarica la batte-ria tramite lo stesso D5 e R16. Se manca Vcc la bat-teria mantlene l'ora nel clock/calendario e i datinella RAM.
PCF8583PAdr.: IOIOOOOT/w
Schema dei collegamentidel clocklcalendario + RAM contenuto nel PCFB5B3P
È+è È + g+r'i Fll#'È-g=Èl È +É+;,=r "$.-$a+e:
P62 MICROCONTROTTERMicro'PIC lloiner Plus
Basato sul circuito integrato l2C SAA'1064, sulla scheda
si controlla un visualizzatore formato da 4 display a 7segmentr. linduizzo a 7 bit che gli corrisponde, ha i 5
bit più significativi programmati in fabbrica, mentre i 2restanti prendono un valore che dipende dalla tensioneapplicata al piedino 1 (ADR). Se il pin e collegato a
massa, i 2 bit assumono il valore 00; se si colìega al
positivo il valore sarà 1'l; se si collega ad una tensionen:ri: : ?/9 \/rr il ri:lnr^ crrì A1 ^ .^ .i -^ll^n: :À ,,n:vatto a J/u v!L il vorvrc )drd u I c )tr )t Luilcgd du u|dtensione di 5/B Vcc sarà 10.
UIsAAloó4
U4PCF859 r
Adr.:l OO! OOOr/w
lrhama r'lai rallonamanti
del PCFB591 che conttene un convertitoreD/A e un altro A/D.
ll dispositivo l2C PCFB57 44 fornisce al siste-
ma un'ulteriore porta da B linee di l/O digi-tali. Risponde all'indirizzo da 7 bit: 0 - 1- 1
- 1 - A2 - 41 - A0, che in questo caso,
essendo collegati a massa i piedini 42, A1 e
A0, si converte nell'indirizzo0 -'1 -'1 - 1 - 0-0-0.
I e nerifcrichp da rontrollare tramite le
linee di l/O sono pilotate con dei diodi LED
che visualizzano il loro stato, anche se sono-++i,,^ -^^ l^^i-- ^^^-+arlve con rogrca negdLVa,
_--lI
GND
I
Adn:Ol I lOl lrlw
DIGI.:::
, ,l
rJllili::ll: ri''rttì;:il:l'
l
5436-l t sA3ó- t t
\ehoma dpi rnllonamanfi
del modulo visualizzatore tramite tl circuito tntegrato SAA1 064.
L'informazione da visualizzare è multiplexata sui
digìt del visualizzatore. ln primo luogo sulle linee P1-PB
appare il dato per il digit 1 e su P9 -P16 per il digit 3.ln cpnrrito cr rnrrcqtp linpc,arrirr: il d:to npr i rliai ) p L
rispettivamente. ll processo è automatico e sequenzia-le, e avviene ad una velocita tale che i4 display sem-
brano attivi tutti insieme, mentre in realtà lo sono sola-monta alro nor \/nlt2
Questo modulo è basato sul circuito integrato 12C
PCFB591, che è Eià stato descritto in modoapprofondito in precedenza, quindi riportiamo sololo schema dei colieoamenti sul MICRO'PlC TRAINER
PLUS
U4PCF8574A lll*
Adr.:Ol ì 'l OOOr/w
Schema dei collegamenti del dispositivo l2C PCFB574A cheforntsce a/ srsiema una porta di B linee di llO digitali.
II nano favoloso
,l .,
i'l l i'i,lr ri i iAll'interno della grande varìetà di modelli di microcon-troller PIC esiste una "casta" soeciale che riceve il
soprannome di "nano". Sono chip portentosi che con-
tengono un computer completo, anche se misuranopoco piu di mezzo centimetro di lunghezza per ancor
meno di larghezza, ed hanno solo B pin, quattro per
lato. Hanno una dimensione mìnuscola, dettaglio che si
può apprezzare nella fotografia, dove si compara ad
Un PIC nano confrontato con una comune chiave
Monty dispone di una pinzasu uno dei due bracci, che è controllata da un PIC nano.
, cole dimensioni, anche il numero deìle risorse interne
come la capacita di memoria e minimo. Le sue presta-
' zioni, unite ad un giusto prezzo, rendono ideali i PIC nani
, per governare prodotti semplici. Ecco il motivo per cui è
' stato scelto il nano PlC12C50BA per controllare la pinza
che possiede Monty in uno dei suoi bracci, e con la quale
potrà prendere, trasportare e depositare oggetti.
i' ,1, J:t,:::,,!;) t.,:':lt!.,,t':, i-,.'i:,:';':, l.':'::::, iilii,,\'tt'i!
Per poter inquadrare i nani nella grande famiglia dei PIC
ripassiamo la distribuzione della medesima. La famigliauna comune chiave. Questa caratteristica da
re un'idea delle possibilità di questa fami-nlia' orazie alle srre ridotte dirnensioni
sarà possibile ottenere da questo sempli-
ce oggetto un potente controller, il
quale, introducendo la chiave nella serra-
tura, riceva l'alimentazione necessarianor pscnrire il nrooramma scrìtto in|!,.'y'"y'
memoria, permettendo così di pilotare
un insieme di periferiche quali relè,
motori, luci, ecc.
Questo piccolo dispositivo dispone di
tutte le risorse e riunisce tutte le caratteri-
stiche tipiche dei PIC che abbiamo studia-
to sino ad ora. Come è logico, viste le pic-
ftIODEtIO I CARATIERJSTrcHE :
.\ -l l^++^to ot tcLLU-
FEl,4egXe nC I2C5XX
:P€tóeXX ellCl2cXU
.Pr€lFcxx
Ptctscxx
33 isfruzioni da 12 bit
35 istruzioni do 14 bit
58 istruzioní do I ó bit
77 \struzionido Ió bit
iTabella con i quattro grandi gruppi di microcontroller PIC da B bit.
ii,iii,,i:;:t:.:;,;tt:1.ltt:1,,11i!y'ot:itiili,;.i;i'rr'',;ì:;.:i!;i,t:t lit:i:tr,;.,
dei microcontroller PIC
da B bit si divide rn
quattro grandi gruppi,rhe si diversifir:no ner
porenza e prestazront, erho <nnn rinnrtrii noll.Lr rs )vr rv r rPUr to Lr r tgilq
figura a lato.Analizzando la ta-
bella della fìgura osser-
viamo che nella gammaA--^ ^ ^^il- *^..J;-ud5e e Ireild ilreurd Cl
sono due modelli che
rispondono alla no-menclatura PlCl 2C5XX e PIC'1 2CXXX. risoettivamente.
Questi modelli sono pertinenti alla casta dei nani e sonocaratlerizzali da un contenitore con soli 8 pin. Oltre a
oueste due serie il costruttore MICROCHIP Scnrp rn:politica di potenziamento di questi piccoli microcontrol-ler, sviluppando nuovi modelli dotati di memoria FLASH
ed EEPROM dei dati, come iPlC1BF0l0 e P|C18F020.
I microcontroller PIC da 8 bit sono carattenzzati dal pos-
sedere un repertorio di 33 istruzioni da 12 bit cadauna,ron rne frpnttpnz: masSima di funziOnamento di 4MHz.'Ci sono solo due livelli nello stack per memoriz-zare gli indirizzi di ritorno al programma principale, il
contatore di programma puo essere da 9 bit oppure da
11 bit e il numero delle risorse interne e delle linee di
l/O è molto limitato.Nella figura in basso a destra sono presentate le
principali caratteristiche dei due modelli fondamentali(PlC12C50B e PlC12C509) e delle loro variantrPlC12C5XX. La lettera C indica che la memoria di pro-
9-t I
tNDtRtzzt
gramma è EPROM, le lettere CR che è RON/ e le lettereCE significano che si dispone di memoria EEPROM dei
dati non volatile.
Questi PIC dispongono di un Watchdog o WDT,
sono alimentati con una tensione compresa fra 2,5 e
5,5 VDC e consumano 2 mA quando lavorano a 5 VDCe 4 MHz. Anche se hanno solo B pin gestiscono 6 linee
di l/O utilizzando la funzione multiplexer su alcune di
esse, così come mostra il disegno della piedinatura, cheè compatibile con quelli della gamma media.
!, ,"
lPlC "nani" a 8 bit della gamma media sono divisi in
quattro modelli fondamentali; si chiamano P\C12C671,672, 673 e 674. La loro principale differenza risiede
nella capacità dì memoria e nella disponibilità o menodella memoria EEPROM per memorizzare i dati in modonon volatile. Inoltre dispongono di convertrtore A,/D aquattro canali e dì interrupt: carenza importante nei
nani della gamma base. I nani della gamma media pos-
sono funzionare ad una frequenza massima di 10 MHz,
g +* GP2TOCKI/ANz/INT
7.g GPl,/ANlAnerg GPO/ANO
Vou eIk 5# Vss
ffiffiiltffiCODICE r a
tsrRuztoNE ! z
ffimlt o
ffiffi-<9-l ì
ilffiiffiX "o'"mro GPs/OScl,/CtKlN * Zb?GP4IOSC2/AN3ICrKO|..IT +'-F 3 B-a
GP3/MC-IRAPP # 4e
Ptcr2c508APlcr2c509APlcr2cRso9APlcI2CE5lSPrcr2cE5r9
ir",'iiii,Ptcr2c672Ptcr2cEó73Ptcl2cE674
Prcr8F0l0Plcr8F020
Controllo della memoila di programma nella gamma base. Piedinatura dei PIC nani, uguale per i modelli di tutte le gamme
:I
Tabella con le principali caratteristrche dei PIC nani della gamma medja
nella tabella della figura sono riassunte le loro caratte- l
ristiche. ''
I'i i''l '': 't,i'i: t,rt ..,.t,t!, ;1;.tti: ;..1I:Ì i::; ;1;,:,.'i'.
;
Ne|lapoliticadipotenziamentodeiprodottidotatidimemoria FLASH, MICROCHIP ha lanciato sul mercato l
una coppia di modelli dotati di questo tipo di memoria
diprogramma,capacidifunzionareadunafrequenzadì 40 MHz. Nella tabella in basso sono riportate le carat- ,
teristiche più importanti.
,ri.,'iii';-l il::::i"t ::,':.:, itt:':";i.':)::t:.
-;,i: r, l
Conosrpnr^lo oia il PIC 16F84, che e il cervello di Monty,
è molto semplice analizzare e interpretare l'arch tettura :
dei PIC nani, dato che hanno meno risorse e sono dota- l
ti di memoria di capacità inferiore. Lo schema generale
dell'architettura dei PlC12C5XX sì può scomporre in :
cinque grandi blocchi::
'1". Memoria di programma EPROM.
2' Memoria dei dati RAM.
3" ALU.
4". Clock e risorse associate.
5". Linee di l/O e funzioni ausiliarie.
Come tutte le altre, anche la famiglia 12C5XX è
costruita sull'architettura Harvard, in cut ci sono due
memorie indipendenti, una per contenere le istruzioni,
ìioDEtto
o l':ltr: nar iri:ti ln
questo modo è pos-
sibile accedere
simultaneamentealle due memorie.La dimensione dei
byte della memorìa
di programma è
EPROM, coincide.^n nrroll: dollo
istruzioni, vale a dire
sog ,u *"ro, u o oronrutt, . o,','rljt r)t: J::tl';bit cadauna e neì 509 è di 1 024 indirizzi da 12 bit. La
memoria RAM dei dati di questi due modelli è di 25 o41 bytes, a seconda che si tratti del 508 o del 509. I
registri specifici che formano l'area SFR della memoria
dei dati, occupano le prime sette posizioni dalla 00 Hex
alla 06 Hex, i registri di utilizzo generale partono dal-
I'indirizzo 07 Hex. Lo stack ha solo due livelli e non
dispone di flag di overflow, è quindi compito del pro-
grammatore controllare che non debordi quando si pro-
ducono gli annidamenti ne le subroutines. Sono ammes-
si solo due annidamenti, dato che con il terzo lo stack
perde uno degli indirizzi di ritorno e cade iì sistema logi-
co. L'indirizzamento delle istruzioni arriva sempre dal
contatore di programma, mentre quello della memoria
dei dati può essere "diretto" quando I'indrrtzzo è conte-
nuto nel codice dell'istruzione, o "indiretto" quando
l'indirizzo del'operando e contenuto nel regtstro SFR.
Per realtzzare le operazioni logico-aritmetiche, la
ALU riceve due operandi da 8 bit. Uno arriva dal regi-
stro W e l'altro è un letterale immediato, o arriva dal
bus dei dati tramite qualche risorsa interna. ll risultato è
caricato nel registro W inoltre il registro di stato si cari-
ca con il valore dei flag che segnalano condiztoni parti-
colari del risultato.
Infine è interessante notare che questi PIC nani, con
un contenitore da soìi 8 pin, mettono a disposizione
dell'utente sino a 6 linee di l/O, denominate GP0:GP5,.,+;ri---^^r^ ^^" -r-, ^e f unzioni ilut|tLLot tuu ptrr orLurl
multiplexaggio.Così come succedeva nel
PlC16FB4, i nani dalla gamma base
utiìizzano la tecnica della segmenta-
zione nell'esecuzione delle istruzio-
ni, per cui dividono il compìto del
processore in due stadi. Nel primo si
realizza la ricerca dell'istruzione suc-
tlEi4(nnPRC)GR/AISIAAúI :
Hg/?tr.,Èn 3584 ,2048xt4 j tlg ó l0lùb I do I bit 1
*t*" rzc2 rO2a,,ri lóx8 I ,r, I ó lotrt+h I ds I bit I
MoDEro pRdtidiffrÈÉ ; _- j ____^.. i .qn i LrNEE jFREauENzA
, hÉ* ; EPROfr4 I ROÀ,r i EEPROÀ'I I br|ti i VO i ltAX.,nE||.r Fr(fJs[ArvlrhArA RAM LINEE TREGIUENZA CANAUvÉ*v hrr* EpRotr,t Rofil EEPRoM brbi, tlo ltAlc nMERS AID
,2Ctí71 l9n ldl4x14 128 ó l$dù | do 8 lrft I ,
t:lod:z rse4 irusxra lirt ó lolitt I do I bit 1 .
t2có23 rzc2 rO2ar,ri lóx8 I ,r, I ó lotrt+lz I ds I bit Il29xz4 Si84 204Sr(14 lóx8 I28 ó l0ÀiFh I do I bif 4
hto; : immiuHmjruoutuzAl icAltAUi* i ,** i::l*9l !-ryi Io I -P --i 1*-1-"i 1J:,.J*i+ 12; ó t0#ù | do s tit I
1
. t.. , r^llrL r l-ol.:. f
-Iti!F$9Rf*.--i : i 1 ' 2 :
Tabella che raccoglie le caratteristrche piit importanti dei PIC nani con memoila FLASH
:;t'i1:i,-,
P64
DrRrzzoru f BUsDAîl
ry*ffi#INDIRIZZAMENTO DIRETIO
\ INDIRIZZAMÉNIO
5. |ND|RETTO
ffix \8
ffi ceo
fil ocr
Efonnarcffi omzmnzu*
filerTmzlrÌl o"s/oscrz.r*,t
coDrcE|5TRUZ|ONE | 2
Architettura interna dei P/C12C5XX
cessiva e nel secondo si esegue quella in corso. Questoparallelismo implicito permette che tutte le istruzioni,eccetto quelle di salto, si realizzino in un ciclo di istru-zioni, che equivale a quattro cicli di clock. Quindi se ilmicrocontroller funziona a 4 MHz, tutte le istruzioni,eccetto quelle di salto, impiegano un microsecondo adessere eseguite. Le istruziori di salto impiegano duemicrosecondi.
,:, i.;;'t,i:, t',;i,t;. 1:''. j l'ir'ii'i' iri i'i :ii rl j!) ll':; 'l:
I cinque modelli di PIC nani della gamma base (508A,
509A, CR5094, CE518 e CE519) hanno la piedinarura
rrportata nella figura, nella quale si può vedere che soloquattro pin hanno una sola funzione, mentre I restantlquattro ne supportano diverse, multiplexate nel tempo.I pin 1 e B ricevono l'ingresso della tensione di alimen-tazione: VDD che è l'alimentazione positiva e VSS che è
la massa. I restanti 6 pin si possono configurare comeingressi o uscite, ad eccezione di GP3 che funziona solocome Ingresso.
Questo pin supporta altre due funzioni: la primacome MCLR# (richiesta esterna del Master Clear Reset)
e la seconda come ingresso della tensione speciale perla programmazione, VPP GP4 svolge anche la funzione
ilffix\
ó
am'\8 \8
r3
m
di uscita dell'oscillatore e collegamento del cr stallo diattArT^ GPE fr rnzinn: .^mo rrcritr dal nrn-,, ,",, ._rC€SSO[e €
connessione del cristallo di quarzo. Inoltre GP0 e GP1
sono incaricati di ricevere idati in serie e gli impulsi diclock per la sua sincronizzazione nel modo di proqram-mazione seriale del dispositivo.
g'
mgrmMCLR* VDD V55
i Voo- |GP5/OsCl/CrKrN- 2
GP4IOSC2.3GP3/MCLR/VPP* 4#ff,l
Prcr2c508APrcr2c509APtcr2cRs09APtct2cEStSPrcr2cESr9
Piedinatura corrispondente a tutti i PlC12C|XX
t :': i!: t1-', 1,,.' t;'ili l',: :;,ìt'i
It PIC1 2C508A al['i nterno
1;f i ,
lPlC nani da R nin hanno dìverse cose in comune: fraY"', ""nr raqto lo nrinrin:li cnnn il rnntonitnro 6 lq 5innlinrr"rrvuqjLc, rc prilrLrvoil Jvr lu ll LUI lLcl llLUlc c ld Plcullldtuld.
Le differenze sono dovute alla capacita della loro
memoria, alla disponibilità o meno del convertitore A,/D,
alla possibilità digestire interrupt e al repertorio di istru-zioni a cr ri risnondono secondo l'annartenenza allanammr h:ca a moÀi: | ^.^i À^ll- . h-<e diqn^n-9d| il |d ud)tr u r rcuro. I rìdr il ucilo 9drìrr ro uo)q ur)purr-
gono dr un repertorio di 33 istr;zioni, mentre quelli
della gamma media supportano due istruzioni in più.
F:t:sraf:: ae! elcr zcllsf
Dato che conosciamo gia il nostro vecchio amico
PIC'16F84 e vista la grande somiglianza, lo studio e la
programmazione dei PIC nani risulterà un lavoro piu
semnlice Perche e stato scelto il nano PlC12C508A? Ci
sono due ragioni molto logiche: la prima e che entram-bi si assomigliano parecchio, oltre ad essere molto dif-+"-i l' '^-^^'r- ^^'-^^ è il microcontroller che si utiliz-tu)t, ro )Elvr ruo vgr lr rtr
^:r^+-.^ r- ^;^--l rhp N,4ontv nossiedp in uno dei/d pEr pilutorc ro Pil 40 Lr rs rvrvrrLy PUJJTEUq I
suoi bracci.
Dalla nostra descrizione generale dei PIC nani, abbiamovisto che fra i nani della gamma base, il PlCl2C50BA è
ouello che ha meno caoacità di memoria: la sua memo-
ITMRo+WT i 6 2.5-6,25YDC ) 4MHz : Spin
ria di progranma e ditipo EPROM e puo contenere 512
istruzioni da 12 bit ognuna. La memoria dei dati RAN/
disnnnp soln di 75 hvte nor qrririere nnerandi di utilizzonpnerale e I inclirizzi ner i reoistri snecifiri di controllo., , 'y,-. ,
Funziona con una tensione di alimentazione compresa
fra 2,5 e 6,25 VDC, supporta un temporizzatore da Bbit chiamato TN/R0, un Watchdoq (WDT) e puo lavora-
re ad una frequenza massima di 4 MHz. Non dispone diintcrrr rnt Tr rtto lo r:r:tteristirhe csnostp ,annaiOnO Sin-
tetizzate nella tabella della frgura.
L'architettura dei PIC nani è già stata descritta in
modo generale, e in essa si e messa in rilievo l'indipen-denza fra la memoria di programma e quella dei dati,
tipica dell'architettura Harvard.
ll PIC'l2C50BA con cui si controlla la pinza del braccio
di Monty, possiede una memoria di programma capace
di contenere 512 istruzioni da 12 bit. La dimensione
degli indirizzi della memoria coincide con quella delle
i,; íi i i +,; l,: 1 t;1 ;' !t; i. ì íj :';r ir l:i i- t i, r,i ir'i 1 li1 1.; ! 1 !''l'
i ; : :"il;l-;;:,;';,fi i'.ri +,il
MEMORIA PROGRAMMA
.-ioooonffE{ffi ,rmm
=re## H=
Struttura interna e tndirtzzamentodella memoria di programma del PlC12C50BA.
i....r. ... ..:: .- .. :;,r1ii +'!iii:i! ?'Í,,l,liX+,i!:+l'l
tt
- -;
istruzioni, per cui il contatore di programma si incre-menta normalmente, ogni volta che ne viene eseguitau na,
Gli indirizzi di ouesta memoria si estendono da 0000Hex sino a 0'lFF Hex, come si può osservare nella figu-ra. f altro nano della gamma base, il PlC12C5094, ha il
doppio di capacità, per cui ilsuo range di indirizziva da
0000 Hex a 03FF Hex.
i r ,.l i , . l: . , ! , ." ji; ,;t :.1 ,i '1 .1 ,:, ..
'i : ,1 , ,;,, ':,rt, ;i :l',iti l! ,, ;: : t :t . t. l1 t ',' :
ll PlC12C50BA dispone di un solo banco di memoriaRAM (Banco 0) per scrivere i dati. Questo banco ha 32
tnduizzi da un byte dì lunghezza ognuno. ll suo range
di indtrizzi parte dall'indirizzo 00 Hex sino a 1F Hex.
Dei 32 registri della RAM, i primi 7 sono dedicati ai
registri di controllo del processore, questa zona viene
definita zona dei Registrr Specifici (SFR), mentre i rima-nenti 25 sono di utilizzo generale (GPR). La distribuzio-^^ ^ tt---^^^--i^-^ .lellp nrime sefie nosiztonl SonoIlc E I o))E9llc4lwllE usils Pr il rrE JsLLs l.Jv)rz
riportate nella figura in basso.
:, ;'i;;'1': | '', ,,; lt:
"..I e nrime sette nosizioni della RAM funzionano come.-Y,.,YvJ|1|v
registro di controllo del microcontroller, e i bit di ognunagov€rnano le funzioni piu importanti delle risorse del
processore. Abbiamo già conosciuto la maggioranza di
questi bit occupandoci del PIC 16F84.ll registro INDF, che
occupa l'induizzo 00 Hex, non esiste in realtà, perche
non è implementato fisicamente. Si fa riferimento a que-
sto registro quando si punta ad un operando in una istru-zione con indirizzamento indiretto, pero in questo caso
I'induizzo dove si trova l'operando si ottiene dal conte-nuto del registro FSR, che occupa l'induizzo 04 Hex.
All'indirizzo 01 Hex c'è il TN/R0, owero il valore che
si carica neì TMR0 per iniziare la temporizzazione. Gli B
bit meno signìficativi del contatore di programma sonocontenuti nel registro PCL, all'indirizzo 02 Hex.
, ', ' ' ' . , ]
Uno dei registri piu utilizzati nei programmi, è il registro
di STATO, che si trova all'indirizzo 03 Hex.
a
Distibulone dei bit del registro di STATO
Degli otto bit di cui è composto, il penultimo non ha
nessuna funzione. Dei rìmanenti, 5 sono di lettura/scrit-tura e due si possono solo leggere (TO# e PD#), secon-do quanto rrportato nella figura in alto.
Di seguito analizzeremo le funzioni dì ognuno dei
bit del registro di STATO.
C: Flag di riporto e resto (carry e borrow)Nell'istruzione di somma ADDWF, questo flag va a 1
quando c'è del riporto nell'ottavo bìt, e nella sottrazio-ne SUBWF va a zero quando c'e del resto nell'ottavobrl.
Nell'istruzione di rotazione RRF, si carica con il bitmeno significativo dell'operando, e nella rotazione RRL
sr carrca con il bit piu significativo dell'operando.
DC: Flag di riporto e resto intermedioNell'istruzione di somma ADDWF va a 'l quando c'è
rrporto nel quarto bit (operazione con BCD), mentre
nella sottrazione va a zero quando c'e resto nel quarto0rt.
7: Flag di risultato zeroVa a 1 automaticamente quando un'operazione logico-
aritmetica dà come risuhato zero.
-ll
sFR (7)
__lî
I
l
I
I
GPR (25)
STATO (lNDlRlzZO 03 Hex)
Organizzazione della memoria dei dati RAM del PIC1 2C50BA
l ',:EIt,.;:;i;i:,:!;:;:1í.:,iffigfruryirrFììrìì
PD#: Flag di "power-on"Vale 1 quando sr collega l'alrmentazrone VDD o si ese-
gue l'islruzione CLRWDT. St pone a zero quando st ese-
gue l'istruzione SLEEP
TO#: Flag di "time-out"Collegando l'alimentazione, eseguendo l'istruzione
CLRWDT o la SLEEP, si pone a 1, e quando vale zero
significa che il WDT è andato in overflow.
PA0: Selezione della pagina di memoriaLa memoria di programma dei PIC 12CXXX si divide in
pagine, ognuna delle quali e composta da 512 indtrizzi
da 12 bit. ll PlC12C50BA dispone solo della pagina 0
dato che ha solo 512 indirizzi, invece il 509A ha 1024
indrizzi ed è composto dalla pagina 0 e dalla pagina '1.
ll bit PAO deve essere messo a 'l quando si desidera
accedere agli indirizzi della pagina 1, compresi fra 200
e 3FF Hex Va messo a O quando si accede agli indirizzi
compresi f ra 000 e '1 FF Hex.
GPWUF: Bit di reset per i pin della porta GPIO
Quando il microcontroller entra in stato di riposo dopoave r eseouito l'istruzione 5LEEB esiste un modo di sve-
gliarlo producendo un cambio di stato logico su alcune
delle linee di l/O della porta GPIO. Questi pin risveglia-
no il PIC apposttamente programmato, generando un
Reset nel microprocessore. Se GPWUF vale 'l il Reset è
stato provocato da un cambio di stato su uno dei pie-
dini della porta GPIO; se questo bit vale 0, il Reset e
stato provocato da altre cause.
i,;I , ,il,',, ', ,i '. ' : :t , . ,,,t.',,
Negli indirìzzi 05 e 06 Hex si trovano i registri OSCCAL
e GPIO, rispettivamente. Come vedremo più avanti, il
PIC 12C50BA ha la possibilità di f unzionare con un oscil-
latore ìnterno da 4 MHz, con il 5% di tolleranza, fre-quenza che viene calibrata dalla fabbrica.
Reinizialrzzando il microcontroller, il registro W si
Distribuzione dei 6 bitche contengono il valore di caltbrazione per l'oscillatore interno.
carica con il valore di calibrazione di questo oscillatore,
che è stato determinato in fabbrica, e che occupa i6 bitpiù significatìvi. In ogni caso, per adempiere il suo com-
pito questo valore deve essere caricato nel registro
OSCCAL, il che suppone di iniziare i programmr spo-
stando il valore di calibrazione da W a OSCCAL,
mediante l'istruzione MOVWF OSCCAL. In ultìmo, il
registro GPIO è quello incaricato di supportare le linee
:: ,.
Distribuzione dei bitdel registro GPIO per gestire le 6 linee di l/O del PlC12C50BA
di l/O digitalì con le quali si adattano le periferiche del
mondo esterno. GPIO dispone di 6 linee di l/O chiama-
te GP0, GP1, GP2, GP3, GP4, e GP5; tutte queste lìnee
possono lavorare come ingressi o uscite, ad eccezione di
GP3 che puo solo essere un ingresso, Come si esporra
piu avanti, questo registro è utilrzzato per la configura-
zione delle linee e per contenere l'informazione digitale
da trasferire tramite le linee che lo compongono.
;';:'ìr'1:,,.'t,'.i": :i ',: : t":;:
La selezione di un dato o di un operando nel
PlC12C508A si può realzzarein tre modi, che ricevono
il nome di "modo di ndirizzamento" e che sono i
seguenti:
1'. lmmediato2". Diretto3". lndiretto
Nel modo ìmmediato l'operando è incluso nel for-mato della propria istruzione, generalmente occupa gli
MOVLW FF
CODICE DÉL['ISTRUZIONE
OPERANDO (FF)
Nell'istruzione "MOVLW FF", l'operando FF è un letterale,
o valore immediato, che è contenuto nell'istruzione sressa.
GPIO (INDIRIZZO 0ó Hex)
OSCCAL (lNDlRlzzO 05 Hex)
MOWV OB
CODICE DE[TISTRUZIONT
0
\'INDIRIZZO DATO
,
L' i ndi rizzo dell' opera ndosi trova nei 5 bit m.eno significativi del codlce dell'istruzione
B bit meno significativi dei 12 che compongono il for-mato. Frequentemente questo valore viene caricato nel
registro wNel l'indirizzamento diretto, l'operando occupa alcu-
ne delle posizioni della memoria dei dati RAM che si
selezionano con i 5 bit dr indirizzo compresi nella pro-pria istruzione, occupando le ultime posizioni.
Nel PlCl2C50BA, dato che c'è un solo banco di
memoria dei dati, è sufficiente indicare questi 5 bit,pero negli altri nani che hanno più banchi dobbiamo
MOVIV INDF
F5R
7.:
Distribuzione dei bitdi configurazione delle linee di l/O nel registro TRlS
matrcamente, quando si eseguono le istruzioni TRIS e
OPTION. ll registro TRIS si ulilizza per configurare comeingresso o come uscita le linee della porta GPIO; ricor-date che la linea GP3 funziona solo come ingresso. Se
quando si carica il registro TRIS uno dei suoi bìt vale 1,
la linea di l/O corrispondente rimane configurata comeingresso, se vale zero invece come uscita.
Ad esempio, se vogliamo configurare come uscita le
linee GP2, GP1 e GP0 dobbiamo eseguire le seguenti<onronTa di r<f rr rzinnr'
N,IOVLW b',001 1 1000',
TRIS GPIO
Le tre linee meno significative di GPIO sono confi-gurate come uscite e le altre tre come ingressi. Se oravogliamo portare sulle linee di uscita il valore binarioGP2 = 1, GP1 = 0 e GP0 = 1, si eseguiranno le seguen-ti istruzioni:
MOVLW b',00000'101'MOVWF GPIO
lnfine, il registro OPTION, anch'esso senza indirizziassegnati nella RAM, e che si carica con il valore di Weseguendo l'istruzione OPTION, è dedicato principal-mente al controllo del temporizzatore TN/R0 e delWatchdog, che si studierà in modo approfondito piu
avanti Nella frgura è riportata solo la distribuzione deihit nli nrrocin ranictrn
Distribuzione dei bitdel registro OPTION, incaricato di governare il TMR0 e il WDT.
INDIRIZZO DATO
L' i nd i rì zzo cl e I l' o pe ra n cl o, n e I l' i n d i rizza me n to i n d i retto,ri<icrlc nci 5 hir mpno <innificalrvi di FSR.
ufilizzare i bit 5 e 6 del registro FSR per selezionare i
banchi stessi, come rappresentato nella figura.Nel caso del modo di indirizzamento indiretto, nello
mnemonico dell'istruzione si usa come operando il
registro INDF, che non e implementato fisicamente.Nella realtà si utilizzano i 5 bit meno significativi delregistro FSR per selezionare l'induizzo dell'operandonella RAM. Se il PIC avesse diversi banchi si utilizzereb-bero i bit 5 e 6 di FSR, ma questo non è il caso del508A, come si può vedere nella figura.
Questi duenella zona
registri non dispongono di
SFR della memoria RAN/. Si
induizzi definitiutilizzano auto-
;,1:y1 ,1' ,:: ;!,;1.1;
OPTION
l
le linee di l/O det PIC12C508AL'oscillatore, it TMR0 e
ll PIC'12C5084 ha quattro modi di lavoro, in base al tipodi oscillatore che si utilizza per generare la f requenza di
f unzionamento:1. - EXTRC: Oscillatore esterno basato su RC.
2 * INTRC: Oscillatore interno a 4 MNz.3. - XT: Oscillatore esterno con cristallo di quarzo da
100 KHz sino a 4 MHz.4. - LP - Oscillatore esterno con cristallo a basso con-
sumo da 32 KIlz sino a 200 KHz.
Ouando si lavora con oscillatori esterni basati su cri-stalli di quarzo o risonatori ceramici, ipiediniGPS/OSC1/CLKIN e GP4/OSC2, supportano i piedini delquarzo. I valori dei condensatori C1 e C2 mostrati nella
figura, per imodiXTda 1 a4MHz e per il modo LP da
32 KHz, di solito sono da '1 5 pF.
Quando è molto importante ridurre al massimo il
consumo di energia, si configura l'oscillatore esterno inmodo LP In questo caso, lavorando a 32 KHz, il consu-mo di corrente e di pochi microampere, invece dei mil-liamoere necessari oer lavorare in modo XT a 4 MHz.
Nel modo di lavoro con l'oscillatore esterno, il genera-
tore degli impulsi di clock puo essere un circuito indi-pendente, in questo caso si collega al piedino GP5 e lafrequenza può essere prelevata dal piedino GP4.
Nelle figure seguenti sono proposti gli schemi di un
oscillatore esterno, basato su circuitr indipendenti con
Qrhame r'lal rnllansmanta
del cristallo di quarzo negli oscillatori esterni
Generatore esternocon porrc TTI e cristallo di qua,zo rn configuratione parallela.
porte TTL e cristalli di quarzo in configurazione paralle-
la e seriale. I valori dei componenti passivi sono fornitida MICROCHIP, nelle specifiche tecniche.
Infine nella fiorrra e rinortato lo schema di un oscil-
latore R-C.
La modalità R-C dell'oscillatore è molto semplice ed
economica, però non offre eccessiva stabilità nella fre-quenza.
Generatore esternocon porte TTL e cristallo di quarzo in configurazione seriale.
+VDC
!, .., t. : ,.,: : t' :,: ',,) t:' !:, ) j':... t',.,.
+Voo
Disposizione di un oscrllatore esrerno di tipo R-C
,,;t,.i ',,t" ,,.i:.',',i;;i | ',' :'i.; f':i,, ;
Con l'obiettivo di lasciare lberi la maggior parte dei
pochi piedinr del PIC 12C50BA per la gestione delle peri-
feriche e le funzioni delle risorse interne, l'oscillatore
che genera la f requenza di lavoro puo essere interno, in
questo modo non dovremo ulilizzare dei pin per il col-legamento di componenti esterni. Questa è la forma di
lavoro in modo INTR.
Questo oscrllatore interno viene calibrato in fabbricaper oscillare ad una frequenza di 4 MHz. con un 5% di
tolleranza, quando è alimentato a 5 VDC, ad una tem-peratura di 25"C.
Per la corretta operatività di questo oscillatore, dob-biamo scrivere nel registro OSCCAL (Calibrazione
dell'Oscillatore) un valore di calibrazione di 6 bit, che èstabilito dal costruttore del chip. Questo valore si carica
automaticamente nel registro W quando si reinizializza
il processore, per questo all'inizìo del programma si uti-lizza l'islruzione MOVWF OSCCAL, per traslare rl valore
di calibrazione da W a OSCCAL. Nella figura pubblicata
qui sotto è riportata la distnbuzione dei bit del valore di
calibrazione nel registro OSCCAL che occupa l'induizzo05 Hex.
INDIRIZZO 05 Hex.
Distribuzione dei bit che formanoil valore della calibrazione per l'oscillatore interno
lì PlC12C508A dispone di due temporizzatori da B bit.Uno e di ulilizzo generale e si impiega in tutte le appli-
cazioni che richiedono un controllo preciso del tempo,
, l'altro e il Watchdog, il cui compito e resettare il micro-
contro ler quando il programma si ferma in modoimprevisto, e cessa il suo periodico aggiornamento.
: Entrambì i temporizzatori funzionano come contatorìascendenti che sì caricano con un determinato valore e
i si incrementano ad ogni impulso di clock. Quando' vanno in overflow, cioe quando passano dal vaìore FF al
valore 00 Hex, generano un avviso, ponendo a uno un
flag, o resettando il microprocessore, come rappresen-
tato nella figura successiva.
, Dato che i temporizzafori da 8 bit hanno un range
di conteggio ridotto, dispongono di un divisore di fre-
IMPUISO DI
CONTEGGIO
Struttura dei temporizzatort del PlCl 2C50BA
quenza che riduce il numero degli impulsi, aumentan-do così il conteggio massimo a cui possono arrivare.
Questo divisore divide ìa frequenza degli impulsi appli-cati oer le srrccessive notenze del 2. Nel caso del WDT
il range di divisione arriva sino a 128, mentre se si trat-ta del TMR0 arriva sino a 256.ll controllo dei parame-
tri fondamentali dei temporizzatori e fatto tramite il
registro OPTION.
; , ': ;','t'i:. I
F l'rrn ro temnorizzatore di r ftilizzo nenerale di cui
dispone il PIC 12C5084, e puo utilizzare il drvisore di
frequenza quando si scrive uno 0 nel bit PSA del regi-
stro OPTION Quando il PSA vaie 1 il divisore di fre-quenza lo utilizza il WDT.
Come frequenza di clock, il TN/R0 puo scegliere se
utilizzarne una esterna indipendente, che si collega al
niedinn OC Kl onnr rre nr rella irtprna dell'oscillatore
FosdL. Per funzionare nel primo caso dobbiamo impo-stare il bit TOCS a uno mentre per il secondo caso biso-gna porre questo bit a zero. Osservate nello schema
Affi
FLAG DI
OVERFLOW
VATOTE DI O{UBflAZIONE
:t,,iit: ti,t1:.,:::.r
\f-Àt'ffi:ffiryffimffiControllo della frequenza nel TMR0
Se il bit PSA vale 0, si assegna il divi-
sore al TN/R0, in questo caso f unzio-
na all'ingresso degli impulsi, cioè
come predivisore. Per contro, quando
PSA vale 1 il predivisore si assegna al
WDT, dove f unziona all'uscita del
medesimo, croè come postdivisore.
ll bit TOSE di OPTION sceglie il fronteattivo dell'impulso di clock: quando
vale 1 è il fronte di discesa, quandovele O e nrrello di s,alita TOSC selezio-
della fìgura il funzionamento della linea TOSC, controì-lata dal multiplexer.
ll segnale T0SE seleziona il fronte attivo dell'impulsodi rlnrk rhc nrodrrrp l'incremento di valore nrrando!, ,v v, vu ulL Y vs, ,vv
questo proviene da un generatore esterno. Se vale zerosrenlic il fronte di salita e se e uno orrello di discesa.
ll valore del registro TMRO che occupa I'induizzo 01
Hex dell'area SFR si puo leggere e scrivere tramite il bus
dei dati interno. Ouando si desidera contare un nume-ro definito di impulsi, il valore con cui si deve inizializ-
zare ilTMR0 è ilvaìore massimo FF, meno ilvalore desi-
derato piu una unità, dato che l'overflow si produce
passando dal valore FF a 00 Hex.
i;i; i j'.iii1l
ll suo compito principale è configurare il comportamen-to dei temporizzalon. Non occupa un indirizzo reale
dell'area SFR, esiste un'istruzione speciale che carica in
questo registro il valore che contiene il registro W. I bitdi questo registro possono solo essere scritti, e quando
awiene un reset, essi sono inizialtzzati al valore 'l . Nella
figura si mostra la struttura interna del registro OPTION.
I tre bit meno significativi di questo registro, PSO -PS'l - PS2, stabiliscono il range di divisione degli impul-si di clock, da parte del divisore di frequenza, come si
puÒ vedere nella tabella della figura. Osservate che per
il TN/R0 il range è il doppio di quello del WDT.
Struttura interna del registro OPTION
na il tipo di generatore di frequenza Quando vale 0 si
t iilizza nor il rnntonnin l: f ronr ronz: intarn: npr nrn-
cessore. Fosd\. Se TOCS vale 1 iì TMR0 si incrementa
F52'P5I:F5O
oooooloroolltoorortto
PREDIVTSORETMRO
lz2l:4l:8l:Iól:321264
l:128
PREDfVISORÉwDrl:Il12l:4l:8l:lólt32t|64
Tabella che indicai valori di funzionamento del divisore di frequenza
con gli impulsi di clock prodotti da un generatore ester-
no coìlegato al pin GP2ITOCKl.
Quando il bit GPPU si carica con uno 0, le linee di
l/O GP0, GP1 e GP3 funzionano come ingressi, con una
debole polarizzazione dovuta alle resistenze di pull-up;
se GPPU = 1 queste resistenze di polarizzazione vengo-
no disabilitate. Il bìt più significativo di OPTION,
GPWU#, ha una funzione particolare, nel repertoriodelle istruzioni dei PIC della gamma base ne esiste una
chiamata SLEEB che manda il microcontroller nel mododì basso consumo, o di riposo. In questo stato non si
eseguono le istruzioni, sì congela lo stato precedente,
e si spende il mrnimo di energia per mantenere il siste-
ma "addormentato".Per "risvegliarsi" da questa situazione e riprendere
il normale lavoro dobbiamo cambiare lo stato logico
dei piedini di l/O GP0, GPl o GP3. Se GPWU# è a 0 i
pin menzionati sono abilitati a risvegliare il PlC, quan-
+iil.'tí+:l'.,:..ri: ;lriiir l+f.,Ìrir+,'fri,1r'i, ;;t t,í::.É Éji:,i:'! i+IÉ,-+
:
OPTION
do su di essi awiene un cambiamento di stato. ll risve-
glio sr realizza producendo un reset, e se GPUW# ='l si
disabilita ouesta oossibilita.
'tt'
E un contatore ascendente, simile al TMRO, che ha laparticolarita di andare in overflow, e al passaggìo dal
valore FF al valore 00 Hex genera un reset. ll suo com-pito è supervisionare il buon funzionamento del pro-
gramma; si utilizza caricando nel WDT un valore inizia-
le, passando poi all'esecuzione sequenziale delle istru-zioni del programma. ll programmatore dovrà disporre
nel programma delle istruzioni di riaggiornamento del
WDT, prima che questo vada in overflow, sempre che il
programma si svolga normalmente. Se il programma si
ferma o finisce in un ciclo infinito, l'aggiornamento del
Watchdog non giunge in tempo, e allora quest'ultimo"morde", cioè genera un reset.
Se il divisore di frequenza e assegnato al WDL fun-ziona alla sua uscita, come s puo vedere dalla figura.
l,.t'1. :-;,q.r, rt '', ,t:: ,',.1' ::
lPlC nani dedicano sei dei loro otto piedini alle linee di
l/O multifunzionali, per rendere più alta possibile la con-nottivit: fr,a lp nerifprirhe e le risorse interne.
Queste sei linee si chiamano GP0-GP5 e tutte pos-
sono funzionare sia come ingressi sia come uscita, adeccezione di GP3 che ouo solo funzionare come inores-<n Por rnntrnll:ro nrpste linee si tiilizza il renistfO GPIOr YvrJLr
all'indvizzo 06 Hex della RAM dei dati, la cui struttura è
riportata nella figura. Nello schema della figura vedia-
mo il circuito elettronico associato ad ogni pin GPx.
Quando si scrive un 1 nel flip-flop TRIS, il piedino
GPx associato assume uno stato di alta impedenza, e il
pin si configura come ingresso. Per leggere lo stato logr-
IMPULSO PER TMRO
lNDlRlZZl 0ó Hex.
Struttura del registro GPIO
Schema elettricorlal rnllons6pnrn dai nin di llO del PlCt )C50BA.
co che si applica a questo pied'no tramite l'esterno,
basta leggere direttamente il flip-flop der dati, che euno dei bit del registro GPIO. Se nel flip-flop TRIS scri-
viamo uno 0 la porta si configura come uscita, e per
portare su di essa un livello logico lo dobbiamo prima
scrivere sul flip-flop dei dati che è il bit corrispondentedel registro GPIO.
L'istruzione TRIS GPIO carica il valore memorizzaloin W nel flip-flop TRIS e lo configura come ingresso or^mo 1<.it; Ad o<omnin <a <i docidor2 666fi^"rîr^ lîLVrr rs u)LrLq. nu c)gr I rPrw )E Jr usjruEro Lvr il lvur olE lo
linea GP0 come uscita e il resto come ingressi e in
seguito portare su GP0 un livello logico alto, sì dovran-nn trqpnrriro lp spnrronti istruzioni.
TRIS GPl0 ; Configuro GPO rome uscita
MOVWF GPIO ; Da GPO esce uno 0
ffiPSA OVERFLOW
WDT
ll divisore di frequenza funziona all'uscita del WDT.
It reset e [e istruzionidet PICl2C508A',j.
.:':,': .,i, t' :.,.
ll PlC12C50BA, carente di interrupt, dispone solo delReset ner reiniziare rA qeflrrenza rhp def ermina il f lus-
so delle istruzioni del programma. Resettare il micro--^^+-^tt^- -i^^if i-- --îpnnArp rrn v:lnrp nntO a tUtti iLUt tLtuiltrt )tvil| tLd d))Egr rorE ur I vorvrE rvL
suoi registri di controìlo della zona SFR della RAM dei
dati Fra questi registri si trova il PCL, che dopo il
Reset rimane caricato con il valore 1111 1111, il che
significa che al successivo impulso di clock, passerà
alla prima istruzione da eseguire, posta all'indirizzo0000 0000, che è la prima della memoria di pro-gramma.
La reinizializzazione del PIC si
seguenti modi:1 o Collenamento dell'alimentazione.
I bit GPWUE TO# e PD#
determinano la causa che ha provocalo i/ Rese/
:..': :'i,):t;,", '',
nrrò nrnrinr:ro noi
STATO
lNDlllÍao nrcsrRoRESEI PER Reset per offivozione di MCI,R#,
oo i rNor ì **rr xxxx ui ,ùj; 'uuuuIMRO x xxx xxx xOl i TMRO'l xxxx xxxx:ì '::'::r::'uuuu uuuu
02 ; pC rj "'ì1 111 lllt: l':',i:,',7]îri:.:i: llll
03 i ,SfAfO l.1ù OO I I xx i,ì ,. ',,:1119.,6;',
,Q;':;:i qs u u04 FSR Illx xxxx lllu uuuu05 : oscclt i':*,:::aaa oo - - uÈ,ù$,-_4, u - -
Oó : GPIO i t:txx xxx*,;;',,'.;;;::;.;;$.;$.$fr1!il,,iÚuuuopagltj Í.Ír I 1.1,1';lt';;':t:.:;;;,:rtìiìit.$1iffi"! t I I
TRIS :, - i:,Ll I I.l tr:,!,,,:,,,r:rlri:,,:ì::rrr''t t I I | |qqqq qquu
fcolibrozionel
'ilffo REGrsrRo coiiió-a,r,riiìro '**';;;È;J"i'di;-KA|n DEUAuMENTAZIoNE combio di stoto su GPlo
:*--*d** ,rr'r,: .r.:r.:.ì-9*lilllll&14@:ìrìllllMiir@iÈ!t
2'. Overflow del Watchdog in
modo normale o in modo riposo.
3". Attivazione di MCLR# in modo
normale o in modo riposo. Caduta
della tensione di alimentazione sul pin
GP3/MCLR# /pp fra 2,1 e '1,5 VDC.
4". Al cambiamento di stato del
pin GP0, GPl e GP3. Quando si pro-
voca un Reset, il microcontroller esce
dal modo riposo.Per conoscere la causa che ha
orovocato il Reset. si utilizzano treflag del registro di STATO: GPWUF,
TO# o P# rhc snnn nresentati nella
figura.Nl^ll- +-A^ll- ,.J^ll. f;^,,"^ .^^^t\cild tductìd ucild il9utd )uilu
mostratì i valori che assumono i bitdcl rpnistro di STATO ner le differen-ti cause di Reset.
w ir4$s qqxi.. i. .:i ]l!:.:-'i?Ti ...
Abbreviozioni / -: Non implementoto; u: Non combio; x: Sconosciuto;q: Dipende dollo condizione.
I
Valori che assumono i bit dei registri di controllo del PlCl 2C50BA dopo un Reset
Esistono diverse forme per provocare un Reset, e
non tutte le volte i registri di controllo rimangono cari-
cati in modo r-rguale. Nella tabella della figura sonoriportati i valori che assumono registri SFR del PIC'12C508A dopo che si è prodotto un Reset, sia per il col-
legamento dell'alimentazione che per l'attivazione delpiedino MCLR#, il debordamento del WDT o i cambio
di stato su qualcuno dei pin GPx.Valori dei bit del registro di STATO per le differenti cause di Reset
wM@
FtIP-FtOPffiffi
ll circuito per rilevare il
buco di tensione sul pin
N/CLR# si puo semplifica-re elìminando il diodoTener come si nro vederenell.r fiorrra dove e stato
sostiruito dalla coppia di
resistenze R'l e R2. ln
ouesto caso il îransistor
Q1 si blocca e attiva il
Reset portando a Iivello
basso il pin MCLR# quan-
do la tensione di alimen-tazione scende al di sottodi 0,7 lR1 / (Rl + R2)1.
Voo
ffiffiOVERFLOW
WDT
CAMBIO DI STATO
PIN SPX
STEEP
MCLR#
:,
RESET t;,
,. . iSchenl
ltettrolico det. cyy.trltlo
!1tt' attivaziolte del Reset,
,.,,t.,;i',,,,!;ti, i; t.;,.i-i :;:,::t;':ti i tti:,
Nello schema elettronico della figura, l'attivazionedel Reset interno del processore e provocato in base
al valore Q# del flip-flop R-S. Questo dispositivo siI ^' '-^r^ 'i rtf iv: il cró innro(<n Set rho ppurc d I L]udruu )r c --. .
controllato dall'uscita di una porta OR a 4 ingressi,ognuno dei quali corrisponde ad una delle cause checpne rano il Respt | 'attivazione del f ronte attivo delReset è ritardata da un oscillatore DTR e da un con-tàtoro. e R hit npr :qoettare che si siano stabilizzatesia la tensione di alimentazione che la frequenza di
lavoro.
ilt.'.;,1;; l' i"i,;l:1,':,.i :i, i :: :.i i l' ::,: :',,..,i i ;; ; :,;i
Si produce un buco di tensione nell'alimentazionequando la tensione VDD che riceve il PIC scende sottoun valore minimo, e poi recupera. In questa situazio-ne o aón\/anionto nonor:ro rrn Rocot 61p6 p17it:ra m rlllE g lvllVElllEllLE VEllLrurL ur VLr LvlLOlE lllcl-
funzionamenti nel sistema e nei circuiti assocrati.
Questo Master Clear Reset (N/ICLR) si puo program-mare in modo che si produca internamente, quandosi abilita il segnale N/CLRE dello schema elettronico, e
anche esternamente, nel qual caso questa funzione è
assegnata al pin GP3/MCLR/Vpp che genera un Resetquando la tensione applicata ad esso scende a valorif ra 2,1 e 1 ,5 VDC. Esistono due circuiti classici per
implementare questa funzione di rivelazione dell'ab-bassamento della tensione sul pin menzionato. Nelloschema mostrato nella figura al centro, si produce il
Reset quando la tensione VDD scende al di sotto del
valore della tensione di zener, Vz, più 0,7 Volt corri-spondenti alla giunzione emettitore-base del transi-stor Q'1.
ll Pa<of <i nrndt tra at tanr]a
la tensione VDD scende al di sotto di Vz + 0,7 VDC
ll pin MCLR# genera un Resetquando la tensione scende al di sotto di 0,7 [Rl I (Rl + R2)]
]
it. l:,,:..i::..,:t:"i ,'t ';; t,,t.i..':';,t;rtt,t,t t
In molte applicazioni e frequente che il PIC non abbianiente da fare per lunghi periodi di tempo. Questosuccede, ad esempio, nelle macchine distributrici,inoltre è comune nei prodotti piccoli, in cui i PIC nanisono idonei, alimentati a pile, come ad esempio nei
microrobot. Rrdurre il consumo di energia in questesituazioni e vitale per mantenere il sistema operativoper periodi accettabilr. Se rl sistema sta aspettandoche l'utente prema un tasto, bisogna fare in modoche durante questa attesa, a volte molto lunga, il con-sumo di energia sia minrmo. Per questo si "addor-menta" il PlC.
Per fare ìn modo che il microcontroller entri in
stato di riposo, o di basso consumo, bisogna eseguirel'istruzione SLEEP ln questo modo passa dal consu-mare alcuni milliampere ad aver bisogno solamente dipochi microampere, cosicche una pila puo duraredegli anni.
Quando il PIC entra in stato di riposo, ipiedini dil/O mantengono lo stato precedenle, cessano di ese-ouirsi le islrLrzioni e se si uliltzza un oscillatore alJ" - -
quarzo questo si fermerà, riducendo ulteriormente il
consu mo.Per svegliare il PlC, e farlo uscire dal suo stato di
'congelamento, bisogna produrre una situazione spe-ciale. Dato che il PlC12C508A non dispone di inter-rlnt il slo risveoìio ,,i realizza oeneralmente median-,-r., ,,
îe 1n Reset che n1ò pq<pro nrrì\/^.:t^ .irll'OVefflOW
del WDT, dall'attivazione di MCLR# o per il cambio di
stato di alcuni piedini GPx. ll bit PC# del registro di
STATO si attiva quando si esegue l'istruzione SLEEP,
mentre il TO# si attiva quando va in overflow il
Watchdog.
, t::' :' t:'i.t l:., !;';:,,,,1:..0! 1.1,,-.,,,' ' a :lt , ., i :,
5i puo scrivere nella memoria di programma del
PlC12C50BA in modo serrale, sullo stesso circuito del-l':nnlir:zinnn Arrnc+r1 normetta :l rnctrl rftnro nor nrn-I OPPllLO4lUl lC. \<'UC)LU pLr | | rL r!L ur LvrLt u LLvtg UEt ptV-dotto finale di produrre la scheda elettronica con il
microprocessore senza doverlo programmare, e realiz-
zare la scrittura del programma solo al momento dellavendita, garantendo al cliente il firmware più recente e
perfezionato.Come si può vedere nello schema della figura, per la
programmazione del PIC sono necessari cinque segnali:VDD e VSS per l'alimentazione, Vpp per l'ingresso dellatonsinno <nori:lp ner l: nrnnr:mm:zinno rrn: lino. ^o',, -r_.',_,* r_, ,a programmaztone, und il|ea per
inviare i dati in modo seriale al PIC e un'aìtra per invia-
P70
re gli impulsi di clock che sincronizzano l'invio del-
l'informazione seriale.
VSS+:Voo(+SVoc)+,r
Vpp+.,DATO SERIALE+|
IMPULSI >.Dt ctocK
Collegamenti baseper la programmazione in modo seriale del PlC.
Nel caso del PlC12C5084. il pin GP0 funziona comeingresso dei dati seriali, il pin GP1 come ingresso delclock di sincronismo, e il pin GP3/MCLR#Vpp per l'in-oro<qn dpll: ton<inno <nori:lo di nrnnr:rr. ---- _,,lmaztone,come indìcato graficamente in figura
l
Voo+::
j
GP3/MC[R#/+,.
Vpp
+Vss<4PO<+Pt
A<<oonazínna daì ninrtol PlCl )aqnRA nar ls <t ta nraarsmms zinna <arialo
Sino ad ora abbiamo gestito l'insieme dì istruzioni del
PIC 16F84 che funziona come cervello di Monty, che ha
35 istruzioni da '14 bit dì dimensione cadauna. Per
manìpolare la pinza che possiede Monty su un braccio,si utilizza il PìC12C5084, che è un nano della gamma
base. ll suo repertorio di rstruzioni ne comprende solo33, da 12 bit ognuna. Questo fa sì che sia molto facilecomprendere la programmazione del nano, dato che la
I r':'f i t'f'
, "., 1 '..1 . ' II i,
ISTRUZIONI DEI PIC DI GA'YIMAOPERAZONI CON BII
,t,
,
di programm a, l'induizzamento si
effettua con 9 bit. Nell'istruzione
CALL gli 8 bit meno signif cativi del
suo codice di istruzione sono caricati
rpl reoistro PCI dell'area SFR della
RAN/. ll nono bit del PCL viene
messo a O. Qualcosa di simile accade
con le istruz oni che spostano un
valore al contatore di programma,
nel quaì caso gli 8 bit dell'operandosi scrivono negli B bit meno significa-
tivi del PC, mettendo a zero il nono.
Secondo le stime di MICROCHIP, la
dimensione del codice che si crea
per la gamma base e inferiore a
quella dei competitori, come si
mostra nel grafico seguente.
Per quanto riguarda la velociià
dr esecuzione, il vantaggio che si
ottiene utilizzando i PIC dellaTabella che raccoglie le 33 istruzioni dei PIC della gamma base
maggior parte delle istruzioni sono simili a quelle del
PIC 1 6F84.
ii- iÍ: rl;jjiil i t,. j.' !i.. ;.. i ; ; t ii lt t
Analizzeremo solo il comportamento delle ìstruzioni
della gamma base che comportano differenze con queì-
le già note della gamma media.
Uistruzione TRIS serve per conf igurare le linee della
porta GPIO come ingressi o come uscite; con questa
istruzione, i bit che precedentemente erano stati carica-
ti nel registro W si caricano sul flip-flop TRIS e configu-
rano la direzione della linea. Un'l fa sì che la linea cor-
rispondente sia ingresso, uno 0 che sia uscita. Se si desi-
dera configurare le sei linee GPx come ingressr, bisognaeseouire le seorrenti istruzioni:
TRIS GPiO ; Le GPx funzionano come ingressi.
Un'altra istruzione speciale della gamma base e
OPTION, che serve per caricare il registro OPTION per il
controllo del TMRO e del WDT con il contenuto di W.
Listruzione GOTO contiene, inclusi nel suo codice a 12
bit, i 9 bit che corrispondono all'indirizzo dell'istruzionea cuì bisogna saltare. Rlcordatevi che siccome il
PlCl2C50BA dispone solo di 512 parole nella memoria
gamma base è molto più marcato,
come si puo vedere dal relativo grafico.
Grafico della dimensione del codice
dei PIC base confrontato con quello dei suoi competitort
ll orefirn ovidenzia
la differenza di velocità di esecuzione dei PIC base.
STó2
5GScoP800Notionol
movtÀr r : MuowWsfclRw : Clnqellgw.CfRf f :ConcellofsúÉùr ,1"4 ;P'F"9f, , .t,,d,-:.loRwF frd. I oR"-fry*\,ye
aDDwF " f,C " il-"r11gelry e
iÀovF Íd z
OPERAZIONI CON IMMEDIATI
o: Indirizzo di progrommo; b: Bit; k: Lefierole immedioto.
W@ffiF-*
DIMENSIONE RETAÍIVA DEt CODICE
vrlocttA RELATTvA Dr EsEcuztoNE
"-,':rr i;-i:,;i,'ii r't::il-:iî::ì l:i: ti,y i;i; t:;,,,,,r,t'l, r'.t
Micro'PIC Trainer Plus
Applicazioni con la
1;f:rit ' :;: ,,',: :: ,i',:: ',.
In quest'opera sono presentati diversi strumenti di rico-nosciuto prestigio internazionale, per gestire i PlC. Fra
questi notiamo il sistema di sviluppo Micro'PlC Trainer.
che oltre a funzionare come uno scrittore di memoriedispone delle periferiche piu comuni utilizzate nelìe
applicazioni: display LCD, display a sette segmenti,
,".i*,,,, ;r t:;:r,;;:;; t:; ;;;;';:,;;'P;;: r"t;
interruttori, pulsanti, potenziometri, barra di LED, ecc.
il che permette di eseguire in tempo reale i programmiin fase di messa a punto e prova.
Al Micro'PlC Trainer mancano ancora numeroseperiferiche tipiche dei progetti con i microcontrollelper questo il produttore ha sviluppato altre schede di
espansione che ne forniscono di nuove. Queste schede
sì collegano al sistema di sviluppo tramite il connettorePICBUS. La ditta "lngeniería de MicrosistemasPrnnr:medn<(l" h:, ,-y,-, , ,,- progettato tre schede di espan-sione che sono commercializzate sotto il marchioMICROSYSTEMS ENGINEERING:
1 . Mrcro'PlC Trainer Plus
2. Micro'PlC lO
3. MSxB4Oonrrn: di nrrpstp srhpdp qr rnnortà rrn insieme di
neriferirhe sncrifirhe destinate a risolvere lavori comu-ni in diverse aree di applicazione. ll lettore puo ottene-re informazioni più dettagliate su questi prodotti, nelle
pagine del sito Internet del costruttore. In linea di mas-
sima la Micro'PlC Trainer Plus mette a disposizione delprogetto da implementare risorse quali tastiera, conver-
titore AD e DA, porte di l/O, ecc. La Micro'PlC lO e spe-
cializzafa in applicazioni industriali e la MSx84 nel con-trollo di motori e sensori.
| '',': !t',,,,';, :,:,'.,|t,:,.i:l: ,.: ':.,
Aggiunge alle risorse della Micro'PlC Trainer quelle elen-cate di seguito e schematizzate nel disegno della figura:
. Tastiera matriciale 4 x 4
. Barra di diodi LED
. Visualizzatore da quattro dìsplay a 7 segmenti
. Convertitori AD e DA
. Canale di comunicazione seriale RS-232
. Porta di l/O da B linee
. Clock/calendario e RAM non volatile
La disposizione di tutti gli elementi di questa scheda
è riportata nella fotografia alla pagina seguente, in cui
si possono vedere i suoi tre connettori di comunicazio-ne con l'esterno: il connettore corrispondente al canale
seriale RS-232, quello del PICBUS con cui si adatta alla
Micro'PlC Trainer e una fila di morsetti a vite con cui si
pongono a disposizione dell'utente le linee di l/O di
tutte le risorse.
Schema dell'espanstone delle risorse della Micro'PlC Trainermediante il collegamento alla Micro'PlC Trainer Plus tramite ilconnettore PICBUS.
P7l
Fotografia della schlda Micro'PlC Trailer. ely
| : "ii t,' ; t1 .t',;
Alcuni PIC hanno integrato sul silicio il bus 12C, e dedi-cano i piedini RC3 e RC4 a supportare lo scambio di
informazionr in serie e gli impulsi di clock. Altri PIC più
semplici non dispongono di questa risorsa, e la devonoimplementare via software, utilizzando le linee RB6 eRB7 per la loro gestione.
Come abbiamo potuto vedere quando è statadescrìtta la Micro'PlC Trainer Plus, questa scheda utiliz-za quattro circuiti rntegrati specializzati per controllarele principali periferiche che supporta:
1": SAA1064: Controller per quattro display a sette
segmenti2'. PCF8591: Convertitore AD e DA
3". PCFB\744: Porta di l/O da 8 linee digitali4". PCF8583P: Clock/calendario oiù memoria RAM
Sia lo schema dei collegamenti sra il funzionamentodelle sezioni che formano la scheda sono state spiega-
te in precedenza; nella figura si mostra la distribuzionedelle risorse sulìa superficie della PCB.
Distribuzione dei pri nciaalicomponenti sopra la scheda della Micro'PlC Trainer Plus
,.r .! i,l
Insieme all'hardware della Micro'PlC Trainer Plus, il
costruttore fornisce un disco che contiene tutti ì pro-grammi e le routines che si utilizzano nelle diverse
applìcazioni e nei progetti dimostrativi del sistema, per
iniziare l'utente alla sua gestione. Questi programmisono progettati esclusivamente a fini didatticì e sonoabbondantemente documentati per facilitarne la com-prensione, andando oltre la descrizione tecnica di puraprogrammazione.
,.,t' ,i.ri:'t, l,t,','t i,;,;,:t, 1'
', ,: ' ,, ,. i t,.:. i :'.,:;,ir,',,;;',,.; , ',, ., |i, y' ,'
,,
Per fornire al lettore un'idea delle grandr possibilità
della Micro'PlC Trainer Plus, studiamo in modo somma-rio la sezione che controlla il circuito ìntegrato l2C
PCFB5B3, che contiene un clock/calendario e una
memoria RAM. Si tratta di un circuito CMOS a basso
consumo controllato con il bus l2C.
Contiene una memoria SRAM da 256 byte, e un
registro che la indirizza e si autoincrementa leggendo oscrivendo una delle sue oosizioni. Disoone di una linea
esterna A0 che permette il collegamento al medesimo
sistema di due di questi dispositivi. Per il controlìo delle
rìsorse interne sono utilizzati diversi registri che sono
I Schema a blocchi del PCFB5B3.
' implemenlati sui primi 16 indkizzi della memoria
r SRAM. Lo schema a blocchi è rappresentato nella figu-"- "ì^^"+-+- ^,,; -^^ra flpoftara qur sopra.
, Si alimenta con una tensione compresa îra 2,5 e 6; VDC e la tensione per il mantenimento dei dati nella
, memoria può oscillare fra 'l e 6 VDC. ll clock/calenda-, rio funziona con formato da 12 o 24 ore, con una base
r tempi da 50 o da 32.168 Nz.
I Ha funzione di allarme, di temporizzazione, conta-I tore di eventr e interrupt. La piedinatura, la descrizione
.l
NilICROCONTROLLERStrumenfi di lcrvoro
di ogni pin e le caratteristiche del funzionamento sono
riportate nelìe figure seguenti.
Funziona in base a un oscìllatore interno da 32,768 àze dispone di un circu to POR (Power On Reset) che ini-
zializza il dispositivo quando si collega la tensione di
alimentazione. I primi 8 indi-nzzi della RAM (00 - 07)
t.i lunzronano come regrstrlsoecifici di controllo. ll primoreoistro sitr rato all'indtrizzo
00, funziona come registrodi rnnirnlln p 6li qfr+n mnnut LUtìLtuilu E ut )LqLv, I tErt-
i tre i successivi 7 ccntengonoi parametri della f unzione
oraria. Gli indirizzi da 0B a
0F si nossono rrtiìizzare comeregistri per il controllo di
allarmì, oppure come indirizzi di ulilizzo generale.
Mediante il registro di controllo e di stato, si impo-sta il temporizzalore per lavorare o con la base tempi,che puo essere 50 e 32.768 Hz, o come contatore di
eventi esterni. Lavorando in modo orario i giorni, mesi,
ore, minuti, secondi e centesimi sono espressi nel for-mato BCD. Nel modo contatore di eventi esterni, qli
<frt tftt tr) a s<<aanazinno
dei bit del registro di controllo e di stato.
impulsi da contare sono applicati al piedino OSCI, e si
possono scrivere, dato che può funzionare come conta-
tore di eventi da 6 digit.
Nella figura riprodotta qui sopra è riportata la distri-
buzione del registro di controllo e di stato, in essa si può
apprezzare l'esistenza di un bit che attiva l'allarme se si
desidera. Questo registro si pone a zero dopo il reset.
Quando si produce una situazione di allarme si attiva il
flag corrispondente. L'uscita INT passa a zero. I flag man-
tengono il loro stato fino a che sirealizza su di essi un'o-^^'--i^^^ A' --''++' '"^ Se non si usa la funzione di allar-pct dztut rc ur )Lr rLLurd. -
me, i registri da 09 a 0F possono essere adibtti a conte-
nere dati.
Bf DI STOP DEL CONT@ìO0 = COffi@OI :MNTENÈ [COME6IO,
cNctu I DtvtSoRE
S] DI RftNZPNI0 = CONÌE60I -MIMORIZAERIIIENE
fULIhO VALORE CONIATO
wom- l00 = MOrc OW'O A 32,7ó8 Hz0ì =MorcouRloa 50 Hzl0 = MOD CONIAIORT Dl EVEMIil = MOrc ftsl, m
I coNlatoRt tN PAuuilo
{a 00 DoPo I REsEr)
úéuiilmffi
-FffiMMiltffistówt;uM._, - 0: auwE scoffiafo] =AUHf COtrEGA]O
PCF8583PPcF8583T
Piedinatura del PCFB5B3
SEGNAI-E DESCRIZIONE
OSCI Ingresso dell'oscillotore dq'5é Hz o ingresso.de5lii eventi:
OSCO Uscitodell'oscillorore
AO fngreso eslemo legtli,|$irizí ;
Vss Negotivo dell'oiiàentozhle l
sDA Linq dei dqti del bus l2C
SCt Lineo del clock del bus l2C
INT Uscito dell'interrupt in collettore operto
Vdd Positivodell'qlimentozione
Descrizione funzionale dei piedini del PCFB5B3
N9 DIPIN
I
2
a
4
5
6
7
I
PARAMETRO
fensione dr ìrilmenùlon!consumo dj toi*èoB r
Tensione di ].in:gresso
Corrente di inle3soCorrenle di vritqDissipozione di pobnz€Porenzo di useifti
MTNIMO MASSIMO
-O,8 +7
50-O,8 o VdJ VDD+O,8
to.to
300
50
SrMBOtO
,
: VpD
IDD
vlh
lo
Pror
UNlTÀ
mA
frA
i-HomI 0:[rcstzrcN:5Eó
, $ reNO SENAMSCHEMRIr = DAU rcSgONt5 É ó
Caratteristiche di funzionamento del PCFB583 Mappa dei registri specifici
P72
Registro contatore delle ore
.,... '',', ':.,1,..:;,.'. .:' ,
Nella figura alla pagina precedente e rappresentata la
distribuzione e I'assegnazione delle f unzioni dei diffe-renti registri specifici per il modo orario e per il modocontatore di eventi.
Nel modo orario si può scegliere il formato 12 o 24ore, attivando il bit più significativo del registro conta-tnro rf i aro rha À rinnrl:l-n nall: {in' 'r: in .l+.- ,,f,-,tdto neild Tr9urd tn atlo.
ll registro che occupa la posizione 05 contiene l'an-no e il giorno, il registro 06 il giorno della settimana e
il mese Orreste fiorrre mostrano la distribuzione inter-na d; entramb
I
reO strl nttlvando blt d maschera de
I
CONTATORE DI ANNI/GIORNI, POSIZIONE 5
MSB A 0l D0P0 lL RESET ISB
Registro del grorno e dell'anno.
registro di controllo e di stato, si legge direttamente,tramite questi indirizzi, rl giorno e il mese, mentre il
giorno della settimana e l'anno si leggono a 0. ll for-mato BCD è utilizzato anche dal contatore di eventiestern i.
Nello schema della figura sono rappresentati i collega-menti dei due PCFB5B3 e un PCFB570, che contiene256 byte di memoria RAM. Tutti questi dispositivi sonoper il bus 12C. Questitre hanno assegnati glistessi indi-rizzi (1010), per cui bisogna differenziarli mediante lelinoa n nin rli inÀiriz.amento. così il primo pcFB583
avrà A0 = 0 e il secondo A0 = 1. ll PCFB570 ha le sue
tre linee di indirizzo A0 = A1 = A2 = '1. ll primo dei
PCFB583 lavora in modo orario con il clock al quarzo a
32.768 Hz, mentre il secondo lavora come contatore di
eventi applicato al piedino OSCI.
Come esempio di gestione per il Micro'PìC Trainer Plus,
il dischetto allegato al kit contiene un file con il pro-gramrna CRONO.ASN/, che implementa tutte le fun-zioni di un cronometro classico, in base al dispositivoPC F8583.
R: resistenzo di pull-up
CONTATORE DILIE ORE, POSìZIONE 4A OO DOPO II RESTT
FORMAIO DEI.I.E ORE
0 = FORIvIATO 24h,fl. flAG AM/PM NON CA ,tSrA
I = FORMATO 12hII. FI.AG A/\4/PM 5I ATIIVA
CONTATORE DI GIORNI DEI.I.A SilIMANA/MESIPostztoNt 8 A 0l DoPo il. RESET
GroRNr DEr.r.A SEITTMANA { 0 - ó l,st LEGGE o sE LA MASCHERA È A "t"
Resistro del mese e del oiorno della settimana Schema del collegamento dei vari dispositivi al bus l2C
MICROCONTROTTERStrurnenti per il progello con il PIG
Applicazionidetla Micro'PIC I0
ll grande successo a livello internazionale del sistema di
svrluppo Micro'PlC Trainer, ha indotto il suo costruttorea potenziarne l'efficacia, mediante l'ampliamento connrovc e noderose neriferiche imnlementale su tre sche-
de che ricevono il nome di:'l . Micro'PlC Trainer Plus
2. Micro'PlC lO
3. MSxB4
In precedenza sono state analizzate in profondità le
possibilità di applicazione della Micro'PlC Trainer Plus
orientata all'uso intensivo del bus 12C. Quì parleremo
della Micro'PlC lO, che espande le risorse base del siste-
ma di sviluppo come indica la seguente tabella.
Encoder ottico per il controllodel senso di roiazione e della velodtà dei motori
€ontrollo di potenza per angolo di accensione dei triaa
Osrillatore
Micro+elè 0mron da 5 VDC
Alimentatore stabilizato
La Micro'PlC lO è adatta a risolvere Ie applicazioniindustriali inerenti al controllo dei motori, controllo dipotenza, gestione dei segnalì analogici, generazione di
treni d'onda, attivazione di relè. ecc. Una informazionepiù completa su questa scheda e gli elementi ausrliari
che I'accompagnano, come il Manuale dell'Utente, il
dischetto con il software di appoggio, gli zoccoìi di
l:"'l 73
Fotografia della Micro'PIC lO
adattamento a nuovi PlC, ecc., si possono trovare sullepagine di Internet del costruttore " lngeniería de
Microsistemas Programados S.1." che sono ubicate alsitowww.microcontroladores.com. Nella figura si può vedere
la distribuzione di tutte le risorse della Micro'PlC lO.
.:Per espandere la Micro'PlC Trainel è stato progettatoun connettore normalizzato chiamato PIC-BUS, che
Accoppiamento mediante cavo piatto fra i connettori PIC-BUS
del sistema di sviluaoo Micro'PlC Trainer e la Micro'PlC lO.
(r)
S*ra*wepe*$ gss €* p*sg*#e *e* $* tr*€
nella Micro'PlC lO è formato da due connettori identici
a 26 pin, che si possono riconoscere a sinistra nella
fotografia. Utilizzando il cavo piatto accluso al sistema,
si collega questa scheda alla Micro'PlC Traìner, che sup-porta il microcontroller PIC in cui è stato scritto il pro-
gramma di applìcazione, per permettergli di utilizzare le
nuove risorse della scheda Micro'PlC lO durante la fase
di messa a punto. La fotografia mostra l'accoppiamen-to delle due schede.
Nello schema elettrico del connettore PIC-BUS e
delle linee di connessione esterna, si puo vedere che
CN2 (PIC-BUS 1) e CN3 (PIC-BUS 2) sono in parallelo,
quindi possiamo usare uno qualsiasi dei due, cioè pos-
siamo collegare simultaneamente le tre schede:
Micro'PlC Trainer. Micro'PlC Trainer Plus e Micro'PlC lO.
Schema elettrico del collegamento dei connetfori chesupportano i segnali del PIC-BUS.
Collegamento tramite i connettori PIC-BUS
della Micro'PlC Trainer, la Micro'PlC Trainer Plus e la Micro'PlC IO
, ', t", lt::-;; ' ., .,: .. 'rl, i..:,,t.: ,:'.,:;lt, t.i ::: :-f :ii:"i l:-',::::ll controllo del motore a corrente continua è una delle
applicazioni più rilevanti dell'area industriale, per questo
è stato incorporato un motore DC nella Micro'PlC lO,
insieme a un circuito integrato che lo controlla. Si vuole
abituare l'utente a gestire il controllo della velocità e il
senso di rotazione di questi motori, con la tecnica della
modulazione di ampiezza degli impulsi (PWM). Sotto
l'asse del motore c'è un fotoaccoppiatore a forcella, che
permette di misurare la velocità angolare dell'asse del
motore quando questo è accoppiato a un encoder.
Come possiamo osservare nella fotografia, per realizzare
un semplice encoder, basta ritagliare un disco di mate-
riale rìgido trasparente. tipo plastica, e perforare il suo
centro per poterlo accoppiare all'asse del motore. Sulla
superficie circolare del dìsco vengono dipinte diverse stri-
sce radiali nere, o opache ai raggi infrarossi. ll numero
Posizione del!'e.ncoler del motore a corrente c?nùn.ua
delle strisce determina Ia risoluzione dell'encoder. In
questo modo con una sola striscia, si produrrà un impul-
so ogni giro dell'asse, mentre se ci sono quattro raggi,per ogni giro dell'asse del motore si genereranno quat-
tro impulsi. Nello schema della seguente figura è rrpor-
tato il collegamento del fotoaccoppiatore. che rileva i
passaggi dei raggi opachi dell'encoder. ll fotoaccoppia-tore a forcella è il modeìlo N21A1, e il diodo emettitoreè permanentemente attrvo. per cui il transistor ricevito-
RD
mu0M]wM3wwRMBìR82RBMRB5&R87RCoRCtRC2
MRgMRgRD
Schem a del col I eg a m entodel fotoaccoppiatore per I'encoder del motore.
re è saturo. Ogni volta che una striscia taglia il raggio
di luce siottiene un impulso che si applica ad una linea
di ingresso del PIC per il suo successivo trattamento.
:.': , '
Per controllare il motore DC si utilizza un circuito di eccr-
tazione, o driver tipo push-puì1, a quattro canali integra-
ti sullo stesso chip 12938 di SGS-THOMSON, le cui carat-teristiche piu importanti sono indicate qui sotto.
Corrente di uscita di picco da 2 A per canale
Alimentazione per il carico ,lata dall'alimentazione di controllo
Protezione con 'o le sovratemperature
P74
Nello schema a blocchi riportato in figura sono rappre-sentati ì quattro canali capaci dì fornire una corrente di
uscita di 1 A. Ogni canale è controllato da un segnale
di ingresso TTL, e ogni coppia di canali dispone di un
segnale di abilitazione che scoìlega le uscite del mede-
srmo. ll segnale di controllo EN'1, attiva la coppia dì
canaliformata dai driver'l e 2. EN2 attiva idriver3 e4.
ENI
tNl
OUTI
Schema a blocchi dell'12938.
Le uscite OUTn sono associate ai corrispondentiingressi lNn. ; segnali di uscìta sono amplificati rispettoa quelli di ingresso sia in tensione (fino a + Vss) che incorrente (fino a '1A).
Nello schema della figura è riportato il controllo dei duemotori DC che girano in un verso unico. Ml si attiva
con livello 0 applicato all'ingresso, mentre M2 lo faapplicando un livello '1 all'ingresso B, come si puo veri-
ficare nella tabella della verità. Un altro schema mostra
2l
Nella figura è riporta'12938 insieme alla sua
rra predinatura del driverro renclatura e descrizione.
PIN v| IE
I El.
2 tNi3 OUT4 GND5 GND6 cut27 tN2I VDD
9 ENzlo tN3I r ouT312 GND13 GNDt4 0uT4t5 tN4ló Vcc
DESCRlzlONE
Abilibzione dei conoli ì e 2
Ingresso del conole ìUscib del conole ìMosso dell'olimenmzioneMossq dell'olimentozioneUscito del conole 2Ingresso del conole 2Alimenhziore del corico
Abilitozione dei conoli 3 e 4Ingresso del conole 3
Uscilo del conole 3Mosso dell'olìmentozioneMosso dell'olìmeniozioneUscih del conole 4Ingresso del conole 4Alimenbzione o + 5VDC
--r--T-543
. ENI
: tNl ._
i owt, cr.ro
' GND
r OUT2
, lN2
lN4
out4GND
GND
OUT3 É_+_ f T T,::4;"tN3
EN2
Piedinatura dell'12938 e descrizione dei suoi aiedini Controllo dei due motori DC che qirano in un unico verso.
.,; t, t.;,o .,,.'1-',,,';,
5:ffi*:l
.
TNICROCONÍROLtER
VinhAMlBM2
-- r'._..:-.-t1.--.rH ì L i Rorozione _ ,__j--__L_ i.l'::g-"::-efd-C-!"g!,n:g-'.9 _. ., ,,1t i X , Motore scollegoto. rotozione libero ; X j Motore scollegoto, rotozione libero j
L:Livello "O"; H=Livello " 1 "; X=lrrilevonte i
Tabella della verità per rl controllo dei due motori DC che girano in un unico verso.
verità. Quando il segnale ENABLE riceve
un livello 0 da qualsiasi uscita del PlC, il
motore si ferma, indipendentementedallo stato di lN'l e lN2. E proprio attra-verso questo ingresso che si puo applica-re un segnale con modulazione di
ampiezza di impulsi (PWM), che permet-te di regolare la velocità di rotazione del
motore in un verso o nell'altro. Un segna-
le PWM è un'onda quadra, in cui il tempo di perma-
nenza del livello a 1 si puo variare. Tanto maggiore sara
il tempo del livello a 1, piu tempo resterà attrvato il
motore che girerà più velocemente.
il controllo di entrambi i versi di rotazione del motore,mediante due canali dell' 12938. Se l'rngresso C è a 0e quello D e a 1, il motore riceve una certa polarità che
lo fa girare in un verso. Cambiando i livelli logici degliingressr C e D, si produce la rotazione in senso contra-rio. Se entrambi gli ingressi sono allo stesso livello logi-
co, si produce un arresto rapido del motore.
Nello schema della figura successiva è riportato il
collegamento del motore DC alla scheda Micro'PlC lO.
Controllo di un motore DC nei due versi di rotazione Tabella della verità del motore DC della Micro'PlC lO.
rNl rN2ij.
,
-i*"-
I segnali lN1 e lN2, provenienti da qualsiasi linea dell'u-scita del PlC, ricevono i livelli logici che faranno girare il
motore in uno dei due versi secondo la tabella della
l":- i;iii.'i-l++'qírll kit della Micro'PlC lO è accompagnato da un com-pleto e chiaro manuale dell'utilizzatore. così comeda un dischetto che contiene un insieme di progettida realtzzare con la suddetta scheda. In ognuno di
questi sono esposti con abbondanti commenti gli
obiettivi, i dispositivi di materiale necessario e il
listato sorgente del programma del compito. Per
maggiori informazioni si raccomanda di accederealle pagine di Internet di "lngenierÍa de
Microsistemas Programados S.1. " nel sitowww.microcondroladores.com. Tutti gli esempisono preparati per essere eseguiti su un PlC16FB73,
della gamma medìa, che studreremo a fondo più
avanti, perché dispone dello stesso repertoro di
istruzioni del PIC 16F84. La cosa più interessante sta
nel fatto che sono state aggiunte risorse moltoimportanti come il convertitore AD e DA, PWM,
comparatori, catturatori di segnale, ecc.Collegamento del driver 12938 e del motore DC della Micro'PlC IO.
#*rwmeae*€ p*r $É pr*ge*** **xa *A F**
Applicazionidetl,a Micro'PIC I0
: la;; '., tt i,t, i,',,'t:t : ,': .::..", :,..1r .',:
Nelfascicolo precedente abbiamo iniziato lo studio della
scheda di esoansione Micro'PlC lO e la sua sezione di
controllo del motore a corrente continua. Questa sche-
da dispone anche di altri interessantissimi dispositivi, che
permettono di emulare in tempo reale i programmi di
applicazione comune nelì'industria, eseguiti sul PIC che
supporta il sistema di sviluppo Micro'PlC Trainer che è
collegato con la Micro'PlC lO tramite il connettore PIC-
BUS.
La Micro'PlC lO dispone dì un alimentatore proprio,
quindi è sconsigliabile alimentarla tramrte l'ingresso di
tensione +5 VDC che arriva attraverso la linea del con-
nettore PIC-BUS tramite il sistema di sviluppo. Questo ci
permetterebbe di fare a meno del trasformatore, pero il
motore DC non avrebbe l'alimentazione di '12 VDC.
Inoltre non potrebbero funzionare nemmeno ìl circuito
di rivelazione del passaggio pello zero, e l'optotriac per
la regolazione alternata. Questr circuiti necessitano di
una alimentazione indipendente di corrente alternata. ll
ponte raddrizzalore D1 dell'alimentatore, insieme a C1,
configura il circuito di raddrizzamento e filtraggio. La
tensione così ottenuta si applica agli stabilizzatori 7805(U 1) e 781 2 (U2). Il primo fornisce una tensione stabiliz-
P75
zata di +5 VDC per la circuiteria elettronica generale,
mentre il secondo genera 12 VDC che si utilizzano prin-
cipalmente nell'alimentazione del motore DC.
:,t .t . '.: 't, ' ,; ,, i"l ,,'.,t1'
Produce un segnale a onda quadra, la cui frequenzaprincipale si puo selezionare fra otto possibili valori, e in
seguito, si possono ottenere fino a otto sottomultipli del
valore scelto. Lo schema elettrico della figura mostra che
il circuito è basato su un PlC16C54RC (U3). ll firmwaredel microcontroller è stato progettato da "lngeniería de
Microsistemas Programados S.1.". ll segnale ENABLE
abilita o disabilita la generazione di onde quadre. Se
questo ingresso è a livello '1 o non collegato, fornisce ai
suoi ingressi le frequenze corrispondenti. Quando que-
sto ingresso è a livello 0, il generatore resta scollegato e
tutte le uscite si pongono a livello 0.
Mediante i tre microswitch di SW1 sì seleziona, fra
otto, il valore della frequenza campione che si ottienedall'uscita X. Le uscite x/2, w4, x/8, w16, w32, w64,)0128 sono dei sottomultipli della frequenza scelta. ll
diodo D2 sull'uscita )V128 visualizza ll Íunzionamenlo
x{128x/64x/32x/16x/8xl4x/2x
ENABTE
(il)
Schema elettrico del generatore di funzione
i
Schema dell'alimentatore della Micro'PlC lO
del generatore. Lampeggia quando lavora a frequenzepiu basse. Per il resto delle frequenze sembra rimanereacceso in modo permanente. Nella tabella della figuraqui sotto sono indicate le distinte frequenze ottenuteall'uscita, in funzione dello stato dei microinterruttori di
SM/1 la freorenza massima è attorno ai 200 KHz e la
minima è di 'l KHz.
Tabella con le frequenze fornitedal generatore di funzioni a seconda della posizione dei mrcrointerruttori di SWl
.i
La funzione principale di questo circurto è fornire impul-si di elock ai temporizzatori o timer di cui dispongono i
microcontroller, che realizzano misure di tempo. Così,
ad esempio, il TN/lR1 della famiglia PlC16FB7x puo uti-lizzare come base dei tempi ìl segnale fornito da un
oscillatore esterno. In questo modo l'overflow del TMRlsi puo ultlizzare per risvegliare un PIC che si trova in
stato di riposo. Come mostra la figura e stato scelto un-.,.+^|^ .Ji ^,,-.-^ ^- 32,769 KHz, poiché è un valoreLr r)Loilu ur Lluor4u ud
molto speciale. In concreto si ottiene un tempo pari ad
un secondo, quando sì conta un valore degli impulsi che
e uguale alla potenza 1 5 in base 2 ed e la base npr tr rtte
le aoolicazioni orarie.
rtH Troso27pF
rl
Schema elettricodell'oscillatore da 32,768 KHz
H27
c5
pF
, t,, ;r,..it,liir i:; :t::i',i .ti..i':,i , ,. l. '; ,;
iilr;,..;t ;,t,::;a
l : , ,.'' l' l'': !,; !, ! ,: i :: ::; :.'l
La Micro'PlC lO possiede due sensori analogici, unomisura la luminosità e l'altro la temperatura. Entrambisono alimentati da una tensione dr rrferimento di 2,5VDC, come mostra lo schema della figura. Come gene-
ratore della tensione di riferimento, è stato utilizzatoLM33622.5 (D4) di
National Semiconductor. E
basato fondamentalmen-te su di un diodo zener da
2,5 VDC. Tramite la resi-
stenza di assorbimentoR7, si alimenta da +5VDC,ottenendo ai suoi capi 2,5VDC generando quindi la
tensione di riferimento\/ref chp si nrro annlirerp.^.i A^.t.J^"- -il- ti,5e sr ue5ruetd, dild ilnea
RA3/AN3l/REF+ oel
PIC'l6F87x in modo che
sia utilizzata nella conver-sione AD.
ll sensore di luminosità è formato da una cellula LDR,
che ha in serie la resistenza R5. La tensione che alimen-ta questo divisore può provenire da 5 o da 2,5 VDC, a
seconda della posizione in cui si trova il lumper JP2.lnquesto modo sulterminale "Luce" dello schema si ottie-ne una tensione che varia fra 0 e 5 V oppure, fra 0 e 2,5V. a seconda della luce che incide sull'LDR. f utilizzatoredeve preoccuparsi che la tensione che alimenta questo
Schema elettrico del generatore di tensione di riferimento,che alimenta i sensori di luminosità e di temperatura.
Tr osr
divisore coincida con la tensione di riferimento a cui
lavora il convertitore ADC del PlC. In nessun caso la ten-sione dì riferimento può essere minore della tensione
analogrca di ingresso da misurare. ll sensore di tempe-ratura è il modello LM35D (D3), e su uno dei suoi ter-minali si ottiene una tensione " T"" che è proporziona-
le alla temperatura esistente. Fornisce una tensione di'10 mV/'C e il margine ditemperatura a cui puo funzio-nare è compreso fra -55' e 150"C.
Neìla configurazione impiegata nella scheda
Micro'PlC lO il range dr temperature è compreso tra 2 e150"C. Quando si alimenta il sensore con 5 VDC per latemperatura massima permessa di 150'C, rl sensore
fornisce '1,5 V sul terminaìe "T"",
ne saturo, e la tensione sul collettore è 0V Tramite il
connettore "ZEROCROSS" si ottiene un impulso positi-
vo ogni volta che il segnale alternato arriva a valori intor-no allo 0 V come è rappresentato nell'oscillogramma
della figura. Questo impulso si puo utilizzare per provo-
care un interrupt nel PlC. Nella figura si offre un semplr-
ce schema per la regolazione delìa po'tenza alternata
i=Éj
: ta' .,
Una grande quantità di applicazioni industriali sono
derivate dal controllo e dalla regolazione della potenza
alternata che si aoolica ad un carico. Nella Micro'PlC lO
sono utilizzati per questo compito dei circuiti elementa-
ri ed è necessario conoscere l'istante ìn cui la corrente
alternata passa per lo zero e disporre di un segnale pilo-
ta che si attivi quando awiene questo passaggro. ll cir-
cuito base e mostrato nella figura.
La tensione alternata, che arriva da un secondario di
un trasformatore del vaìore di 12 VAC, e applicata al
^^^+^ "-^r-r.i---+^.^ ^5. SUI terminale D5 di nrrestoPUI ILE lOUUll44OLVrg UJ. )Wt Lqrrrrrrrorq uJ ur guLJLv
ponte si ottiene un ìmpulso doppio di 100 Hz, pari ad
una frequenza di rete di 50 Hz. Questo segnale siappli-ca al diodo emettitore del fotoaccoppiatore 4N33 (U6).
Ognivolta che il segnale vale 0, iìtransrstor ricevitore di
questo fotoaccoppiatore resta bloccato, e la tensione
del collettore sale sino a +Vcc. Quando l'impulso di
ingresso ha un valore diverso da zero, il transistor rima-
Schema del circuito uttlizzatoper il controllo della corrente alternata
ri",.J.,,".- ",." ",.".-,{Osci I log ra m ma del la ri levazionedel passaggio dallo zero della tensione àlternalò.
i.,
Regolazione della potenza alternatain un carico resistivo, che in questo caso e una lampada
:
:
.'
-^^li--+- ^ ,,^ -^.,-^ .^apprLcLo o ur Lcr,.. ,=sistivo, come può essere una lam-pada. Un livello 1, che arriva daì PIC sul terminale"TRIAC" dello schema, attiva iì diodo emettitore del-
l'optotriac MOC3041 (U7) che provoca l'innesco del
triac, facendolo condurre e applicando la tensione alter-
nata al carico, che nel caso della scheda Micro'PlC lO si
tratta di una lampada ad incandescenza (LP1)
La potenza dipende dal momento in cui si porta inconduzione il triac, appìicando la tensione di innesco
tramite l'ingresso "TRIAC". Questo istante prende come
riferimento il momento di passaggio per lo zero, che si
x2
T2
0,0 v
NdFé= &móryr | ru'-yrDok= lr/12/99 | lr/12le9nne= ì0rs:ll p.r. I l0:rs:ll p.r.
YS.de= 20 V/Dv | 2 V/Dv
YAr 50%= -30,4 V | 3,ó3 V
xaro%= .0,4fr' | -0,! m'xsize= 25oEr2l I zsourz
Mo^imlm = ì3 4V | 4 eó V
I oav
produce ogni 10 ms. Se l'innesco dell'optotriac si pro-
duce nel momento del passaggio per lo zero, si dice che
l'angolo di innesco e 0'. La potenza che si applica al
carico è la massima nei due semicicli. Se l'innesco del
triac si produce a 5 ms del passaggio per lo zero, si
applica la metà della potenza totale al carico. Se l'inne-sco si produce a '10 ms dal passaggio dallo zero, abbia-mo un ritardo di 'l 80" nell'innesco e il carico non riceve
ootenza. In altre parole controllando il ritardo con cui si
produce il segnale di innesco,
prendendo come punto di riferi-mónt^ il qonn:lo di r-, passaggro
per lo zero, si controlla la poten-__ +^+_t^ _t-^ -i -^^ti__ al CariCO:zd LULOTC Lr rE )r OVVilLOil "i+-"r^ ^,,À ,,-"i-"^ *fa 0 e 10il I TLOTVV PUV VOr rOrq L
m< rho rnrricnnnda:,-, - un ango-
lo di ritardo da 0' a 180', rispet-
tivamente. Nella figura è ripor-tato un oscillogramma che illu-
stra la tensione alternata diinnressn e la tensione reale
applicata al carico. Si applica al
carico solo la metà della poten-
za di ogni semiciclo. L'angolo di
ritardo è di 90", che corrisponde
a un'ritardo di 5 ms.
Esempio di rnnesco del triaccon ritardo di 90", che corrisponde a un itardo di 5 ms.
Sono perrferiche di uscita molto facili da controllare tra-mite qualsiasi ìinea di uscita del microcontroller. Basta
un semplice circuito di eccitazione per pilotare la possi-
bile attivazione delle bobine incaricate di aprire o chiu-dere i contatti, come si vede dalla figura. I relè impiega-ti nella Mrcro'PlC lO sono due, le loro bobine vengonoalimentate con +5 VDC e i loro contatti sono doooi e a
due posrzioni (DPDT). Un livello logico 1, applicato ai
connettori "Relè1/Relè2", in arrìvo da qualsìasi
linea di uscita del PlC, fa sì che si attivi il corrispon-dente relè. ll livello logico O produce un effetto con-trario. Questo livello si applica alla base dei transi-stor Q1/Q2, mediante le resistenze di polarzzazto-ne R12lR14. Ouesti transistor lavorano in commu-tazione. Quando stanno conducendo, la loro ten-sione sul collettore Vce e praticamente zero. ldiodiD6/D7 , collegati ai capi delle bobine, dissipano le
correnti inverse che si originano ogni volta che
viene tolta tensione. Ogni relè ha un doppio con-+î++^ ^ ^^^i -^^+-++^ e : drre nosizioni llnO dei dUeLOLLU q V9rrr LVTTtOLLU L u uuL vvJr4rvril. vrl
rnnielf i ci rrtilizz: nor :if irrero i I Fl-l niln+2 D7/D9,
che monitorizzano lo stato di ogni relè. Il LED illu-minato indica che è stato attivato il relè a cui fariferimento. L'altro contatto del rele e a disposrzio-ne dell'aoolicazione dell'utente tramite due morset-tiere a tre contatti ognuna. Un relè a riposo man-tiene chiuso il contatto Cx-Ax, mentre Cx-Bx rima-ne anerto Frritando la bobrna del relè si cambia lo-+-+^ r: ^' '--+i -^^+^iti. Ora Cx-Ax rimane :nertÒ tr>LdLU Ul LlUtr)tl LUI LdLLL UId L^-H^ llllldllC upLrLv L
Cx-Bx chiuso.
'i
Circuito di eccitazione dei relè
ij,ll:; i::i t,:": t':,"'ri; i',;'4 11j,,1'!ii -1'r1 :.lr ir:t;rr:.-" '''iit,i:; I .
@]M,!W@Rl]*Rn@s|*lRWsìlslfÍti|FW]s]stÍf]&ÌtWfi&,},ffiWW
Appti cazioni con [a scheda dicontroll,o MSx84
i;i.irt, li;í"i'liií.i:il ,trlli'riri,lí,li*ll sensori digitalidi ingresso.Questecaratteristichesonoti-
In precedenza sono stati descritti i sistemi Micro'PlC Trai- piche in molte applicazioni industriali e la MSxB4 è indi-
ner Plus e Micro'PIC lO. composti da schede che espan- cata per quattro tipi di impiego, che si adattano bene al-
dori:nn lp ricÒr<o o lo rrossibilita del sistema di sviluppo i le sue caratteristiche e che sono elencatì nel riquadro.
Micro'PlC Trainer. Con la scheda di controllo MSx84 il
suo costruttore "tngeniería de Microsistemas Programa- I i-iil'niii;'1";4,i1iîl{-i:iii lirii;l;í.lt.l'rii.ii,l- ,ti iLir ii' |1":" 1;7 ;1rii ? i É''
dos S.L." ha perseguito un altro obiettivo: offrire all'uti- i Net riquadro allegato possiamo notare le specifiche più
lizzalore una scheda autonoma e indipendente che in , rmportanti della MSx84.
base ad un PIC'16F84 sia caoace di oilotare lo stato di due
motori DC o di uno passo a passo (PAP) e fino a cinque : ll*:------ti_xii**"*ffiilffi;fri;-=-.,*'.:-. .-:
I I i*-;il;;;;; ;;;;;i;;;; rs vAC;;;;;;' i1, -"*.l **
#.:;;:]:;;1;;-.=-,=:i;--==-:...===]===-::'::.i . Circuiti di controllo bosoti sul PlCtóF84 iì - -..***'-'----i . Conneitori per l'opplicozione di 5 sensori ì
di ingressoI **-- r-r----'---"ì:"'*:*--*-".-*-::"-.***-=':*:"::-*"***:;:*"*-**--1i -,.-.:--*Pti"--.*:-r]l-s-'i-"-r.:r--"-llq-dl-d-v-:,-ry1-si-?9..e.:"1:-1.41-----*-i,1 . Conr"tto.e di esponsione Pic-Bus che Permelle di espondere :
! l" ,r" risorse, e di collegorlo direftomenfe ol sistemo
i di sviluppo Micro'PlC Troiner, per reolizoreFotografia del microrobot PICBOT-2 basato sulla M5xB4 j lo -"rro o punto 'in-circuito', così come lq scritturo del PlC.
"'". 'i"i
l' Monipolozione dei sensori di ingresso che permetfono ;
lo sperimentozione con differenti tecniche per lo rilevozione : ,r
di fronti, eliminozione dell'effetfo rimbolzo,misuro dello dimensione di un impulso,misuro dello frequenzo, codenzq fro impulsi ecc.
3" Controllo di motori PAP.
dimensione di un impulso, ìlfrequenzo, codenzq fro impulsi ecc. ì Ì
2" Cmlrollo di motori DC cm ozionomenlo digitole tutio o nimte,tecniche di PWM, controllo del versodi rotczione. retrocziiane; poiiziilromèrrio, étc. :i
4- Microroboticc. Lo MSx84 si odotto perGettomente
olle necessito di un microrobot. Può controllore direliomentedue motori D€ e sino o 5 sensori che roccolgonoínfomozioni doll'ombiente, ln bose o quesio xhedoil costrutlore ho progeltoio il micuobot commerciole PICBOT-2
che consiste in uno slrutturo di metocrilotoche supporlo lo MSx84. due motori DC e vori sensori.
i. ,,. ,,,,. ,,,,..,,.,
Seigrafia del circuito stampata della MSxB4
a.rwffi ntììììììììììììììììììììììììììììil1Ììlrl
Nella figura della
serigrafia del circuitobuzione di tuttÌ i suoi
pagrna precedente.+.'a^î+^ .J^,,^ -iJLOT TPOLU, UUVC )l
componenti.
À .;^^"+-+- l-E rl.JUr LOtd rd
,,^-J^ l- ^li-+.ivEuc tc ut)LI t-
Fotografia della schecia cli controllo MSxB4.
Qui sotto sono descritti i quattro blocchi di cui è
composta la MSxB4.
20, Sezione del microcontroller
40, Sezione del controllo dei motori
La MSxB4 è totalmente autonoma, perche dispone di
un propno alimentatore Nella figura riportiamo lo
schema elettrico del medesimo. Tutta l'elettronica della
scheda funziona con +5 VDC, che si ottiene a partire da
una tensione alternata di 12 VAC, o da un insieme di
batterie. Mediante il connettore .18 venqono forniti '12
Schema del l' a I i mentatore
VAC derivanti dal secondario di un trasformarore esrer-no. ll ponte rettificatore, composto da D1 e C1, ha il
compito di rettificarla e filtrarla per ottenere una tensio-ne di '12 VDC, che si stabilizza a 13 VDC grazie al rego-latore 7812 (U4) piu la tensione dei diodi D2-D5. SW3applica questa tensione al controllore dei motori (+VBAT)
e anche al regolatore 7805 (U5), quindi sul piedino 3 si
ottengono +5 VDC, che sono applicati al circuito elettro-nico. ll diodo D6 monitorizza questa tensione. falimen-tatore funziona anche a00licando una tensione di cor-rente continua derivata da una batteria tramite il con-nettore J5. Chiudendo SW3 si applica questa tensione a
+VBAT e al regolatore 7805, per ottenere +5 VDC.
Schema della sezione del mtcrocontroller PlCl6FB4
Nella frgura è riportato lo schema del collegamento del
PIC 1 6F84, cuore e cervello della MSxB4. ll quarzo Y1 in-sieme ai condensatori C7 e C8, genera la frequenza di
funzionamento di 4 Mhz. ll circuito di Reset è formatodal pulsante SW2 e dalla resistenza R11. ll connettorePic-bus e compatibile 'pin-to-pin' con quello del sistema
di sviluppo Micro'PlC Trainer. Tramite esso tutti I segna-li del PIC sono a disposizione dell'utente. Questo per-mettera di collegare e/o aggiungere altri tipi di periferi-che tra quelle supportate dalla scheda MSxB4, così co-me programmare il PIC della MSx84 senza estrarlo dal-to zoccoto.
, ,f I' I : .t 'r"l ) ::t :t .r
I sensori sono i sensi del sistema per captare lo statodell'ambiente. Nella sezione "Sensori e Attuatori" ne
sono stati descritti molti, e in microrobotica quelli otticìspiccano per la loro precisione, semplicità, efficacia, ri-
dotte dimensroni e prezzo.
D3tMou :
c2
m
ll modello CNY70 e il H2'1A sono ipiù popolari. ll
primo contiene l'emettitore e il ricevitore ad infrarossi,nella stessa cansula ed p idpalp npr rilcv:re cambi diLqvJuru,
tono sulla stessa superficie. La luce emessa dal LED ri-
flessa dall'oggetto viene rrlevata da un fototransistor. ll
contenitore a forma di U del H21A ha l'emettitore se-
parato di tre millimetri rispetto al ricevitore, però en-
trambi sono alla stessa altezza, in modo che il raggio di
ìuce emessa colpisca il fototransistor. E l'rdeale per rile-vare oooettì che franoonendosi tra l'emettitore e ìl ri-
Conten itore e disposizionedegli elementi dei sensori CNY70 e H21A
cevitore, taglìno il raggio di luce, come si vede nella fi-
^, ,rr I ln'rnnlirrziana f inir: dol <on<nro l--.1? 1 A o nr roll:9UId. Ull dPPilLO4rUr rs LrPllO Uql )Ell)uls I 14 l^ L vuLiludi implementare un circuito di misura della velocità an-
golare di rotazione dell'asse del motore, in base a un
encoder formato da un disco trasparente con raggi ra-
diali onachi come nrec^^+-+^ ^^rr- fi^,,.- .înOSCendOuruil vpulr prLJ(j| ILdLU llElld llgulO. !U
il numero di raggi si determina il numero di giri che ha
dato l'asse. Nella figura si presenta una possibile appli-cazione del sensore CNY70, che consiste in un nastro
trasportatore con il fondo formato da riquadri neri ebianchì. Quando la luce dell'emettitore coincide con un
KCAE
Controllo di velocità e verso del movimento con due sensori CNY70.
rrnrr:nlrn norn--.\ ---^"F i+r a)dt o o))ut utLo E,
quindi, il foto-transrstor non n-
ceverà luce. Se
coincide con un
riquadro bianco
si rifletterà sul ri-
cevitore, cam-
biando il livello
logico della sua
uscita. Nella figu-.- -, ,--^--i,,^ -^Id )ULLtr))IVd )U_
no utilizzati due
sensori CNY70per conoscere non solo la velocità del nastro trasportato-
re, ma anche il verso del movimento. Lo schema della fi-gura mostra i collegamenti tipici del sensore ad infrarossi
con i pin dr ingresso del PlC.
Per poter gestire sino a cinque sensori digitali di in-
gresso, la MSxB4 dispone di un circuito il cuì schema è
mostrato in figu-ra e nel quale
:posstamo veoeret,^--^-;--i^^^ f.-I d))uLtdztut tc rro
iconnettori dei ';
sensori di ingres- ',
./
Esempio di applicaztonedel sensore ottico H21A
Controllo di velocità di un nastrotrasportatore con un sensore CNY70
Schema di collegamento di un sensoreottico ai pin di ingresso del PIC
Schema della sezionedegli ingressi digitali della MSxB4.
KCAE
+Vcc
so, imicrointerruttori e le linee del PlC. ll sensore colle-gato a J4 resta associato alla linea RA4 del PlC. Questalinea funziona come ingresso degli impulsi TOCKI del
temporizzatore TMR0, il quale quando funziona in mo-do contatore di eventi, può contare il numero di impulsiricevuti da questo ingresso, permettendo misure di fre-quenza, dimensione di impulsi, intervalli fra impulsi, ecc
jl i: rrl,i+ Ì+ ii ir I i_ il r.l r!'ria * l. :_i,] i.: i;.1 i,,1 i.ll'f.: ì; iUno dei principali impieghi a cui è destinata la MSxB4
e quello del controllo di due motori DC o uno PAP Aquesto scopo utiìizza il driver L2938, il cui funziona-mento e le applicazioni al controllo di motori DC e sta-
to oggetto di studio del capitolo precedente. In questa
sezione studieremo il controllo di un motore PAP, lo
schema di questa sezione è riportato qui sotto.La linea RAO del PIC tramite l'interruttore 6, si ap-
plica al segnale lNl e, mediante l'inverter U'lF, al segna-le lN2 dell'1293B. Questo segnale pilota le uscite OUTle OUT2 che controllano il motore M'1. La stessa spie-gazione vale anche per la linea RA'l del PlC, che pilotaOUT3 e OUT4 per il motore M2.
Schema della sezione di controllo dei motori della MSxB4
Per quanto riguarda il controllo dei motori PAB es-
si possono avere 4 o 6 cavi, a seconda se sono bipola-ri o unipolari rispettivamente. I quattro cavi di quelli bi-polari, corrispondono agli estremi delle bobine di cui
sono composti. Nel caso di quelli unipolari, quattro ca-
vi corrispondono agli estremi delle due bobine, e gli al-tri drro :ìlo nroqo informodio di nrro<to .^mÒ-,,,,- sr puo ve-
dere nella figura.La figura successiva offre lo schema dr collega-
mento di un motore PAP a quattro cavi alla schedaMSxB4. La bobina L2 si collega ai morsetti segnati co-me M2, e la bobina L1 a quelli M'1. Tramite le lineeRA3 e RA2 del PlC, si ottengono le combinazioni bi-
^--;^ ,J- -^^ti-^-^ -lrrorrE uo dPPrlLdlc dr 1 MoroREpApdrrver 12938, in rno-do che sr attivino le oo----l" ,^.
;:ijffi..;:;i:r ;*?(rystruttore, riportate 1.[\ t,nella tabella della fi- À J Jgura.Permaggiori ; tvDinformazioni tecniche r.,..,,,,.,.,.-,...,.",,.".....,.,,.,,.,..,,.,,..,,,",...,.,,",".,.,,,..,,:;
sulla MSxg4, consi- schema di collegamento di un
gliamo di consurtar " yo:o,:".'!P untn;ota.11.
le n:nino rha il rncf rr rttnro h: ma<<n e r{ic,, r-y,, -,-postzionenel sito I nternet www. m icrocontroladores. com.
:
;: n ;; : o' ;; i;, u; u',,,;;di un motore PAP a quattro fili con la MS B
,.'',,..:SENSO ORARIO
nA3 RA2 RAl RAO PASO Hl+(A) fr{l-(B} Ar2+{C} m:l-(D}
llltl+-+illl0lr-i
llOO3+-+tlf04++
WBffi'E'ffi ri*sffiffiSENSO ANTIORANTO
RA3 RAi! RAr RAO PASO Ml+{A} Àlt{B} M2+(C} llr2-(D}
lllOf+-+llOO2.++
tlllg3+-+-;ill!14-++-,.Ì'-"-'.' -': '--:" - ;
Tabella che indica i valori btnariche devono assumere le linee della porta A del PlC, per ottenereil senso di rotazione adeguato.
ii:: ,t': ii:i n!r: 'tt t ttt':':l
rrlìrÌììììììììììììììììììììììrililr1ii:ililiririì.. ':: ,.....4;;;;nì;ìì;;;;l;a;a:.:iaa.,:...:......),..)....,....)...)))t:\N1
Display a cristaltiliquidi LCD
::.|:||":..ì-.::.,.'1.....1::;..;.:.,.''..:.:
ldisplay a cristalli liquidi LCD, sono iterminali di visua-lizzazione più utilizzati neglì strumenti basati su mtcro-controller; il loro compito è presentare informazioni, va-lori o qualsiasi altro tipo di dato. Uno dei primi prodot-ti in cui sono stati utilizzafi gli LCD su larga scala sonostate le calcolatrici digitali, come quella mostrata nellafigura.
ll display LCD consiste in un condensatore planareformato da due placche metalliche, una delle quali etalmente sottile da risultare trasparente. Fra questeplacche si trova un dielettrrco isolante, che è un cnstat-lo liquido in fase nematica. Quando non si applica ten-sione fra le placche il cristallo rimane trasparente, ma e
sufficiente applicare una piccola tensione, in mooo cnesi generi un piccolo assorbimento di corrente, per pro-durre una variazione nelia riflessione e nella rifrazionedella luce, tale da rendere opaco il cristalio.
Una delle principali disfunzioni a cui sono soggetti i
diodi LED, si riscontra quando c'è molta luce, perchequesti si distinuguono meno. specialmente se la lumi-nosità dell'ambiente è grande. Invece nei display LCDsuccede l'opposto, utilizzano la luce ma non la qenera-
no, perciò maggiore è l'illuminazione ambientale, piùelevato è il contrasto dell'informazione presentata.
Un tipico settore di applìcazione dei display LCD è lastrumentazione. La maggioranza degli strumenti di mi-sura utilizza un LCD per visualrzzare i dati. È il caso delmultimetro, che si puo considerare lo strumento più co-mune nei laboratori di elettronica, e di cui riportramouna fotografia nella figura.
ll tester è attualmente uno degli strumentiche piit utilizza visualrzzatori LCD
Nei multimetri digitali, è molto frequente l'utilizzo didisplay LCD a tre digit e mezzo, come quello che si ve-de in figura.
Struttura di un display LCDda tre digit e mezzo, utilizzato nei multimetri digitali.
i-rffi
Le calcolatrici sono stateil primo prodotto a impiegare i display LCD su larga scala
., lr
Oltre agli strumenti di misura e le calcoìatrici, esisto-
no molti dispositivi che utilizzano gli LCD, fra cui ricor-
diamo i telefoni fissi e mobili, le agende elettroniche, le
macchine fotografiche. i distrìbutori automaticì, i pan-
nelli di comando dei veicoli, ecc.
Come esempio di una semplice applicazione, pre-
sentiamo nella fotografia sottostante un termometro,
che dispone di un sensore di temperatura esterno, col-
legato tramite un cavo di una certa lunghezza, che per-
mette dì misurare la temperatura all'interno di un fri-gorifero, fuori dalla casa, fuori dalla macchina, nell'ac-
qua, ecc.
ln questo termometro si ufilizza un display a tre di-
ait c mozzo tino SP52c rha he drra filo di niof,in1, g 6hg9lt g llls44v, ttvv Jt JLJ'
ha bisogno di trovare sul circuito stampato due connet-
tori da 20 pin cadauno, per il proprio sostegno, come si
può vedere nella figura in basso.
lnfine il sistema di sviluppo Micro'PlC Trainer, uti-
lizzato per supportare lo sviluppo completo dei pro-
Scheda del termometroche supporta il disPlaY LCD
Termometro che supporta il display LCD.
Aspetto dei collegamenti della scheda del termometro
che sostiene l'LCD con il sensore di temperatura e la batteria
getti basati sui microcontroller PlC, utilizza come
terminale principale un dispìay LCD da due linee con
16 caratteri ognuna, come si vede nella fotografiadella figura.
l"] 9:5il ÉiE,i:.i L.: lj +: l"F, {. FJ ti:,i:iI display alfanumerici hanno la capacità di visualizzare
diverse Iinee composte da un determìnato numero di
caratteri. Possiamo trovare LCD da 1 linea per 16 carat-
teri,2 x 16,4x16, 1x20,2x20,2x24,4x 20 ecc'
Inoltre possono, o meno, avere l'opzione di una lampa-
da di retro-illuminazione, cìoè illuminazione da dietro,
che migliora notevolmente il contrasto dei caratteri in
ambienti poco illuminati.
tl sistema di sviluppo Micro'PlC Trainer utilizza
un display LCD come principale terminale di visualizzazione
:- . _.\6o - , *T,
I
t'"""-"-
Fotooyfya.1,,r, lr? da z ly1ee
per 16 caytteri
Per rendere l'idea, abbiamo scelto di descrivere unLCD tipico, modello C-1602, da 2 linee per '16 caratte-ri, la cui fotografia è riportata qui sopra.
Le misure dell'LCD selezionato sono approssimati-vamente 100 x 42 mm, e la dimensione del display divisualizzazione B0 x 20 mm.
| 16 terminali di collegamento del modulo LCD cor-rispondono ai segnali di controllo e ditrasferimento deidati, in accordo con l'assegnazione delle funzioni ri- ;
^^r+î+a ^^ll- +-l^.^ll-PWr LO rq rEilO LdUCild.
Nella figura della pagina successiva troviamo lo :
schema di connessione dei segnali esterni ai termina-li dell'LCD. Fondamentalmente si dividono in segnali
fl ;$il:r.ione, di controllo, di dari e di retro-iilu- i
Vo Contrasto del cristallo liquido.Generalmente si collegaa un potenziometro che applicauna tensione da 0 a +5 V
Vss Massa dell'alimentazione
7-14 D0-Di Bus dei dati bidirezionale
5 RAI/ Segnale di lettura o scritturaR/W = Q, 561i11rr13' RM = 1, lettura dell'LCD.
t:j
Terminoli di collegomento
Dimensioni dell'LCD e del displav di visualizzazione.
,l
MICROCONTROLLERCcrroHeristiche dei display tCD
zR vtt
3 voo
=
una memoria da 64 byte,nor do{inira 116 1-,l62ffpro Evqt ugtililrL urrLuruL(clq J
caraltere 5 x 10.
L'insieme dei ca-
ralterì che si possono
vedere nel displayLCD è riportato nellafigura. ln essa le posi-
zioni indicate comeCGRAN/ (n) corrispon-dono a uno degli B
^^--iL.;li --"-++^"i -possr0ilr cararrer gra-
f ici da 5 x 7 puntt chenossono esserP lihera-
mente definiti dall'u-tente. Questi caratterisi definiscono intro-ducendo nei successi-
vì indirizzi dellaCGRAN/ dei byte con
determinati parametri
binari. La CGRAM è
di cui se ne utilìzzano B
x7 e 16 se si tratta di un
DATI
DO-DZ
VO
RS
R/W
E
schema di interconnessione dei ,"gruti a'li ur)'*u,o ,ro
I
,r:lrril&l&K&W &X&K&tEm56 En*66AET*g gEffiMM
rìrrrr..&K&K& KffiX&W
E AN:SBE AntrningSn
E &NIEEffiK'X&&wK'xwffiWXKg&&&xmsSKXWKgxgsg
g&&.xa&&.*EXKrx&xx&ffigxesK&KMXXSKgXgw&xKwxw€K&g&KgX&WKK6&mgxKgxffiwgffiKKTX&Kg'*9ffi'
Matrice da 5 x 7 punti di due caratterr
sovrapposti, uno per ogni linea, con le drmensroni ptt) tmportantt.
Ogni carattere si rappresenta sul display LCD me-
diante una matrice di punti o pixel da 5 x 7. Nella
figura sono indicate le matrici dei due caratterì so-
vrapposti, ognuno dei quall corrisponde a una del-
le linee.lnsieme di caratteri ASCII del modulo LCD
SAgFI' rlsFt.. nt*EEst#at
EEHgCtnrÍnt
',.-.íÌ:
Funzionamentodei display LCD
Come abbiamo gia commentato in precedenza, il
display LCD è un visualizzatore di caratteri, sra di testoche grafici, molto potente e flessibile, che si puo pilota-re facilmente tramite un microcontroller inserito all'in-terno del prodotto. Nella fotografia qui sotto si mostrala parte posteriore dell'LCD, in cui si può apprezzare la
sua struttura elettronica.
Vista posteriore del display LCD pilotato da unsstema basato su un microcontroller integrato sulla scheda
Nella descrizione dell'architettura del modulo LCD,le linee dei collegamento esterno si dividono neiseguenti gruppi:
Linee dei dati: BDO - BD7
sus ort otorout
DATI
BUs DIcoNTROLLO
1E,Rs,R/w-)
Schema dei collegamenti del modulo LCD
' ' '' 1 . ' :' , : . : :
Per pilotare un display LCD tramite un PlC, si utilizzano1 'l linee di l/O digitali del microcontroller
Le otto linee della porta B (RBO-RB7) servono persupportare i trasferimenti bidirezionali di informazionitramite il bus dei dati dell'LCD (DB0-DB7).
Le linee di controllo dell'LCD (RS, RA//# ed E) si pilo-tano con le linee RAO, RA1 e RA2 della porta A rispetti-vamente, come si puo vedere nello schema seguente.
Collegamento delle porte A e Bdel PIC con le linee dei dati di controllo del display LCD.
La tensione di alimentazione dell'LCD coincide conquella del PlC, e se si desidera variare il contrasto deicaratteri che sono visualizzati, si ulilizza un potenzio-metro da 1O K con cui si applica una tensione variabileall'ingresso, V0, che regola il contrasto del display.
Linee di retro.illuminazionel BL+ e BL- {lngressi per I'alimentazioneper Ia lampada di retro-illuminazione)
Nella figura in alto a destra si mostra rl diagrammadei collegamenti dell'LCD.
,it.tt.,i., tt | ,t i.t.t..1 !.,.t. |.:, it tt ,i., t,i, t]]]ì]]]]]]]i''@]]]]]]'],i]]]W]]]]r{K]@|......')||\\\).))...Wìì:ìì]]]]]|]]:]]]]::4iWf!]]#3
". i:i ri; ;r ir ir lri ;" i'ri {i i.; I il: ir.l i ì ll f' fl i. r ;i. í fi 5 l.
í: í"ii qr1i,'Îí1í-;li
Nella comunicazione del PIC con il display LCD si pos-
sono inviare comandi da eseguìre o caratterì da visua-
lizzare in qualsiasi delle 32 matrìci esistenti nel display,
che si compone di due linee da 16 caratteri ognuna.
Quando il PIC invia, tramite il bus dei dati, una istruzio-
ne o un comando all'LCD, puo realizzare operazioni
moìto interessanti, come cancellare tutto il display,
Cro nog ramma d i u n' oPerazi onedi scrittura di un'istruzione nell'LCD tramite il PIC
Cronog ra m ma d i u n' operazonedi ::ittu::,|i
u' :':!t":",.1s.c!r rytr'.lc-o
muovere il cursore a una determinata posrzione, indiriz-
zare una delle matrici, ecc. ll PIC colloca il codice dell'i-
struzione nella porta B, e per indicare che sitratta di un
comando che si deve scrivere nel display pone la linea
RS (RAO) = 0 e la linea RA/V# (RAl)= 0.
Nel cronogramma riportato nella figura a sinistra si
mostra il valore digitale che assumono i diversi segnali
che partecipano all'operazione di scrittura di un'istru-
zione nell'LCD tramite il PIC.
La scrittura del codice di un carattere ASCII sopra
una delle 32 matrici del video è abbastanza simile alla
scrittura di una istruzione.
Varia solo il livello logico del segnale R5. ln questa
situazione la porta B del PIC prende il codice ASCll, allo
stesso tempo ìn cui RA0, RAl e RA2 prendono i valori
che sono mostrati nel cronogramma in basso.
iì I r il È'i i;i ilt i i-i i;r I L i, 1'í'i ii i1 J d-1: lt ; i": i: I. i-' i i- i-!
lì display LCD risponde a un insieme di comandr che
interpreta ed esegue quando riceve tramite il bus dei
dati il codice corrispondente e RS = R/W# = 0.
Tra i comandi più importanti troviamo quelli di can-
cellazione del vtdeo, i movimentì deì cursore, i lampeg-
gramenti, e gli indirizzamenti delle memorie interne
dell'LCD.La memorìa DDRAM è quella che contiene i codici
der caratteri che devono essere visualizzati nelle due
lrnee.
Gli indirizzi da B0 a BF Hex corrispondono aì 16
caratteri della prima linea e glì indirizzi da C0 a CF Hex
a quelli della seconda linea.
La memoria CGRAN/ ha 64 indtrizzi di dimensione
byte e in essa sono contenuti i codici necessari per defi-
nire 4 o 8 caratteri grafici definibili dall'utente, secondo
le necessità dell'applicazione. Ogni carattere grafico
definito dall'utente è composto da B o 16 byte che si
memorizzano negli tndirizzi successivi della memorta
CGRAM.In seguito sono descritte le principali istruzionr utiliz-
zate con il display LCD
i- i i:.j i: il i- i. r:1.r"i { : i'+ xr i; ri i i j :=: Ì: {,;
Cancella tutti i caratteri del video e colloca il cursore
nella prima posizione della prima linea.
lnoltre pone il bit di controllo l/D = 1 per defauìt, il
che significa che con ogni carattere il cursore tncre-
menta la sua posizione.
lmpiega 1,64 microsecondi ad essere eseguito, sup-
R5
i
tl
: r40: 450nsn5
*3!9Ì9rrffiR/w#i i i t
r I4O ' 450ns r
n5
BUS DEI DATI codice islruzione
BUS DEI DATI coroilere ASC|I
5,ri tÈ lli# ij:É 4Í; rH jl,Èrrt'È'1 î]ii
ponendo che funzioni a 4 Mhz, e il suo codice è:
Colloca il cursore nella posizione di inizio, prima posi-zione della prima linea, e forza il d splay a visualizzareda quel punto.
li contenuto dei dati nella DDRAM non varia e l'in-dirizzo della visualizzazione si pone a zero.
lmpiega 1,64 microsecondi ad essere eseguito e il
suo codice è:
,.':,. i. . ;' ,,',; i';',;.r t.t.,t:.,ti., : :.,;'1,',. : )rit:';:":'::i. :':
Stabilisce la direzione del movimento del cursore e spe-
cifica se la visualizzazione si sposta alia posizione
seguente del display o no.
Questa operazione si esegue durante la lettura o la
scrittura della DDRAM o la CGRAM.Per visualizzare normalmente si pone il bit di con-
trollo S = 0. Se S = 1, la visualizzazione si sposta ognivolta che si scrive un dato.
lmpiega 40 microsecondi ad essere eseguito e il suo
codice è:
Se l/D = 1 si incrementa il cursore, in caso contrariociò non accade.
Attiva o disattiva il display (D) e il cursore (C), stabilen-do se questo deve lampeggiare (B) o no.
lmprega 40 microsecondi ad essere eseguito e il suocodice è:
Mrrove il crrrsore e snosla il disnlav spnza rambiare il
contenuto della memoria dei dati DDRAM.Si esegue in 40 microsecondi. Se il bit S/C vale 1
sposta il dìsplay e se vale 0 muove ilcursore. llcodice è:
0 0 U 0 OOSICR/LXX
, , I r it i
Stabilisce la dimensione della comunicazione con il bus
dei dati, che puo essere da 4 bit (DL = 0)o B bit (DL = 1)
Determina il numero di linee del display fra una (N
= 0)o due (N = 1)e iltipo di carattere, se e 5x7 (F = 0)
o 5 x 10 (F = '1)
lmpiega 40 microsecondi ad essere eseguito e il suo
codice è:
lcaratteri grafici definibili dall'utente sono scritti in una
memoria da 64 byte chiamata CGRAM. Con questa
istruzione sr stabilisce l'indirizzo della memoria CGRAM- ^-.{i.^ !-l ^,,-l^ -i i, i hvfo rhpa parirre oar quare sr Inrzrera a memoflzzaredefiniscono i caratteri grafici.
Eseguendo questo comando tutti i dati che si scrl-vono e si leggono successivamente, lo faranno da que-
sto indirìzzo della CGRAM. lmoieqa 40 microsecondi e
ii suo codice è:
0 0 0 0 lNDrRtzzo
DI CGRAM
"-:,i,:,.l ',..,,;:l::. i:'),.i; :t:':.,.:' .'l t,: ,,;;',';i-,i"i ,::: :, : ': l;i !.::..::,: j:. ,
.:';.,:71:.:;, ", ,, ;,
I caratteri che si visualizzano sono stati precedente-
mente scritti nella memoria DDRAM per poi passare al
video. Questa istruzione stabilisce I'indirizzo dellaDDRAM da cui sono memorizzati i dati. f indirizzo dellaprima linea corrisponde a 80 fino a 8F Hex e quello
0 0 0 0 0 0 0 0 0 I
0 0 0 0 0 0 0 0 1 x
0 0 0 0 't Dt N X x
0 0 0 0 0 0 0rliDs
0 0 0 0 0 0 I n r B
..
r3rmmcrzione di un IGD
0 r coDtcE
ASCil
O BWE
DEFINITO
DALTJUTENTI
0 0 O INDIRIZZO
DI CGRAM
lVentre il mod:lo LCD esegue istruzion,, e occupato e
non si deve inviare un'altra istruzione. ll flag BUSY (BF)
inrlir: rho é naat tn:tn nrr:nnln vrla '1 n rho À ihornil jvrLu Lr rL L vLLu|.JuLv 9UqllUV volc l, V ll q c Lluclu
quando vale 0
della seconda da CO a CF Hex
condi e il suo codice e
Si o<onr to n LO mirrncp-
lnn nroslo rom,andn si scrivono nella DDRAM i carat-teri da visualizzare e sl ouò anche scrivere nella CGRAN/
ibyte definiti dall'utente. ll suo codrce è.
La sequenra di iriz,o e a segJente.
't
t.. CANCEU.AZ|ONE DEL DTSPLAY ,
ll segnolotore BUSY si montiene oltivo o 1 duronte i 15 ms .
dello sequenzo di inizio. l
2". STUAONE Dft MODO ::
5i sceqlie per defoult lo dimensione .
del bus dei doti q 8 bit e uno lineo nel disploy (N = 0)
,
3'. CONTROLLO ON/OFF DEt VIDEO t,
Per de{oult si sceglie il disploy OFF (D=0}, cursore OFf (€=0) .
e senzo lompeggiomento del cursore {B=0}. :
- . ' --. .- '-- --a
4". SEIEZIONE Dl FUNZ|ONI .,l
Si sceglie per defoult l'incremento del cursore ll/D=ll,modo normole e non spostomento del disploy (S=0).
5". SELEZIONE DEILA PRIMA POSIZIONE DEttA DDRAM l
Se non si compiono esattamente le condizionidi alìmentazione, la sequenza dr in z o dovrà esse-
re rea)tzzala dall'utente via software, È moltoimportante che la prima istruzione che si invia pro-
duca una Iertporizzat ore di 15 rrs pe" poter rea-litzsro rrn,.r qonrrpnz: romn]pt,av,,u JLYUL
Dpsrri'ri,amo .i^ n.lio d
che forniscono un'idea
ur)Proy LL v.
tCD E
routines in assembJer MPASN/
dpll: spr-rnlirit: cli np(.tione dei
Rouîine che genero un impulso di I microsecondo tromite
lo lineo RA2 (segnole E). Si suppone sempre che il PIC
stio lovorondo od uno frequenzo di 4 Mhz.
1 1 CoDICE
ASCtI
O BYTE
DEFINIÎO
DALI]UTENTE
C an at ro<tn rnm:ndn
neilaDDRAMoibytesi leggono i codicr ASCII scritti
neIIa CGRAVI,
tCD_E
rèlurn
bsf
nop
bcl
RA,2 ,'Attivo E
RA.2
;Atendi t microsecondo
:Discttivo E0 BF INDIRZZO
DI CGRAM
ll modulo LCD esegue automaticamente una sequenza
interna di inizìo al momento in cui viene a00licata la ten-
sione di a imenta,zione, se si compiono iseguent, requisit.
b. ll tempo di scollegamento deve essere come minimo di 1 millisecondoprima di tornare a collegarsi.
LCD_REG
Queslo routine deposito il codice di istruzione presente nel registro
W del PIC sullo porlo B. Attende che il disploy ICD
eseguo luhimo oRerolio.ne e 91yro flimqull di ottilofone !i !, .
LCD-REG bcf RA,O ;Disonivo RS {lslruzione}
ovwf R.B ;Prende il codice in W tromite PB
coll LCD-BUSY ;Anende che si liberi LCD
golo LCD-E ;Genero un impulso in F
NTRO R
(r)Contro[[erdi LCD
Il display LCD è ìa periferica piu interessante di
rrri disnoni:mo ner visualizzare informazionrnei nrodotti e nei sistemt basati sui microcon-
troller. ll suo ridotto costo, la sua flessibilità
nella presentazione di messaggi e di grafica, le
sue piccole dimensioni e il fatto di essere pro-
grammabile, sono caratteristiche che lo rendo-
no insostituibile.
Per sfruttare al meglio i display LCD, sono
state sviluppate, e si trovano in commercio,
schede che facilitano all'utente l'uso e la
gestione all'utente per l'applicazione nei pro-
getti La scheda di controllo rende trasparente
il controllo interno del display LCD, Tramite una
ronnia di linee si colle^- r- --r-^!-.r -^^+.^rloLvvpru ur ilr ruL/ rr LvilLgd ld )Ll ICUC Ul LUl lLlUl
con qualsiasi sistema capace di comunicare tramite una
RS-232, come ad esempio un PC, un terminale divideo-tastiera, un microcontroller, ecc Questi dispositivi fun-zìonano come maestri (Master), rispetto alla scheda di
controllo che funziona come schiava (Slave). Lo schemaIoi rnllon:monti doi hlnrrhi rho no<ti<rnp6 il Ài.^l:',uEt LvilE9Or r rgr rLr uqr ulvLLl ll Lr rE 9E)Lr)!vr ru ll ul)Ploy
LCD è riportato nella figura. La scheda di controllodell'LCD è basata su un microcontroller che ha il com-
Schema di adattamentodella scheda controller fra il PC (MasteÒ e il display LCD (Slave)
nitn nrinrin,alè di intprrlretare le istrUzioni Che riCeve dal
master via RS-232. La decodificazione di queste istru-
zioni si trasforma in segnali di controllo, che si applica-
no al dìsplay per produrre i differenti effetti di visualiz-
zazione programmati attraverso il master.
In generale si possono classificare in due grandi
gruppi:1 + Controller on-line,2 -r Controller programmabili con memoria.
ll controller on-line si oilota in modo oermanentetramite il master. Riceve ed esegue sequenzìalmente leistruzioni del master, che puo essere un PC o un siste-
ma con microcontroller. Le istruzionì di visualizzazione
sono inviate nel momento opportuno, in funzione degli
awenimenti deì mondo esterno che influenzano il pro-
dotto che incorpora il display LCD. Per esempio, in una
macchina distributrice di prodotti, ogni volta che sì
introduce una moneta si mostra il valore della medesi-
ma e il montante totale del credito disponibile. ll con-
troìler on-line e progettato per mostrare messaggi nel
momento in cui si producono gli eventi corrispondenti.
SLAVE
:,::::*rll..
ll display LCD è diventatouno dei terminali pitt utilizzati per visualizzare informazronr
COMANDI
ISTRUZIONI
ll master è permanentemente collegato al controller LCD, e contiene il programmadi istruzione e di visualizzazione.
COMANDI
ll controller programmabile con memoria, riceve il programma visuale tramite il master in modoprogrammazione, lo memorizza nella sua EEPROM, e dopo lo esegue in modo autonomo.
ln questo caso il programma di istruzione di visualizza-zione è contenuto nella memoria del master, come si
',aÀa nall: fin' 'r. l'rltr1-1 tinn di rontrnllor nrralli nrn-VEUq llEllC ll9UlO. LOlLrv LrVv ut Lvt tLtvilLt/ 'r-,,,, r,-
grammabili con memoria, oltre a disporre delle stesse
funzioni dei controller on-line, disponqono di una
La scheda si compone di dodici blocchi funzionali, elen-cati di seguito e mostrati nella figura:
'l -r Connettore di alimentazione.2 -r Potenziometro di contrasto.
memoria EEPROM in cui sonoscritte le istruzioni di visualizza-zione. Queste istruzioni si ese-guono al reinizializzarsi del srste-
ma, cio significa che questimodelli possono eseguire in
modo indipendente le istruzionic i mcssanni rho in nrecedenza
sono stati scritti nella loromemoria. Questa caratteristica li
rende molto adatti ai sistemi
automatici, come succede neir:rtalli nr rhhliri+eri
:l:::,:
Per avvicinare i lettorr alla realtà
commerciale, descriveremo ilmodello LCD-CON1, di tipo on-line, e l' LCD-CON2 di tipo pro-grammabile con memoria chepossiamo vedere alla paginaseguente.
: " t ', '" :l '.l:' l':'
3 + lVicrocontroller PIC
16C73.', 4 -) Interfaccia LCD 'l
.
Connettore a sinoola fila (SlL)'-'"'vOer LLr.
ì;r 5 -r Clock/calendario in
. tempo reale.
. 6 -r Memoria di pro-
; gramma
: 7 -r Connettore RS232.r B -) Batteria.i 9 + Pulsante di Reset.:.
: 10 -r Microinterruttore: ,,| 0l COnîlgUrazlone.
: 'l 1 + Segnale digitale di
ingresso. Ext. Input (J4)
12 + Interfaccia LCD 2.
Scheda controller LCD-CON2, programmabile con memoriaConnettore a doppia fila (DlL)
per LCD.
I
:lìu
Pa4
CARATTERISTICHE TECNICH E DEI CONTROTTER "LC D-CON"
Schedr di {ormcro normolizzato dq IOO x 75 mm.*"" Affi;i;;; u vAcnrc, ."" .i.;tùi ."tttiiàit"'il;rimr$;;flru;i"i
-:---:9:::-:s:i:::-:::-1::*:-:.:r:*::"î-'3T-*:k::*-s-::l*::tri-.:::5i:1î: .-"Clock/colendorio in tempo reole, olimenfolo con bofierio ricoricobile di Ni-Cd.
Microcontroller PIC |éCXX di gcmmo medio.
Polenziometro per lo regolozione del controsto del disploy.
Copocito di governore disploy fino o 80 corqtteri con e senzo relroilluminozione, con diverso configurozione di linee e corqtlere per lineo.
Pulsonte di reset.
Memoric EEPROM con 24 Kbyte nelkr versione [CD-CóN2.
Connetlore per otlo segnoli di ingresso che servono per rilevore condizioni di visuolizzozione. :iQeotko modi di hvoro configurcbili con microinierrufiori: tresl, on-line, progrommozicne ed esecuzione. . i.
$rú;é;;vùile.*;";il;;iiú;lili':ifi;r"r6s.;ìi;Jil;ii,tó;É'Èi'i;iil"l^;-ilÈi*;i;;ffirÈ"il "tili,,*""fi"ffiÉ"tà.-""-""1,1
rliguro il Sistemo Integroto di Svíluppo che permetfe uno intertoccio semplíce do utilizzore per l'utente. i:"ffiÈìyffiÍ=:irT-.r:Fryryîrt*rrry7:i:Í"ii:j:"î-?rî-I:îT,ffiìa:iîffirìr.t : î îia::tj"t ti "t - :,1
Cronogramma di un'operazione di scrittura di un'istruzione nell'LCD tramite il PIC
ll connettore per l'alimentazione, indicato con il
numero 'l nello schema, riceve una tensione di 12 V,
che puo essere alternata o continua. La scheda dispo-ne di un circuito di raddrizzamento (D'l), filtraggio (C 1-
C2), e stabilizzazione (U7)" ll potenziometro di contra-sto è evidenziato con il numero 2 nello schema.
1". Suooorta la comunicazrone RS232 con il master.
2". Interoreta le istruzioni che invia il master oer
controllare il display LCD. Grazie al lavoro del PIC non
è necessario che l'utente conosca il funzionamentointerno dell'LCD.
ll connettore a fila singola da 16 pin (SlL), è segna-to con il numero 4 nello schema, e serve per supporta-re i moduli LCD che hanno questo formato.
Nella figura sono assegnate le funzioni ai diversipiedini. Per alcuni tipi di moduli LCD, è necessario un
connettore a doppia fila per la loro inserzione. Questoconnettore è indicato con il
numero 12 nello schema, e
, nella fioura è rioortato il suo.-h^'-- -h^ .i -^|-++- -; -^À^l>Lr rcr rd Lr rc )r dudLLd dr r r\JUcr-
, li deìle case WINTEK, NORI-
I TAKE e SHARP.
. i ,:';..i 1, . l .i'ti. i.i',::t jij,.li.:,.,;,:
E basato sul dispositivoPCFB5B3 (U1) di Phiìips, che
contiene un clock/calendario a
tempo reale, alimentato trami-te le batterie di Ni/Cd.
ll rhin o r-nntrnllet6 l6 gp
cristallo di quarzo da 32.768Khz e inoltre dispone di una
memoria SRAM da 256 byte,
che essendo alimentata con la
batteria si comporta da memo-ria non volatile, e in cui si
scrivono i differenti parametri
ll PlC16C73 è incaricato di realizzare i due comoiti vita-li del controller:
I
;
i
:,,...a
Schema della scheda controller LCD-CON2 con la distribuzione dei suoi blocchi funzionalr
INIERfACCIA tCD I SEGNATE
GNDVccVao.lR5R/wE
DODID2D3D4D5DóD7L+
L-
PIN
I234567I9lotlt2r314l5
ló
DtSCR|TtONE
Connessione o mosso dell'olimentozioneConnessione positivo di +5V di olimentozioneTensione voriobile per lo regolozione del controsto del disploySegnole di controllo dei registri interni dell'LCDSegnole di controllo per lelturo e scritturo interno dell'LCDSegnole per I'obilitozione inlerno dell'LCDlineo bidirezionole dei doti n" Ilineo bidirezionole dei doti n" 2Lineo bidirezionole dei doti n" 3Lineo bidirezionole dei doti n" 4Lineo bidirezionole dei doti n" 5Lineo bidirezionole dei doti n' ólineo bidirezionole dei doti n" 7Lineo bidirezionole dei doti n" 8Afimentqzione positivo di 4,5V per lo retroilluminozione(se il modello di LCD dispone di esso)Alimenlozione di mosso per lo retroilluminozione(se il modello di ICD dispone di esso)
Assegnazione dei piedini nel connettore a fila singola per alloggiare l'LCD.
J3;
ffii"".o-.",ar,*'-o-t*'*a*r*rj
INTERFACCIA tCD 2
Connettore a doppia fila dt
terminali per supportare alcunimodelli di display LCD
la capacità totale di 24 Kbyte.
,'"1.. | :, i , i i" i,, ,. ,,'t,::' !.;, l; i,
ll ronnpftnrp l5 sr rnnofta la
comunicazione RS232 e utiliz-
za tre linee. ll pin 3 corrispon-
de al segnale di ricezione (Rx)
il pin 2 a quello di trasmissio-ne (Tx), e il 5 di J5 è la massa.
Con il numero '10 si fa riferi-
mento a quattro microinter-
che si utilizzano nella
scneoa.
:i.:: ::ti: ::il; ;:,, ,.,'
','"t.':: t',':" ''
La scheda LCD-CON2 è
programmabile, e
dispone di una memo-ri: npr qrrivere le iqlrrl-
zioni che riceve dal
master, per por eseguìr-le in modo autonomo e
indipendente. È forma-ta da tre circuiti 24C65(U2, U3 e U4) che sonomemorie EEPROM da B
Kbyte, con cui si ottiene
ruttori che selezionano il baude-rate nella comunicazio-ne seriale, e i modi di lavoro, così come riportato nella
tabella della figura. In ultimo il connettore J4, segnato
con il numero 'l 1 nello schema, permette la gestione di
un massimo di otto segnali digital, che opportunamen-te gestiti, permettono di selezionare visualizzazìoni pre-
programmate: a seconda dei segnali che sono attivati,si esegue una routine di visualizzazione memorizzalanella EEPRON/.
ll flusso di controllo del programma è governator-^l; ^++^ -^^^-ri !i i^nresqo rhe fornisrono 255 COm_uo9ll wLLU )E9llqll ul lllvrEJJV Lr rL rvr rilJLvrrv
binazioni diverse di salto.
ll connettore J4 ha 10 terminali, dei quali il numero2 e la massa, e quelli compresi tra 3 e 10 supportano gli
otto segnali di ingresso. ll terminale 1 corrìsponde con
il segnale STB, che inizializza I'esecuzione di un pro-
gramma per il rapido riconoscimento dei segnali di
i n q resso.
ii,
SWI-I ' SWI-2 Modo di lovoro
i oFF i orr i on-line ]:r '********j-"-'--*"-ì - ---"*'. OFF i ON 1 Progrommozione (solo con |-CD-CON2) ]
I .---91!.-...i-.9i,1.,-.1-- F-'-::-s:-l."..1-"*1,::!e-.:,er,!-c--9;S9,\?),. ...".......iON ON Tesi
SWl-3 SWI-4 Boude'--'-J i
--,-9*tt,..: "*9F-*i"--_-"_?J"qo, i i.. oti-.,i. -"9!t * .|^.*..+e. oo.
. j.'t
- qù"-l*srii, -ip.il jo-1.-: 9N i- I??99,,..:i
Microinterruttori SW1 per la configurazione della scheda di controllo.
i:; r;:: J,ri,irif {1fr Íf :rlr*.rir!*slil|ìffi:rNNÌrrrlrì*;l
l;+++ +:+f ij',,É,i t:"1:u+.ir:ii,i'i;ti!"1i;" +iì+,
Controller di LCD
Confezionare i programmi necessari per fare in modoche l'utente risolva facilmente i suoi compiti, e che leistruzioni da utilizzare siano semplici e intuitive, e
importante tanto quanto progettare dispositivi fisici cheadattano il display LCD al master, tramite il quale si sta-biliscono i messaggi da visualizzare. La scheda di con-trollo riceve le istruzioni dal master, le interpreta e leo<onrro in fr rnzinno r,- Jet programma memoflzzato sul
PIC 1 6C73. Le istruzioni sono divise in due tipi:1". lstruzioni che interpreta il PlC16C73.2". lstruzioni che edita l'utente sul master.
ll PlC16C73 deve ricevere le istruzioni dal master,secondo il formato e la sintassi che è capace di inter-pretare. Pero quando l'utente edita il programma divisualizzazione sopra il PC, utilizza un repertorio di
.istruzioni più pratico e facile da comprendere, con l'ob-biettivo di ottimizzare rapidamente lo sfruttamento deldisplay LCD. Questa filosofia di lavoro è mostrata nellafigura.
COMANDIPER LCD
' RS232 |
, 'sfRuztoNt pER LA SCHEDA Dt CONTROLLO
i
,, ,rr.ri, o,n inL," ,i, ,rru lur=nr";";sotrro ;";to;tte aaila cpudel master, per fare in modo che il PIC
della scheda di controlloie possa interpretdre.
.|...:l,|1||..'.|..:.i,:i.,;,:,,:.,i,i;:ì.|;::.,::!
ll PlC16C73 della scheda di controllo contiene nela sua
memoria un codice di programma, capace di interpre-tare un repertorio di istruzioni che converte in segnali digoverno per il modulo di LCD finale. La CPU raccogliele istruzioni che utilizza l'utente, le traduce in formato
(il)
adatto al PIC della scheda di controllo e le invia a que-st'ultima tramite una RS-323. Le istruzioni che utilizzal'utente non sono uguali a quelle che interpreta la sche-da di controllo. L'ideale e che l'utente sia una personacon poca specializzazione tecnica, utilizzi istruzjoniintuitive per creare i messaggi e disponga di una inter-faccia grafica amichevole. Queste istruzioni sono defini-te di alto livello e la CPU del master le traduce nel codi-ce delle istruzioni che sara interpretato dal PIC 16C73della scheda di controllo e riceve il nome di "basso livel-lo", molto piu vicino alla macchina e molto meno com-p ren s ib ile.
' ,'i' ,:: : : ,l ,',',i ,l:1,:1,.1,.:';
l;, '.'','.:'. ).i: :.'
L'interprete dei comandi, ubicato nel PlC16C73,ammette un insieme di istruzioni con le quali si accedea tutte le possibilità di visualizzazione del display LCD.
Tutte queste istruzioni rispondono alla stessa sintassi.lniziano con un carattere ASCII a cui fanno seguito unoo più byte esadecimali, in funzione di operandi. Infinetutte le istruzioni terminano con il codice 0x0D Hex(Ritorno a capo).
Dopo aver completato l'esecuzione delle istruzionirlcevute, la scheda di controllo ritrasmette al master uncodice di riconoscimento ACK del valore di 0x06 Hex.
Alcune istruzioni, inoltre, restituiscono al master i para-
metri richiesti. ll master non invia altre istruzioni allascheda di controllo fino a che questa non invia il rico-noscimento della precedente. In seguito descriveremoalcune istruzioni di basso livello in cui sono esrrosti i
seguenti campi:CODICE: Raooresenta il carattere ASCII che defini-
sce l'istruzione.SINTASSI: Indica la sintassi dell'istruzioneOPERANDI: Esprime i possibili operandi.ESEMPIO: Semplice esempio di applicazione delle
istruzion i.
RITORNO: Valore che restituisce al master.
COMMENTI: Chiarimenti oer comorendere le istru-ztont.
".i1;.;|ll.11').i)l;.'.l:|:i:'i.:||,j.{:i'...:..!;|;i||,ii,,,!..y||1|11\':1|'|\fJ11|'|'|jj.,reww1]il]lllll*|,]!4iEÌiWùlùèiN]]l|]fuÌw1fÍÍi1l'*l&@jl1]ilWùlì|ii]lìì]iÍli]k,|#
flIICROCONTROLTERdi controller di tCD
Codice: A
Sinhssi: A (coteno) CR
Opelondl, llgtenol è fo
coteno d9i 1gg9!erj do visuolizzore, mox. 40
Esempio: AmcrosistemsCR
Ritorno: ACK
Commenti: Tutte le istruzioni ierminono con un riiorno o copo (CR)
Caratteristiche dell' istruzione che visualtzza caratteri sull' LCD.
Con ouesta istruzione si mostra la catena dei caratteri
che sarà indicata in seguito a partire dalìa posizione
attuale del cursore del display LCD.
I caratteri sino ad un massimo di 40, si memorizza-
no in un buffer interno. Nella figura sono riportate le
principali caratteristiche di questa istruzione.
€odice: C
Sinlossi: CCR
Operondi: Nessuno
Esempio: CCR
. Ritorno: ACK
Commenti: Ognì volto che si esegue questo istruzione.
si commuiolo stoto del cursore ON/OFF
Ca ratte ristich e del I' i struzi onedi attivazione e disattivaztone del cursore.
Mostra o nasconde iì cursore nella sua posizione
attuale. ll cursore si rappresenta come una linea oriz-znntale nella nosizione inferiore del carattere in cui| ,r"v YvJ'4'vi
si trova.
c.D:Elti
l
u.H,
(omondo :
i
: r'-"--'1':s I
I
J
K
tM
N
o
Sintcssi
At,.tóíltm "*
EloollbblCR
ccR
DCR
EIindirizzo]CR
t[coleno]CR
G{nnl[byel ]lbyte2l . [byte8]CR
HCR
l[coteno]CR
JCR
KCR
tcR
Mlmml[hh]cR
N[dd]lmmlcR
ocR
PCR
Q[volor]CR
RCR
5[dirH][dirt]CR
Tlvolore]lìndHllindLlCR
ucR
VlvolorlCR
XlindHllindLlCR
YCR
?CR
Destrizione
v,ú[''oí ;;ffi dì;ùfi;l; ú,ffillio posiiió,àoi,ólil;f;'riore.
Produce un effetto dì {bb) inlermitienzo con un periodo siobilito
do ioo).
Afiivo o no lo visuolizzozione del cursore.
Disotlivo il corottere ACll locolizzoio nello posizione del cursore.
Sposio il cunore n uno nuovo posìziore.
Inserisce uno coleno di corotleri o poriire dollo posizìone del cursore
sposlondolo verso sinìfro.
Genero uno degli oìio posibili corol+eri grofici definibili
doll'utenie.
lniziclizzo il dìsploy LCD concellondolo e posizionondo il cursore
noll^ ^^.irinno
inizinlp
I Inserisce uno coleno di coroiieri o portire dollo posizione del cursore
.""*"""1^1" " .1"*."
r Attivo o disottivo il displcy LCD.
, Altivo o disotiivo 1o visuolizozione dell'oro in corso.
: Aìiivo o disoflivo lo visuollzzozione dello doto conenfe.
, Regolo l'orologio con i minuti [mm] e Ie ore lhhl,
I Regolo il colendorio con il giorno ldd] e il mese [mm],
r Aftivo o disotlivo il lompeggiomento e/o il cursore nello posizione
, in cul sì lrovo.
, Legge e resiiiuisce lo posizione ottuole dove si irovo il cursore,
, Temporizzo ionli decimi dì secondo come si definiscono nel [volore].
: Attivo o disoliivo le luci di tondo {bocklighi} nei dìsploy
, che ce l'honno.
I Sallo incondizionoiooll'indirizzo IindH][indl],: Solfo incondizionoto oll'indirizzo IindH][indL] in funzione del {volore]
, presente sul conneilore esierno J4.
: Fine del proqrommo,
, Corico lo voriobile inierno con lvolore],
I Decremenio 1o vorìobile e solto o [indH][indl]se il risulioio è 00,
: lniziohzzo lo schedo di conhollo LCD'CON.
r Resiiluisce il volore dell'ultimo ìndirizzo dì memorio progrommobile
, disponibile.
Devia il flusso di controllo del
programma quando sr com-nip rrn,r dotprminara condi-zione. La scheda di controlloLCD-CON2 s(rive il program-
ma di visualizzazione nella
memoria EEPROM da 24Khvte che occunA oli indiriz-
zi da 0000 a 5FFF Hex. Le
istruzioni sr scrivono negli
indirizzi correlati inìziandoda 0000 Hex Ogn istruzio-no rìr.r rn; rn rprtn numefodi hvtp I a rondizione rler cui
si realizza il salto viene stabi-li+- ^l-l ,,-l^"^ l.-i^-"i^ ^ilIa oat vatore 0tndrr() presen-
te nelle otto linee di ingresso
a cui si accede tramite il con-
nettore J4 Ext.lnput deììa
scheda di controllo.
Nelìa tabella a sinistra sonorar)0resentate tu t[e le istru-
zìoni, con le loro prrncipali
P
aR
5
I
uVX
Y7
Repertorio di istruzioni di basso livello che ammette la scheda di controllo LCD-CON2
::,4M.".' i::a*i;rtirtiuuuuìììììììììììììììììì!{rlul
:iìi'ììll
MICROCONÍROtLERModelli di conlroller di LCD
caratteristiche, che la scheda di con-trollo LCD-CON2 è capace di inter-nrot:ro p rnnvortirp noi rnrri<nnnnen-
ti segnali di controllo che sono inviatìal terminale del modulo LCD.
Per semolifirare la ne51j6ne del con-"r""--'rroller LCD-CON il suo produttore,Ingenrería de lVicrosistemasPrograrnados S L, ha svillppato unsoftware molto pratico che imple-menta l'interfaccia grafica e che è
stato battezzato con il nome di
Ambienre Integrato di Sviluppo ElD, il
orralp npr.nette 1e sonrl6pti f unzioni:. Inviare istruzioni in modo on-line
dal rraster alla scheda dr controllo.. Simulare i programmi di visualiz-
zazione sul monitor del PC prima di
eseguirli sopra LCDe Edrtare il programma con il lin-
guaggio di alto livello.. Assembiare le istruztoni di alto
livello e convertirle in istruzioni di
basso livello, interpretabili dal PIC
della scheda dr controlloo Mettere a punto il programma.. Trasferire i programmi assembla-
tr alla scheda di controllo LCD-CON
L'ElD e basato su un repertorio di
istruzioni di alto livello, che purosqpndn onr.iri:lonti : n ,ollo di h:<<n
livello, nsultano piu comprensibili e
f,arili d,r npqt:ro Cnn l'gl119p dei testidell'ElD si puo cance,lare, inserire,
muovere, duplicare, salvare su disco,
recupe'are, ecc. fassenbie" di que-sto ambrente traduce le istruzioni di
alto livello rn altre di basso livello, chenossono essprp inte'rrretate con I,,,.. I
frrmware della scheda di controlio
-l-leltcD
-:--: - :
- lngrc*i: Pda I:t
4,l_l-l-|*l*f-f i* lt,-,j0*.J
: fipo--- '
--1-H
itrr:!or:r..-.-.. --..........
€ Reodv i
' a.",1.
,l on Lin" :
{"- Èogrommozione ,
_I ixl
rE.q":f ..9c*!,:'::ry:B
-,g..4;rii
f $ ,imp .rmc
r-i"g,*"c
, El l*t":,E] l:i..: El po'* ,El n ,*
jlExl Y1 ,' .--:* ;
V= fi* DE< ie
|'ti f lnvìorealLCD :
a- Simulore
:
Modo ON tlNE: Gli ordini soronno invioti direttqmentee in modo seqgenziole ol controller dell'LCD
Videata di lavoro dell'ambiente EID in modo on-líne.
];.==:.,:,:.;iaa=-;li::a,.;-a:E-.::::::":::.,:.,:.,.',,.,,:.:':.:,,.',:::..,::::,:::::::,lile Configurozione Strumenti Aiuto
,-l l rtl5l,i--J qti
Sorgenle
Videata di lavoro di EID in modo programmazione
tcDs
16xZ --_
V: lù
Obiect
LCD-CON. ll simulatore dell'ElD e molto interessante,perche -n sce la possibilita dr presentare rel crsplay delPC i messaonr che vocrliamo visualizzare sull'LCD. lnfineEID possiede un sistema di aiuto on-line, in modo cheposizionando i cursore su qualstasi icona appare unafinestra con un commento. lrequrstti per l'installazionedell'ElD sono:
r PC compatibrle con processore Pentium ad almeno100 MHz.
.2 l\4B come minimo dì spazro libero sul disco fisso.
. B l\48 come minimo di memoria RAN/.r Sistema Operativo Windows 95/98. Floppy disc da 3,5"o Porta seriale libera.
,+,€r+B
, À. ji:m r-Ì
F.tfÈi :":::-
:
---.t_Yrl.L?--:.-ti:#Ì-i. i
q;, xegoro ofs
[-] Regolo doto
5 Modelli di controller di LCD
;
Nella figura è riportata la finestra che appare sul PC
lavorando nell'ambiente EID in modo on-line, in cui leistruzioni si inviano direttamente alla scheda di control-
lo. Esrste una finestra a video, denominata LCD, in cui
si rappresenta il display LCD disponibile, potendo sce-
gliere tra diverse configurazioni di file e caratteri. Nel
modo sìmulazione i comandi si inviano a questa fine-stra:l nos'to della scheda di controllo, simulando l'ef-
fetto che produrrà ogni istruzione suldisplay LCD. Sulla
linea der comandi sr digitano le differenti istruzioni con
iloro operandi. Se si attiva il pulsante "lnviare a LCD",
l'istruzione si invia tramite il canale seriale alla scheda
di controllo. Se è attivato il pulsante "Simulazione", l'e-
secuzione dell'istruzione sisimula sulla finestra LCD del
PC. Inoltre si puo lavorare in modo programmazione,
descrivendo tutte le istruzìoni nella memoria EEPROM
della scheda di controllo.Come si puo vedere nelìa figura, ìa videata in modo
programmazione dìspone di una finestra "Sorgente",
in cui lavora l'editor deitestiASCll, con cuisi editano le
linee del programma sorgente, Ognuna delle linee puo
terminare con un commento chiarificatore preceduto
da REM.
Instruzione i
lcone corrispondentialle 23 istruzioni di alto livello
dell ambiente FID
l'irnnr rnr"iqnondonto. Nella!v, ì ,JPv, ,vL, , LL
principali caratteristiche delle 9
rllriiflftfllllllrl?lrNlllillll!lìlìì
Inserb"lcoleno]
Inserl<"lcoieno]
Home
SelPos lindl
GetPos
Gef€hcr
Power
Print "CiooPrini'AddioPrinl "Mlcrosystems\0\1
Sì tralta di rrn renerto-
rio di 23 istruzioni chernrrisnnndnno : nrrel-
le dr h,essn livplìn aia-r. ,!i-+^ À l^ll^ f :^^-+.sluotale. t\eila rnesrra
di ìavoro dell'ElD esiste
rrn nrradrn in rrri sono
rappresenrare ognunadi nrpste rstrrzioni
medrante un'icona: ìn
nrpqto mndo lp istrrl-YvLr Lv
zioni dpl nrnnr:mmasi nossono editare
senza la necessità di!i^i+-.1^
^^.+- -ll--0tgtTarle, 0a5ta cilLLa-
re con rl mouse sopract^,.-- -^^^ .l^^.+-+^ leil9Utd )ut tu rPUr LoLE
istruzioni di alto livello.
+l:
:
Print"lcoienol Visuolizzo lo coleno di corotleri o poriire doìlo ioosizione del cursore. ll numero mqssimo di ,
iorolteri di cui è composfq lo coiena è 10. a
5 po:soro v srol zzo'e co'oîler' g'o[icipreceden e-erie delir ii. lr qJeslo coso t uli;zzolo boro r"e'so {oocl slosh) sègti-o dol -rre'odel cototlete gtolico des dero o.
sinrqssi Descrizione , urrare di un secondo.
Si tratta di costruire un prograrnma che presenta sul
display LCD la parola "lngeniería" e "Microsistemas"
alternativamente. Ognr parola si deve mantenere per
due secondi sul disolav e l'intervallo f ra entrambe deve
Home: Inizializza il display tCD.
Pause: Temporizzazìone.
Jmp: Salto all'etichetta indicata.
' : Cursor ::.1 ì Cu.sor
l
Si m bo I i e ca ratteristt ch e
di nove istruzioni di alto livello.
lnserisce lo coieno di corollerì o portire dollo 1
posizione del curoore, sposiondosi verso desko. I
Lo s n'osi e sin; e oll s'-rzoTe D' "'.
lnserl> C'oolnserb'Microsystems\0\ì
1
lnserisce lo coieno di corofleri o ooriire dollo :
por z one de cu-so'e. spos-ordosi vetso s ristro.
Lo :irtossi e siri e o quelro dell ltrrzione p'ecederle.
Corcello i d spioy LCD e posiz,ono I curuote rellop' .o oos z ore dello ptro reo.
Poszono I clso e o ird rzzospec ficolo.
ll corro, e- 'esl'lr sce ol ro;e'lo pos:zione olro e del cursore
segui'o do ACK
ll conlroller resrrr sce o moler co'oierecrec è re o oosizione dove s tovorl.Jtsote
Accenoe, speqre lCD. ll loho cre .CD s o soerlonol 5 0.Lfco c1eI rlorioziore cl^e corereuo s:o 0e du-olo:rcce:sivo islrLziole Powe' o ies-oLro.
A1i!o/o so-i\o o 'isro zzoz ore oel cltore
LoopRIM inizializza LCD
PowerPrint "lngeniería'Pause 20
Home
Pause 10
Print "Microsistemas"
Pauselu
PowerPause 10
, Jmp Loop
Microinterruttori SWlper la configurazrone della
Home
REM attiva ICD
REM visualizza lngeniería
REM temporizza 2 secondi
REM inizializza e cancella LCD
REM temporizza 1 secondo
REM visualizza Microsistemas
REM salta a etichetta Loop
scheda di controllo.
Trasferimento di datitramite R.F.
Trasferire informazioni tra sistemi digitali,comandare strumenti remoti, ricevere
dati da un ambiente distante senza la
necessità di un collegamento fisicomediante cavi fra emettitore e ricevitore,per mezzo di radiofrequenza, risulta una
delle applicazioni elettroniche più inte-ressanti In seorrito citeremo alcuni dei
settori piu interessanti in cui si può impie-gare questa tecnologia:
1". Controllo e gestione dei dispositi-vi remoti mediante invio di ordrni ecomandi: connessione/sconnessione di
allarmi, controlli di accessi, porte dei garages, ecc.' 2". Ricezione di dati in arrivo da oeriferiche remoteper la successiva elaborazione: trasduttori di tempera-tura, pressione, umidità, ecc. Tutti i tipi di variabili ana-
logiche e digitali.3". Trasferimento di informazioni tra srstemi molto
distanti: risultati di determinate ooerazioni. stato inter-no di variabili, ecc.
4". Aoolicazioni in microrobotica: comunicazione framicrorobot per realizzare compiti con-giunti, controllo movimenti, informazionidell'ambiente, ecc.
. ' . ,.:,'1 .,'. t,:'tl
Esiste una certa similitudine fra la funzio-ne della scheda di controllo LCD e i
dispositivi di R"F. Nel primo caso, la sche-
da di controllo riceveva le istruzioni del
master - che poteva essere un PC -, le
interpretava e generava segnalr di con-trollo per il display. In R.F. esiste una sche-
da incaricata di ricevere informazioni in
forma di onde elettromagnetiche a R.F,
interpretarle e fornire iì risultato a un PC
'
Schema di funzionamento del ricevitore dr R.E
(r)
**il;.
$rc
Schema di funzionamento dell'emettitore di R.F
per ìa successiva elaborazione. Nelle seguenti figure si
presenta l'attuazione semplificata delle schede dr emis-sione e ricezione di R.F. La comunicazione fra le sche-
de di emissione e ricezione di R.F. e l'applicazionefinale a cui le destina l'utente, si realizza mediante
comunicazione seriale RS-232, o mediante livelli logiciTTL che si aoolicano direttamente al microcontroller diqueste schede. Nel caso della scheda di emissione,questa riceve via seriale dal PC i comandi di configura-
zione e idati da inviare all'utente.ll microcontroller della scheda
interpreta i comandi e li invia, insieme
con i dati, tramite l'antenna di emis-
sione, secondo un determinato proto-collo. Nel caso della ricezione si puoimnnrro rho ci: 116 qic+amr .hò f 1,, , ,r -. . -. . ,t) tEt |d, Lt tc tc
parte di un altro più grande. che rice-
ve i dati tramite radiofrequenza, li
verifica, li impacchetta, e li invia in
serie al dispositivo o all'applicazione
-'-:*:.:.:::':: -- -- -T:: "r: i.-i::-L :::" :
Fuigl: drs!!n:l-le-riel-9-"* "."..-.-.i..."".!",.""....:... "- ^- -- -!"!" *, -yD-s* i
-I-t",-g-r-s-,r-'-g--d..i
Velocità di irosmissione dei doti i I I nooo I Boude i
Ronge di lemperoturo
dell'utente.Riassumendo, una scheda codifica l'informazionu ,l''' ',':1.' , '
digitale per trasmetterla poi via R.F. e l'altra la riceve, ll cuore deìl'emettitore R.F. è il modulo RT1-433, pro-
sempre via R.F, la codifica e la trasforma in informazio- dotto dalla ditta italiana "Telecontrolli", che consiste
ne binaria. fondamentalmente in uno stadio di potenza che gene-
ra una portante di 433,92 MHz, modulata in ampiezza
'." . :- ii:,':r il ': ' t '' (AM). È un circuito rbrido che, meotanre un processo di
' ' ': I " r' r'r. 'r'I ."; r ' regolazione che utilizza tecniche laser, offre una grande
Con l'obiettivodi analizzare ilcomportamento di questi stabilita di frequenza. Lantenna dr emissione è integra-moduli che comunìcano tramite R.F., descriviamo l'e- ta nel circurto, ed e possibile ottenere una portata di
' varie decine di metri, a seconda delle condizionr
ambientali. Le sue caratteristiche principali sono ripor-tate nella tabella della figura.
, , . , . . , ,\ , ',
La gestione dell'emettitore MSETX è basata sul pro-
gramma che alloggia nel PlC16F84 e che supporta i
seguenti compiti:a. Gestisce la comunicazione seriale con il sistema di
applicazione dell'utente, che riceve i comandi di confi-nrrrazionp e i dati rhe si vorranro inviare.
b, Interpreta i comandì di configurazione e li scrive in
Emettitore MSETX
mettrtore N/SETX e il ricevitore MSERX, entrambi basati
su un PlC16FB4, che vediamo nella figuraNella scheda di emissione si utilizza un PIC'16F84 per
controllare la trasmissione alla frequenza standard di
433,9 MNz. l l m icrocontrol ler riceve l' i nformazione d i g i-
tale da trasmettere via RS-232, la decodifica e la invia
tramite R.F
La scheda di ricezione raccoglie r segnali di R.F tra-mitp rrn'antenn: e disoone di un altro PlCl6F84 che èincaricato di decodificarla, convertirla nell'ìnformazionedigitale iniziale e portarla all'esterno via RS-232.
Principali caratteristiche del modulo emettitore RTl -433 della ditta italiana "Telecontrolli"
i t;1 r ,t r,, , ,'..... .,, I t. .,,r' l, .,t,',! ,'.:lWfrtrr!ì:ì1ìì1fl111111111iiiii1iiiiiiiifriiiil]]|W.'1'.'..j)jjj...j1l;'j...'4||||j|||:||
Distilbuzione dei blocchi principali sulla scheda MSETX
MICROCONÎR
un,altra di test o Assegnazione delle funzioni dei cinque terminali del connettore CN3 (TTL DATA)
"checksum " in
-^,J^,l- ^-"-^+i"^ l^ +mooo oa garanlìre ta lrasmtsstone.c. La trama, ottenuta con l'intestazione, ì dati, il
controllo ecc. viene inviata in modo sequenziale, bit a
bit, al modulo RT-433, da cui sono irradiati tramite R.F
I blocchi principali della scheda di emissione N/SETX
sono riportati nella figura e sono i seguenti:1', Modulo RT1-433.
2'. PtC 16F84.3" Inoresso dell'alimentazione.4". Reset.
5". Mìcrointerruttore di configurazione.6". Connettore TTL DATA (CN3).
7'. Connettore ICSP (CN2)
B'. Connettore DB9 (CN1).
una memofla rnter-
na non volatile.I dati sono
i-^---l-^++-+i -^^ilrpoLLilcLLdLr LUrl
formato prestabili-tn o ci aìonor:
un'informazione di
Intestaztone e
ll connettore CN4 rrceve
l'alimentazione, che deve
arrivare dal secondario di
un trasformatore che for-nisca 12 VAC. All'interno,.J^ll- --h^,1- ^-i-+^ ,,ueild 5Lr reud e5t5Le unostadio di raddrizzamento,
di filtro e di stabilizzazio-ne per generare +5VDCner l'elettronir: di 16p1-}'/l'
trollo, e +13VDC per il
modulo RT1-433. Per
resettare il sistema si usa
il pulsante SW-2, che
resetta rl PlC16FB4, senza
modificare iparametriinterni dr configurazione.Gli interruttori SW-'1 a
drre rnntatti spr\/nnn 0efdeterminare i baude con
cui la scheda comunicacon il sistema di applica-
Pin Ne Seonole.,.--.-.,.,-.-.,.,-.-..-....:,..___,,.,.......,..-..=...-
- ..-..1..-- .--i"-"" -".8:".--
I D"scrizione
.: Bidgr".{:ii,g-t|!r.si!:-lsrpji:"g-'::-1,"-d:!!1yt':ll--.--:e:,:sii:n-etti!-qry,!!-s-!Jl.2:Tx Trosmissione dei doti doll'emettitore MSETX verso I'opplicozione dell'utente.
3 i Vcc i Tensione di olimenfozione di +SVDC. Non necessorio. :
....-'f-'..'.'].."s9'!.3..-...i'Ly..s]l'.::i...l.:."d...:.|!1":*linfI.sgI.'!y3**]l:".'.l.l.':ee.li:l'.'.'''.'
..-."..9......i..--"-9]!-?..-..--.l..!:."l.:-::i-r.r
zione dell'utente, che può essere un PC. Se SW-1 e
SW-2 sono a 0 la comunicazione si stabilisce a 2.400baude. Se SW-1 = 0 e SW-2 = 'l si realizza a 4.800baude, e se i due sono a 1 la comunicazione è a 9.600baude.
',,'ll connettore CN3 a cinque contatti e chiamato TTL
DATA e ser\/p ner srnnortare la comunicazione con l'u-tente, mediante livelli logici compatibili TTL.
lsegnali che invia l'utente si applicano direttamen-te al PlC16FB4 e nella tabella della figura si mostra l'as-
segnazione di ognuno dei terminali di questo connet-tore.
ll costruttore della scheda, Ingenieria de
Microsistemas Programados S.1., uliltzza il connettore
llT-r 3::l:rrsPc I Seriol Progroming Clock. Segnole di clock di sincronismo ol momentoì dello scritturo.
MCLR/VPP j Segnole di reset del dispositivo do regislrorei e punto di opplicozione dello îensione Vpp di registrozione.
GND
Assegnazione delle funziont ai terminali del connettore CN2 (CSP)
Pin Ne Segnole 1
Descrizione
2 1. TxD : Trosmissione dei doti R5232 tromire l'emettitore MSETX verso] ; il sistemo di opplicozione dell'utente.
"."....-'...".j'.'-.,.-."'"'"..'"..':-":]''-::::'=.::]:':.'-.:'.|:3 RxD . Ricezione dei doli RS232 doll'opplicozioneI i dell'utente verso l'emetlitore MSETX.i t qcil uterrrg vef t9 | ertte[tlgfe tYtJEtA.
5 : GND i Segnole di mosso comune. i
Assegnazione di funzioni ai tre terminaliche supportano la comunicazione serrale RS-232 nel connettore CN1
Descrizione
:::
r r\r / l Í \Pr nor <.rr\iore nella/ YLr JLr ''- - -'
-
\_t\Z. \r\_Jrl Ptrr )Lr rvcrc rcild
nemoria del PIC il firmware di CARAITERISTICHE Min Tipico Mox Unità-^^+r^ll^LUr lLr uilu. 1 , . r. r. . . i ? E a . - I .'^a I
nemoria del PIC il firmware di CARAITERISTICHE Min Tipi
N/]ec]ianfeotlestoconnet-iM---"""-j.-.'"*,p-"---L".-".:."*.-.:--"*,-q..,--i----,"Y..P9-'-j'"' l'' .^-...-^ r <'tore il fabbricante puo aggior- €onsumo* 2,J ^ 3,5. mA
nare i suoi clienti dell'ultrma ; -l***.i:**-l9y:lg**,**---**:*f-tigi:::**":**"*p-9*-l-..-.1g1z -:versione delfirmware in modo , *r.:lk::,::g di sinronio -__*i*___^-_L{:.9Éj**__*_ j__*yn:"_..jrapido ed economico. , i*l*.+ 6^^.r*i;n***-]-***^l;;-";"- X-':;:';
"l--*m"- "- r
integrato MAX232 adatta i
Princiaali caratteristiche del modulo rÌcevitore RR3-433 di Telecontrollilrvellr I lL alla normalrva F(>-
232 e viceversa. Utìlizza sola-
"oiÎ:'-o :,:"i:'::" ^.,^ ,- Srri:lrg--djls:de s*9"*'ì:"o,, "9''o ''. u"', ,lo velocitò diricezione deidoti ! i ] zooo ì gqude i ,-.,:,'***--.-.,*-.,.,;**********j ITaoeila 0t assegnazrone oeile _.* " -. ...
mente tre contatti, le cui funzioni sono rappresentate
nella figura.
; i it .i i- :: ',,'l "i ij ;'i j; :: :
i; Ì- i'l i:
Realizza il lavoro inverso dell'emettitore MSETX, cioè
riceve tramite l'antenna le onde R.F, le rnterpreta e lecodifica in informazroni digitali. quindi le invia all'uten-te mediante RS-232 o segnali TTL. Le principali sezioni
del ricevitore sono le seguenti:
1a. Modulo ricevitore.
24. Ptc16tB4.3a. Alimentazione.4u. Reset.
5u. Switches di configurazione.6a. Connettore TTL DATA (CN3).
7u. Connettore ICSP (CN2).
Bu. Connettore DB9 (CN1).
I blocchi del ricevitore realizzano la stessa funzionedpnli nmolonhi dell'cmettitorp npro al ron'trario. ll
modulo ricevitore è il modello RR3-433 di"Telecontrolli". Ha una grande stabilita di f requenza e
offre una buona resistenza alle vibrazioni meccaniche,
oltre ad un ampio margine di temperatura.La sua sensibilità si puo migliorare saldando un filo,
con funzione di antenna, sul terminale ANT della sche-d: ron rrna lrrnnhpzza d,i rire a ?5 cm npr f unztonare
come antenna a mezza onda. Riceve informazioni via
R.F. e ìe invia al PlC16F84 che le interpreta, le prepara e
le invia in serie all'utenter^ ^"i^-i^-r --"--teristiche del modulo RR3_433Ls Pr il rLrPqil Lqror
sono riportate nella tabelìa in alto.
i..:.,l|'||.,...i-'|'.,,|ii...i':...;.i...l.,-.;.:..;...,i
I tre comniti che realizza il PIC del ricevitore sono:
1'. Gestisce la comunicazione seriale.
2'. Interpreta i comandi dr configurazione ricevuti e
li scrive nella memoria non volatile. Scompone i dati
ricevuti via R.F., analizza ìe informazioni delle intesta-
zioni, determina se il messaggio è drretto al ricevitore
adeguato. Infine verifica la valìdità dei dati mediante il
cnecKSUm.
3". Dal totale della trama ricevuta estrae l'informa-zione utile che invia all'utente in via seriale.
i
i,,
t,
ii
Distribuzione delle sezioni principali del ricevitore MSERX.
Trasferimentodei dati tramite R.F.
L'emettitore di R.F studiato, MSETX, comunica con il
sistema dell'utente in modo seriale e bidìrezionale.
Anche il modulo trasmettitore RT1-433 comunica in
modo seriale e riceve le informazionr bit a bit, per inviar-
CONTROLLO
Flusso di informazioni nell'emettitore MSETX
CONTROLLO
"""**"; - Modo asincrono: non necessita di
un clock ausilrario. Sia l'emettitore che il
ricevitore, trasferiscono e raccolgono i
loro bit in un intervallo di tempo "t"
(il)le successivamente tramite R.I così come e rappresenta-
to in modo schematico nella figura. ll ricevitore MSERX
suooorta un flusso di informazioni simili al trasmettitore.
Da un lato la comunicazione con l'utente è in modo
seriale e di verso brdirezionale, e dall'altro l'utente invia i
comandi di configurazione, e riceve lo
stato interno, così come i dati ricevuti tra-
mite R.F., in serie, bit a bit, come si vede
nella figura. Nella comunicazione seriale
dobbiamo tener conto di tre aspettì rile-
vanti per garantire un corretto trasferi-
mento e una successiva irterpretazione.1'. Sincronismo dei bit.2". Sincronismo del carattere.3'. Sincronismo del messaggio.
Questo sìncronismo ha il compito di
ottenere che tutti i bit emessi durante
un intervallo di tempo determinatosiano raccoìti nello stesso intervallo. In
questo modo "non si perde" nessun bit
nel viaggio e per fare questo esistono
due alternative che spiegheremo a
seg u ìre:
- Modo sincrono: ogni bit emesso va
accompagnato da un impulso di clock.
Questo segnale di clock è comune sia
per l'emettitore che per ìl ricevitore.
Quest'ultimo ulilizza il fronte o il ìivello
per stabilire il momento di acquistzione
del bit sulla linea dei dat . Per supporta-ro nrrp<tn <inrrnnismg sono necessarie,L VvrJLv
due linee fra emettitore e rìcevitore: la
linea dei dati (DATA) e quella del clock(CLK), così come si presenta graftcamen-
te nella figura.
Flusso di informazioni nel ricevitore MSERX.
P89
:'...,'1, tril ttt comuiltcoz
îBtT Dl tNlzto
Struttura dei bit che compongono ogni carattere
Superato il sincronismo di ogni bitdobbiamo risolvere la delimitazionefra ogni pacchetto di bit trasferito,ossia, dove inizia e dove finisceognuno dei caratteri che formano il
messaggio. Questo si chiama sin-cronismo di carattere. ll metodopiù comune per implementare il
sincronismo di carattere e rappre-sentato graficamente nella figura,e consiste nell'inrziare ogni caratte-re con un bit denominato di "ini-zio". Dopo arrivano i bit di infor-mazione che confrgurano,l caratte-
Schema d i f u n ziona m entodel sincronlsmo di bit in modo sincrono, ed esempio di trasferimento.
uguale per entrambi. Se per esempio si decide di realizza-
re un trasferimento di 1 .000 bit al secondo (1.000
baude) ogni bit che fornisce il trasmettitore deve rima-nere sulla linea dei dati per 1 millisecondo, che è il tempoche ha a disposizione il
ricevitore per raccoglierlo.Di solito, per motivi di
sicurezza, il ricevitore fa
un campionamento e rac-
coglie il dato a metà del-l'intervallo del tempo,come si vede nella figura.Nel caso particolare dell'e-mettitore e del ricevitoreche stiamo descrivendo in
queste pagine, entrambiutilizzano il sincronismodei bit in modo asincrono,che e orrello imnienatonella norma RS-232.
EMETTITORE RICEVITORE
re, e in seguito, jn modo opzionale, può esserci un bitdi "parità", terminando con uno o piu bit di "stop" o"fermata". Come si può vedere nella figura, davanti a
ognuno dei caratteri c'è un bit di inizio. Seconoo ra
BIT DISTOP
I
tllrI an DrNrzroBIT DI PARIÀ
EMETTITORE RICEVITORE
Nel modo asincrono non esiste segnaledi clock e ognÌ bit rimane stabile sulla linea dei dati per un tempo fisso
norma RS-232, il bit di inizio consiste in
una transizione del livello 1 al livello 0
sulla linea dei dati. Dopo vengono i bitche compongono il carattere, iniziandoda quelli meno significativi (LSB). In base
al dispositivo utilizzato, il carattere puoessere di 5, 6, 7 o B bit. Attualmente il
carattere è quasi sempre di B bit. Il bit diparità è opzionale. Si puo lavorare conparità pari o dispari. Se si utilizza la paritàpari, il livello logico del bit P è tale che lasomma di tutti i bit che valgono 1 nel
carattere, piu il proprio bit B deve dare un
tolale di 1 che sia pari. La parità dispari fun-ziona al contrario. ll bit S di stop e queìlo
che termina tutti i caratteri. Nella norma RS-
232 questo bit è di liveìlo 1, in questo
modo, quando la linea dei dati torna a O si
--^:-: -1.^ -i +.-++- f ' ,,n nUOvO bit di iniziOLdPil d Lr rc )r Lr d Lro ur u
ner il carattere sl rccessivo. Alcuni sistemr
permettono di utrlizzare 1, 1,5 o 2 bit di
stop. Tutti i bit hanno la stessa durata, per
questo se si lavora a 1 .000 baude ogni bitrimane stabile sulla linea dei dati I ms.
i':'ir'!'-l;i= iir
Quanto tempo impiegheremmo a trasferire ogni carat-
tere lavorando a 1.000 baude e sapendo che ognicarattere e formato da 7 bit e 1,5 bit di stopr
Soluzione: Ogni bit impiega ad essere trasferito 1 ms
lavorando a 1.000 baude. ll carattere ha 7 bit di informa-
zione più uno di inizio, più un altro di parità e 1,5 bit di
stop. In totale'10,5 bit, rl che suppone un tempo di 10,5
ms per trasferire ogni carattere. Nel caso dei dispositivi
commerciali N,4SETX e M5ERX, il formato di ogni caratte-
re e composto da 1 bit di inizio, B bit di informazione e 2
bit di stop. Lavorando a 9.600 baude per trasferire ogni
carattere, si utilizza un tempo approssimato di 1 ms.
', : :'; i, ;l l r i.l - !' r,.j i.ri i-, j l,t il 1,
Ir jì; j',,i, ; i;Serve per garantire l'integrità dell'informazione trasferita.
li totale delle informazioni da trasferire si divide in blocchi,
ognuno dei quali puo avere un numero fisso o variabile di
caratteri. Ogni blocco dispone di un'informazione di
testa, che determina una serie dì parametri: chi invia
l'informazione, a chi e diretta, quanti caratteri ci sono in
ogni blocco, ecc. Nei moduli MSERX e MSETX ogni bloc-
co o trama è di lunghezza fissa e contiene 20 caratteri o
byte, dei quali i primi 4 corrispondono alle ìnformazioni di
testa e i 16 successivi compongono una informazione
utile. I quattro byte di testa hanno il seguente significato:
Ònni hlnrrn ^ !r)ma À rnmnn<fo
da 20 caratteri o byte, dei quali i primi 4 corrispondono all'informaztone di testa
:1 l'
P90
il petò sono volidi solo i 'n' primii:1",--.--*,...,-**
ii Drr |tdiritto del trosmettifore.
Quando tramite l'applicazione dell'utente si invia-
no i caratteri da trasmettere mediante la norma RS-
232, tl trasmettitore lo fa scrivendo in buffer interno, e
quando si completa con 16 byte si procede alla tra-smissione automatica di tutta la trama. Se al posto di
ricevere i '1 6 caratteri si riceve prìma un carattere di
"ritorno a capo" CR = 013, il resto del buffer si riem-
ITIGROGONTR.OLL.ER
##iti.
,1 ',' " "', """f Dr: Indirizzo del ricevilore. Può volere 253, tufii rimongono ii] oll'oscolro, però occetteró l'informozione solo guello il cui i1] i.dirirto coincide con il volore Dr. findirizzo 254 è universole if ".on esso tutti i ricevitori occethono l'informozione. ftf--*-*****{ Chk eyte di Checksum. Si trolto di un byte colcoloto i| -"'-' -t --
;i doll'"metitore medionle uno serie di operozioni logico- i,.,i oritmeiiche con lulti i byte do tuosferire. Ho il compilo di evitore :
li lo corruzione dell'informozione duronie il trosferimento. i-*****"**'-'-i
$ L, indi.o il numero di byte utili dell'informozione. :,li Nel formoto dello figuro può overe un mossímo di I ó corotleri, I
f orr ,tdiritto del trosmettifore. IÉi ***-*--1! Onnr Dopo i quoftro byte di testo seguono quelli utili Ii-1 dell'informozione. Si lrosferisce sempre uno coteno di ló byle, ili e quelli che non si utilizzono t
; si riempiono come corotleri NULL (OO0).
fB!ìÈt::.fr lwi,f í.f xÉ!ri#Frgry,:=:fla1fitrìJsît.ffi rÍnrtffi q+i
(000)
ilsst o-comeNella
r duerrimaatena'atteri
la unTr:m-
1000)rssro-
:omeNella
duelrimaìtenaatteriaun.ram-
NULL
trasmloCRr
piùrortale
neila f
rna ci
l6 car
;econo
. ln en'
-+^dLr
la pr
cal
cara
ila pr. -î+ì LO L
cara
onda
enrr
odice N.-l^ -ll- +ut dild L
lera n oo
ere inno ripotinto n,
isce un
o di 1€
neila se-.^^i^r)o99rw. r
d Lt c
do(n ni
port^^lttcl
una16
SCC(
). ln
l, consroerar -îra++^r^I LOIOLLEIg
Jura sonoame distintr
+.^-I ^.1- -^Lt d) tut t)LC
>n meno dt^t-\ ^ ^^il.rvrq/ E rrcil(
tro messaqc
con coolnrnrodo;
consider;LOIOLLEIg
ra sonore distinl.^-I ^.1- -.I d) tut t)Lt
meno t-\ ^ ^^tlq/ E rrcrl
) me5saq(
no(^^lttcl
ssag
Juram
tr)n
pte
^-ie >l
ne
un
f igr
tra I
si
cor(Hc
altrEsempio della struttura delle due trame, in cui tutti i byte sono espressi in esadectmale.
Él +,;:, i::É frÈ i? ir -4;,,r'lil,jií ij + i.l +.i,i, :;l =li{ . 5i.fli1, rtl'+,,i iill+r.t +r:t' i l i .,,,{ !,rtll!1ta::r::aaa@t:t:*aaa,a*aa,: t,i.,rt]ffi:r;i6ììììrÌllllll\tLaaaaaaaa:aè.:
hi si srnnone rhe si:no diretti al ricevitore 12 e che
arrivino dall'emettitore 6. Si fa riferimento al byte di
checksum con XX.
;i,''; :,, l; ' ::t. , ti i, t' ,,;,', ,t,'. i 'i !-'l,f t"
' l r,t;, '':,;' ;.; :," ,
Per calcolare il tempo totale che dura un trasferimento,dobbiamo considerare i seguenti tempi parziali:
1". - Tempo di trasferimento fra l'applicazione del-l'utente e l'emettitore MSETX.
5i suppone di lavorare a 9.600 baude e che ognir-:r:ttertr imnipohi npr traSferirSi 1 mS. ll Sistema Utenteinvia al N/SETX il byte che defrnisce I'induizzo del ricevi-
tore (Dr) e quelli dei dati, con un massimo di 16. Totale
17 ms, come si può vedere dalla figura.2o. - Tempo di emissione in R.F. tramite MSETX.
Dopo aver ricevuto il messaggio dall'applicazionedell'utente, MSETX scompone la trama completa di 20byte, dei quali calcola il byte di checksum (Chk), il
numero di caratteri valido (L), e aggiunge il proprio indi-rizzo (Dt). Dato che la velocità massima della R.F. è di
2.000 baude, un carattere impiega 5 ms ad essere tra-
] CONTROLLO
ll tempo di trasferimentofra l'utente e I'emettitore è di 17 ms
smesso, e la trama completa approssimativamente 100 ms.
3'.- Tempo di ricezione del messaggio tramite R.F
ll ricevitore MSERX inizia a ricevere tramite R.F. latrama dei 2O hvte drrrante oli stpssi 2O ms in Cui vienetrasmessa. L'emettitore e il ricevitore devono essere sin-
cronizzali alla stessa frequenza di 2.000 baude.Ricevuta la trama si separa I'informazione dall'intesta-zione e si calcola il checksum
4".- Tempo di trasferimento fra rl ricevitore e l'appli-cazione dell'utente.
All'utente vengono inviati solo i byte utili e il byte di
induizzo del trasmettitore (Dt), in totale '17 byte, che a9.600 baude impieqano 17 ms. ad essere trasferiti.
Iempo di invio di una trama tramite R.F. 100 ms
Tempo in calcoli intermedi 3 ms
coNTROtto
La ilcedone tramite R.F. della trama impiega gli stessi 100 ms
che dura la trasmissione.
ll trasferimento di una trama tra il rtcevitore e l'aaalicazronedell'utente a 9.600 baude dura 17 ms.
ll tempo di emissronedi una trama via R F, è di circa 100 ms
:it : .,r:,i :; ::+t!'.i;, ,,i1, ,: ,:;,-r.1!t.,1;,.;'1Ì ij u ,;:y:;1;,i ')l;'ii':!,'1';:
Í1fl ÍÍ1fr ililffi lffi r.rffi !ffitsà€i;rirrrrrrrrtit!!*ut!tttililill
Invasione di microcontrollercon memoria flash
ll nostro vecchio amico, il PIC 1 6F84, è stato sceìto per
controllare Monty, ed è utilizzato anche ìn molti pro-dotti sviluooati in tutto il mondo.
Ricrrlt: rrn di<nnciti\rn " nirrnla nÒ\/err'ì ntrrn oq-
senziale". Non ha molte risorse, iniziando dalla capa-
cita della sua memoria, passando per i temporizzalo-ri, terminando con lo scarso numero di pin l/O digita-li. Tutto questo spiega l'appellativo di piccolo. Quellodi oovero fa riferimento alle risorse abituali in altri mi-crocontroller. Così ad esempio non ha convertitoriAD. né oorte di comunicazione.
Pero tutto si risolve con il fatto che è "essenziale"
oerche i orocettisti fanno addirittura miracoli con lesue limitate possibilita. Le altre caratteristiche di spic-
co del PlC16FB4 si riferiscono al suo basso costo e al-
la sua semplicita di funzionamento e di programma-zion e.
Non dà problemi e sia il produttore che molte dit-te che lo applicano offrono una enorme quantità di
informazioni e di strumenti per il suo utilizzo. Però,rhe ros'ha di snprialp oresto PlCT Ia srra caratteristi-
ca principale e la memoria di programma di tipo FLA-
SH: questa e la ragione per cui la Arizona Microchipha deciso di potenziare la Iinea di prodotti basata sul-la tecnologia FLASH.
La "f lessibilità" e la parola chiave che definisce questa
tecnologia e le sue principali caratteristiche sono espo-
ste nella tabella.
1". Facilità della cancellazione elettrica dell'informazione contenuta,
tn ione con le memorie EEPROM.
30, Basso costo degli strumenti di sviluppo.
5". 5i facilita la messa a punto del codice nel chip stesso, già installato sopra il
7". 5i può sempre inserire nel prodotto l'ultima versione
del firmware
9". ll cliente finale ouò riscivere il codite.
11". Non esiste una differenza apprezzabile fra il costo
delle memorie FLASH. OTP e R0M.
Nello sforzo per migliorare le specifìche e il com-portamento dei circuiti integrati con questa tecnologia,Microchip ha ottenuto all'inizio del secolo XXI delle ele-
vate prestazioni, passando da una produzione di 0,9
micron ad una di 0,5 micron: così si riduce considere-vnlmonto il fomnn di crritfr rr2 nor rirln d:i 1O m< nor,,vv v, q vr, !,L,v
parola a 1-2 ms per blocco di programma, che a se-
L'umile PlCl 6FB4
si impiega in migliaia di prodotti in tutto il mondo
, I **f|el
., ::.ttyr, Nîl4OlNl,, . z_s,s voc I z_s,s vocvdd
::::::1':111111',,111L,: .,7gy1tto*rot .:':,:," 12,5-13,5Eterno i toSffsso
conda dei modelli può contenere 8 K parole, 32 o solo
una. In altre parole, nei moderni microcontroller PIC
con memoria FLASH, si puo scegliere fra cancellare escrivere tutta la memoria, un blocco di diverse parole, o
una sola parola. ln questo modo si arriva a gestire pro-grammi fino a 64 K parole in meno di 2 secondi.
Inoltre la capacità di autoprogrammazione di questinrrovi PIC nermottp di realizzare cambi e modifiche delprogramma a distanza Sotto questo aspetto, sia Mi-crochip che diversi costruttori OEM, come Ingeniería de
Microsistemas Programados S.1., dispongono già di
CARATTERISTICA : MEMORIA FLASH i MEMORIA FTASH
: VECCHIA : MIGLIORATA
ROM CONMASCHERA
FtESSIBILITA
Andamento dell'evoluztone della memoria FLASH migliorata,e della memoria ROM con maschera.
chip e di strument, focalizzati a potenziare l'autocari-camento dei programmi, e la messa a punto in temporeale. Nella tabella si mostrano i dati riguardanti il
romnnrhmcnto c lp raratteristiChe rjlevanti delle me-morie FLASH classiche, e quelle migliorate con la pom-pa di carica. Alla fine del 2001 si è arrivati all'equipa-razione delle memorie FLASH migliorate, con le me-morie ROM con maschera, rispetto al rapporto PREZ-
ZOIFLESSIBILITA' così come sì puo vedere graficamen-te nplla f inrrr: ll nrin\/o nro.esso di nrodrrzione dellamemoria FLASH con tecnoìogia a 0,5 micron, non so-
lo riduce il costo dei microcontroller, sino a permette-re l'inleorazione conoiunta della memoria EEPROM dei
dati, ma ha portato le capacita di queste fino a'128zhvio a rirlarrn l^ Àirnensioni delle Celle di infOrma_,\vy r!,
zione a un solo transistor.
Other Fmtures
F, l/o,lcD, PSP
sellPrqrcming, 9-hit
PROGR,A"MMAZIONE 5V Vdd RANGE DI Vdd
PrcróF874
2só13ó8133 40P.441 |
upO,spr | 8 {10-bil) r lt
tolit l'aper l/0,1C0, PSP,
Self'Prqromins, 9-bii20
USART
Mk/sPl
,
PREZZO
Nuovr microcontroller PIC a B bit fabbricati da Microchta con tecnolooia FLASH
.:,,**r*,,:-,.....urn;.--rirr*r.rt**^*"r.r-,llil
í*'F*,,,,R,'*2*,,,.***tr:rin**rrirr*N'IICROCONTROLLERll successo della memoriei flash
reUna volta provata la tecnologia FLASH con ilPlC16F84, gli utenti hanno richiesto con for-z: mndolli nir r nnionti o nndarn< rnn rr ri nn-,\, ! vvuLl
tor qyillnn:ro nr^notti ^i,' lmh:-inci I r rannLLr rviluVVurL prvVLLLr PIU OIllUl4lW)1. Ld ICVU-
la fondamentaìe nello sviluppo di un proget-
to basato su microcontrollel è che la soluzio-np r^omnlct.r de I sistema sia conter;ta in un
chip. Per questo al PIC 16F84 brsognava au-'-^^+îr^ l^ --^--i+- ^liilrerLdre re LdlJdLrrd ur memofì4, aggiUngefe
dispositivi esterni, includere un convertitoreAD, delle porte di comunicazione, e aumen-
tare il numero delle linee di l/O digitali Conquesta f rnalita Microch o ha messo in vendi-
ta alla fine del milienn o una famiglia di mo-Contenitori ttpici dei nuovi PIC con memona FLASH
2$Lead SOIC 28-Lead SSOP.so" "ss,,
44lead MQFP"PQ,,
reffi44'Lead,PLC
rew40'Lead PDIP
44-Lead TqFP
Principali differenze fra il PlCl6FB4 e i suoi fratelli maggiori
quanto riguarda la memoria FLASH, lo supe-
rano tutti, dato che hanno il doppio di capa-
cita (2 K), il quadruplo (a K) ed esistono al-
cuni modelli che arrivano fino a B K parole dr
14 bit ognuna. Non dobbiamo dimenticarerho nr ro<ti Plf :nn:r+^h^^^^ 1llî ^î'î'hî!l lL vuLrLl tElrVUl lU atta gqtttttto
'nedia e utilizzano lo stesso formato e reper-
torio di istruzioni del PlC16FB4. Nella figurasi possono vedere r contenitori piu utilizzati
in cui sono introdotti questi nuovi PlC.
In un microcontroller, tanto importantequanto la capacita di memorra, e ii numero
TMRO.SBITS :
nrìio-tí- r
TMRI -I óTMR2-8
UIART . IMr'c/sPL-.'---..-- --: --. -
U.5ART , rMr'c/sPr ,
MEMORIA : MEMORIAPROGRAMMA : DEI DATI
MEMORIADEI DATIq{ut."
1
111:128 x 8
128 x 8
,|nr*,
192 x 8
aat-t
3ó8x8
LINEE
t/o
t3
22
22
22
22
PINCONTÉNITORE
_'l:l::"
'':u::10Ptct óF87t
Ptct óF872
-- ,orurrra-
Ptcl6F874
- *n.t.rrti
Ptcl6a877
19lH.,
luilo
'l"''n2kx14
4kx14 ì
4kx14 |
'.. . .... ' . ' . . . . ,:
8kx14 .
--.- -.- .- -t
8kx 14 ,
IT!9M64x 8
:::'64 xB
- ----"-:---- --- --- -- ..---
2kx 14 , 64xB
I'28
40
o;
40
delli dr rricrocontroller con tecnorogia FLA-
SH, ai quali auguriarno un successo maggio-ro di crrrplln ronsenrito con il conosciuto
PIC 16F84 Per chiarire alcune caratteristìche
d questi nuovi PIC presentiamo una tabella,presa dalcatalogo di Microchip Come s, puo
vedere dall'analisi della tabella, il PlC16F84rimrna :ll'rrltimn nncin ,^ ^, rîh+^ . --^--i+.|iltd|c dil urLilru pu)tu rr \_.luorLw o LoPoLrrcn ricnrcn Trr In r:r:ttarictirho niij r:nnro(on-c ll)ul)c. llo lc LoloLLE|r)rLr rE Pru rol.JfJrs)Err-
tative, che rrflettono la differenza tra questo
PIC e i nuovi modelli, le piu importanti sonorîn^r^.^n+î+a nnll- +.ho1l: doll: finrrr: l-):l dPPl c)cl Ld Lc rcilo tcvsilo uEilo r tgut a. va
^,,^c+a trhnllr .i .^^.ondo rhe r fr;tolli m:n-qutr)Ld toucllo )l opPlErruc Lr rq r oLcilr rrrov-ninrr dol Pla 16FR4 h:n^^ mnl+r nir rrnrri+rJ'-' .--, - ,,_ ilru ||rurrc Pru LoPoLrLo
di memoria, molte piu risorse e piu piedini
Esistono versioni da 28 e da 40 pin. Per
CONVERTITORE
A/D iro BrT) íf-T TEMpoRrzzAloRr Lo^l]î. ccp PoRTA
cANAg rvorr sERlALE
MICROCONTROI.I.ER ,
:"'."'-'... ..... ..........:
PlClóF84 i...-. ..'.'......"'-..:
Ptcl óF820
Ptc Iót87r
Prcl61872
PtctóF823
''iii,'iiPtc'tót87ó
I
2
2
TMRO-8TMRI-Ió.Ii!tB?:9TMRO-8
TMRI -I óll!!B?:8,TMRO-8
TMRI -I ó..T.t'n?:8TMRO-8
TMRI.I ó.-rMRz-8TMRO-8
TMR'I-IóIMR2.8
Ptcl6t877TMRO.8TMRI'I óTMR2.8
Dotazione delle risorse austliarte nei nuovi PIC
USART
Ml'?c/sPl
di lìnee di l/O e la quantità e la potenza delle risorse au-siliarie che realizzano i lavori specificì e scaricano di la-
voro il processore. Ricordiamo le seguenti:'1". Convertitore AD. I convertitori AD dei PIC FLA-
SH sono da 10 bit e a diversi canali.
PWM (modulazione di ampiezza di impulso).Temporizzatore (TMR).
Porte di comunicazione seriali (USART, l2C
e SPI).
5'. Modulo di Campionamento e Comparazione(CCP)
6'. Porta di Comunicazione Parallela (PSP).
ll kit MPLAB-ICD di Microchippermette di lavorare con i PlCl6FB7X sul prTdotto finito
1'. Incorpora un programmatore o scrittore di
PIC 1 6FB7X.
2o. Strumenti per la messa a punto del microcon-troller collocato sopra il circuito di applicazione.
3". Esecuzione in tempo reale con punti di fermata.Lo F<ort rzinnp n:q,,-
"-,5O a pa55o.
5". Funzionamento con range di tensione 3-5,5VDC e con range di frequenza 20-32 MHz.
La possibilità di scrivere un programma nei PIC FLASH
montati sul prodotto finale riduce considerevolmente il
costo del prodotto, diminuisce il tempo di realizzazione,
rende possibile la calibrazione finale del prodotto e abili-ta l'inclusione di codici di identificazione sul prodotto ter-minato. Per poter lavorare con il PlC16FB7X mediante il
sistema dì sviluppo MicroPlC Trainer, il suo costruttore ha
progettato un economico adattatore, denominatoZOCBTX, che si inserisce su uno degli zoccoli e permette
di accoppiare, scrivere e sviluppare progetti con nuovi PlC.
Per lavorare con i PlCl6FBTXsul sistema di sviluppo MicroPlC Trarner, bisognautilizzare lo zoccolo adattatore ZOCBTX, che e mostrato nella fotoqrafta.
2".3".Ao
40
{rffi LINEADEI
ffi .à'$ff"',l"
La porta di <omunicazione parallela e supportdLasolo dai PIC-FLASH da 40 pin.
Nì^rl- +-t.^ll-,.J^lr- fit\eld Lduerd ueld lgura riprodotta nella pagina pre-
cedente in basso, sono riportate le risorse ausiliarie dei
nuovi PlC. La porta di comunicazione parallela e sup-portata solo dai nuovi PIC a 40 piedini, dato che per la
sua implementazione si richiedono 11 inee
di l/O, delle quali B sono destinate a suppor-tare le B linee di trasferimento bidirezionale,e tre per il segnale di controllo (WR#, RD#, eCS#). I PIC FLASH a 40 pin destinano le por-te D e E alle porte parallele. Nella figura so-nn rinnrt:to lp j6pl6lpmant:zinni nli nrrac+1rrv |Vvr 'rrrvrLlllEllLo4lUIll ul l-.lUC)Ld
porta dr comunicazione con i PlC16FB74/7 a
40 pin.
:; '!,: i
it ' !'
Microchip ha tenuto in grande considerazioneir {-++^ ,.Ji ---^'.^-^^are i nuovi plc FLASHil rcLLv ur oLLUr rPovr r(
con potenti strumenti che facilitano lo svilup-no dei nrooetti Per ottenere cio ha com"ner-cializzalo il kit MPLAB-lCD, adattabile all'am-biente MPLAB, che già conosciamo e che uti-lizziamo in questa opera. ll kit è caratterizzafodalle seguenti prestazioni:
'; ti..t
't:
I quattro moschettieriPIC-FLASH
MrcRocoNno[ERI'lemorio diprogrommo Memorio doti Àfumorio
hroh d0 14 birl MM {bFel tEpRoM {byb}
:* : : l
. .. lFlqi9-71,.. " .,.-.:..-
- ffIfl9. -.iPl0l6l877 l
-9_|f-._,, 3_8ó --8k 38ó
128 22 3 28
128 33 5
256 22 3
256 335
Parallela Slave (PSP), che si conf iguracon le otto linee di l/O della porta E
che srrnnorta le linee hidirezionali deid:fi o lo tre linoo doll: nnrf: D rho
servono per implementare itresegnali di controllo: WR#, RD# e CS#.
[inee
ll1 Porte Piedini
PrclóF873 1924k
49
28
Differenze rilevanti fra i 4 modelli di PlCl6FB7X
Considerata la somiglianza in termini di hardware esoftware che hanno i nuovi modellì di PIC con memoriaFLASH, che potenziano la linea di lavoro del notoPlC16F84, per descriverli abbiamo scelto i quattro che
la mî^^i^.î^-z rlalla :<nott:tivo rnmmorri:li aLUPIUI lU ld llld99luldl l4u uLilL UJVLTLULTvL LwrrllllelLldll e
tecniche. Si tratta dei modelli P1C16873, PlC16FB74,
PlC16FB76 ePlC|6FB77. Due di essi hanno 28 pin e gli
altri due 40. ln ogni modello con la stessa piedinaturane esiste uno con doppia capacità di memoria dell'altro:
40 Come abbiamo gia spiegato, i van-taggi dei PlC16FB7X consistono nonsolo nella maggiore capacità di me-moria, ma anche nella dotazione di
abbondanti risorse ausiliarie che facilitano moltissimo le
applicazioni più esigenti. Un convertitore AD con diver-si canali, tre temporizzatori, porte di comunrcazroneseriali tipo USART, l2C e SPl, porta di comunicazioneparallela, PWN/, moduli di captur e comparazione e sinoa '14 possibili sorgenti di interrupt, sono alcuni degli ele-
menti che sono stati integrati nel chip dei PlC16F87Xe vengono presentati nella tabella seguente, che vuolesottolineare i vantaggi di questi moderni mlcrocon-troller.
la differenza più visibile ricade
nel maggior numero di linee di
l/O che possiedono quelli da
40 pin, dato che dispongonodi cinque porte: A, B, C, D, E.
Quelli da 28 pin hanno solo treporte A, B, C. Nella tabelladella figura si mostrano lecaratteristiche che differenzia-no i quattro modelli. Analiz---^,1^ l- +-l-^ll. ra-^-"-+i,,-LAttuw ta LouEilo LvIrPctoLtvd,qi dodr tro 16,o l: nrinri^.lo Ài{-rr uLu ULL \ | rL ru yr il rLrPo lc u ll-
ferenza f ra i 4 modelli da 2B
e da 40 pin e quella relativaal numero di linee di l/O.
Questo dato puo essere impor-tante in alcune applicazioni chenecessiîano di oeslire moiteperiferiche diverse. Inoltre, i
PlC16FBl4 e 877 dispongonodi un dispositivo extra: la Porta
Line l/0 i ta
coMuNrcazroNE I No USART/SERIALE I MSSP
3ó8 3ó8. .
..-.. - l-ll9birl .. ,.-,-9,{19"19-*--isisii
:-''....- ' '---'t22 33'-"-'- -irsrrii/' --*'-niÀi'T/"
IMSSP I
t)
i.iii'i' g''ii*' -ìì;il ; ;ú,;;i 1
MODEUO : PlCtóF84A PtclóF873 PrcIóF874 PIC|óF87ó pt0l6Í877I
iI
1t11,4O96xl4
_.]01-*.8192x14
1433ó i.. . ..- - ..'.-'.''-'.'.,-'.-]
8ì92x14 :
256 :,
....1?8.. .
t??
,"-9-U-9"ti:1.
si
^.- ìiÀit'
M55P
ccPìNo22IEMPORIZZATORE t.8 bir, i -WDT t-tó bir, 2.gBlT, I-WDT l.tó bir, 2.8Bll I.WDT
''--''''|'|!9."l,!AI,'-tl|r'...'?0."'..'.-?9ICSP (Progrommozionu ,, Si Si
sefrole rn crrcurtll- r'ro'*otu* i8B t8so,2oss 28p,28so 4op:44ttypo,Mpr
SORGENTI DI
,,_ ?:"5i
.19 -l)l
tit,'r 19t1'.*'i4!.11 1À
INIERRUPT
COMUNICAZIONEPARAr-rErA (PSP)
Tabella comparativa del PlCl6FB7X con il PlCl 6FB4A.
Cercando di riassumere le prestazioni che accompa-gnano i quattro nuovi modelli, offrramo una descrizio-
ne di quelle più importanti e il loro funzionamento.
l'. Architettura RISC avanzata, tipo Harvard.
, Tutte le istruzioni si eseguono in un ciclo di istruzione, meno quelle di
salto che ne impiegano due.
5'. Modelli con 4 e 8 K parole da 14 bit per memoria
di codice tipo FLASH.
7". Sino a 256 bvte di memoria dei dati EEPROM,
9". Sino a 14 possibili sorgenti di intenupt,
1 1". Modi di indirizzamento degli operandi immediato,
diretto e indiretto,
13", Codice di protezione programmabile.
l5o. Programmazione della memoria in modo seriale, utilizzando
solo due
l7o. Basso consumo. Meno di 2 mA a 5 VDC e 5 MHz.
risorse ausiliariela rsrranlio arrit-
r^ ^,,î6'^ -il- ri-oonibilita delleil t tludrtu dilo ur)l
nrp<ontt:mn t: <ontlpp+n +rhnlìr rhaprc)sr rLrqrrrv ro rLVuLrlLc LdUclld, Ll lE
nata menre.
Quesra archite'ttura ulilizzala da Microchip neìl'imple-mentazione dei suoi microcontroller da B bit, e caratte-
rizzala dall'indipendenza fra la memoria di codice e
nrroll: doi d:ti
t^^^ ^,,^-+- {il^-^{i- l- --^--i+-..Ji ^^^iLOn qUeSIa TllOSOTlcì ld LdpdLltd ul u9rìl memOfì4,
così come la dimensione dei suoi bus, si adatta allanoro<qit: dol nrnnottn di nnni mndolln rondpndn nnc-
sìbile il lavoro in parallelo delle due memorie: questo si
riflette in modo positivo sul rendimento e sulla produt-
tivita del processore. Neila figura e riportata ìa strutturadei PIC16FB7X con le due memorie indipendenti.
Poiche quella di programma puo arrivare ad una
capacità dìB K parole da 14 bit ognuna, necessita di un
bus di indirizzo da 13 lrnee e di un bus per trasferire al
processore ie istruzioni da 14linee, che e la dimensione
di ogni istruzione.
La memoria dei dati SRAM accetta una capacità
"nassima di 4 banchr da 128 byte ognuno, il che esige
un bus diindirizzi da 9linee, due delle quali sono desti-
nate a selezionare il banco e le 7 restanti a selezionarerrn: dollo 17R nncizrnni Ài nnni h:nrnul lu uLllL I Lv VvJtLtvt ll ul wVl ll Uol llv.
8US DEGU INDIRIZZIDETTE ISTRUZIONI
f,
I bus delle memorte hanno la dimensionerichiesta dalle caratteristtche specifiche di ognuna di esse
Nella figura è rappresentato uno schema semplìfica-
to dell'architettura Harvard deì PIC 16FB7X, dove si puo
vedere che il contatore di programma è composto da
13 hit ner indirizzare le momnr p di rndiro tioo FLASH.rJ v,r vr,
ll contenuto del PC puo essere salvato e recuperato
nello stack che possiede B livelìi.
La memoria dei dati, a secoîda se si impiega l'indi-rizzamenlo diretto o indiretto, ottiene l'indvizzo dell'o-perando tramite l'informazione contenuta nella propria
istruzione o in nrella che risiede risnettivamente nel
registro FSR. La sezione della ALU, legata al registro di
lavoro W e ai registro di stato con i flag, e srmile a quel-
la studiata per il PlC16FB4.| ^ ri.^r.^ i^+^"^^ ^ lo divcrsp npriferiche rhe aCCOm-LC ll)ul)c lllLql llE E rg urvLrJL vLrilLrrrt tL rl
pagnano ogni modello di microcontroller sono gli ele-
BUS DEGLI INDIRIZZIDELLE IsIRUZIONI
1'r i r::Ll ,l
lo. Tre temporizzatori:TMR0 da 8 bit con predivisore da I bit.
TMRI da f6 bit con predivisore,
TMR2 da 8 bit con predivisore e postdivisore.
30, Due moduli di captur e comparazione e di PWM (C€P).
5". UsART.
.''.':l',,:l'.'l'ill','''''..'..,.,:...i:..,l
:",t ,, ...
menti di differenziazio-ne. lnfine si offre unafinrrr: rhe r:nnrtrqpntalo schema comnleîodelì'architettura internadi un P|C16FB7X a 40pin. Nei modelli con 28pin sono state eliminatelp norte D pd F l: filo-.^{; .,.Ji t-,,^"^,.t^t ^",soild ur rdvoro uer pro-
cessore è identica a
nrrpll.a ctrrdiat,a npr ilvLl
PIC'1 6F84, rinforzata,,^i---^^+^,.J-ll- --^.unrcdmeIre oaila capa-cità di memoria e dal-
l'inclusione di diverseperiferiche e risorsecomplementari.
flffi.^tIJ
--13rcre8 TIVELLI
\8 .\8
8\ 8\'W8-\
mm
GN
ISTRUZIONE
'!4
:=-=
DATI
Architettura Harvard semplificata dei PlCl 6FB7X}ii {:[,1,] l,{a:1'f iJfi;Ji
Nella figura della pagina<r rrroqqiri: À rinnrt:t: l:)u!Lq))rvo q rrPwr (qLq ro
distribuzione e l'asse-nn:zinne dei nipdìni nei
modelli PIC 1 6FB7X.I p nicdrn altrc (on
2B nin manrano dellenortc fl od F In <onrri{6
rinortia mo r rna descri-
zione sommaria dellefunzioni e delle nomen-rlatrrre di oonrno dei-' 'Y'pin dei nuovi PIC-
FLAS H.
Piedini di utilizzogenerale:
- OSC ,1/C LKIN C
OSC2/CLKOUT: servo-nÒ ntrr q,rnnrìrlAro
It,-'
collegamenti del cri-stalìo di orr:rzn inter-no. Nel modo oscillato-re R-C il pin CLKINriceve la freouenza di
lavoroeCLKOUTforni-sre nr resta frpnr renza
divisa per 4.
- Vss e VDD: piedi-
ffi '::::'l1l'l'1i'iffi'osc2,/ctKouf
!.'w
lffirlinrir:ll:r:r|lii€ i
'ffi%ffi,#i,'; j,1',i,::,1:,:,)'),)',:,1:
*u#,
ìÌììì,ri,iiiiiIii,ìÌì,r,;;ìÌì'i,úFg
ilffi
ry
l3ilitÍútgdt*
ffiffiffiffiHÉ#Kg#i
1
rl4
Woscr /cr-KtN
:l
t1ffi.-'
'."......,
ffi
. ':.\'I
ffi\9sm
\8..m:l
''' 'tl '''r. :"3dw
,_:: gi.
%tr8\
ffi
RAO/ANOR,A I /AN IRA2/AN2RA3/AN3/VmrRA4lToCKlRA5/AN4/55#
RAO/ANORA] /ANìRA2/AN2RA3/AN3,rVn+RA4/rocKlRA5/AN4/55#{
.8 .m Rco/iloso/ilcKlB RCì/lrosr/ccP2gù Rc2/ccPr,. uj Rc3/scK/scr
r m Rc4/sDt/sDAi U Rcs/sDO' uJ Rcó/rxlDT',' l!] Rc7lRX/Dr
" El RDo/PsPo
[-.1 RD2/PSP2
' m RD4/PSP4
Er RDs/PsP5
U RDó/PsPórìrÌììììììììììììììììììììì' ". w RD7lpsp7
-=I=+=t ffiArchitettura interna dettaoliata dei PlCl6FB7X a 40 oin
+È+$ trH# E #sS#,ÌflFl'.
f;fatx
it
l9
Ii
MCLR#/VppITHVlà,,,,,','11,1.1,.,,,,,,,,,,,,,..,,,.
RAo/AN0íi3 ,.;,,,,,a,,,4,4,,,,,4,,.,,4,,,,
RAI/ANl*up',,,,"t,,,,,,,,,,,,,,,,,,,,,,,t
nm7nr.rzru-" $ lll,rrìiliiììì
RA3/AN3/Yn*, -*É,,:i:
RA4/TocKl it r
RA5/AN4/5S# :
v*È
oscr/cLKrN i
osc2/cLKour I
RC0/TIOsO/TrCKr I
RCr/TrOS|/CCP2 iRC2/cCPr i
Rc3/scK/scL I
Piedinatura dei ctrcuiti integrati corispondenti ai PlCl6FB7X.
ni a cui si applca la tensione di alimentazione.
- MCLR#A/PP/THV: Ingresso di Reset/Tensione di
Programmazione /Tensione alta in modo Test.
Piedini della porta A:Supportano le 6linee di l/O digitali, RAO-RAS, mul-tiplexate con quelle corrispondentr ai canali di
ingresso del convertitore AD AN0-AN4, con quelledella tensione positiva e negativa di riferimentoVREF+ e VREF-, con quella di ingresso degli impulsidi clock per il TMR0, chiamata TOCKl, e con quelladi selezione come slave (SS#) per la porta serie sin-crona.
Piedini della porta B:
Supportano le 8lrnee di l/O digitali, RB0-R87, multi-nlpxate ron l,a line: PGN/ di innresso dplla tensionebassa per la programmazione deìla memoria, e dellelinee PGC e PGD per la programmazione seriale(segnale di clock e dei dati).
Piedini della porta C:
Supportano ìe S linee di l/O digitali, RC0-RC7, multi-plexate con l'uscita del TMRl (T1O5O), l'ingresso del
clock TN/R1 (Tl CKl), l'ingresso dell'oscillatore TMR'l(T1OSl), l'ingresso del modulo CCP2, l'ingresso al
CCPI, l'lngresso del clock sincrono (5CK/SCL) dei
modi SPI e 12C.
Innltrp qrnnnrt2no lp linpp di rnoresso dei dati inJuvvvl
modo SPl (SDl) o quelle dei dati in modo l2C (SDA),
l'uscita dei dati in modo 5Pl (SD0), la linea di tra-smissione dell'USART (Tx) e quella del clock sincrono(CK), quella del r cevitore dell'USART (Rx) e la linea
dei dati in modo sincrono (DT).
Piedini della porta D:
Oltre a supportare le B linee di l/O digitali, RD0-RD7,ha mulliplexate sopra queste Inee, queìle di trasferi-mento bidirezionali dei dati della Porta Parallela
Slave (PSP0-PSP7).
Piedini della porta E:A, ,nr+r ^^"+- h - .^r^ tre linee che f UnziOnanO COmevuc)Lú pur Ld rrd )uru
l/O digitali, RE0-RE2, e hanno multiplexate le se-
guenti funzioni: segnali di controllo della portaparallela PSP (RD#, WR# e CS#)
Innltrp noqqono anche funzionare come canali di
ingresso per il convertitore AD nei modelli a 40 pin(AN5, 6 e 7).
MCLR#/VppiTHV
RAo/AN0
RAI /AN I
M2/AN2/Vner-
RA3/AN3/VruH
RA4/ToCKl
RAs/AN4/SS#
RE0/RD#/AN5
RE r /WR#/ANó
RE2/CS#/AN7
Voo
Vss
osc r /cLKrN
osc2/cLKouT
RCo/Tr OSO/Tr CKr
RC r /Tr O5r/CCP2
RC2/CCPI
RC3/5CK/SCr
RDo/P5P0
RDr /PSPr
RBryPGD
RBó/FCC
R85
RB4
RB3/PGM
R82
RBI
RB0/rM
Voo
Vss
RÙ7IPSP7
RDó/PsPó
RD5/PSPs
RD41PSP4
RC7/RX/DT
RCófix/CK
RCs/SDO
RC4/SD|/sDA
RD3lP5P3
RmlPsP2
NBTPGD
RBó/PGC
nB5
RB/T
RB3/PGM
RSz
ÍBl
RBOIINT
Vm
Ys
RC7/RX/DT
RCé[X/CK
RC5/sDO
RC4/SD|/SDA
$e s* e * d* *+ l+ F,iE H F- # *+E + #,,* È F+ H ff 'E S F ".# ig H.
Organ izzazione delle memoriee repertorio delte istruzioni
L'architettura Harvard dei PlCl6FB7X determina l'esi-stenza delle due memorie indipendenti, una dedicata acontenere le istruzioni e l'altra per i dati. Questa carat-teristica migliora notevolmente il rendimento del pro-cessore potendo accedere simultaneamente alle duememorie, di modo che mentre unalocalizza il codice diuna istruzione, nell'altra si legge o si scrive un operan-do o il risultato dj una operazione. Un altro vantaggioinerente alla separazione delle memorie, è collegato allapossibilità dl progettare la capacita e la dimensione deibus per ognuna di queste memorie. La memoria di pro-gramma dei PlC16F87X è ditipo FLASH, il che indica lasua capacita di tollerare fino a circa 1.000 cicli di scrit-tura /cancellazione. Dato che la scrittura e la cancella-zione si realizzano mediante energia elettrica, non è
necessario nmuovere dallo zoccolo il microcontrollerper eseguire queste operazioni; tali caratteristichehanno convinto molti tecnrci ad
ulilizzare d ispositivi con memoriaFl ASH | : r:n:rit: m:,,,Jsstma sup-portata dai quattro modelli di
PlC16F87X che sono stati sele-zionali e di I K n:rnle da 14 bitognuna. La lunghezza delle^-.^l^ ^
l^^-+- -ll- ^pdrore e regala aila otmenStone
del formato del codice delleistruzioni dei PIC della gammamedia. Per poter indirizzare 8 K
posizioni, il Contatore diProgramma, o PC, ha unadimensjone da '13 bit ed e legatoa uno stack LIFO a 8 livelli. ll valo-re del PC si puo scrivere nellostack e, parimenti, il primo livellodello stack ouo essere caricatonel PC. Oueste onerazioni di sal-vataggio e di carica del PC con Iostack si realizzano automatica-mente senza l'intervento del pro-grammatore. Non esistono istru-
IFFF h
l3
zioni che gesriscono lo stack, Ogni volta che si esegueuna istruzione CALL o si produce un interrupt, il valoredel PC si salva automaticamente nello stack. Ogni voltache si esegue una istruzione di ritorno dalla subroutine,RETURN, o una istruzione di ritorno dall'interrupt, RET-
FlE, il valore che si ritrova in cima allo stack si depositanel PC. C'è anche un'istruzione simile a queste ultimedi ritorno, pero con una particolarità, ed e la RETLW
Come si vede nella figura, le 8 K parole da '14 bitognuna che ammette come massimo la memoriaFLASH dei PlC16FB7X, sono divise in 4 pagine da 2 K
l'una Cosr come nel PIC 16tr84, jl vector di Reset e quel-lo di lnterrupt si trovano rispettivamente negli indirizzi0000 e 0004 Hex.
Per memorizzare i dati e gli operandi, i PlC16F87Xdispongono di due zone diverse. Esiste una zona di
MEMORIADrcoDrcE
0004 hoo05 h
r3\
tNDtRtzzl
1'OTFF h
0800 h
OFFF h
r000 h
ITFF h
r800 h
Organizzazione interna e rndtrizzamento della memorra di proqramma FLASH.
I
P95
REGISTRO DISTATO
Struttura interna del Registro di Stato, i cuibit 6 e 5, RPI e RP), selezionano il banco della RAM dove sonoposizionati gli indirizzi a cui accedere.
memoria dei dati non volat li, di tipo EEPRON/ e un'al-
tra indipendente SRAM volatile. A seconda del modello
d PIC la EEPROM puo arrivare ad una capacìtà di 256byte, che si gestiscono mediante dei registri appositi
che contengono gli indinzzi, il dato e il bìt di controllo.
ll loro funzionamento e la loro gestione sono stati stu-
diati nel PlC16FB4,
e sono identici Peri suoi fratelli mag-giori. Nella zona
della memoria dei
dati di tipo RAM,
sono ubicati i regi-
stri specifici (SFR), i
cui bit controllanoil f unzionamentodelle risorse, idi-spositivi del pro-
cessore e r registri
di utilizzo generale(GPR), dove si scri-
vono i dati che
desidera il pro-grammatore. La
RAM sr organtzza
in banchi da 128
byte ognuno. Ci
sono due modelli
di PIC'l6F87X che
dispongono di 192byte e gli altrì due
arrivano a 368hrito Por colozin-
nare uno oel quar-
Modi di realizzareI'indirizzamento
diretto e indirettonella memoria RAM.
tro possibili banchi dove sì trovano le posizioni a cui
accedere, si utilizzano due bit: RP1 e RP0, che occupa-no le nosizioni 6 e 5 del Ronis,fro di Stato rome si vedeI rv ,L vvJ,4,v vLr | \LYIJLI
nella figura.
',", , i"'':,"', I :' .
La memoria RAM ha due forme di indirizzamento, che
sono chiamate "modo di indirizzamento" e che sono il
modo diretto e il modo indiretto. Nel modo di indiriz-
zamento diretto i bit RP1 e RPO del Registro di Stato
selezionano il banco. Per puntare ad una delle '128 posi-
zioni del banco scelto, sono necessari 7 bit che arrivano
dal codice delle istruzioni dove occupano le sette posi-
zioni meno signìficative. Nell'indirizzamento indiretto laposizione del banco si determina con i sette bit meno
significativi contenuti dal registro FSR, delì'area SFR
INDIRIZZAMENTO INDIRETTOIN DIRIZZAMENTO DI RETTO
STATO
ffiffiììììì ffiX
CODICE OP. ISTRUZIONE
13 ó 0
STATO
.r'SELEZIONEDEL BANCO
FSR
.-27 tNDtRtzzAMENTO'--aLnNTERNo DEL BANco
INDIRIZZAMENTOALnNTERNo orl slNco -
7
SETEZIONEDEL BANCO
BANCOO BANCO I BANCO 2 BANCO 3
00h
0rh
02h
03h
04h
05h
0óh
07h
08h
09h
0Ah
0Bh
0ch
0Dh
0Eh
0Fh
r0h
ilh
r2h
tJn
ì4h
l5h
róh
r7h
r8h
r9h
rAh
lBh
rch
lDh
rEh
tFh
20h
80h
8rh
82h
óJn
84h
85h
8óh
87h
88h
89h
8Ah
8Bh
8Ch
8Dh
8Eh
8Fh
90h
9rh
92h
93h
94h
95h
9óh
97h
98h
99h
9Ah
9Bh
9Ch
9Dh
9Eh
9Fh
A0h
l00h
r0r h
r02h
t03h
I 04h
| 05h
r0óh
l07h
t08h
r 09h
I oAh
roBh
toch
t0Dh
r 0Eh
I 0th
I l0h
lilhI l2h
I t3h
I t4h
Ir5h
r róh
It7h
I t8h
I l9h
r tAh
ilBh
I tch
IIDh
ilEh
ilFh
| 20h
I óFh
r 70h
| 7th
r 80h
t8th
I 82h
r 83h
r 84h
ì 85h
I 8óh
I 87h
r 88h
r 89h
I 8Ah
I 8Bh
r 8ch
r 8Dh
I 8Eh
r 8Fh
I 90h
r9rh
r 92h
| 93h
I 94h
I 95h
r 9óh
t97h
| 98h
I 99h
r9Ah
I 98h
r 9ch
r gDh
I gEh
| 9Fh
I Aoh
ilm@N@reryffrutr-
il::MEilreltrmG!!ilrc
ffiil::rffi
Bonco 3
reryrurereffiSffi \rììì
ìliì$ltll,llllrllllrltllffis
@Wrem:
ffiffi
Bonco 2
Eth
rercrurerurureretWìS$Willlffffiffill
@reru'ìliiiiliiiliisWffi$Wll
$r$$llllIililiifitffi:re-ilroKllllllltllllllti\iù.wnr
,tlllffiNNlllllllll
$ll$|fillllilllllmNreMltlllllrlílrlllllllill$wffi i
r:iffi ffi N$ììtlilrlliilliIilì
:llllllllllilfii&nx\
.llillllllllltlllllli,tl:llllllliffireffitffi
Bonco I
reffiffitrffiffiwllllllllllllllllirllllrllffi!l,
della RAM. Per trovareil h:nrn in nr rocin rrliil ucr rlv | | 9uE)Lv utLl-
mo modo di induizza-mento, si utilizza il bitmeno significativo del
FSR insieme al bit lRP,
che occrrna anche la
posizione meno signifi-r:tiv: dpl Renistro di
Stato.Entrambi i modi dr
indirizzamento sonosnieoati oraficamentenplla finrrr: Pcr nrral-+^ .;^,,-",J- l- ^li-+"il^.,ro flguarOa ra orslr|0u-zione interna degliindirizzi della RAN/,
com'è abituale nell'ar-chitettura dei micro-controller PlC, le primeposizioni di ogni bancosono destrnate a con-tpnore i rpnistri snorifl-ci ner il controllo delle-'r-' "ri<nr<o dol nrnra<<nro
- ^,,^-+î -.^- -i -Ai--' queSIa area sr cnrama
SFR. Gli ultimi indirizzi,-li ^^^i h-^-^.^^ut ogilr udrìL() 50no
dedicati a contenere i
d:ti di riilizzo ntrnpra-
le che necessitano al
programmatoreQuesta zona si chiamaGPR Come rinorlalonella figura, ci sonomolti renistri snprifici
nelle prime posizioni di
ogni banco.Molti di piu che nel
PIC 1 6F84. Questo è
lnnirn norrhó i nrrnr'
PIC disnnnnnnn di
molte risorse (convertr-
tore AD, CCP, porte di
I thi.aTionp dci raoistri
specifici (SFR) e di utilizzogenerale (GPR) nei
PlCl 6FB7X dei 368 bytedella RAM.
.:
I EFh
:," "
F0h
Bonco O
FFh
t, t - ,t ,tt'
P 96
PAAA.lrtETRl
f,drdferdrdfdf,dîdièe
Íd,,rràÍÀ
fÀfÉ
MNEftIO.Nlco
oddwfondwfclrfclrwcomfdecfincfiorwfmovfmovwfnoPrlfrrÍsubwfswopf
,Iofiwf4lì::iì.':::,1'j!
bcfbsf
l
btfsc,bú..s.É,,,,1,.
éúgÉind;ì',,
,1.;;,b:::l,tlt\,,,
,lrlli.l:rf;,:d:
OPERAJZIONE
SOMMA W e fANDdiWefCANCETTA;ZTONE di fCANCEI.I.AJZIONE di WCOMPLEMENTO di fDECREMENTO di fINCREMENTO di fORdi WconfMOVIMENÎO difMOVIMENIO di tto fN ES5UNII. OPER'T'ZEINE,i-';$ìRQIAZIONE di f oROfAaOt{È di f ,csonnÀzKfr{jlNlERltCArrtBpdCGoni4EOR ho
ISTRUZIONI CHE GESTISCONO RIGISTRI
CICil FORÀTAIO 14 BIT
000rrr dfllÍftro0 otol dfff fftr
cfiÍdfff fftr
trl dfffffff
ll lllxkkkkkkkkr r I ro0r kkkk kkkk| ,,,,1i 1000 kkkk kkkk
Renlrt.in cli i<fn tzinni
dei PIC dellagamma media, validoper ì Plcl6FB7X
che le ui.ilizza il
PIC'l 6FB4 di cui è
dotato Monty. Vistoche i PlC16FB7X ap-partengono alla gam-
ma media dei PIC a BAi+ -,,^^^r'+î^^ l^urL, )uppur Ldr ru ru
stesso insieme dii<irr rzinni l- nm'À nn<-
<ihilo no<tira rnn lo
stesse istruzioni un
microcontrolloer così
semplice come il
PIC'l6FB4 e altri cosìnnl-anti a rnn mnl+oPv Lr | ,Ll
risorse come i
PlC16F87X? La diffe-renza non sta nelle
istruzioni, ma neiron i ctri <norifiri .l i
controllo dei disposi-tivi. Ognuna dellenuove risorse disponenella zona SFR della
RAM di registri ade-nrr:ti nor nrnnrrm-Y-'mare il proprio com-nnri:montn lnnltro i
piedini dei PIC'1 6FB7Xh:nnn mrlfinloY:tomolte funzioni di
zzzzzzz
fitrk"t t
o000
FTAG
c, Dc, zz
c, Dc, zzz
c, Dc, zz
MTSSA
,, E;' i:,,::.ttlétl;
;.ffi$,trd*,
oddlw:ondhr!orlwmovlwsublwxorlw
collclrwdtgotoreffieretlwreturnsleep
K ANDV:,,:tL,:,,,1p;lR.|àLi
comunicazione, diversì temporizzatori, ecc.) e ognu-na ha bisogno cìi registri programmabili che ne con-trollino il funzionamento. Nella figura esiste unazona di registl nei banchi 1,2 e 3 che è mappata nelr..-^-^ ^ -^li i^..1;.i--, -7n_-7tr t-.iov (inni{ir' .he gli indi_udtrLU u o9il iltutttLLt Iw-/ | | lE^. JtytilrrLo Ll
rizzi di nrro<ti tro h:nrhi rnrri<nnndnnn .nn nrrolli dal
h,anco 0 pseo,rendo rln accesso ad essi e corne se si
realizzasse un accesso al registro corrispondente del
banco 0.
ll lettore conosce e ha utilizzato rnolte volte le 35 istru-
zioni cornspondenti ar PIC della gamma media, dato
l: '. t,
oW I ll00xxkkkkkkkk{k-tt4r' t ll llOx kkkk kkkk
con'ì/il I ll l0l0kkkkkkkkÉ SPECIAII
iubrotrrine 2 t0 okkk kkkk kkkkr 00 0000 0r r0 0r00 #To, #PDdelWATCHDOG
SAtiU a un indirizzo 2 l0 lkkk kkkk kkkkRITORNO dg",.illàtrupt 2 OO 0000 0000 l00lRITORNO rciivcndo un tetterqle in W 2 I I 0lxx kkkk kkkkRIORNO do subroutine 2 00 0000 0000 t000MESSA del microprocessore in riposo I 00 0000 0l I0 001 I #TO, #PD
innresso rtscita clock tr(e dr nrrpsti elpmenti. Nella
figura è riportata una tabella con l'insieme delle istru-zinni doi PIC doll: .ì:mm: mpdi: ll nnrnnÒ rho ooct;<.oi roniq.tr p il nrr rnnn rho nocticro i hit snnn nrroili rho/ L i, y u|./yv L'
nprr-eltnno ,ai nrrovi PIC di onerare al rnenlio delle loropotenzialrta, visto che con le loro istruzioni si possononr^nr:mm:ro ironiqtri o ihit <norifiri doi rani<tri rho
gestiscono le risorse ausiliarie.G'i altri tre gruppi dr istruzioni, che contengono le
istruzioni di salto, le istruzionl che gestiscono operandiimmedrati e le istruzioni specrali e di controllo, hannop"aticamef te lo stesso sign f,cato e la rredesina aprlii-cazione in tutti i modelli di PIC della qamma medra
resentando questi PIC come i f ra-
telli maggiori del PIC 16F84, è
stato detto che possiedono una
capacità di memoria molto mag-giore, però sono i dispositivi e le
ricnrco rho [\rlirrnrhin h: inrnrnnr:tn:lloro interno quelli che forniscono la vera
f orza.
Anche se in quest'opera non si disponedi spazi sufficienti per descrìverli in detta-glio, vogliamo fornire un'idea generale sul.rlmnort:montn o lo r:n:ritÀ donli olo-
menti piu interessanti che sono incorporatiner PIC 16FB7X.
I nuovi temporizzatori o Timer, i moduli di Capture,Comparazione e Generazione di lmpulsi e di AmpiezzaVariabile, il Convertitore AD, le Porte di Comunicazione'Seriale, sono i disposìtivi di cui faremo una breve anali-si, senza approfondire il discorso sui registri di control-lo, la cui corretta programmazione suppone la gestione
dei medesimi.
Dei tre temporizzatori disponibili nei PIC 16F87X, questo
è l'unico che ha una dimensione di 16 bit e che funzio-ne cnmp rrn TcmnorizZatOre/COntatore. Per oestire 16
bit è necessario concatenare due registri da 8 bit:
nco/rroso/rrcrr B # ncr /rrosr
Questi sono i poteridei PICl6F87X
ffi&a_ IMRì|E
I r=b, --...:-i'
./-\il w E@IE
@
4
4\îliw-."n}:
try mwx: , :,t ttW
USCITA TMR2 A SSP WNW
4\
:ffi;
TMR2IF
,AREsET re
w
,.ilil@
Struttura interna del TMRl con i blocchi principali e i segnali di controllo
TN,4R1 H:TMR1L, che sono incaricati di memorizzarne il
contenuto in ogni istante. Questo valore evolve da
0000 sino a FFFF Hex e ouando oassa nuovamente sul
valore 0000 si attiva il flag TMRl F e se si desidera si puoprovocare una richiesta di interrupt. ll valore presente in
TMR'lH:TMR1L puo essere letto e scritto e gli impulsi di
clock che originano il conteggio ascendente possonoprovenire dall'esterno o dalla frequenza di funziona-mento del microcontroller (Fosd4). ll TMRl può funzio-nare in tre modi:
'l ". Come temporizzatore.2". Come contatore sincrono.3". Come contatore asincrono.
Nlal mnÀn +amnnri77;1gfe il ValOfe COn-
catenato TMR'1H:TMR'lL si incrementa con
ogni ciclo di istruzione (Fosd4). Nel modocontatore l'incremento si puo produrre conifronti disalita di un clock, ilcur ingresso è
applicato alla linea RC0 e RC1 della porta
C, o tramite gli impulsi applicati sulla linea
RC0. Nella figura è riportato il diagrammaa blocchi del TMR1, in cui possiamo vede-re il predrvisore di frequenza
'"1ì
Questo potente PIC dispone anche del tem-porizzalore TMRO, pero dato che il suo
Schema a blocchi del temporizzatore TMR2
comportamento è simile a quello studiato nel PlC16F84nnn In nrondtrrpmo in ronsiderazione e ci concentreremo| ,v, , ,v v,Ll
sui due aggiunti: il TMRl appena considerato e il TMR2.
Quest'ultìmo è un temporizzalore ascendente a 8hit 2ll'intornn dol nrr:lo cì nrro lonnprp p q66jrroro innl-utL, oil iltLEr rru ugr 9uo,- -,r-- ,-JJ-,- - '',,vqlq' lÌlul-
tre può realizzarc operazioni speciali per la Porta Seriale
Sincrona (SSP) e per i moduli di Capture e
Comparazione.ll segnale di clock del TN/R2 e quello interno Fosd4,
prima di essere applicato passa attraverso un prediviso-
re di f requenza con range 1 :1 , 1 .4 e 1 :16. L'uscita del
TMR2 attraversa un postdivisore di frequenza con range
compresi da 'l:1 a '1:16, passando per '16 valori possibi-
li. Quando il microcontroller entra in modo riposo s
ferma l'oscillatore interno e il TMR2 smette di funzio-nare.
,: : :i'.._,:1, , ,1
I PlC16FB7X dispongono di due moduli CCB che si dif-ferenziano fra loro solo per la nomenclatura, CCPl e
CCP2, visto che il loro funzionamento è praticamente
ug ua le.
nzlccpr ffil
RC2 ABILITATO
COME USCITA
Schema semplifrcatoelel moclt tln Ce P1 ottanrlo funziona rn modo PWM.
Quando funzionano in modo capture una coppia di
registri cattura ilvalore che e presente sulTMR'l alveri-ficarsi di un evento speciale sul piedino RC2/CCP1 per il
modulo CCPl e sul piedino RC'l/T'lOSl/CCP2 per il
modulo CCP2. Gli eventi che possono accadere su que-
sti pìedini sono:
1". Un fronte di salita.
2". Un fronte di discesa.
3". Ogni 4 fronti di salita.
4' Ogni 16 fronti di discesa.
Effettuando il capture si attiva il flag CCPl F per il
modulo CCP'1, e se il bit di abiìitazione è attivato si
puo anche originare una richiesta di interrupt.I ln'intoro<<:nte :nnlir:zinno dol mndn r:n+' rr^ ò lautt il rrqrE))orrLq oPPilLdzlullE uEl lllwuu lqPtulE c lo
misura degli intervalli di tempo esistenti fra gli impulsi-r^^ -i -^^r;- ^ rin del PlcLr rc )r oPPlLorw o url l.
,','1' rl ',',' '
In questo modo lavoro, la coppia di registri CCPRl H-L
compara il suo contenuto, in modo continuo, con il
valore del TN/R1.
Quando coincidono entrambi i valori viene messo a
1 il flag CCPllF, e il piedino RC2/CCP1 che deve essere
configurato come uscita, supporta uno dei seguenti
eventi:
Passa a livello alto.Passa a livelìo basso.
9\lO0
ro*ffi9lo-o
90t0\
98-o
grc70
8\
nzlccprffiE @
*zuccerB @
RC2 ABITITATOCOME USCITA
4\
F\' it '"*i
10
)o
ffiry """A a1'=--=;
4\
Schema generale a blocchi del modulo CCP| in modo capture
ATTIVMIONE SEOUENZIATE IIN CCP2ì
ffi^re
Schema a blocchi del modulo CCPI
quando funtiona in modo comparatrone
mnmro
3". Non cambia di stato pero si produce un inter-rupt.
Fì;;ii.r{.:! fij"í+ln nrroctn mnrln l:rrr,,,--- ,-"Jro si ottengono impulsi la cui
ampiezza del livello alto è di durata variabile, molto utiliper il controllo dei motori. ll piedino RC2/CCPl è confi-gurato come uscita, e passa dai ìivelli logici0 e 1 a inter-valli variabili di tempo.
Si vuole ottenere un impulso il cui livello alto abbiaun'ampiezza variabile (Duty Cicle), all'interno di unintervallo fisso del periodo dell'impulso.
Per ottenere il cambiamento di stato del piedino, si
utilizza un comparatore che pone a 1 (Set) un flip-flopquando il valore del registro PR2 coincide con la parte
alta del TMR2, momento in cui TMR2 prende il valore00 Hex.
Dopo il flip-flop si resetta, e si pone a 0 quando un
altro comparatore rileva la coincidenza sul valore esi-
stente nel CCPRl H con quello della parte alta del
TMR2. Variando ivalori che si caricano in PR2 e in
CCPRlL si varia l'intervallo di tempo in cui il piedino di
uscitastaa'l ea0.
H [", {.{F # tlÈ,fi l=.l.{É f,q ilÀ {S.+ È-# # 1 i- $-t -, # } -* 3'3};-i È- È:
I PlC16F87X dispongono di un convertitore AD da '10
bit di risoluzione e 5 canali di ingresso nei modellida 2B
pin, e 8 canali in quelli da 40 pin.
Attraverso uno degli ingressi selezionati si applica il
segnale analogico ad un condensatore di cattura e
+
IE a/ BUs TNTERNo DEr DAfli t'
TETTURA
8>.
V scRrrruRA
8\
8\
,Àq\
srNcRoNrSMoDt ctocK
USCITA DEIBIT DEI DATI
INGRESSODEI BIT DEI DATI
€
p
Struttura base del modulo MSSP
con i registri di lavoro SSPBUF e 55P5R
t l'tt','
ffireVoo
+4-f.:W
reVss
Sl nrzTmz
ffi ner/rno
SlerrTmsS[ us/rNl
S[ us/rt'ts7v"' *
ffi uz7lNz7v"'-
ffi ur/rur
fil uo/ltro
Struttura sempliftcata del collegamento del convertitore AD
mantenimento, successivamente questo valore vieneportaro al convertitore, che utilizzando la tecnica del-l'approssimazione successiva fornisce il risultato digita-lp onr,iv:lpnto <r r '1 0 hil.
La tensione di riferimento puo essere generata con
la tensione interna di alimentazione del PIC oppure con
una esterna introdotta con i pin RA3/AN3I/REF+ e
RA2/AN2A/REF-.
Nella figura è rappresentato uno schema semplifi-r:tn doi rnllor^r:monti del COnveftitOre AD.
tr# 5CTè #E {*# ii€ U g'$ gt&;H,-{{F È\$ fi
F tr ffi.E& *".f, *q.€ ru fl ffi # SÉ Fq
Questo modulo chiamato NiSSP, integrato nei
PlCl6FB7X fornisce un eccellente mezzo di comunica-zinnp rnn nli :ltri mirroconlroller o con le neriferiche
che lavorano in modo seriale. Ha due modi possibilì di
lavoro:
1". SPI (Serial Peripheral lnterface).2" . lzc (lnter-lntegrated C ircuit).
La comunicazione in modo SPl, che utilizza tre linee,
viene usata in modo particolare dalle memorie RAM e
EEPRON/ ll protocollo l2C utilizza solo due linee, ed e
de$ trF# E #trffiF"H@$sp**é€$w$ e ,$,9 ,#,#ff#€#trqqfu,F
PIC MAsIER
5555
impiegato soprattutto nella comunicazione fra circuiti
integrati diversi.
Fondamentalmente il modulo N1SSP è basato su due
registri: SSPSR, che e un registro di spostamento che
trasporta l'informazione seriale in parallelo e viceversa,
e il registro SSPBUF, che funziona come buffer del-
l'informazione che si riceve o si trasmette in serie. Nella
trasmissione il byte che si desidera inviare è caricato nel
SSPBUF e automaticamente viene spostato a SSPSR,
dove si sposta bit a bit, portandolo all'esterno al ritmodonli imnrrl<i di rlnrL"-Y" "
ln ricezione i bit entrano al ritmo del clock tramiteun pin del PIC e si spostano nel registro SSPSR sino al
suo riempimento, momento nel quale si trasferisce
l'informazione al SSPBUF
Nel modo SPI si utilizzano tre linee del PIC che fun-ziona come Master nello schema della figura, mentre
nel modo l2C si utilizzano solo due linee per la comu-
nicazione del PIC master con i circuiti integrati che fun-zìonano come slave.
l.1i';"i.if USART supporta la comunicazione seriale sincrona e
asincrona. Puo funzionare come un sistema di comuni-cazione bidirezionale sincrono o full duplex, adattando-si a una moltitudine di dispositivi che trasferiscono
informazroni in questo modo. Inoltre può lavorare nel
modo unidirezionale o half duplex. Riassumendo puo
lavorare in tre modi.
'1" SERIALE ASINCRONO (Full duplex, bidirezionale)
2'. SERIALE SINCRONO-MASTER (Half duplex, unidi-rezionale).
3'. SERIALE SINCRONO-SLAVE (Half duplex, unidire-
ziona le).
Nella figura è riportato lo schema del funzionamen-to dell'USART in modo asincrono e sincrono. Nel
primo, i trasferimenti di informazione si realizzano su
due linee TX e RX; i bit entrano ed escono da queste'r' '^ ri^^^ - ' '^- {-^^uenza controllata internamenteuuc ilr cc o uro rvv
dall'USART.
Nel modo sincrono, la comunicazione si realizza su
due linee, la DT che trasla ibit in entrambi iversi alla
frequenza degli impulsi del clock che escono dalla linea
CK del master.
In entrambi i modi, le linee di comunicazione sono
le due piu signifrcative della porta C: RC6/T)lCK e
RC7lR)7DT.
ffiffisDo
sDl
5CK
Comunicazione seriale in modo SPI
tra un PIC Master e i due dispositivi che funzionano come slave
-==
=Nel modo l2C il Mastercomunica con tutti gli slave tramite due sole linee
TRASMISSIONE
RICEZIONE
MODO SINCRONO PEróF67x
Nel modo asrncrono la comunicazione seriale dell'USART utilizza
le linee TX e RX, mentre nel modo sincrono le llnee DT e CK.
5DA
5Cr
MODO ASINCRONO
',, 't..'! :.,'
Prcìót87x
MASTER SIAVE