You are on page 1of 113

Tutorial para Programao de Microcontroladores

HCS08 Baseado no MC9S08AW60


1 Prof. Gustavo Weber Denardin
SM!"#$
1. Iniciando um Projeto na IDE CodeWarrior ................................................................3
2. Configuraes Bsicas do Microcontroador..............................................................!
3. Configura"o das #ortas de entrada e sa$da...........................................................1%
&. Configura"o da Interru#"o de Estouro de 'em#o................................................22
(. Configura"o do Con)ersor *na+gico , Digita........................................................2-
.. Configura"o da Porta /eria /CI............................................................................&0
%. Configura"o do M+duo PWM................................................................................(2
-. Configura"o do M+duo de Ca#tura de Entrada......................................................
!. Configura"o do M+duo de 'ecado........................................................................!
10. Interface com um Dis#a1 % /egmentos..................................................................%-
11. Interface com um Dis#a1 2CD................................................................................-&
12. *cesso a Mem+ria 32*/4 do Microcontroador......................................................!%
13. Diagrama es5uemtico da Paca MC!/0-*W.0...................................................112
2 Prof. Gustavo Weber Denardin
Tutorial para Programao de Microcontroladores
HCS08 Baseado no MC9S08AW60
Este documento tem como o6jeti)o e7#icar de forma deta8ada como iniciar um
#rojeto em inguagem 9C: e configurar os #erif;ricos de um microcontroador da fam$ia
4C/0- da Freescale. < microcontroador utii=ado neste tutoria ser o MC!/0-*W.0.
%& #niciando um Pro'eto na #() CodeWarrior
Iremos utii=ar o a#icati)o CodeWarrior for Microcontrollers da Freescale #ara
iniciarmos o #rojeto. *o e7ecutar este a#icati)o ser a#resentada a seguinte tea.
Para iniciar um #rojeto de)emos cicar no 6ot"o Create New Project. * seguir a
seguinte tea ser a#resentada>
3 Prof. Gustavo Weber Denardin
Iremos seecionar o microcontroador MC!/0-*W.0 e cicar em a)anar. Em
seguida ser a#resentado a seguinte tea>
?esta tea iremos seecionar a inguagem 9C: e esco8er o nome do #rojeto@ neste
caso@ modeo.mc#. Em seguir a seguinte tea ser a#resentada>
4 Prof. Gustavo Weber Denardin
?esta tea #odemos seecionar ar5ui)os com 6i6iotecas #r;A#rogramadas #ara o
#rojeto. ?este e7em#o n"o iremos incuir nen8uma 6i6ioteca@ sim#esmente cicando em
a)anar. Desta forma ser a#resentada a tea a6ai7o>
5 Prof. Gustavo Weber Denardin
?a tea acima e7istem trBs o#es. * o#"o None n"o ir gerar nen8um c+digo
automaticamente. * o#"o Device Initialization ir gerar automaticamente um c+digo
m$nimo de iniciai=a"o #ara o microcontroador@ a;m dos )etores de interru#"o. * o#"o
Processor Expert ir ajudar na configura"o de #erif;ricos@ no entanto redu= o controe do
#rogramador so6re o c+digo gerado. Desta forma iremos seecionar a o#"o Device
Initialization.
*#+s seecionar esta o#"o@ o a#icati)o ir a#resentar a seguinte tea>
?esta tea recomendaAse as seguintes configuraes>
ANSI startup Code C Iniciai=a"o 6sica da mem+ria D*M
Sall C Modo #adr"o de acesso a mem+ria
None C /em utii=ar 6i6iotecas de #onto futuante.
* seguir a seguinte tea ser a#resentada>
6 Prof. Gustavo Weber Denardin
?esta tea #odemos ajustar o #rojeto #ara um !ardware #ro#rietrio@ con8ecido
#or PCA2int. Como n"o iremos utii=ar ta !ardware@ iremos seecionar a o#"o No e cicar
em Concuir. * tea a seguir ser a#resentada>
7 Prof. Gustavo Weber Denardin
?esta tea de)emos seecionar a CPE MC!/0-*W.0C3E em Select CP"
Pac#a$e@ 5ue ; o enca#suamento do microcontroador utii=ado na #aca de
demonstra"o. *#+s de)emos cicar na o#"o %enerate Code@ #ara gerar o c+digo de
iniciai=a"o do microcontroador. Em seguida de)emos cicar na o#"o %enerate da tea
a6ai7o>
*#+s cicarmos neste 6ot"o o #rojeto ser criado. * estrutura do #rojeto ;
a#resentada na figura a6ai7o.
8 Prof. Gustavo Weber Denardin
* #asta Sources ir conter o c+digo fonte do #rojeto criado@ j #ossuindo o
ar5ui)o #rinci#a do #rojeto. ?a #asta Libs #odemos adicionar 6i6iotecas de c+digo j
im#ementado@ como #or e7em#o a 6i6ioteca #ara acessar um dis#a1 2CD. * Pasta
Generated Code ir #ossuir a fun"o de iniciai=a"o do microcontroador@ c8amada
MC"&Init@ a;m dos )etores de interru#"o.
* configura"o dos #erif;ricos ser reai=ada dentro da fun"o MC"&Init' #ois
esta fun"o ; c8amada na iniciai=a"o do #rograma do microcontroador.
*& Con+igura,es B-sicas do Microcontrolador
< m+duo interno de gera"o de cloc# FICGH ; utii=ado #ara gerar o cloc# do
sistema #ara a s;rie de microcontroadores MC!/0-*W. < m+duo ICG #ro)B muti#as
o#es #ara a fonte do sina de cloc#. Estas o#es oferecem ao usurio grande
fe7i6iidade durante o #rojeto do sistema microcontroado@ #ermitindo esco8as entre
custo@ #recis"o@ consumo de corrente e #erformance.
*gumas caracter$sticas do m+duo ICG e do sistema de distri6ui"o de cloc#>
Irias #ossi6iidades de fonte #rimria #ara o cloc#>
Crista ou ressonador entre 32 J8= e 100 J8=
Crista ou ressonador entre 1 M4= e 1. M4=
Cloc# E7terno
Gerador de referBncia interna
* configura"o #adr"o do m+duo ICG utii=a a referBncia interna de cloc#.
Possui 322 F3re5uen1AocKed oo#H #ara gerar cloc#s de 6arramento entre & M4= e
20 M4=
Interru#"o de tem#o rea com fonte de cloc# se#arada e autoAaimentada.
Configura"o do osciador e7terno #ara 6ai7o consumo ou ato gan8o F#ara maior
imunidade a ru$dosH.
/e um cloc# e7terno for utii=ado os #inos de)em ser utii=ados como na figura
a6ai7o>
9 Prof. Gustavo Weber Denardin
/e uma referBncia de fre5LBncia e7terna a crista ou ressonador for utii=ada@ os
#inos de)em ser conectados como a#resentado na figura a6ai7o>
* ta6ea de configura"o dos resistores D
/
e D
3
e dos ca#acitores C
1
e C
2
;
a#resentada a6ai7o>
* #aca de desen)o)imento MC9S08AW60 utii=a um crista e7terno de . M/0.
Iremos utii=ar esta referBncia de fre5LBncia junto com o 322 #ara configurar uma
+re123ncia de 4arramento de *0 M/0@ o6tendo desta forma a m7ima #erformance do
microcontroador.
* seguir ser"o a#resentadas as configuraes necessrias #ara a iniciai=a"o do
cloc# neste modo de o#era"o e a iniciai=a"o 6sica do sistema.
Para configurar os registradores de iniciai=a"o do sistema de)emos seguir uma
ordem. * ordem de configura"o dos registradores #ode ser o6tida na fo8a de dados do
microcontroador.
10 Prof. Gustavo Weber Denardin
*6ai7o temos uma sugest"o de c+digo de iniciai=a"o. Este c+digo de)e ser
incu$do no in$cio da fun"o void MCU_init(void)&
/* SOPT: COPE=0,COPT=1,STOPE=0,??=1,??=0,??=0,??=1,??=1 */
SOPT = 0x53;

/* SPMSC1: LVDF=0,LVDACK=0,LVDIE=0,LVDRE=1,LVDSE=1,LVDE=1,??=0,BGBE=0 */
SPMSC1 = 0x1C;

/* SPMSC2: LVF=0,LVACK=0,LVDV=0,LVV=0,PPDF=0,PPDACK=0,??=0,PPDC=0 */
SPMSC2 = 0x00;

// S!"#! #$ C%&'( Ex)$*+& #& ,-+& PTC2 #$.!/-%-)!#&
/* SMCLK: MPE=0,MCSEL=0 */
SMCLK = 0;

/* I+-'-!%-0!12& #& .-.)$3! #$ '%&'( */
/* ICGC1: 4GO=1,RA5GE=1,REFS=1,CLKS1=1,CLKS0=1,OSCSTE5=0,LOCD=0,??=0 */
ICGC1 = 0xF6;
/* ICGC2: LOLRE=0,MFD2=0,MFD1=1,MFD0=1,LOCRE=0,RFD2=0,RFD1=0,RFD0=0 */
ICGC2 = 0x30;
78-%$9:ICGS1;LOCK< = /* E.,$*! & 3>#?%& ICG $.)!/-%-0!* & '%&'( '&+@-A?*!#& */
B
< #rimeiro registrador a ser configurado ; o /<P' FS(ste )ptions *e$isterH. Este
registrador #ode ser ido a 5ua5uer momento@ mas s+ #ode ser escrito uma )e=@
normamente na iniciai=a"o do #rograma@ a#+s o reset.
< registrador /<P' #ode ser )isuai=ado na figura a6ai7o>
Descri"o dos 6its de controe>
C$P) FC)P Watc!do$ Ena+leH
0 C C<P Watc8dog Desa6iitado
1 C C<P Watc8dog 4a6iitado
C$PT FC)P Watc!do$ ,ieoutH
0 C /ee"o do #er$odo curto de estouro F2
13
cicos de 6arramentoH
1 C /ee"o do #er$odo ongo de estouro F2
1-
cicos de 6arramentoH
11 Prof. Gustavo Weber Denardin
ST$P) FS,)P Mode Ena+leH
0 C Modo /'<P desa6iitado
1 C Modo /'<P 8a6iitado
Iremos configurar o registrador /<P' #ara desigar o C<P e o Modo /'<P@ ou
seja@ S$PT 5 0678. *ssim 5ue o #rograma desen)o)ido esti)er com#eto e re)isado
#odemos 8a6iitar o C<P@ su6stituindo o )aor acima #ara S$PT 5 0698&
<s #r+7imo registradores a serem configurados s"o o /PM/C1 FS(ste Power
Mana$eent Status and Control - *e$isterH e o /PM/C2 FS(ste Power Mana$eent
Status and Control . *e$isterH. Com estes registradores #odemos configurar os modos de
o#era"o do sistema de aimenta"o do microcontroador.
* descri"o dos 6its de controe do registrador /PM/C1 ; a#resentada a seguir>
:;(9 F/ow01olta$e Detect Fla$H A Este 6it #ermite somente eitura e indica a detec"o de um e)ento
de 6ai7a tens"o na aimenta"o.
:;(AC< F/ow01olta$e Detect Ac#nowled$eH C Este 6it #ermite somente escrita e ; utii=ado #ara
indicar o recon8ecimento de erros causados #or 6ai7a tens"o na aimenta"o do microcontroador.
:;(#) F/ow01olta$e Detect Interrupt Ena+leH C Este 6it #ermite 8a6iitar uma re5uisi"o de
interru#"o #or !ardware #ara a fag 2ID3.
0 C Interru#"o de !ardware desa6iitada
1 C Gera uma interru#"o 5uando 2ID3 M 1
:;(") F/ow01olta$e Detect *eset Ena+leH C Permite a gera"o de um reset associado a 2ID3.
0 C 2ID3 n"o gera reset
1 C 3ora um reset do microcontroador 5uando 2ID3 M 1
:;(S) F/ow01olta$e Detect Stop Ena+leH
0 C Modo de detec"o de 6ai7a tens"o desa6iitada durante o modo de /'<P se 2IDE M 1
1 C Modo de detec"o de 6ai7a tens"o 8a6iitada durante o modo de /'<P se 2IDE M 1
:;() F/ow01olta$e Detect Ena+leH
0 C 2+gicas de detec"o de 6ai7a tens"o desa6iitadas
1 C 2+gicas de detec"o de 6ai7a tens"o 8a6iitadas
B=B) F2and$ap 2uffer Ena+leH C Este 6it ; utii=ado #ara 8a6iitar um 6uffer #ara a tens"o de
referBncia de 6andga# #ara o m+duo con)ersor *na+gico , Digita em um dos canais internos.
0 C 2uffer de 2and$ap desa6iitado
1 C 2uffer de 2and$ap 8a6iitado
12 Prof. Gustavo Weber Denardin
*6ai7o ; a#resentada a descri"o dos 6its de controe do registrador /PM/C2>
:;W9 F/ow01olta$e Warnin$ Fla$H C < 6it 2IW3 indica um estado de 6ai7a tens"o
0 C *)iso de 6ai7a tens"o n"o #resente
1 C *)iso de 6ai7a tens"o ati)o
:;WAC< F/ow01olta$e Warnin$ Ac#nowled$eH C Este 6it #ermite somente escrita e ; utii=ado #ara
indicar o recon8ecimento de uma condi"o de 6ai7a tens"o.
:;(; F/ow01olta$e Detect 1olta$e SelectH C /eeciona o n$)e de tens"o 5ue ir ati)ar o 2ID3.
0 C /eeciona 2oN tri# #oint FI2ID M I2ID2H
1 C /eeciona 4ig8 tri# #oint FI2ID M I2ID4H
:;W; F/ow01olta$e Warnin$ 1olta$e SelectH A /eeciona o n$)e de tens"o 5ue ir ati)ar o 2IW3.
0 C /eeciona 2oN tri# #oint FI2IW M I2IW2H
1 C /eeciona 4ig8 tri# #oint seected FI2IW M I2IW4H
PP(9 FPartial Power Down Fla$H C Este 6it indica 5uando o microcontroador sair do modo sto#2
0 C n"o 8ou)e recu#era"o do modo sto#2
1 C Decu#era"o do modo sto#2
PP(AC< FPartial Power Down Ac#nowled$eH C Escre)er 91: #ara este 6it im#a o 6it PPD3.
PP(C FPartial Power Down ControlH C Este 6it somente de escrita controa 5uando os modos sto#2
ou sto#3 s"o seecionados.
0 C modo sto#3 8a6iitado
1 C modo sto#2 8a6iitado@ power down #arcia
Etii=e a ta6ea a6ai7o #ara definir a configura"o dos )aores #ara :;(; e :;W;.
13 Prof. Gustavo Weber Denardin
Iremos configurar o registrador /PM/C1 #ara 8a6iitar a +gica de detec"o de
6ai7a tens"o tanto no modo /'<P 5uanto em o#era"o norma. *inda@ 5uando a
condi"o de 6ai7a tens"o for detectada ir gerar um reset no microcontroador. Desta
forma@ SPMSC% 5 06%C. < registrador /PM/C2 ser configurado no modo #adr"o@ ou
seja@ SPMSC* 5 0600&
< #r+7imo registrador a ser configurado ; o /MC2J. Este registrador #ermite
criarmos um sina de cocK e7terno@ 6aseado no cocK do 6arramento do microcontroador.
Este cocK e7terno@ se 8a6iitado@ tem como oca de sa$da o 6it 2 da #orta C@ ou seja@ no
#ino PTC*. * configura"o dos 6its de controe do registrador /MC2J ; a#resentada
a6ai7o>
*6ai7o a descri"o dos 6its de controe do registrador /MC2J ; a#resentada>
MP) FMC/3 Pin Ena+leH C Este 6it ; utii=ado #ara 8a6iitar a fun"o MC2J.
0 C MC2J desa6iitado
1 C /a$da MC2J 8a6iitada no #ino P'C2.
MCS): FMC/3 Divide SelectH C Estes 6its s"o utii=ados #ara seecionar a ta7a de di)is"o #ara a
sa$da MC2J@ de acordo com a e5ua"o a6ai7o.
frequencia MCLK=
frequencia declock dobarramento
2MCSEL
* #artir de agora iremos configurar os registradores reati)os ao cocK do
6arramento. < #rimeiro registrador de configura"o do cocK ; o ICGC1. *6ai7o temos a
configura"o dos 6its de controe deste registrador.
H=$ F4i$! %ain )scillator SelectH C Este 6it ; utii=ado #ara seecionar entre o#era"o de 6ai7o
consumo ou ato gan8o #ara me8or imunidade a ru$dos.
0 C <sciador configurado #ara o#era"o de 6ai7o consumo
1 C <sciador configurado #ara o#era"o com ato gan8o.
14 Prof. Gustavo Weber Denardin
"A>=) FFre5uenc( *an$e SelectH C Este 6it ; utii=ado #ara controar a referBncia de di)is"o #ara o
osciador e #ara configurar o fator de muti#ica"o FPH do oo# 322. Ee seeciona uma ou duas referBncias
de fre5LBncia #ara o ICG.
0 C <sciador configurado #ara escaa de 6ai7a fre5LBncia. 3ator de muti#ica"o do 2oo#
322 configurado #ara P M .&.
1 C <sciador configurado #ara escaa de ata fre5LBncia. 3ator de muti#ica"o do 2oo#
322 configurado #ara P M 1.
")9S FExternal *eference SelectH C /eetor de referBncia e7terna.
0 C CocK e7terno seecionado como referBncia e7terna
1 C Crista ou ressonador seecionado como referBncia e7terna #ara o osciador.
C:<S FCloc# Mode SelectH C /ee"o de modo de cocK
00 C CocK interno seecionado
01 C 322 aco#ado@ utii=ando referBncia interna
10 C 322 +(passed@ utii=ando referBncia e7terna
11 C 322 aco#ado@ utii=ando referBncia e7terna
$SC*T)> FEna+le )scillator in )ff ModeH
0 C <sciador 8a6iitado 5uando o m+duo ICG ; desigado.
1 C <sciador 8a6iitado 5uando o m+duo ICG ; desigado.
:$C( F/oss of Cloc# Disa+leH
0 C Detec"o de #erda de cocK 8a6iitada
1 C Detec"o de #erda de cocK desigada
< m+duo 322 FFre5uen(0loc#ed loopH ; utii=ado #ara muti#icar a fre5LBncia de
referBncia Finterna ou e7ternaH de modo a o6termos cocKs de 6arramento entre & M4= e
20 M4=. * fre5LBncia de referBncia interna do microcontroador MC!/0-*W.0 ; 2&3 J8=.
<B/> < cocK gerado atra);s dos registradores ICGC1 e ICGC2 ser o cocK do
6arramento muti#icado #or 2@ ou seja@ #ara o6termos a m7ima fre5LBncia de
6arramento F20 M8=H@ de)emos configurar os registradores #ara o6termos uma fre5LBncia
do m+duo ICG de &0 M8=.
De)emos configurar o registrador ICGC1 e)ando em conta o !ardware utii=ado.
Como a #aca desen)o)ida #ara o MC!/0-*W.0 ; constitu$da #or um crista de & M8=
configurado no modo de ato gan8o@ iremos configurar o registrador #C=C% #ara 0698.
Desta forma estaremos 8a6iitando o m+duo 322 aco#ado utii=ando referBncia e7terna
FcristaH@ com osciador o#erando em modo de ato gan8o e fator de muti#ica"o do 322
igua a 1 FP M 1H. *inda@ osciador 8a6iitando 5uando o ICG esti)er desigado e detec"o
de #erda de cocK ati)ada.
Dando se5LBncia a configura"o do cocK@ iremos a#resentar as configuraes
#oss$)eis atra);s do registrador ICGC2.
15 Prof. Gustavo Weber Denardin
<s 6its de controe do registrador acima indicado s"o>
:$:")F/oss of /oc# *eset Ena+leH C Configura a a"o a ser tomada no caso de insta6iidade do
cocK gerado #eo m+duo ICG.
0 C Gera uma interru#"o no caso de insta6iidade do cocK gerado
1 C Gera um reset no caso de insta6iidade do cocK gerado
M9( FMultiplication FactorH C 3ator de muti#ica"o FMH do oo# 322.
000 C 3ator de muti#ica"o M &
001 C 3ator de muti#ica"o M .
010 C 3ator de muti#ica"o M -
011 C 3ator de muti#ica"o M 10
100 C 3ator de muti#ica"o M 12
101 C 3ator de muti#ica"o M 1&
110 C 3ator de muti#ica"o M 1.
111 C 3ator de muti#ica"o M 1-
:$C") F/oss of Cloc# *eset Ena+leH A Configura a a"o a ser tomada no caso de insta6iidade do
cocK do sistema.
0 C Gera uma interru#"o no caso de insta6iidade do cocK do sistema
1 C Gera um reset no caso de insta6iidade do cocK do sistema
"9( F*educed Fre5uenc( DividerH C 3ator de di)is"o FDH do oo# 322.
000 C 3ator de di)is"o M 1
001 C 3ator de di)is"o M 2
010 C 3ator de di)is"o M &
011 C 3ator de di)is"o M -
100 C 3ator de di)is"o M 1.
101 C 3ator de di)is"o M 32
110 C 3ator de di)is"o M .&
111 C 3ator de di)is"o M 12-
* e5ua"o de gera"o do cocK do m+duo ICG ; a#resentada a6ai7o>
Frequencia ICG=
P x N
R
x Frequencia de Referencia
Iremos configurar o registrador ICGC2 #ara o6termos a m7ima fre5LBncia do
m+duo ICG F&0 M8=H. Desta forma@ #C=C* 5 0680. *ssim iremos o6ter > 5 %0 e " 5 %@
a;m de configurarmos o sistema #ara gerar uma interru#"o caso ocorra uma #erda de
cocK.
16 Prof. Gustavo Weber Denardin
Frequencia ICG=
1 x 10
1
x 4Mhz=40Mhz
e ainda@
Frequencia de arramento=
frequencia ICG
2
=20Mhz
*#+s configurarmos os registradores ICGC1 e ICGC2 de)emos es#erar 5ue o
cocK gerado #eo m+duo ICG esta6ii=e. Podemos )erificar este fato atra);s do 6it
:$C<@ do registrador #C=S% FDegistrador 1 de estado do m+duo ICGH. ?o momento em
5ue o cocK gerado esti)er est)e@ este 6it ser e)ado a condi"o de n$)e +gico ato@ ou
seja@ 91:. < c+digo a6ai7o e7em#ifica esta es#era.
78-%$9:ICGS1;LOCK< = /* E.,$*! & 3>#?%& ICG .-+)&+-0!* & '%&'( '&+@-A?*!#& */
B
8& Con+igurao das portas de entrada e sa?da
Ouanto configuramos as #ortas de entrada e sa$da de um microcontroador
de)emos e)ar em considera"o di)ersos as#ectos@ entre ees@ condi"o inicia da #orta@
dire"o dos #inos e acionamento de #uAu#.
* seguir iremos a#resentar os #rinci#ais registradores de configura"o das #ortas
de entrada e sa$da do microcontroador MC!/0-*W.0@ utii=ando a #orta 9*: do
microcontroador como referBncia.
*e$istrador de Dados da Porta 6A7 8PTAD9
Ouando os #inos forem configurados #ara entrada@ a eitura dos mesmos ir
retornar o n$)e +gico do #ino associado. Caso os #inos estejam configurados #ara sa$da@
a eitura dos #inos ir retornar o Ptimo )aor escrito #ara o registrador PTA(. *inda@ com
os #inos configurados #ara sa$da o n$)e +gico dos mesmos ser im#osto #eo )aor do
registrador PTA(.
17 Prof. Gustavo Weber Denardin
*e$istrador de Dire:;o da Porta 6A7 8PTADD9
Este registrador de escrita , eitura controa a dire"o dos #inos da #orta *.
0 C #inos configurados como entrada Fdriver de sa$da desa6iitadoH
1 C Driver de sa$da 8a6iitado #ara o 6it n da #orta *
*e$istrador de Pull0"p da Porta 6A7 8PTAPE9
Cada um dos 6its de controe deste registrador determina se o dis#ositi)o interno
de pull0up est 8a6iitado #ara o #ino da #orta * associado a ee. Para os #inos da #orta *
configurados como sa$da este registrador n"o tem efeito e o dis#ositi)o interno de pull0up
ser desa6iitado.
0 C Dis#ositi)o de pull0up interno desa6iitado #ara a #orta * 6it n.
1 C Dis#ositi)o de pull0up interno 8a6iitado #ara a #orta * 6it n.
*e$istrador de Controle de Slew *ate da Porta 6A7 8PTASE9
Slew Rate ; a ta7a de )aria"o FdI,dtH da sa$da 5uando temos um QdegrauQ. Cada
um destes 6its de controe determina 5uando o controe de sa$da slew rate ; 8a6iitado
#ara o #ino da #orta * associado. Para os #inos da #orta * configurados como entrada
este registrador n"o tem efeito.
0 C Controe de sa$da Slew *ate desa6iitado #ara o 6it n da #orta *.
1 C Controe de sa$da Slew *ate 8a6iitado #ara o 6it n da #orta *.
18 Prof. Gustavo Weber Denardin
* figura a6ai7o a#resenta os tem#os de su6ida e descida de sina nas #ortas do
microcontroador@ com a ta7a de )aria"o Fslew rateH 8a6iitada e desa6iitada.
*e$istrador de Sele:;o da Capacidade de corrente do driver da Porta 6A7
8PTADS9
Cada um destes 6its de controe #ermite a see"o entre driver de sa$da com 6ai7a
ou ata ca#acidade de corrente #ara o #ino da #orta * associado. ?o entanto@ de)emos
tomar o cuidado de e)itar 5ue a soma das correntes dos #inos n"o utra#asse o imite tota
de corrente do microcontroador.
0 C Dri)er de sa$da com 6ai7a ca#acidade de corrente 8a6iitado #ara o 6it n da #orta *.
1 C Dri)er de sa$da com ata ca#acidade de corrente 8a6iitado #ara o 6it n da #orta *.
* ta6ea a seguir informa os n$)eis de corrente #ara o driver em ata e 6ai7a
ca#acidade de corrente.
<B/> Pinos 5ue n"o forem utii=ados na a#ica"o desen)o)ida de)em ser
conectados a um terminador. Esta medida #re)ine o e7cesso de corrente causado #ea
futua"o das entradas e me8ora a imunidade a ru$dos e transientes. *s terminaes
#odem ser im#ementadas atra);s de uma das o#es a6ai7o reacionadas>
Configurar os #inos n"o utii=ados como sa$da e foraAos #ara n$)e +gico
ato ou 6ai7o
Configurar os #inos n"o utii=ados como entrada e utii=ar um pull0up
interno ou e7terno.
19 Prof. Gustavo Weber Denardin
Diagrama de 6ocos das #ortas de entrada e sa$da #araeas
20 Prof. Gustavo Weber Denardin
* figura a6ai7o a#resenta os )aores imites de tens"o na aimenta"o@ 6em como
a m7ima corrente #or #ino e a m7ima corrente tota na aimenta"o do microcontroador.
* seguir ; a#resentado um e7em#o de c+digo de iniciai=a"o #ara a #orta * com
todos os #inos configurados como sa$da com driver em 6ai7a ca#acidade de corrente e
controe de seN rate ati)o. *inda@ a #orta B configurada com todos os #inos #ara entrada
com pull0up ati)o.
/* I+-'-!%-0!12& #!. P&*)!. A $ B #& 3-'*&'&+)*&%!#&* MCCS06AD0 */
// C&+)*&%$ #$ S%$7 R!)$ !)-E& ,!*! ! P&*)! A
/* PTASE: PTASEF=1,PTASED=1,PTASE5=1,PTASEG=1,PTASE3=1,PTASE2=1,PTASE1=1,PTASE0=1 */
PTASE = 0xFF;
// C&+)*&%$ #$ S%$7 R!)$ #$.!/-%-)!#& ,!*! ! P&*)! B
/* PTBSE: PTBSEF=1,PTBSED=1,PTBSE5=1,PTBSEG=1,PTBSE3=1,PTBSE2=1,PTBSE1=1,PTBSE0=1 */
PTBSE = 0x00;

// D*-E$* #$ '&**$+)$ #! ,&*)! A '&+@-A?*!#& ,!*! /!-x! '!,!'-#!#$ #$ '&**$+)$
/* PTADS: PTADSF=0,PTADSD=0,PTADS5=0,PTADSG=0,PTADS3=0,PTADS2=0,PTADS1=0,PTADS0=0 */
PTADS = 0x00;
// D*-E$* #$ '&**$+)$ #! ,&*)! A '&+@-A?*!#& ,!*! /!-x! '!,!'-#!#$ #$ '&**$+)$
/* PTBDS: PTBDSF=0,PTBDSD=0,PTBDS5=0,PTBDSG=0,PTBDS3=0,PTBDS2=0,PTBDS1=0,PTBDS0=0 */
PTBDS = 0x00;
// R$A-.)*!#&*$. #$ #!#&. #!. ,&*)!. A $ B -+-'-!%-0!#&. '&3 +"E$% %>A-'& 0
PTAD = 0x00;
PTBD = 0x00;

// R$A-.)*!#&* #$ pull-up #! ,&*)! B '&3 )&#&. &. /-). !)-E!#&.
PTBPE = 0xFF;
// R$A-.)*!#&* #$ #-*$12& #! ,&*)! A '&3 )&#&. &. /-). '&+@-A?*!#&. ,!*! .!"#!
PTADD = 0xFF;
// R$A-.)*!#&* #$ #-*$12& #! ,&*)! B '&3 )&#&. &. /-). '&+@-A?*!#&. ,!*! $+)*!#!
PTBDD = 0x00;
21 Prof. Gustavo Weber Denardin
.& Con+igurao da #nterrupo de )stouro de Tempo
Em micro#rocessador de)e #ossuir um re+gio Fcloc#H. < re+gio #ode ser
im#ementado #or um crista osciador 5ue sincroni=a todo o funcionamento do
micro#rocessador@ controando o tem#o de cada um dos e)entos reacionados aos
dis#ositi)os integrados a ee.
<s tem#ori=adores utii=am a 6ase de tem#o do re+gio #ara #oder im#ementar
contagens de tem#o 6em es#ec$ficas e configur)eis. Estes utii=am contadores@
incrementados na mesma 6ase de tem#o do re+gio. Desta forma ; #oss$)e descre)er
tem#o em nPmero de cicos de um re+gio. Por e7em#o@ imagine um micro#rocessador
utii=ando um re+gio de 20 M8=. < #er$odo reati)o a esta fre5LBncia ; (0 ns. Podemos
re#resentar ent"o um tem#o de 1ms atra);s de #er$odos de (0ns@ o6tendo o )aor de
20000. <u seja@ se incrementarmos um contador a cada cico de re+gio@ no caso (0ns@
5uando este contador atingir o )aor de 20.000@ teremos atingido a contagem de 1ms.
Para 5ue este m;todo seja a#icado@ e7iste a necessidade da utii=a"o de #eo
menos 2 registradores. < registrador 5ue ser incrementado e o registrador 5ue conter o
)aor a ser atingido. ?o entanto@ e7iste um #ro6ema reacionado a este m;todo. Imagine
5ue #recisemos de um tem#o na ordem de )rios miissegundos ou segundos@ #or
e7em#o@ &00ms. /e esti)ermos utii=ando um re+gio de 20 M8=@ seria necessrio
registradores de 2& 6its #ara re#resentar o )aor de -710
.
. Com o intuito de redu=ir o
taman8o destes contadores@ os tem#ori=adores a#resentam a #ossi6iidade de di)is"o do
re+gio@ normamente #or )aores mPti#os de 2. ?o caso do e7em#o acima@ #oder$amos
di)idir o re+gio #or 12-@ o6tendo uma fre5LBncia de 1(.@2(0 J4=. Ent"o@ #ara
re#resentarmos &00 miissegundos@ seria necessrio uma contagem de .2(00 #er$odos
de ..&Rs@ ou seja@ um )aor 5ue #ode ser re#resentado em 1. 6its.
De)emos em6rar 5ue a di)is"o ter infuBncia somente no tem#o de
incrementa"o do contador@ continuando o 6arramento interno do micro#rocessador a
o#erar com o re+gio origina.
< #rocesso de configura"o do tem#ori=ador do microcontroador MC!/0-*W.0
; a#resentado a seguir.
22 Prof. Gustavo Weber Denardin
<s microcontroadores da in8a 4C/0- normamente #ossuem 1 ou 2
tem#ori=adores. <s registradores reati)os a estes tem#ori=adores a#resentam nomes
seme8antes@ tendo a#enas o nPmero no tem#ori=ador #ara diferenciAos. <s trBs
registradores de configura"o do tem#ori=ador neste microcontroador s"o> 'PM7/C@
'PM7C?' e 'PM7M<D@ sendo os dois Ptimos de 1. 6its. De)emos su6stituir o 7 do
nome dos registradores #eo nPmero do tem#ori=ador@ no caso do MC!/0-*W.0@ 1 ou 2.
*6ai7o ; a#resentado o diagrama de 6ocos do tem#ori=ador destes microcontroadores.
S im#ortante ressatar 5ue aguns dos registradores a#resentados na figura s"o reati)os
ao m+duo PWM e ca#tura de entrada.
*e$istrador de Controle e Estado do ,eporizador x (TPMxSC)
23 Prof. Gustavo Weber Denardin
* descri"o dos 6its de controe deste registrador ; a#resentada a6ai7o>
T$9 F,ier )verflow Fla$H A Este 6it de escrita,eitura ; e)ado #ara 1 5uando o registrador
contador F'PM7C?'H atinge o )aor do registrador de m+duo de contagem F'PM7M<DH@ condi"o essa 5ue
indica o estouro da contagem de tem#o. < #rocedimento correto #ara im#ar esta indica"o ; er o
registrador 'PM7/C e escre)er um 90: +gico #ara o 6it '<3.
1 A < m+duo tem#ori=ador atingiu o )aor desejado
0 A < m+duo tem#ori=ador n"o atingiu o )aor desejado
T$#) F,ier )verflow Interrupt Ena+le 2itH> Este 6it de escrita,eitura 8a6iita a interru#"o do
tem#ori=ador 5uando o 6it '<3 for definido em 1.
1 A Interru#"o do tem#ori=ador ati)a
0 A Interru#"o do tem#ori=ador desa6iitada
CPWMS FCenter0Ali$ned PWM SelectH C Iremos comentar so6re este 6it na se"o so6re PWM.
C:<S FCloc# Source Select9 < Estes dois 6its s"o utii=ados #ara desigar o m+duo 'PM ou seecionar uma
das trBs #oss$)eis fontes de cocK #ara incrementar o contador.
C:<SB C:<SA 9onte de cloc@ do mAdulo TPM
0 0 'PM desa6iitado
0 1 CocK do 6arramento FBE/C2JH
1 0 CocK fi7o do sistema FTC2JH
1 1 3onte e7terna F'PM7C2JH
PSU2>0V FPrescaler Setect 2itsH C Bits de #r;Aescaa da 6ase de tem#o. Estes 6its de escrita,eitura
seecionam um dos oito #oss$)eis )aores de di)is"o da 6ase de tem#o do re+gio #ara utii=a"o como 6ase
de tem#o do tem#ori=ador.
PS* PS% PS0 Base de tempo do tempori0ador
0 0 0 CocK do m+duo 'PM , 1
0 0 1 CocK do m+duo 'PM , 2
0 1 0 CocK do m+duo 'PM , &
0 1 1 CocK do m+duo 'PM , -
1 0 0 CocK do m+duo 'PM , 1.
1 0 1 CocK do m+duo 'PM , 32
1 1 0 CocK do m+duo 'PM , .&
1 1 1 CocK do m+duo 'PM , 12-
*e$istradores de Conta$e de ,epo 8TPMxCNT9>
Estes registradores s"o somente de eitura e cont;m o )aor mais significati)o
F'PM7C?'4H e menos significati)o F'PM7C?'2H do contador do tem#ori=ador. * eitura
do registrador mais significati)o de)e ser reai=ada #rimeiro.
24 Prof. Gustavo Weber Denardin
*e$istradores de M=dulo do ,eporizador 8TPMxMOD9
Estes registradores de escrita,eitura cont;m o )aor do m+duo da contagem do
tem#ori=ador. Ouando os registradores de contagem F'PM7C?'H atingem o )aor dos
registradores de m+duo F'PM7M<DH@ o 6it '<3 tornaAse n$)e +gico 91: e os
registradores de contagem resumem a contagem #ara W0000 at; o #r+7imo #asso de
cocK. Escre)er no registrador 'PM7M<D4 ini6e o 6it '<3 at; 5ue o registrador
'PM7M<D2 seja escrito.
Estando os registradores a serem configurados a#resentados #odeAse demonstrar
um e7em#o de utii=a"o. *6ai7o ser im#ementada a configura"o de um tem#ori=ador
utii=ando um cocK de 6arramento de 20 M4= #ara o6ter a 6ase de tem#o de (0Rs.
Per$odo reati)o a 6ase de tem#o>
Perodo=
1
2010
6

=5010
9
segundos
25 Prof. Gustavo Weber Denardin
Ccuo do )aor de m+duo de tem#o>
Mdulo=
5010
6
5010
9

=1000
< )aor 1000 de)e ser escrito no registrador 'PM7M<D. *6ai7o o e7em#o de
configura"o dos registradores #ara este caso ; a#resentado em inguagem 9c:@ utii=ando
o tem#ori=ador 1 do microcontroador MC!/0-*W.0.
// C&+@-A?*!12& #& )-3$* ,!*! 50?.
/* TPM1SC: TOF=0,TOIE=0,CPMS=0,CLKSB=0,CLKSA=0,PS2=0,PS1=0,PS0=0 */
TPM1SC = 0; /* P!*! & '&+)!#&* */
/* TPM1C5T4: BIT15=0,BIT1G=0,BIT13=0,BIT12=0,BIT11=0,BIT10=0,BITC=0,BIT6=0 */
TPM1C5T = 0; /* R$.$)! & '&+)!#&* */
/* C&+@-A?*! & E!%&* '&**$)& +& *$A-.)*!#&* #$ 3>#?%& ,!*! &/)$*3&. 50?. */
TPM1MOD = 1000;
/* C&+@-A?*! ! ,*HI$.'!%! ,!*! 1, 8!/-%-)! ! -+)$**?,12& */
// J)-%-0! '&3& /!.$ & '%&'( #& /!**!3$+)&
/* TPM1SC: TOF=0,TOIE=1,CPMS=0,CLKSB=0,CLKSA=1,PS2=0,PS1=0,PS0=0 */
TPM1SC = 0xG6;
Para demonstrar um caso onde se fa= necessrio a di)is"o da 6ase de tem#o@ o
tem#ori=ador ser configurado utii=ando um re+gio de 20 M4= #ara o6ter a 6ase de
tem#o de 100ms.
Per$odo reati)o a 6ase de tem#o>
Perodo=
1
2010
6

=5010
9
Ccuo do )aor de m+duo de tem#o>
Mdulo=
10010
3
5010
9

=2000000
Para re#resentar 2000000 ; necessrio mais do 5ue os 1. 6its dis#on$)eis. Desta
forma se fa= necessrio a di)is"o da 6ase de tem#o. Di)idindo 2000000 #eo maior )aor
#oss$)e em 1. 6its@ encontramos 30@(1-. *ssumimos ent"o o #r+7imo )aor )ido de
di)is"o@ ou seja@ 32@ como fator de di)is"o da 6ase de tem#o.
3ator de di)is"o da 6ase de tem#o>
Fator =
2000000
65535
=30,518
26 Prof. Gustavo Weber Denardin
E@ recacuando os )aores de configura"o>
Per$odo reati)o a 6ase de tem#o>
Perodo=
1

2010
6
32

=1,610
6
Ccuo do )aor de m+duo de tem#o>
Mdulo=
10010
3
1,610
6

=62500
/endo .2(00 um )aor )ido em 1. 6its@ a configura"o do tem#ori=ador em
inguagem 9c: ; a#resentada a6ai7o>
// C&+@-A?*!12& #& )-3$* ,!*! 50?.
/* TPM1SC: TOF=0,TOIE=0,CPMS=0,CLKSB=0,CLKSA=0,PS2=0,PS1=0,PS0=0 */
TPM1SC = 0; /* P!*! & '&+)!#&* */
/* TPM1C5T4: BIT15=0,BIT1G=0,BIT13=0,BIT12=0,BIT11=0,BIT10=0,BITC=0,BIT6=0 */
TPM1C5T = 0; /* R$.$)! & '&+)!#&* */
/* C&+@-A?*! & E!%&* '&**$)& +& *$A-.)*!#&* #$ 3>#?%& ,!*! &/)$*3&. 1003. */
TPM1MOD = D2500;
/* C&+@-A?*! ! ,*HI$.'!%! ,!*! 32, 8!/-%-)! ! -+)$**?,12& */
// J)-%-0! '&3& /!.$ & '%&'( #& /!**!3$+)&
/* TPM1SC: TOF=0,TOIE=1,CPMS=0,CLKSB=0,CLKSA=1,PS2=1,PS1=0,PS0=1 */
TPM1SC = 0xGD;
<6s> De)emos em6rar 5ue o c+digo contido nas interru#es de)e ser o menor
#oss$)e@ com o intuito de e)itar 5ue o tem#o de e7ecu"o deste c+digo seja su#erior ao
tem#o da #r+7ima interru#"o. Por e7em#o@ se configurarmos a interru#"o do
tem#ori=ador #ara ocorrer a cada (0Rs@ o tem#o de e7ecu"o do c+digo contido nesta
interru#"o n"o de)e ser su#erior a esta 6ase de tem#o.
E7em#o de utii=a"o da interru#"o do tem#ori=ador Festa interru#"o ;
con8ecida como interru#"o de estouro de tem#oH>
/* I+)$**?,12& #$ )-3$* '&3 '>#-A& ,!*! -+'*$3$+)!* ! E!*-KE$% - $ !%)$*!* &
$.)!#& #& ,-+& PTAD0 ! '!#! -+)$**?,12& */
-+)$**?,) E&-# )-3$*9E&-#<=
TPM1SC;TOF = 0 // L-3,! ! @%!A #$ '&+#-12& #$ $.)&?*& #& )$3,&*-0!#&*
PTAD;PTAD0 = PTAD;PTAD0 L 1;
-MM;
B
27 Prof. Gustavo Weber Denardin
7& Con+igurao do ConBersor AnalAgico C (igital
De um modo gera@ os sinais encontrados no mundo rea s"o cont$nuos Fou
ana+gicos@ #ois )ariam no tem#o de forma cont$nuaH@ como@ #or e7em#o> a intensidade
uminosa de um am6iente 5ue se modifica com a distXncia@ a aceera"o de um carro de
corrida@ etc. <s sinais mani#uados #or com#utadores e sistemas em6arcados s"o
digitais@ como #or e7em#o@ uma fai7a de udio ida de um copact dis#.
* con)ers"o ana+gicoAdigita F*,DH ; o #rocesso 5ue #ossi6iita a re#resenta"o
de sinais ana+gicos no mundo digita. Desta forma ; #oss$)e utii=ar os dados e7tra$dos
do mundo rea #ara ccuos ou o#erar seus )aores.
Em gera@ o con)ersor *,D est #resente internamente nos #rocessadores e
controadores de sinais digitais e aguns microcontroadores@ mas tam6;m e7istem
circuitos integrados dedicados a este fim.
Basicamente ; um 6oco 5ue a#resenta #ortas de entrada e sa$da. * entrada
rece6e sinais e;tricos de forma cont$nua e #ossui uma fai7a de tens"o de entrada
m7ima e m$nima. ?os microcontroadores 5ue #ossuem um con)ersor *,D e o#eram na
fai7a de (I@ geramente a fai7a de tens"o aceita sinais e;tricos entre A(I e Y(I.
?a sa$da o sina ; amostrado em um dado inter)ao de tem#o fi7o Fdeterminado
#ea fre5LBncia de amostragemH. Esta amostra dis#oni6ii=a um certo )aor 5ue
re#resenta o sina origina na5uee momento F5uanti=a"oH. *s caracter$sticas de
5uanti=a"o est"o reacionadas Z #recis"o do con)ersor.
* informa"o digita ; diferente de sua forma origina cont$nua em dois as#ectos
fundamentais>
S amostrada #or5ue ; 6aseada em amostragens@ ou seja@ s"o reai=adas
eituras em um inter)ao fi7o de tem#o no sina cont$nuo[
S 5uanti=ada #or5ue ; atri6u$do um )aor #ro#orciona a cada amostra.
* figura a6ai7o deta8a um #ouco mais as trBs eta#as mais im#ortantes do
#rocesso> a a5uisi"o@ a amostragem e o #rocessamento.
?este diagrama de 6ocos@ o sina ana+gico ; ca#turado #eo transdutor FsensorH@
em seguida #assa #or um fitro@ denominado de anti0alias@ a fim de diminuir os ru$dos. *
c8a)e re#resenta a fre5LBncia de amostragem do con)ersor *,D@ entregando ao
#rocessador o sina digitai=ado.
28 Prof. Gustavo Weber Denardin
* fre5LBncia de amostragem ; o nPmero de amostras ca#turadas em um
segundo. Esta fre5LBncia ; dada em 4ertz F4=H e ; considerada ade5uada 5uando se
#ode reconstruir o sina ana+gico ra=o)e a #artir de amostras o6tidas na con)ers"o.
* ta7a de con)ers"o ou fre5LBncia de amostragem ; de suma im#ortXncia #ara o
#rocessamento de sinais reais. Para o6ter uma ta7a de amostragem ade5uada #odeAse
utii=ar os teoremas de N(5uist ou S!annon. Estes teoremas indicam 5ue um sina
cont$nuo 7FtH #ode ser amostrado ade5uadamente se ti)er 6anda imitada@ ou seja@ seu
es#ectro de fre5LBncia n"o #ode conter fre5LBncias acima de um )aor m7imo FF>x C
fre5LBncia m7imaH. *inda@ outro #onto im#ortante ; 5ue a ta7a de amostragem FFa C
3re5LBncia de amostragemH de)e ser esco8ida #ara ser no m$nimo duas )e=es maior 5ue
a fre5LBncia m7ima FF>xH. Por e7em#o@ #ara re#resentar um sina de udio com
fre5LBncias at; 10 J4=@ o con)ersor *,D de)e amostrar esses sinais utii=ando uma
fre5LBncia de amostragem de no m$nimo 20 J8=.
*6ai7o ; a#resentada a cone7"o dos #inos aos canais do con)ersor *,D do
microcontroador MC!/0-*W.0.
29 Prof. Gustavo Weber Denardin
Este microcontroador #ossui um con)ersor ana+gico,digita de 10 6its o#erando
#ea t;cnica de a#ro7ima"o sucessi)a. Este con)ersor ; #rojetado #ara su#ortar at; 2-
entradas ana+gicas se#aradas F*D0A*D2%H. /omente 1- F*D0A*D1(@ *D2. e *D2%H das
#oss$)eis entradas s"o im#ementadas na s;rie de microcontroadores MC!/0-*W. Estas
entradas@ con8ecidas #or canais de *,D@ s"o seecionadas atra);s dos 6its *DC4@
contidos no registrador *DC1/C1.
Este m+duo *,D ; ca#a= de reai=ar con)erses usando o cloc# do 6arramento
do microcontroador@ o cloc# di)idido #or dois@ o cocK ass$ncrono oca F*D*CJH dentro do
con)ersor ou atra);s de um cloc# aternati)o F*2'C2JH.
Caracter$sticas do m+duo *,D>
*goritmo de a#ro7ima"o inear sucessi)a com resou"o de 10 6its
at; 2- entradas ana+gicas
/a$da formatada em 10 ou - 6its com formatado justificado a direita
Con)ers"o sim#es ou cont$nua
'em#o de amostragem configur)e
Configura"o #ara )eocidade ou 6ai7o consumo de energia
Interru#"o associada ao fina de uma con)ers"o
3onte de cocK ass$ncrono #ara o#era"o com 6ai7o n$)e de ru$do
Degistrador de com#ara"o com interru#"o associada
?a figura a6ai7o o diagrama de 6ocos do con)ersor *,D ; a#resentado>
30 Prof. Gustavo Weber Denardin
* seguir os #rinci#ais registradores do m+duo *,D ser"o a#resentados.
*e$istrador - de Controle e Estado do M=dulo A?D (ADCSC)
C$C$ FCon)ersion Com#ete Fla$H A Este 6it de eitura ; e)ado #ara 1 sem#re 5ue uma
con)ers"o ; com#etada 5uando a fun"o de com#ara"o esta desa6iitada F*C3E M 0H. Ouando a fun"o
de com#ara"o esta 8a6iitada F*C3E M 1H@ a fag C<C< ; setada ao fim de uma con)ers"o somente se o
resutado da com#ara"o for )erdadeiro. Este 6it ; im#o 5uando o registrador *DC1/C1 ; escrito ou
5uando o registrador *DC1D2 ; ido.
1 C Con)ers"o com#eta
0 C Con)ers"o n"o com#eta
A#)> FInterrupt Ena+leH
1 C Interru#"o de con)ers"o com#eta 8a6iitada
0 C Interru#"o de con)ers"o com#eta desa6iitada
A(C$ FContinuos Conversion Ena+leH C Este 6it ; utii=ado #ara 8a6iitar o modo de con)ers"o
cont$nua.
1 C Con)ers"o cont$nua iniciai=ada a #artir de uma escrita no registrador *DC1/C1 5uando
o#erando #or gati8o de software. Con)ers"o cont$nua iniciai=ada #or um e)ento de *D4W' 5uando
o#erando #or gati8o de !ardware.
0 C *ti)a uma con)ers"o a#+s uma escrita no registrador *DC1/C1 5uando o#erando #or
gati8o de software. Ouando o#erando #or gati8o de !ardware@ ati)a uma con)ers"o a cada e)ento de
*D4W'.
A(CH FInput C!annel SelectH C S um cam#o de ( 6its 5ue ; utii=ado #ara seecionar o cana de
entrada do con)ersor *,D. Ouanto todos os 6its s"o coocados em 1@ o sistema de con)ers"o #or
a#ro7imaes sucessi)as ; desigado. *6ai7o ; a#resentada a ta6ea de see"o de canais do con)ersor.
31 Prof. Gustavo Weber Denardin
*e$istrador . de Controle e Estado do M=dulo A?D (ADCSC!)
A(ACT FConversion ActiveH A Este 6it indica uma con)ers"o em #rogresso. Este 6it ; e)ado #ara
1 5uando uma con)ers"o ; iniciada e im#o 5uando a con)ers"o ; com#etada ou a6ortada.
1 C Con)ers"o em #rogresso
0 C ?en8uma con)ers"o em #rogresso
A(T"= FConversion ,ri$$er SelectH A Este 6it ; utii=ado #ara seecionar o ti#o de gati8o das
con)erses.
1 C Gati8o #or !ardware seecionado
0 C Gati8o #or software seecionado
AC9) FCopare Function Ena+leH A Este 6it ; utii=ado #ara 8a6iitar a fun"o de com#ara"o.
1 C 3un"o de com#ara"o 8a6iitada
0 C 3un"o de com#ara"o desa6iitada
AC9=T FCopare Function %reater ,!an Ena+leH C Este 6it configura a fun"o #ara dis#arar o
gati8o de com#ara"o.
1 C Gati8o de com#ara"o dis#ara 5uando a entrada ; maior ou igua ao n$)e de com#ara"o
0 C Gati8o de com#ara"o dis#ara 5uando a entrada ; menor do 5ue o n$)e de com#ara"o
*e$istrador de *esultado de Dados Alto do M=dulo A?D (ADCR")
< registrador *DC1D4 cont;m os dois 6its mais significati)os do resutado de
uma con)ers"o de 10 6its. Ouando configurado #ara con)ers"o de - 6its@ am6os *DD- e
*DD! ser"o iguais a =ero. Este registrador ; atuai=ado sem#re 5ue uma con)ers"o ;
com#etada.
32 Prof. Gustavo Weber Denardin
?o modo de con)ers"o em 10 6its@ de)emos er o registrador *DC1D4 antes do
registrador *DC1D2. *inda neste modo@ a#+s a eitura do registrador *DC1D4 de)emos
o6rigatoriamente er o registrador *DC1D2@ #ois caso esta eitura n"o seja reai=ada@ o
resutado das con)erses su6se5Lentes ser #erdido.
*e$istrador de *esultado de Dados 2aixo do M=dulo A?D (ADCRL)
< registrador *DC1D2 cont;m os oito 6its menos significati)os do resutado de
uma con)ers"o de 10 6its e todos os oito 6its de uma con)ers"o de - 6its. Este
registrador ; atuai=ado sem#re 5ue uma con)ers"o ; com#etada@ e7ceto 5uando a
com#ara"o automtica est 8a6iitada e a condi"o de com#ara"o n"o ; satisfeita.
*e$istradores de 1alor de Copara:;o do M=dulo A?D *to e Bai7o (ADCC#" e
ADCC#L)
Estes registradores cont;m a #arte ata e 6ai7a do )aor de 10 6its utii=ado como
)aor de referBncia #ara a fun"o de com#ara"o do m+duo *,D.
*DC1CI4
*DC1CI2
*e$istrador de Confi$ura:;o do M=dulo A?D (ADCC$G)
33 Prof. Gustavo Weber Denardin
Este registrador ; utii=ado #ara seecionar o modo de o#era"o @ a fonte de cloc#@
o fator de di)is"o do cloc# e a configura"o de consumo de energia e tem#o de
amostragem do m+duo *,D.
A(:PC F/ow Power Confi$urationH C Este registrador ; utii=ado #ara otimi=ar o consumo de
energia do m+duo *,D 5uando atas ta7as de amostragem n"o s"o re5uiridas.
1 C Configura"o de 6ai7o consumo de energia
0 C Configura"o #ara ata )eocidade de con)ers"o.
A(#; FCloc# Divide SelectH C Estes 6its seecionam a ta7a de di)is"o utii=ada #eo *,D #ara gerar
o cocK interno *DCJ. * ta6ea a6ai7o a#resenta as #oss$)eis configuraes.
A(:SMP F/on$ Saple ,ie Confi$urationH C Este 6it seeciona entre tem#os de amostragem
ongos ou curtos. Esta configura"o ajusta o #er$odo de amostragem #ara #ermitir 5ue entradas de ata
im#edXncia sejam amostradas de forma mais e7ata ou #ara ma7imi=ar a )eocidade de con)ers"o #ara
entradas de 6ai7a im#edXncia.
1 C 'em#o de amostragem ongo
0 C 'em#o de amostragem curto
M$() FConversion Mode SelectionH C Estes 6its s"o utii=ados #ara seecionar entre o modo de
o#era"o de - ou 10 6its@ de acordo com a ta6ea a6ai7o.
A(#C:< FInput Cloc# SelectH C Estes 6its seecionam a fonte de entrada de cloc# #ara gerar o
cloc# interno do m+duo *,D@ conforme ta6ea a6ai7o>
34 Prof. Gustavo Weber Denardin
*e$istradores de Controle de Pinos -' . e @ do M=dulo A?D (APCTL% APCTL! e
APCTL&)
Estes registradores s"o utii=ados #ara 8a6iitar ou desa6iitar o controe de
entrada , sa$da dos #inos do microcontroador associados aos canais do m+duo
con)ersor *,D 5uando utii=ados como entradas ana+gicas. Ouando o 6it associado ao
controe de um #ino ; definido em 1@ as seguintes condies s"o foradas ao #ino do
microcontroador>
< +uffer de sa$da ; forado #ara um estado de ata im#edXncia
< +uffer de entrada ; desa6iitado. Ema eitura da #orta ir retornar =ero
#ara 5ua5uer #ino em 5ue o +uffer de entrada esti)er desa6iitado.
< pull0up ser desa6iitado.
*PC'21
*PC'22
*PC'23
35 Prof. Gustavo Weber Denardin
()SC"#DE$ 9>C#$>A: ($ MF(:$ AC(
< m+duo *,D ; desa6iitado durante o reset ou 5uando os 6its *DC4 esti)erem
todos em n$)e +gico ato. < m+duo entra em estado de es#era 5uando uma con)ers"o ;
com#etada e outra con)ers"o n"o ; iniciada. Ouando em estado de es#era@ o m+duo
est em seu estado de menor consumo de energia.
< *,D #ode reai=ar uma con)ers"o ana+gica , digita em 5ua5uer um dos canais
seecionados #or software. * tens"o e;trica do cana seecionado ser con)ertida #or um
agoritmo de a#ro7imaes sucessi)as em um resutado digita de 11 6its. ?o modo de -
6its@ a a tens"o do cana seecionado ; con)ertida #eo agoritmo de a#ro7imaes
sucessi)as em um resutado digita de ! 6its.
Ouando a con)ers"o ; com#etada@ o resutado ; coocado nos registradores de
dados F*DC1D4 e *DC1D2H. ?o modo de 10 6its o resutado ; arredondado #ara 10 6its
e coocado nos registradores *DC1D4 e *DC1D2. ?o modo de - 6its o resutado ;
arredondado #ara - 6its e coocado no registrador *DC1D2.
* fla$ de con)ers"o com#eta FC<C<H ; setada 5uando a con)ers"o ;
com#etada e uma interru#"o ; gerada se o 6it de interru#"o #or con)ers"o com#eta
esti)er 8a6iitado F*IE? M 1H.
< m+duo *,D tem a ca#acidade de com#arar automaticamente o resutado da
con)ers"o com o contePdo dos registradores de com#ara"o. * fun"o de com#ara"o ;
8a6iitada setando o 6it *C3E e o#era em conjunto com 5ua5uer modo e configura"o de
con)ers"o.
T)MP$ T$TA: () C$>;)"SE$
< tem#o tota de con)ers"o de#ende do tem#o de amostragem Fdeterminado #eo
6it *D2/MPH@ da fre5LBncia de 6arramento do microcontroador@ do modo de con)ers"o F-
ou 10 6itsH e da fre5LBncia do cocK de con)ers"o Ff
*DCJ
H. De#ois 5ue o m+duo tornaAse
ati)o@ a amostragem das entradas comea. < 6it *D2/MP ; utii=ado #ara seecionar
entre tem#os de amostragem ongos e curtos. Ouando a amostragem ; com#etada@ o
con)ersor ; isoado do cana de entrada e o agoritmo de a#ro7imaes sucessi)as ;
e7ecutado #ara determinar o )aor digita do sina ana+gico.
< resutado da con)ers"o ; transferido #ara os registradores *DC1D4 e *DC1D2
assim 5ue o agoritmo de con)ers"o ; com#etado. /e a fre5LBncia do 6arramento for
menor 5ue a fre5LBncia f
*DCJ
@ tem#os de amostragem #recisos #ara con)erses cont$nuas
36 Prof. Gustavo Weber Denardin
n"o #odem ser garantidas 5uando #er$odos de amostragem curtos est"o 8a6iitados
F*D2/MP M 0H. /e a fre5LBncia de 6arramento for 1/ 11 )e=es menor 5ue a fre5LBncia
f
*DCJ
@ tem#os de amostragem #recisos #ara con)erses cont$nuas n"o #odem ser
garantidos 5uando #er$odos de amostragem ongos est"o 8a6iitados F*D2/MP M 1H.
< tem#o de con)ers"o m7imo #ara diferentes condies #ode ser )isuai=ado na
ta6ea a6ai7o>
< tem#o tota m7imo de con)ers"o ; determinado #ea fonte de cloc# esco8ida
e #eo fator de di)is"o seecionado. * fonte de cloc# ; seecionada #eos 6its *DIC2J e o
fator de di)is"o ; es#ecificado #eos 6its *DII.
Por e7em#o@ no modo de con)ers"o em 10 6its@ com cloc# de 6arramento
seecionado como fonte de entrada de cloc#@ entrada de cloc# di)idida #or 1 e uma
fre5LBncia de 6arramento de 20 M8=@ o tem#o de con)ers"o tota #ara uma con)ers"o
sim#es ;>
!em"ototal =23ciclo# $%CK20 Mhz /15ciclo#de barramento 20Mhz /1=1.4#
?Pmero tota de cico de 6arramento M 2- cicos.
<B/.> * fre5LBncia *DCJ de)e estar entre a f
*DCJ
m$nima e a f
*DCJ
m7ima #ara
atingir as es#ecificaes do m+duo *,D.
37 Prof. Gustavo Weber Denardin
* configura"o do m+duo *,D #ara o e7em#o acima ; a#resentada a seguir.
/* ADC1SC2: ADACT=0,ADTRG=0,ACFE=0,ACFGT=0,??=0,??=0,??=0,??=0 */
ADC1SC2 = 0; /* D$.!/-%-)! & A!)-%8& ,&* hardware $ ! !?)& '&3,!*!12& */
// S$%$'-&+! clock #& /!**!3$+)& '&3& $+)*!#!, @!)&* #$ #-E-.2& ,&* 1
// C&+@-A?*! 3&#& #$ '&+E$*.2& ,!*! 10 /-).
/* ADLPC=0,ADIV1=1,ADIV0=0,ADLSMP=0,MODE1=1,MODE0=0,ADICLK1=0,ADICLK0=0 */
ADC1CFG = 0xG6;
/* ADC1SC1: COCO=0,AIE5=0,ADCO=0,ADC4G=1,ADC43=1,ADC42=1,ADC41=1,ADC40=1 */
ADC1SC1 = 0x1F; /* D$.%-A! & 3>#?%& */
*6ai7o ; a#resentado um e7em#o de fun"o #ara ad5uirir o )aor digita de um
cana es#ec$fico>
7&*# '&+E$*)$9/N)$ '!+!%<
=
7&*# *$)&*+&=0;
ADC1SC1 = '!+!%; // I+-'-! ! '&+E$*.2& #& '!+!%
78-%$ 9:ADC1SC1;COCO<; // E.,$*! ! '&+E$*.2& '&3,%$)!*
*$)&*+& = ADC1R; // A#O?-*$ & E!%&* #! '&+E$*.2&
ADC1SC1 = 0x1F; // D$.%-A! & '&+E$*.&* A/D
*$)?*+ *$)&*+&; // *$)&*+! & E!%&* #-A-)!% !#O?-*-#&
B
CA"ACT)"GST#CAS ($ MF(:$ AC(
*6ai7o s"o a#resentadas as #rinci#ais caracter$sticas do m+duo *,D interno da
s;rie de microcontroadores MC!/0-*W.
38 Prof. Gustavo Weber Denardin
39 Prof. Gustavo Weber Denardin
6& Con+igurao da Porta Serial SC#
* s;rie de microcontroadores MC!/0-*W incui duas interfaces seriais de
comunica"o F/CIH inde#endentes@ 5ue tam6;m s"o con8ecidas #or 'ransmissor ,
Dece#tor Eni)ersa *ss$ncrono Funiversal as(nc!ronous receiver?transitters C E*D'sH.
'i#icamente@ estes sistemas s"o utii=ados #ara conectar #ortas de entrada , sa$da D/232
de um com#utador de uso #essoa FPCH ou NorKstations@ mas tam6;m #odem ser
utii=ados #ara comunicar com outros dis#ositi)os em6arcados.
Este sistema #ossui um m+duo gerador de +aud rate fe7$)e de 13 6its@ 5ue
su#orta uma grande fai7a de #adres de +aud rates at; a ta7a m7ima de 11(@2 K6aud. *
transmiss"o e a rece#"o dentro de um mesmo m+duo /CI utii=a o mesmo +aud rate e
cada m+duo /CI #ossui um gerador de +aud rate se#arado.
< sistema /CI desta s;rie de microcontroadores incui detec"o de ru$dos@
#aridade #or !ardware@ du#o +uffer #ara transmiss"o e rece#"o e sa$da do modo de
es#era #or interru#"o de rece#"o.
* figura a6ai7o a#resenta o diagrama de 6ocos do microcontroador@
demonstrando as cone7es dos m+duos /CI.
40 Prof. Gustavo Weber Denardin
Caracter$sticas dos M+duos /CI>
3ormato #adr"o sem retorno #ara =ero F?D\H@ full0duplex
2uffer du#o #ara transmiss"o e rece#"o com ena+les se#arados.
Baud Date #rogram)e
Interru#es #ara os seguintes e)entos>
'ransmiss"o com#eta e Degistrador de dados de transmiss"o )a=io
Degistrador de dados de rece#"o c8eio
Erro de #aridade@ erro de en5uadramento@ erro #or ru$do e #or
rece#"o e7cedente
Detec"o de estado de es#era
Gera"o e )erifica"o de #aridade #or !ardware
'aman8o de caractere #rogram)e em - 6its ou ! 6its
/ee"o de #oaridade de sa$da da transmiss"o
* figura a6ai7o a#resenta o diagrama de 6ocos da transmiss"o /CI.
41 Prof. Gustavo Weber Denardin
E a seguir ; a#resentado o diagrama de 6ocos da rece#"o /CI.
< m+duo /CI #ossui - registradores de - 6its #ara controar o +aud rate@
seecionar as o#es do m+duo@ retornar condies de funcionamento e #ara dados de
transmiss"o e rece#"o.
* seguir ser"o a#resentados estes registradores com suas descries e
funcionaidades.
42 Prof. Gustavo Weber Denardin
*e$istradores para Sele:;o de 2aud *ate SCI (SC'x(D"% SC'x("L)
Este #ar de registradores controa o fator de di)is"o #ara a gera"o do 6aud rate
/CI. Para atuai=ar a configura"o dos 13 6its de +aud rate F/BD12>/BD0H@ #rimeiro
de)emos escre)er no registrador mais significati)o F/CI7BD4H e de#ois no registrador
menos significati)o F/CI7BD2H. < )aor do registrador mais significati)o n"o ; aterado at;
5ue o menos significati)o seja aterado. *#+s um reset a gera"o de +aud rate ; desa6iita
at; 5ue o transmissor ou rece#tor seja ati)ado #ea #rimeira )e=.
/CI7BD4
/CI7BD2
Estes 13 6its s"o utii=ados como um fator de di)is"o do m+duo de +aud rate@ e
ser"o c8amados de BD. < m+duo gerador de +aud rate ser desa6iitado 5uando BD M 0
#ara redu=ir o consumo de energia. < )aor de BD #ode )ariar de 1 a -1!1. < +aud rate
gerado ; dado #ea e5ua"o a6ai7o>
baud rate=
Clock de arramento
16 x R
ou seja@
R=
Clock de arramento
16 x baud rate
<B/> Dificimente iremos conseguir +aud rates e7atos. De)emos em6rar 5ue
e7iste uma toerXncia de at; 3@(] no +aud rate gerado. Com o intuito de minimi=ar os
erros@ ; interessante e)itar erros maiores 5ue 2].
43 Prof. Gustavo Weber Denardin
*e$istrador - de Controle SCI (SC'xC)
:$$PS F/oop Mode SelectH C /eecionada entre o modo de o#era"o em loop ou modo de
o#era"o norma@ ou seja@ modo full0duplex com 2 #inos.
0 C <#era"o norma@ D7D e '7D usam #inos se#arados
1 C ?o modo loop a sa$da do transmissor ; internamente conectada a entrada do rece#tor
SC#SWA# FSCI Stops in Wait ModeH
0 C < m+duo /CI continua o#erando durante um estado de es#era e #ode ser fonte de uma
interru#"o 5ue acorda o microcontroador.
1 C < m+duo /CI #ara de o#erar 5uando o microcontroador entra em estado de es#era
"S"C F*eceiver Source SelectH C Este 6it n"o tem efeito a menos 5ue o 6it 2<<P/ esteja
definido em 1. Ouando 2<<P/ M 1@ a entrada do rece#tor ; internamente conectada ao #ino '7D e D/DC
determina 5uando esta cone7"o ; tam6;m igada a sa$da do transmissor.
0 C /e 2<<P/ M 1@ seeciona modo de oo# interno e a /CI n"o utii=a os #inos D7D e '7D
1 C Modo de transmiss"o a um fio@ onde '7D ; conectado a sa$da do transmissor e a entrada
do rece#tor.
M FA +its or B +its Mode SelectH
0 C <#era"o ?orma C Start Y - 6its de dados Fmenos significati)o #rimeiroH Y stop
1 C Modo com caractere em ! 6its C Start Y - 6its de dados Y !
o
6it de dados Y stop
WA<) F*eceiver Wa#eup Met!od SelectH
0 C * condi"o #ara retirar o rece#tor de um estado de es#era ser a detec"o de um estado
de re#ouso na in8a entre mensagens.
1 C * condi"o #ara retirar o rece#tor de um estado de es#era ser um n$)e +gico 1 no 6it de
dados mais significati)o em um caractere.
#:T FIdle /ine ,(pe SelectH C Configura o modo 5ue uma in8a em estado de re#ouso ser detectada.
0 C * contagem dos 6its #ara determinar um estado de re#ouso inicia de#ois do 6it de start.
Desta forma o 6it de stop e 5ua5uer outro 6it com n$)e +gico 1 no fina de um caractere conta #ara o
tem#o de um caractere com#eto do re#ouso.
1 C * contagem n"o inicia at; 5ue o tem#o de um 6it de stop ocorra. Desta forma a detec"o do
estado de re#ouso n"o ; afetada #eos dados no Ptimo caractere da mensagem anterior.
P) FParit( Ena+leH C 4a6iita a gera"o e )erifica"o de #aridade #or !ardware. Ouando a #aridade
; 8a6iitada@ o 6it mais significati)o do caractere de dados Foita)o ou nono 6it de dadosH ; tratado como 6it
de #aridade.
0 C /em gera"o ou )erifica"o de #aridade #or !ardware
1 C Paridade 8a6iitada
44 Prof. Gustavo Weber Denardin
PT FParit( ,(peH C Este 6it determina se a #aridade utii=ada ser #ar ou im#ar. Paridade im#ar
significa 5ue o nPmero tota de 1s no caractere de dados@ incuindo o 6it de #aridade@ ser im#ar. Paridade
#ar significa 5ue o nPmero tota de 1s no caractere de dados@ incuindo a #aridade@ ser #ar.
0 C Paridade Par
1 C Paridade Im#ar
*e$istrador . de Controle SCI (SC'xC!)
T#) 8,ransit Interrupt Ena+le < for ,D*E9
0 C Interru#"o #or !ardware #ara a fag 'DDE desa6iita Futii=ar pollin$H
1 C Interru#"o #or !ardware re5uisitada 5uando a fag 'DDE for #ara n$)e +gico 1
TC#) 8,ransission Coplete Interrupt Ena+le < for ,C9
0 C Interru#"o #or !ardware #ara a fag 'C desa6iita Futii=ar #oingH
1 C Interru#"o #or !ardware re5uisitada 5uando a fag 'C for #ara n$)e +gico 1
"#) 8*eceiver Interrupt Ena+le < for *D*F9
0 C Interru#"o #or !ardware #ara a fag DDD3 desa6iita Futii=ar #oingH
1 C Interru#"o #or !ardware re5uisitada 5uando a fag DDD3 for #ara n$)e +gico 1
#:#) 8Idle /ine Interrupt Ena+le9
0 C Interru#"o #or !ardware #ara a fag ID2E desa6iita Futii=ar #oingH
1 C Interru#"o #or !ardware re5uisitada 5uando a fag ID2E for #ara n$)e +gico 1
T) 8,ransitter Ena+le9 < Ouando a transmiss"o /CI est desigada o #ino '7D #assa a ser um
#ino de entrada , sa$da de #ro#+sito gera. Ouando o 6it 'E ; escrito #ara 0@ a transmiss"o continua
controando o #ino '7D at; 5ue todos os dados agendados #ara serem transmitidos terminem antes de
#ermitir 5ue o #ino se re)erta em um #ino de entrada , sa$da de #ro#+sito gera.
0 C 'ransmiss"o desigada
1 C 'ransmiss"o igada
") 8*eceiver Ena+le9 < Ouando a rece#"o /CI est desigada o #ino D7D #assa a ser um #ino de
entrada , sa$da de #ro#+sito gera.
0 C Dece#"o Desigada
1 C Dece#"o igada
"W F*eceiver Wa#eup Control9 C Este 6it #ode ser escrito #ara 1 #ara coocar a rece#"o em
estado de es#era@ onde o rece#tor es#era #ea detec"o automtica de !ardware de uma condi"o #ara
acordar seecionada. * condi"o #ara acordar ; definida #eo 6it de controe W*JE.
0 C <#era"o norma de rece#"o /CI
1 C Dece#tor /CI em stand+( es#erando #or uma condi"o #ara acordar.
45 Prof. Gustavo Weber Denardin
SB< 8Send 2rea#9 A Escre)endo 1 e de#ois um 0 #ara /BJ agenda um caractere de #arada no
fu7o de dados da transmiss"o. Caracteres de #arada adicionais s"o agendados en5uanto o 6it /BJ esti)er
em n$)e +gico ato.
0 C <#era"o de transmiss"o norma
1 C *genda um caractere de #arada #ara ser en)iado
*e$istrador - de Estado do SCI (SC'xS)
Este registrador #ossui - 6its somente de eitura o#erando como fla$s de estado.
Escre)er nestes 6its n"o tem efeito. /e5LBncias es#eciais de software F5ue n"o en)o)em
escre)er neste registradorH s"o usadas #ara im#ar o estado destas fla$s.
T(") F,ransit Data *e$ister Ept( Fla$H C < 6it 'DDE ; e)ado #ara n$)e +gico 1 no reset e
5uando um dado ; transferido do +uffer de transmiss"o de dados #ara o transit s!ifter@ dei7ando es#ao
#ara um no)o caractere no +uffer. Para im#ar o 6it 'DDE de)eAse er o registrador /CI7/1 com 'DDE M 1 e
ent"o escre)er #ara o registrador de dados do m+duo /CI F/CI7DH.
0 C Degistrador de dados de transmiss"o F+ufferH c8eio
1 C Degistrador de dados de transmiss"o F6ufferH )a=io
TC F,ransission Coplete Fla$H C < 6it 'C ; e)ado #ara n$)e +gico 1 no reset e 5uando 'DDE M
1 sem dados@ #reXm6uo ou caractere de #arada sendo transmitido. < 6it 'C ; e)ado #ara n$)e +gico 0
atra);s da eitura do registrador /CI7/1 com 'C M 1 e ent"o reai=ando uma destas trBs #ossi6iidades>
escre)er no registrador /CI7D #ara transmitir no)o dado@ agendar um #reXm6uo aterando 'E de 0 #ara 1
ou agendando um caractere de #arada escre)endo 1 no 6it /BJ no registrador /CI7C2.
0 C 'ransmissor ati)o Fen)iando dados@ um #reXm6uo ou um caractere de #aradaH
1 C 'ransmissor em re#ouso
"("9 F*eceive Data *e$ister Full Fla$H C < 6it DDD3 ; e)ado #ara n$)e +gico 1 5uando um
caractere ; transferido do recei)e s8ifter #ara o registrador de dados de rece#"o F/CI7DH. ?o modo de -
6its@ #ara im#ar o 6it DDD3@ de)emos er o registrador /CI7/1 com DDD3 M 1 e ent"o er o registrador de
dados F/CI7DH. ?o modo de ! 6its@ #ara im#ar o 6it DDD3@ de)emos er o registrador /CI7/1 com DDD3 M
1 e ent"o er os registradores /CI7D e /CI7C3. <s registradores /CI7D e /CI7C3 #odem ser idos em
5ua5uer ordem@ mas a fag s+ ser e)ada #ara n$)e +gico 0 5uando am6os os registradores forem idos.
0 C Degistrador de dados de rece#"o )a=io
1 A Degistrador de dados de rece#"o c8eio
46 Prof. Gustavo Weber Denardin
#(:) FIdle /ine Fla$H C < 6it ID2E ; e)ado #ara n$)e +gico 1 5uando a in8a de rece#"o /CI
#assa #ara um estado de re#ouso #or um #er$odo e5ui)aente ao tem#o de um caractere com#eto de#ois
do #er$odo de ati)idade. Para e)ar o 6it ID2E #ara n$)e +gico 0 de)emos er o registrador /CI7/1 com
ID2E M 1 e ent"o er o registrador de dados F/CI7DH. De#ois de ID2E tornarAse 0@ ee n"o )otar a ser 1 at;
5ue um no)o caractere seja rece6ido e o 6it DDD3 torneAse 1.
0 C 2in8a em estado de re#ouso n"o detectada
1 C 2in8a em estado de re#ouso detectada
$" F*eceiver "nderrun Fla$H C < 6it <D ; e)ado #ara n$)e +gico 1 5uando um no)o caractere
est #ronto #ara ser transferido #ara o registrador de dados de rece#"o F+ufferH@ mas o caractere rece6ido
anteriormente ainda n"o foi ido ainda no registrador /CI7D. ?este caso@ o no)o caractere Fe toda
informa"o de erro associadaH ; #erdido #or5ue n"o 8 oca #ara mo)er este #ara o registrador /CI7D.
Para im#ar o 6it <D de)emos er o registrador /CI7/1 com <D M 1 e ent"o er o registrador de dados
F/CI7DH.
0 C ?"o ocorreu overrun
1 C <correu o)errun na rece#"o Fo no)o dado /CI foi #erdidoH
>9 FNoise Fla$H C * t;cnica de amostragem utii=ada no rece#tor ad5uire sete amostras durante o
6it de start e trBs amostras em cada 6it de dados e stop rece6idos. /e 5ua5uer uma destas amostras for
diferente do resto das amostras dentro do #er$odo de um 6it em um 5uadro@ a fla$ ?3 ir tornarAse 1 ao
mesmo tem#o 5ue a fla$ DDD3 #assar #ara n$)e +gico 1 #ara este caractere. Para im#ar esta fla$
de)emos er o registrador /CI7/1 e ent"o er o registrador de dados /CI F/CI7DH.
0 C ?en8um ru$do detectado
1 C Du$do detectado na rece#"o de um caractere em /CI7D.
9) FFrain$ Error Fla$H C < 6it 3E ; e)ado #ara n$)e +gico 1 ao mesmo tem#o em 5ue a fla$
DDD3 5uando o rece#tor detectar um n$)e +gico 0 onde um 6it de stop for es#erado. Isto sugere 5ue o
rece#tor n"o foi corretamente ain8ado ao en5uadramento do caractere. Para im#ar o 6it 3E de)emos er o
registrador /CI7/1 e ent"o er o registrador de dados F/CI7DH.
0 C ?en8um erro de en5uadramento detectado. Isto n"o garante 5ue o caractere est
correto.
1 C Erro de en5uadramento
P9 FParit( Error Fla$H C < 6it P3 ; e)ado #ara n$)e +gico 1 ao mesmo tem#o 5ue a fla$ DDD3
5uando a #aridade est 8a6iitada FPE M 1H e o 6it de #aridade no caractere rece6ido n"o esti)er de acordo
com o )aor de #aridade es#erado. Para im#ar esta fag de)emos er o registrador /CI7/1 e ent"o er o
registrador de dados F/CI7DH.
0 C /em erro de #aridade
1 C Erro de #aridade detectado
*e$istrador . de Estado do SCI (SC'xS!)
47 Prof. Gustavo Weber Denardin
B"<%8 F2rea# C!aracter /en$!tH C < 6it BDJ13 ; utii=ado #ara seecionar um com#rimento de
caractere de #arada mais ongo. * detec"o de erros de en5uadramento n"o ; afetada #eo estado deste
6it.
0 C < caractere de #arada ter com#rimento de 10 6its F11 se M M 1H
1 C < caractere de #arada ter com#rimento de 13 6its F1& se M M 1H
"A9 F*eceiver Active Fla$H C < 6it D*3 ; e)ado #ara n$)e +gico 1 5uando o rece#tor /CI detecta
o in$cio de um 6it de start )ido. Este 6it ; e)ado #ara n$)e +gico 0 automaticamente 5uando o rece#tor
detecta a in8a em estado de re#ouso. Esta fla$ de estado #ode ser utii=ada #ara )erificar 5uando um
caractere /CI est sendo rece6ido antes de coocar o microcontroador no modo de stop.
0 C Dece#tor /CI em re#ouso@ es#erando um 6it de start
1 C Dece#tor /CI ati)o Fentrada D7D n"o est em re#ousoH
*e$istrador @ de Controle SCI (SC'xC&)
"8 FNint! Data 2it for *eceiverH C Ouando o m+duo /CI ; configurado #ara ! 6its de dados FM M 1H@
D- #ode ser )isto como o nono 6it de dados rece6ido a es5uerda do 6it mais significati)o do +uffer de dados
no registrador /CI7D. Ouando endo dados de ! 6its@ tanto o 6it D- 5uanto o registrador /CI7D de)em ser
idos #ara com#etar a se5LBncia automtica de im#e=a da fag DDD3.
T8 FNint! Data 2it for ,ransitterH A Ouando o m+duo /CI ; configurado #ara ! 6its de dados FM M
1H@ '- #ode ser )isto como o nono 6it de dados a es5uerda do 6it mais significati)o do +uffer de dados no
registrador /CI7D. Ouando escre)endo dados de ! 6its@ o )aor de ! 6its inteiro ; transferido #ara o s!ift
re$ister de#ois 5ue o registrador /CI7D ; escrito. Ent"o o 6it '- de)e ser escrito Fse ee #recisa ser aterado
de seu Ptimo )aorH antes do registrador /CI7D ser escrito. /e o 6it '- n"o #recisar ser aterado F#or
e7em#o@ 5uando for utii=ado #ara gerar #aridade #ar ou im#arH@ este n"o necessitar ser escrito a cada )e=
5ue o registrador /CI7D for escrito.
TH(#" F,xD Pin Direction in Sin$le0Wire ModeH C Ouando o m+duo /CI ; configurado #ara
o#era"o 8afAdu#e7 F2<<P/ M D/DC M 1H@ este 6it determina a dire"o dos dados no #ino '7D.
0 C < #ino '7D ; um entrada no modo com 1 fio
1 C < #ino '7D ; um sa$da no modo com 1 fio
TH#>; F,ransit Data InversionH C Coocando este 6it em n$)e +gico ato re)erte a #oaridade da
sa$da dos dados transmitidos.
0 C Dados transmitidos n"o in)ertidos
1 C Dados transmitidos in)ertidos
48 Prof. Gustavo Weber Denardin
$"#) F)verrun Interrupt Ena+leH C Este 6it 8a6iita a fla$ de overrun F<DH gerar uma re5uisi"o de
interru#"o de !ardware.
0 C Interru#"o #ea fla$ <D desa6iitada Futii=ar pollin$H
1 C Interru#"o de 8ardNare re5uisitada 5uando <D M 1
>)#) FNoise Error Interrupt Ena+leH A Este 6it 8a6iita a fla$ de ru$do F?3H gerar uma re5uisi"o de
interru#"o de !ardware.
0 C Interru#"o #ea fla$ ?3 desa6iitada Futii=ar pollin$H
1 C Interru#"o de 8ardNare re5uisitada 5uando ?3 M 1
9)#) FFrain$ Error Interrupt Ena+leH A Este 6it 8a6iita 5ue a fla$ de erro de 5uadro F3EH gere uma
re5uisi"o de interru#"o de !ardware.
0 C Interru#"o #ea fla$ 3E desa6iitada Futii=ar pollin$H
1 C Interru#"o de 8ardNare re5uisitada 5uando 3E M 1
P)#) FParit( Error Interrupt Ena+leH A Este 6it 8a6iita a fla$ de erro de #aridade FP3H gerar uma
re5uisi"o de interru#"o de !ardware.
0 C Interru#"o #ea fla$ P3 desa6iitada Futii=ar pollin$H
1 C Interru#"o de 8ardNare re5uisitada 5uando P3 M 1
*e$istrador de Dados SCI (SC'xD)
Este registrador ; na )erdade se#arado em dois registradores. * eitura deste
registrador retorna o contePdo do +uffer Fsomente de eituraH de rece#"o de dados. <
)aor escrito neste registrador )ai #ara o +uffer Fescrita somenteH de transmiss"o de
dados. 2er e escre)er neste registrador tam6;m en)o)e um mecanismo de im#e=a
automtica das fla$s de estado do m+duo /CI.
* seguir ; a#resentado uma sugest"o de configura"o do m+duo /CI 1@
considerando os seguintes #arXmetros> CocK de 6arramento igua a 20M8=@ #aridade #ar@
! 6its de taman8o de caractere Fde)ido a #aridadeH@ interru#"o de rece#"o e interru#"o
de erros ati)a e +aud rate (%.00.
// C&+@-A?*!12& #! P&*)! S$*-!%
/* SCI1C1: LOOPS=0,SCISAI=0,RSRC=0,M=1,AKE=0,ILT=0,PE=1,PT=0 */
// C B-). '&3 ,!*-#!#$ ,!*
SCI1C1 = 0x12; /* C&+@-A?*$ )8$ SCI */
49 Prof. Gustavo Weber Denardin
/* SCI1C3: R6=0,T6=0,TPDIR=0,TPI5V=0,ORIE=0,5EIE=0,FEIE=0,PEIE=0 */
// D$.!/-%-)! !. -+)$**?,1Q$. #$ $**&
SCI1C3 = 0x00;

/* SCI1S2: ??=0,??=0,??=0,??=0,??=0,BRK13=0,??=0,RAF=0 */
// I+-'-!%-0!12& #& *$A-.)*!#&* #$ $.)!#& 2 %-3,!#& !. @%!A.
SCI1S2 = 0x00;
/* SCI1C2: TIE=0,TCIE=0,RIE=0,ILIE=0,TE=0,RE=0,RJ=0,SBK=0 */
//
SCI1C2 = 0x00; /* D$.!/-%-)! )&#!. !. -+)$**?,1Q$. */

// 0xG1 = 1C200 /!?#.
// 0x20 = 36G00 /!?#.
// 0x1D = 5FD00 /!?#.
// C&+@-A?*! & B!?# R!)$ ,!*! 5FD00
SCI1BD4 = 0x00;
SCI1BDL = 0x1D;
/* SCI1C3: ORIE=1,5EIE=1,FEIE=1,PEIE=1 */
// D!#&. #$ )*!+.3-..2& +2& -+E$*)-#&.
// 4!/-%-)! -+)$**?,12& #$ $**& #$: &E$**?+, *?"#&, $+O?!#*!3$+)& $ ,!*-#!#$
SCI1C3 R= 0x0F; /* 4!/-%-)! -+)$**?,1Q$. #$ $**& */
// 4!/-%-)! )*!+.3-..2& $ *$'$,12&S 4!/-%-)! -+)$**?,12& #$ *$'$,12&
// SCI1C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=1,RE=1,RJ=0,SBK=0
SCI1C2 = 0x2C;
*6ai7o s"o sugeridos e7em#os 6sicos de c+digos #ara as interru#es do
m+duo /CI@ 6em como e7em#os de funes #ara transferBncia de dados /CI.
<B/> Estes c+digos consideram a utii=a"o de caractere com ! 6its utii=ando #aridade.
I?'EDDEP^_< DE 'D*?/MI//_< D< M`DE2< /CI>
-+)$**?,) E&-# .$*-!%;)x9E&-#<=
/* L$-)?*! #& *$A-.)*!#&* SCI1S1 ,!*! !+!%-.!* & $.)!#& #! )*!+.3-..2& */
9E&-#<SCI1S1;
/* L$-)?*! #& *$A-.)*!#&* SCI1C3 ,!*! %-3,!* & /-) #$ ,!*-#!#$ */
9E&-#<SCI1C3;
B
I?'EDDEP^_< DE DECEP^_< D< M`DE2< /CI>
-+)$**?,) E&-# .$*-!%;*x9E&-#<=
/* L$-)?*! #& *$A-.)*!#&* SCI1S1 ,!*! !+!%-.!* & $.)!#& #! )*!+.3-..2& */
9E&-#<SCI1S1;
/* L$-)?*! #& *$A-.)*!#&* SCI1C3 ,!*! %-3,!* & /-) #$ ,!*-#!#$ */
9E&-#<SCI1C3;

// E!%&* H ?3! E!*-KE$% #& )-,& /-) #$'%!*!#! '&3& A%&/!%
E!%&* = SCI1D; /* L$-)?*! #&. #!#&. *$'$/-#&. */
B
50 Prof. Gustavo Weber Denardin
I?'EDDEP^_< DE EDD</ D< M`DE2< /CI>
-+)$**?,) E&-# .$*-!%;$**&9E&-#<=
/* L$-)?*! #& *$A-.)*!#&* SCI1S1 ,!*! !+!%-.!* & $.)!#& #! )*!+.3-..2& */
9E&-#<SCI1S1;
/* L$-)?*! #& *$A-.)*!#&* SCI1C3 ,!*! %-3,!* & /-) #$ ,!*-#!#$ */
9E&-#<SCI1C3;

// A ,*>x-3! !12& #$,$+#$ #& )-,& #$ $**&
// D$E$3&. !+!%-.!* & $**& &'&**-#& $ )&3!* ?3! #!. !)-)?#$. !/!-x&
// L$-)?*! #& *$A-.)*!#&* SCI1D ,!*! %-3,!* &. -+#-'!)-E&. #$ $**&S
9E&-#<SCI1D;
// E.'*-)! +& *$A-.)*!#&* SCI1D ,!*! %-3,!* &. -+#-'!)-E&. #$ $**&S
SCI1D = 0;
B
3E?^_< P*D* 'D*?/MI'ID EM C*D*C'EDE II* /CI>
E&-# S$*-!%;E+E-!;C!*!')$*9/N)$ '!*!')$*<
=
// E.,$*! & @-3 #! )*!+.3-..2& #& '!*!')$*$ !+)$*-&* ,!*! )*!+.3-)-* & ,*>x-3&
78-%$ 9:SCI1S1;TC<;
/* A*3!0$+! & '!*!')$*$ ! .$* )*!+.3-)-#& +& *$A-.)*!#&* #$ )*!+.3-..2& */
SCI1D = '!*!')$*;
B
3E?^_< P*D* 'D*?/MI'ID EM* /'DI?G II* /CI>
E&-# S$*-!%;E+E-!;F*!.$9'8!* *.)*-+A<
=
78-%$9*.)*-+A<=
// E.,$*! & @-3 #! )*!+.3-..2& #& '!*!')$*$ !+)$*-&* ,!*! )*!+.3-)-* & ,*>x-3&
78-%$ 9:SCI1S1;TC<;
/* A*3!0$+! & '!*!')$*$ ! .$* )*!+.3-)-#& +& *$A-.)*!#&* #$ )*!+.3-..2& */
SCI1D = *.)*-+A;
// I+'*$3$+)! & ,&+)$-*& #! .)*-+A ! .$* )*!+.3-)-#!
.)*-+AMM;
B
B
51 Prof. Gustavo Weber Denardin
I& Con+igurao do MAdulo PWM
< m+duo de gera"o de Modua"o #or 2argura de Puso FPWMH ; um recurso
muito utii=ado #ara o controe de motores e con)ersores CCACC em gera. * #artir dee ;
#oss$)e gerar um sina ana+gico@ a#esar de sua sa$da ser um sina digita 5ue assume
a#enas os n$)eis +gicos ato FumH e 6ai7o F=eroH. * sa$da gerada ; uma onda 5uadrada@
com fre5LBncia constante e argura de #uso )ari)e. Estes conceitos est"o diretamente
reacionados com o #er$odo fi7o e o cico ati)o Fdut( c(cleH res#ecti)amente.
* fre5LBncia de uma onda #ode ser definida como a 5uantidade de )e=es 5ue ea
se re#ete no tem#o. E o #er$odo ; cada #edao dessa onda 5ue ir se re#etir.
< dut( c(cle define o tem#o de sina ati)o Fn$)e +gico atoH em um #er$odo fi7o.
*ssim@ 5uando temos um dut( c(cle de 100]@ temos n$)e +gico ato #or todo o #er$odo.
Em dut( c(cle de (0] define a metade do #er$odo em n$)e +gico ato e a outra metade
em n$)e +gico 6ai7o. /e uma sa$da ''2 for utii=ada@ a tens"o m;dia de sa$da em um
dut( c(cle de (0] ser 2@(I. Estes conceitos s"o demonstrados na figura a6ai7o.
De)emos em6rar 5ue o PWM nem sem#re #ossui estado inicia #ositi)o@ #odendo iniciar
o #er$odo com n$)e +gico 6ai7o.
3igura C /inais moduados #or 2argura de Puso
* 6ase de tem#o dos m+duos PWM normamente ; im#ementada de duas
formas. Ema destas formas ; utii=ando o #r+#rio m+duo tem#ori=ador como 6ase de
tem#o no PWM@ ou seja@ se o tem#ori=ador est configurado #ara um #er$odo de 1ms@ a
52 Prof. Gustavo Weber Denardin
fre5LBncia do PWM ser de 1 J4=. * outra forma ; utii=ando um tem#ori=ador es#ec$fico
#ara o PWM@ 5ue de)e ser configurado #ara a fre5LBncia desejada. *inda@ um
tem#ori=ador #ode ser utii=ado como 6ase de tem#o de )rias sa$das PWM@ ou seja@
)rios PWM com a mesma fre5LBncia@ mas arguras de #uso diferentes.
* figura a seguir ir e7em#ificar o funcionamento de um PWM em um
microcontroador onde o registrador P'PED #ossui o )aor referente ao #er$odo do PWM
e os registradores PWM14 e PWM24 re#resentam dois canais de sa$da PWM.
/inais PWM com mesmo #er$odo e argura de #uso diferentes.
Para e7em#ificar a configura"o de um m+duo PWM ser utii=ado no)amente o
microcontroador MC!/0-*W.0. Este microcontroador utii=a o tem#ori=ador Finterru#"o
de estouro de tem#oH como 6ase de tem#o #ara o #er$odo do PWM. Desta forma@ #ara
configurar a fre5LBncia do PWM de)eAse utii=ar a mesma metodoogia adotada #ara o
ccuo dos )aores dos registradores 5ue controam a interru#"o de estouro de tem#o.
?este e7em#o ser configurado um PWM de 20 J4= com argura de #uso inicia do cico
ati)o de &0] e cocK de 6arramento em 20M8=.
Per$odo da 6ase de tem#o do re+gio>
Perodo=
1
2010
6

=5010
9
Iaor de m+duo de tem#o #ara (0Rs>
Mdulo=
5010
6
5010
9

=1000
53 Prof. Gustavo Weber Denardin
Estando o m+duo da 6ase de tem#o do PWM configurado nos registradores
'PM7/C e 'PM7M<D4>'PM7M<D2 Fconforme se"o 5ue trata so6re interru#"o de
estouro de tem#oH@ de)eAse #artir #ara a configura"o da argura do #uso@ do n$)e do
cico inicia e do modo de o#era"o do PWM.
* seguir iremos a#resentar agumas caracter$sticas do m+duo PWM deste
microcontroador@ 6em como os registradores de configura"o dos canais PWM@ de modo
a #odermos continuar com a configura"o do e7em#o de PWM a#resentado acima.
* s;rie de microcontroadores MC!/0-*W incui dois m+duos tem#ori=adores ,
PWM F'PMH 5ue su#ortam as funes tradicionais de ca#tura de entrada@ com#ara"o de
sa$da e PWM ain8ados #ea 6orda com +uffer em cada cana. Em 6it de controe no
registrador de controe de cada m+duo 'PM configura todos os canais da5uee m+duo
#ara o#erar como PWM ain8ado #ea 6orda ou ain8ado ao centro. Em cada um destes 2
m+duos 'PM as funes de tem#o s"o 6aseadas em um contador de 1. 6its com
caracter$sticas de #r;Aescaa e m+duo #ara controar a fre5LBncia e a escaa F#er$odo
entre estouros de tem#oH da referBncia de tem#o Fj )isto na se"o so6re interru#"o de
estouro de tem#oH. Este sistema de tem#o ; a#ic)e a uma grande gama de a#icaes
de controe e@ a ca#acidade de gerar PWMs ain8ados ao centro estende estes cam#os
de a#ica"o #ara controe de motores.
CA"ACT)"GST#CAS ($S MF(:$S TPM
< sistema tem#ori=ador na s;rie de microcontroadores MC!/0-*W incui um
'PM1 com . canais e um 'PM2 se#arado com 2 canais. *s #rinci#ais caracter$sticas do
sistema tem#ori=ador )incuadas a gera"o de PWMs s"o>
'ota de - canais
Cada cana #ode ser configurado #ara ca#tura de entrada@ com#ara"o de
sa$da ou PWM com +uffer ain8ado na 6orda.
Poaridade das sa$das PWM configur)eis
Cada m+duo 'PM #ode ser configurado #ara gera"o de PWMs ain8ados
ao centro FCPWMH em todos os canais
<#era"o de contagem de 1. 6its em free0runnin$ ou up ? down FCPWMH
Ema interru#"o #or cana mais uma interru#"o de estouro de tem#o #or
m+duo 'PM.
54 Prof. Gustavo Weber Denardin
* seguir o diagrama de 6ocos do microcontroador com os m+duos 'PM em
e)idencia ; a#resentado.
E ainda temos o diagrama de 6ocos dos m+duos 'PM.
55 Prof. Gustavo Weber Denardin
< com#onente centra do m+duo 'PM ; um contador de 1. 6its 5ue #ode o#erar
como contador free0runnin$@ contador de m+duo ou contador up ? down 5uando o m+duo
'PM esti)er configurado #ara PWM ain8ado ao centro. 'odos os canais #odem ser
#rogramados inde#endentemente.
De)emos em6rar 5ue os registradores 'PM7/C@ 'PM7C?'4> 'PM7C?'2 e
'PM7M<D4>'PM7M<D2 j foram a#resentados na se"o so6re interru#"o de estouro
de tem#o. Desta forma iremos anaisar a seguir os outros registradores de configura"o
dos m+duos 'PM.
*e$istrador de Estado e Controle do Canal n do ,PM x (TPMxCnSC)
< registrador 'PM7Cn/C cont;m a fla$ de estado da interru#"o e os 6its de
controe 5ue s"o utii=ados #ara configurar a 8a6iita"o da interru#"o@ configurar o cana
e definir a fun"o do #ino associado ao cana.
56 Prof. Gustavo Weber Denardin
* seguir ser"o a#resentados os 6its de controe e suas funes>
CHn9 FC8anne n 3agH C Ouando o cana n ; configurado #ara PWM ain8ado a 6orda ou
com#ara"o de sa$da o 6it C4n3 ser e)ado #ara n$)e +gico 1 5uando o )aor no registrador do contador
'PM for igua ao contido no registrador de )aor do cana n do mesmo 'PM. Esta fla$ ; raramente utii=ada
com PWMs ain8ados ao centro@ #or5ue ser e)ado a n$)e +gico 1 sem#re 5ue o contador atingir o )aor
do cana@ 5ue corres#onde a am6as as 6ordas do #er$odo de dut( c(cle ati)o.
Ema interru#"o ; re5uisitada 5uando a fla$ C4n3 #assa #ara n$)e +gico 1 e a interru#"o do
cana esti)er 8a6iitada FC8nIE M 1H. * fla$ C4n3 ; im#a atra);s da eitura do registrador 'PM7Cn/C
en5uanto C4n3 M 1 e ent"o escre)endo 0 #ara o 6it C4n3. /e outra interru#"o ocorrer antes de 5ue a
se5LBncia #ara im#ar a fla$ seja com#etada@ a se5LBncia de)er ser reiniciada. Caso contrrio@ a fla$
C8n3 #ermanecer em n$)e +gico 1 mesmo de#ois 5ue a se5LBncia #ara im#ar a fla$ esteja com#eta.
Desta forma nen8uma re5uisi"o de interru#"o ser #erdida #ea #rocesso #ara im#ar um fla$ anterior.
$BSJ ;eri+i1ue 1ue a Knica di+erena entre o modo de comparao de sa?da e o modo PWM
alin/ado a 4orda L 1ue em modo PWM ocorrer- uma inBerso na sa?da do canal 1uando ocorrer o
estouro de tempo do TPM associadoM ou se'aM 1uando TPM6C>T 5 TPM6M$(&
0 C ?en8um e)ento de com#ara"o de sa$da ocorreu no cana F'PM7C?' n"o atingiu ainda
o )aor contido em 'PM7CnIH
1 C <correu um e)ento de com#ara"o de sa$da F'PM7C?' M 'PM7CnIH
CHn#) FC!annel n Interrupt Ena+leH C Este 6it 8a6iita a interru#"o associada ao cana n.
0 C De5uisi"o de interru#"o do cana n desa6iita Futii=ar pollin$H
1 C De5uisi"o de interru#"o do cana n 8a6iitada
MSnB FMode Select 2 for ,PM C!annel nH C Ouando CPWM/ M 0 e MsnB M 1 o cana n ser
configurado #ara PWM ain8ado a 6orda. Ieja outros modos na ta6ea a6ai7o.
MSnA FMode Select A for ,PM C!annel nH C Ieja ta6ea a6ai7o.
):SnNBJAO 8Ed$e ? /evel Select 2its9 C Estes 6its seecionam a #oaridade da sa$da do PWM@
conforme ta6ea a seguir.
* seguir ; a#resentada a ta6ea com as #oss$)eis configuraes #ara o cana n.
57 Prof. Gustavo Weber Denardin
CPWMS MSnBJMSnA ):SnBJ):SnA Modo Con+igurao
H HH 00
Pino n"o utii=ado como cana 'PM. Etii=ado como
entrada #ara cocK e7terno do 'PM ou re)ertido como
#ino de entrada , sa$da de #ro#+sito gera.
0
00
0%
Ca#tura de Entrada
Ca#tura de entrada somente na
6orda de su6ida
%0 Ca#tura de entrada somente na
6orda de descida
%% Ca#tura de entrada em am6as as
6ordas
0%
00
Com#ara"o de
/a$da
/omente com#ara"o #or softNare
0% In)ers"o da sa$da na com#ara"o
%0 /a$da #ara n$)e +gico 0 na
com#ara"o
%% /a$da #ara n$)e +gico 1 na
com#ara"o
%H
%0
PWM ain8ado a
6orda
Pusos iniciando em n$)e +gico
ato Fsa$da do PWM #assa #ara
n$)e +gico 0 na com#ara"oH
H% Pusos iniciando em n$)e +gico
6ai7o Fsa$da do PWM #assa #ara
n$)e +gico 1 na com#ara"oH
% HH
%0
PWM ain8ado ao
centro
Pusos iniciando em n$)e +gico
ato Fsa$da do PWM #assa #ara
n$)e +gico 0 na com#ara"o da
contagem upH
H% Pusos iniciando em n$)e +gico
6ai7o Fsa$da do PWM #assa #ara
n$)e +gico 1 na com#ara"o da
contagem upH
'i#icamente um #rograma de)e im#ar a fla$ de estado FC4n3H de#ois de aterar o
modo de o#era"o do cana e antes de 8a6iitar a interru#"o do cana #ara e)itar
5ua5uer com#ortamento ines#erado.
*e$istradores de 1alor do Canal n do ,PM x PTPM6Cn;HJ TPM6Cn;:Q
Estes registradores de eitura , escrita cont;m o )aor #ara a com#ara"o de
sa$da 5uando o#erando em modo PWM ou com#ara"o de sa$da.
*inda@ nos modos de com#ara"o de sa$da ou PWM@ escre)er #ara os 61tes
'PM7CnI4 ou 'PM7CnI2 tra)a o )aor deste em um 6uffer. Ouando am6os os 61tes
forem escritos estes ser"o transferidos como um )aor coerente de 1. 6its #ara os
registradores de )aor do cana.
58 Prof. Gustavo Weber Denardin
()SC"#DE$ 9>C#$>A: ($ MF(:$ PWM
'odas as funes do m+duo 'PM s"o associadas a um contador #rinci#a de 1.
6its 5ue #ermite uma fe7i6iidade na see"o de fonte de cloc# e no di)isor de #r;Aescaa.
Em registrador de m+duo de 1. 6its tam6;m ; associado com o contador #rinci#a do
m+duo 'PM. Cada cana 'PM ; o#cionamente associado com um #ino do
microcontroador e uma fun"o de interru#"o mascar)e. < m+duo 'PM #ossui
ca#acidades de gera"o de PWMs ain8as ao centro controadas #eo 6it de controe
CPWM/ do registrador 'PM7/C. Ouando CPWM/ ; e)ado #ara n$)e +gico 1@ o
contador 'PM7C?' se atera #ara modo de contagem up ? down e todos os canais do
m+duo 'PM associado #assam a o#erar como canais de PWM ain8ados ao centro.
Ouando CPWM/ M 0@ cada cana #ode inde#endentemente ser configurado #ara o#erar
em modo de ca#tura de entrada@ com#ara"o de sa$da ou PWM com +uffer ain8ado a
6orda.
Ema fla$ de interru#"o e sina de 8a6iita"o Fena+le9 s"o associados com o
contador #rinci#a de 1. 6its. * fla$ de estouro de tem#o F'<3H ; uma indica"o acess$)e
#or softNare de 5ue a contagem c8egou ao seu fim. < sina de 8a6iita"o seeciona entre
um pollin$ #or software F'<IE M 0H onde n"o 8 gera"o de interru#"o #or !ardware ou
o#era"o acionada #or interru#"o F'<IE M 1H onde uma interru#"o #or !ardware ;
automaticamente gerada 5uando a fla$ '<3 for #ara n$)e +gico 1.
*s condies 5ue e)am '<3 #ara n$)e +gico 1 de#endem do modo do contador
Fcontador up ou up ? downH. Com o contador no modo u#@ o contador #rinci#a ir contar
de 070000 at; 073333 e retornar #ara 070000 na #r+7ima contagem. < 6it '<3 #assa
#ara n$)e +gico 1 na transi"o de 073333 #ara 070000. Ouando um )aor imite de
m+duo e7iste F'PM7M<D diferente de 070000H@ o 6it '<3 #assa #ara n$)e +gico 1 na
transi"o do )aor de m+duo #ara 070000.
59 Prof. Gustavo Weber Denardin
Ouando o contador #rinci#a est o#erando em modo up ? down@ a fag '<3 #assa
#ara n$)e +gico 1 5uando a contagem troca de dire"o@ na transi"o do )aor de m+duo
#ara a contagem regressi)a. Isto corres#onde ao fim do #er$odo do PWM Fo )aor de
contagem 070000 corres#onde ao centro do #er$odoH.
< contador #rinci#a #ode ser reiniciado manuamente a 5ua5uer momento #ea
escrita de 5ua5uer )aor )aor em um dos registradores do contador F'PM7C?'4 ou
'PM7C?'2H.
PWM A:#>HA($ >A B$"(A
Este ti#o de sa$da PWM utii=a o contador o#erando em modo #rogressi)o
FCPWM/ M 0H e #ode ser utii=ado 5uando outros canais no mesmo m+duo 'PM s"o
configurados #ara ca#tura de entrada ou com#ara"o de sa$da. < #er$odo do sina PWM
; determinado #eo )aor dos registradores de m+duo F'PM7M<D4> 'PM7M<D2H. <
cico de tra6a8o Fdut( c(cleH ; determinado #eo contePdo dos registradores de )aor do
cana F'PM7CnI4> 'PM7CnI2H. * #oaridade do sina PWM ; determinada #eo 6it de
controe E2/n*. Casos de cicos de tra6a8o de 0 e 100] s"o #oss$)eis.
Como ; demonstrado na figura a6ai7o@ o )aor da com#ara"o de sa$da no
registrador de cana 'PM determina a argura de #uso Fdut( c(cleH do sina PWM. <
tem#o entre o estouro de tem#o do m+duo F'PM7C?' M 'PM7M<DH e a com#ara"o de
sa$da ; a argura do #uso. /e E2/n* M 0@ o e)ento de estouro de tem#o ir forar o sina
do PWM #ara n$)e +gico ato e a com#ara"o de sa$da ir forar o sina do PWM #ara
n$)e +gico 6ai7o. /e E2/n* M 1@ o e)ento de estouro de tem#o ir forar o sina do PWM
#ara n$)e +gico 6ai7o e a com#ara"o de sa$da ir forar o sina do PWM #ara n$)e
+gico ato.
Ouando o registrador de )aor do cana F'PM7CnI4>'PM7CnI2H for escrito #ara
070000@ o cico ati)o #assar a ser 0]. *o configurar o registrador de )aor do cana #ara
)aores maiores do 5ue o registrador de m+duo F'PM7M<D4>'PM7M<D2H o cico ati)o
#assar #ara 100].
60 Prof. Gustavo Weber Denardin
De)ido a ar5uitetura de - 6its dos microcontroadores da fam$ia 4C/0- as
configuraes dos registradores de )aor do cana s"o #rotegidas #or +uffers #ara garantir
atuai=aes coerentes de 1. 6its@ 6em como e)itar arguras de #uso ines#eradas.
?o modo PWM com ain8amento na 6orda atuai=aes nos registradores
'PM7CnI4 e 'PM7CnI2 s+ ser"o #assadas #ara os mesmos a#+s am6os estarem
escritos e o )aor do contador #rinci#a estar em 070000. < no)o dut( c(cle n"o ter efeito
at; 5ue comece um no)o #er$odo.
PWM A:#>HA($ A$ C)>T"$
Este ti#o de sa$da PWM utii=a o contador #rinci#a no modo up ? down
FCPWM/M1H. < )aor de com#ara"o de sa$da do cana F 'PM7CnI4>'PM7CnI2H
determina a argura de #uso do sina PWM e o #er$odo ; determinado #eo caor contido
nos registradores de m+duo F'PM7M<D4> 'PM7M<D2H. <s registradores de m+duo
de)em ser restringidos a )aores entre 070001 at; 07%333 #or5ue )aores fora deste fai7a
#ode #rodu=ir resutados am6$guos. < 6it E2/n* ir determinar a #oaridade de sa$da do
PWM ain8ado ao centro.
Lar&ura de Pul#o=2!PMxCn'h( !PMxCn'L
Per)odo=2!PMxM*%+ (!PMxM*%L "ara ,alore# de !PMxM*%entre 0x0000e0x7FFF
/e os registradores de )aor do cana F'PM7CnI4>'PM7CnI2H forem
configurados #ara =ero ou )aores negati)os F6it 1( em n$)e +gico 1H@ o cico ati)o do
PWM ser 0]. /e estes registradores ti)erem )aor #ositi)o F6it 1( em n$)e +gico 0H e
maior do 5ue o )aor configurado de m+duo F'PM7M<DH@ o cico ati)o do PWM ser
100]@ #or5ue a com#ara"o de cico ati)o n"o ocorrer. Isto im#ica em uma fai7a Pti
#ara o #er$odo configurado nos registradores de m+duo entre 070001 e 07%33E F07%333
se a gera"o de cicos ati)os de 100] n"o ; necessriaH. Esta n"o ; uma imita"o
significati)a@ #ois o #er$odo resutante ; muito maior do 5ue os re5ueridos em a#icaes
normais.
<s registradores 'PM7M<D4> 'PM7M<D2 M 070000 ; um caso es#ecia 5ue n"o
de)e ser utii=ado com o PWM ain8ado ao centro. /e CPWM/ M 1 tornaAse o6rigat+rio
utii=ar um )aor )ido #ara os registradores de m+duo F)aores diferentes de 070000H
#ara 5ue #ossa ocorrer a atera"o de dire"o de contagem #rogressi)a #ara contagem
regressi)a.
61 Prof. Gustavo Weber Denardin
* figura a seguir a#resenta o )aor de com#ara"o de sa$da nos registradores de
cana do m+duo 'PM Fmuti#icado #or 2H@ 5ue determina a argura de #uso do sina de
PWM ain8ado ao centro.
< sina de sa$da do PWM ain8ado ao centro ser forado #ara n$)e +gico 0
5uando ocorrer um e)ento de com#ara"o de sa$da F'PM7C?' M 'PM7M<DH se
E2/n*M0 e o contador esti)er o#erando em contagem #rogressi)a. /e o contador esti)er
o#erando em modo regressi)o nestas condies@ o sina de sa$da do PWM ser forado
#ara n$)e +gico ato. < contador o#er em modo #rogressi)o at; 5ue atinja o )aor
configurado nos registradores de m+duo F'PM7M<D4>'PM7M<D2H. Ent"o o contador
#assa a o#erar em modo regressi)o at; 5ue atinja 070000. Este com#ortamento fa= com
5ue o #er$odo seja igua a duas )e=es o )aor configurado nos registradores de m+duo.
PWM ain8ados ao centro ti#icamente #rodu=em menos ru$do do 5ue PWM
ain8ados a 6orda #or5ue ocorrem menos transies nos #inos de sa$da ain8adas com a
mesma 6orda de cocK do sistema. Este ti#o de PWM ; re5uerido tam6;m em agumas
a#icaes #ara acionamento de motores. Ouando escre)ermos nos registradores
'PM7M<D e 'PM7CnI estaremos na )erdade escre)endo #ara um 6uffer. Ouando
am6os os )aores de - 6its destes registradores forem escritos e o contador re)erter sua
dire"o ; 5ue seus )aores ser"o atuai=ados. Este com#ortamento garante )aores
coerentes de 1. 6its e e)ita arguras de #uso ines#eradas na sa$da PWM.
<#cionamente@ 5uando 'PM7C?' M 'PM7M<D@ o m+duo 'PM #ode gerar uma
interru#"o associada a fag '<3. < usurio #ode utii=ar este e)ento #ara aterar )aores
na argura de #uso do PWM@ fa=endo com 5ue os no)os )aores #assem a )aer
instantaneamente@ no in$cio do no)o #er$odo.
Ouando o PWM esti)er em o#era"o@ escre)er #ara o registrador 'PM7/C cancea
os )aores escritos nos registradores 'PM7M<D4 e 'PM7M<D2. *inda@ escre)er #ara o
registrador 'PM7Cn/C cancea os )aores escritos nos registradores de )aor do cana
F'PM7CnI4> 'PM7CnI2H.
62 Prof. Gustavo Weber Denardin
Em agumas a#icaes ; necessrio a inser"o de um tem#o morto Fdead tieH
de)ido ao tem#o de comuta"o de certos ti#os de com#onentes utii=ados ou de)ido as
to#oogias dos sistemas agregados a estas sa$das PWM.
?ormamente estes tem#os mortos s"o inseridos em #ares com#ementares de
sa$das PWM@ ou seja@ 5uando uma das sa$das comuta #ara n$)e +gico ato@ a outra sa$da
comuta #ara n$)e +gico 6ai7o. *6ai7o ; a#resentado um e7em#o de utii=a"o de
tem#os mortos.
* seguir ser"o a#resentados e7em#os de c+digos de iniciai=a"o #ara PWMs
o#erando em modo ain8ado a 6orda e ain8ado ao centro. De)emos considerar as
seguintes condies> Estamos utii=ando um cloc# de 6arramento de 20M8= e iremos
gerar um PWM com fre5LBncia de 20J8=. *inda@ iremos utii=ar o m+duo 2 'PM@ onde o
cana 0 ser configurado #ara #usos iniciando em n$)e +gico ato e o cana 1 #ara #usos
iniciando em n$)e +gico 6ai7o. <s cicos ati)os ser"o> cana 0 M &0] e cana 1 M (0].
Deem6rando o ccuo do m+duo de #er$odo )isto anteriormente>
Iaor de m+duo de tem#o #ara (0Rs>
Mdulo=
5010
6
5010
9

=1000
e #ara o PWM ain8ado ao centro>
Iaor de m+duo de tem#o #ara (0Rs>
Mdulo=

5010
6
5010
9

2
=500
63 Prof. Gustavo Weber Denardin
PWM *2I?4*D< * B<DD*>
// G$*!12& #$ PM !%-+8!#& ! /&*#!
/* TPM1SC: TOF=0,TOIE=0,CPMS=0,CLKSB=0,CLKSA=0,PS2=0,PS1=0,PS0=0 */
TPM2SC = 0x00; //P!*! & 3>#?%& TPM2

// C!+!% 0 -+-'-!+#& '&3 .-+!% $3 +"E$% %>A-'& !%)&
// I+)$**?,12& #& '!+!% 0 #$.!/-%-)!#!
TPM2C0SC = 0x26;
// L!*A?*! #$ ,?%.& #& '!+!% 0$*& = G00 x 50+. = 20?. 9@ = 20M80<
TPM2C0V = G00;
// C!+!% 1 -+-'-!+#& '&3 .-+!% $3 +"E$% %>A-'& /!-x&
// I+)$**?,12& #& '!+!% 1 #$.!/-%-)!
TPM2C1SC = 0x2G;
// L!*A?*! #$ ,?%.& #& '!+!% ?3 = 500 x 50+. = 25?. 9@ = 20M80<
TPM2C1V = 500;


// PM !%-+8!#& ! /&*#! '&3 -+)$**?,12& #$ $.)&?*& #$ )$3,& !)-E!
/* TPM1SC: TOF=0,TOIE=1,CPMS=0,CLKSB=0,CLKSA=1,PS2=0,PS1=0,PS0=0 */
TPM2SC = 0xG6;

// C&+@-A?*!12& #& ,$*"&#& #& PM ,!*! 100?. 91000 x 50+.<
TPM2MOD = 1000;
PWM *2I?4*D< *< CE?'D<>
// G$*!12& #$ PM !%-+8!#& !& '$+)*&
/* TPM1SC: TOF=0,TOIE=0,CPMS=0,CLKSB=0,CLKSA=0,PS2=0,PS1=0,PS0=0 */
TPM2SC = 0x00; //P!*! & 3>#?%& TPM2

// C!+!% 0 -+-'-!+#& '&3 .-+!% $3 +"E$% %>A-'& !%)&
// I+)$**?,12& #& '!+!% 0 #$.!/-%-)!#!
TPM2C0SC = 0x06;
// L!*A?*! #$ ,?%.& #& '!+!% 0$*& = 2 x 200 x 50+. = 20?. 9@ = 20M80<
TPM2C0V = 200;
// C!+!% 1 -+-'-!+#& '&3 .-+!% $3 +"E$% %>A-'& /!-x&
// I+)$**?,12& #& '!+!% 1 #$.!/-%-)!#!
TPM2C1SC = 0x0G;
// L!*A?*! #$ ,?%.& #& '!+!% ?3 = 2 x 250 x 50+. = 25?. 9@ = 20M80<
TPM2C1V = 250;


// PM !%-+8!#& ! /&*#! '&3 -+)$**?,12& #$ $.)&?*& #$ )$3,& !)-E!
/* TPM1SC: TOF=0,TOIE=1,CPMS=0,CLKSB=0,CLKSA=1,PS2=0,PS1=0,PS0=0 */
TPM2SC = 0xD6;

// C&+@-A?*!12& #& ,$*"&#& #& PM ,!*! 100?. 92 x 500 x 50+.<
TPM2MOD = 500;
$BSJ >o L recomendado /a4ilitar as interrup,es de canal 1uando
utili0ando o modo PWM& $ processo de limpe0a de )la* das interrup,es pode
a4ortar a atuali0ao dos registradores TPM6Cn;M pois o processo enBolBe a escrita
do registrador TPM6CnSC&
64 Prof. Gustavo Weber Denardin
*s configuraes m$nimas #ara a im#e=a das fla$s das interru#es de estouro
de tem#o@ do cana 0 e do cana 1 do m+duo 'PM2 s"o a#resentadas a seguir>
// I+)$**?,12& #$ $.)&?*& #$ )$3,& #& 3>#?%& TPM2
-+)$**?,) E&-# )-3$*29E&-#<=
9E&-#<TPM2SC; // LT & *$A-.)*!#&* TPM2SC
TPM2SC;TOF = 0; // L-3,! ! @%!A TOF #& *$A-.)*!#&* TPM2SC
B
// I+)$**?,12& !..&'-!#! !& '!+!% 0 #& 3>#?%& TPM2
-+)$**?,) E&-# )2'!+!%09E&-#<=
9E&-#<TPM2C0SC; // LT & *$A-.)*!#&* TPM2C0SC
TPM2C0SC;C40F = 0; // L-3,! ! @%!A C40F #& *$A-.)*!#&* TPM2C0SC
B
// I+)$**?,12& !..&'-!#! !& '!+!% 1 #& 3>#?%& TPM2
-+)$**?,) E&-# )2'!+!%19E&-#<=
9E&-#<TPM2C1SC; // LT & *$A-.)*!#&* TPM2C1SC
TPM2C1SC;C41F = 0; // L-3,! ! @%!A C41F #& *$A-.)*!#&* TPM2C1SC
*inda@ ; a#resentado a6ai7o uma sugest"o de fun"o #ara aterar a argura de
#uso nos canais do m+duo 'PM2@ tendo como #arXmetros o cana a ser aterado e a
argura de #uso desejada em )aores #ercentuais.
// F?+12& ,!*! 3?#!+1! #$ %!*A?*! #$ ,?%.& #& PM
// '!+!% 0 &? 1
// ,$*'$+) #$ 0 ! 100U
E&-# %!*A?*!;,?%.&9/N)$ '!+!%,/N)$ ,$*'$+)<=
.7-)'89'!+!%<= // E.'&%8! #& '!+!% ! .$* !%)$*!#&
'!.$ 0:
TPM2C0V = 9TPM2MOD * ,$*'$+)< / 100;
/*$!(;
'!.$ 1:
TPM2C1V = 9TPM2MOD * ,$*'$+)< / 100;
/*$!(;
#$@!?%):
/*$!(;
B
B
65 Prof. Gustavo Weber Denardin
8& Con+igurao do Modo de Captura de )ntrada
< modo de ca#tura de entrada utii=a assim como no modo PWM o contador
#rinci#a de 1. 6its como seu com#onente fundamenta. Este modo ; utii=ado em
a#icaes 6em es#ec$ficas@ como ca#tura de informa"o de encoders ana+gicos@
decodifica"o de sina seria rece6ido #or m+duos D3 Fnormamente m+duos D3 de
&33M8= utii=ados em controes de garagens@ #ortes@ etcH@ 6em como #ara determinar
distXncia #ercorrida e )eocidade em )e$cuos sim#es.
Com a fun"o de ca#tura de entrada o m+duo 'PM #ode ca#turar o tem#o no
5ua um e)ento e7terno ocorreu. ?o momento em 5ue uma transi"o de sina ocorrer
F6orda de su6ida ou descidaH no #ino associado ao cana configurado como ca#tura de
entrada@ o m+duo 'PM co#ia o contePdo do contador F'PM7C?'H #ara o registrador de
)aor do cana F'PM7CnIH. * 6orda ati)a 5ue dis#ara o gati8o de um e)ento de ca#tura
de entrada #ode ser configurada #ara 6orda de su6ida@ 6orda de descida ou am6as as
6ordas.
Em e)ento de ca#tura de entrada e)a o 6it de fla$ do cana FC4n3H #ara n$)e
+gico 1. Esta fla$ #ode ser o#cionamente associada a uma re5uisi"o de interru#"o do
microcontroador.
Em e7em#o cssico de utii=a"o do modo de ca#tura de entrada ; na
decodifica"o de sinais D3. < estado +gico de um sina transmitido seriamente #or um
encoder #adr"o #ara sinais D3 ; determinado #eo tem#o de ati)idade da fre5LBncia de
o#era"o do m+duo F#or e7em#o &33M8=H. Esta modua"o ; uma )aria"o da
modua"o *M digita@ con8ecida #or */J Faplitude s!ift #e(in$H.
PodeAse #erce6er na figura a6ai7o 5ue o sina gerado ; sincroni=ado #or um sina
de cloc# Ff
</C
H. Em estado +gico 0 ; re#resentado #eo tem#o de 2 #er$odos deste cloc#.
< estado +gico 1 ; re#resentado #or 1 #er$odo deste cloc#.
Desta forma@ #ara decodificarmos este sina no ado do rece#tor@ de)emos contar
o tem#o de ati)idade do sina rece6ido. Esta contagem de)e ser reai=ada a #artir da
6orda de su6ida do sina codificado at; ocorrer uma 6orda de descida. *naisando o caso@
fica e)idente 5ue o modo de ca#tura de entrada ; idea #ara a decodifica"o deste sina.
66 Prof. Gustavo Weber Denardin
?ormamente o cloc# de sincronismo utii=ado #eos encoders de D3 o#era em
torno de 2 J8=. Podemos )erificar ent"o 5ue 5uando identificarmos um sina com dura"o
em torno de (00Rs@ o mesmo estar re#resentando um estado +gico 1. Ouando
identificarmos um sina com dura"o #r+7ima de 1000Rs@ este estar re#resentando um
estado +gico 0.
* seguir ; a#resentado um e7em#o de c+digo de iniciai=a"o #ara o m+duo
'PM1 com o cana 2 o#erando em modo de ca#tura de entrada. Iremos configurar o
m+duo #ara ca#tura em am6as as 6ordas. < registrador de m+duo de)e ser configurado
#ara gerar tem#os 6em maiores 5ue os tem#os de transmiss"o de um 6it@ #ara e)itarmos
5ue ocorra mais de um estouro de tem#o dentro da decodifica"o de um 6it@ fato este 5ue
in)aidaria o 6it amostrado. Desta forma iremos configurar o estouro de tem#o #ara 20ms@
utii=ando um cloc# de 6arramento de 20M8=.
Iaor de m+duo de tem#o #ara 20ms>
Mdulo=
2010
3
5010
9

=400000
Para re#resentar &00000 ; necessrio mais do 5ue os 1. 6its dis#on$)eis. Desta
forma se fa= necessrio a di)is"o da 6ase de tem#o. Di)idindo &00000 #eo maior )aor
#oss$)e em 1. 6its@ encontramos .@10&. *ssumimos ent"o o #r+7imo )aor )ido de
di)is"o@ ou seja@ -@ como fator de di)is"o da 6ase de tem#o.
3ator de di)is"o da 6ase de tem#o>
Fator =
400000
65535
=6,104
E@ recacuando os )aores de configura"o>
Per$odo reati)o a 6ase de tem#o>
Perodo=
1

2010
6
8

=40010
9
Ccuo do )aor de m+duo de tem#o>
Mdulo=
2010
3
40010
9

=50000
Desta forma encontramos um )amos de m+duo igua a (0000@ 5ue ; um )aor
)ido em 1. 6its.
* seguir o c+digo 5ue im#ementa estas condies ; demonstrado.
67 Prof. Gustavo Weber Denardin
//I+-'-!%-0!12& #& M&#& C!,)?*! #$ E+)*!#!
/* TPM1SC: TOF=0,TOIE=1,CPMS=0,CLKSB=0,CLKSA=1,PS2=0,PS1=1,PS0=1 */
// F&+)$ #$ '%&'( = '%&'( #$ /!**!3$+)& / 6
TPM1SC = 0xGB;
TPM1MOD = 50000; // '&+@-A?*! & )-3$* ,!*! 203.
TPM1C2SC = 0xGC; // C!,)?*! #$ $+)*!#! ,!*! !3/!. !. /&*#!.
// '&3 -+)$**?,12& 8!/-%-)!#!
*6ai7o ; a#resentado uma sugest"o de c+digo #ara determinar o n$)e +gico do 6it
rece6ido em um cana D3@ utii=ando a interru#"o de ca#tura de entrada configurada #ara
o cana 2 do m+duo 'PM1.
// D$'%!*!12& #!. E!*-KE$-. A%&/!-. +$'$..K*-!. ,!*! !+K%-.$
// #& $.)!#& %>A-'& #& /-) *$'$/-#&
?+.-A+$# -+) )$3,&8,)$3,&%,)$3,&3;
-+)$**?,) E&-# '!,)?*!;$+)*!#!9E&-#<=
9E&-#<TPM1C2SC; // L-3,! @%!A #$ -+)$**?,12& #$ '!,)?*!
TPM1C2SC;C42F = 0;

-@ 9PTFD;PTFD0 == 1<= // V$*-@-'! .$ ! /&*#! @&- #$ .?/-#! &? #$.'-#!
// PTF0 H & ,-+& !..&'-!#& !& '!+!% 2 #& TPM1
)$3,&8 = TPM1C2V; // G?!*#! & E!%&* #& '&+)!#&* +! /&*#! #$ .?/-#!
B $%.$=
)$3,&% = TPM1C2V; // G?!*#! & E!%&* #& '&+)!#&* +! /&*#! #$ #$.'-#!
B

-@ 9)$3,&% V )$3,&8<= // V$*-@-'! .$ &'&**$? ?3 $.)&?*& #$ )$3,&
// #?*!+)$ & )$3,& #$ ?3 /-)
// C!.& +2& )$+8! &'&**-#&, )$3,& #& /-) = )$3,&% I )$3,&8
)$3,&3 = )$3,&% I )$3,&8;
B $%.$=
/* '!.& )$+8! &'&**-#&, '!%'?%!I.$ ! #-@$*$+1! $+)*$ & 3>#?%&
!)-+A-#& $ & )$3,& +! /&*#! #$ .?/-#! $ .&3!I.$ '&3 & )$3,&
+! /&*#! #$ #$.'-#! */
)$3,&3 = 9TPM1MOD I )$3,&8< M )$3,&%;
B
// I*$3&. '&+.-#$*!* ?3! @!-x! #$ .$A?*!+1! #$ 125?. ,!*!
// '-3! $ ,!*! /!-x& #& E!%&* $.,$*!#& ,$%& $.)!#& %>A-'&
/* V!%&*$. $O?-E!%$+)$. ! )$3,&.:
3F5?. = C3F
D25?. = 15D2
6F5?. = 216F
1125?. = 2612
*/

// A+!%-.$ #& $.)!#& %>A-'& #& /-) *$'$/-#&
-@ 99)$3,&3 V C3F< WW 9)$3,&3 X 15D2<<=
// O E!%&* *$'$/-#& $.)! $3 +"E$% %>A-'& 1
B

-@ 99)$3,&3 V 216F< WW 9)$3,&3 X 2612<<=
// O E!%&* *$'$/-#& $.)! $3 +"E$% %>A-'& 0
B
B
68 Prof. Gustavo Weber Denardin
9& Con+igurao do MAdulo de Teclado
?esta ca#$tuo iremos a#resentar as formas mais tradicionais de cone7"o de
c8a)es mecXnicas Zs entradas de microcontroadores. Para 5ue #ossamos conectar uma
c8a)e a um #ino do microcontroador de)emos configurar este #ino #ara o#erar como
entrada. *s c8a)es mecXnicas normamente a#resentam a configura"o demonstrada
a6ai7o ao serem conectadas ao #ino de um microcontroador.
Podemos notar 5ue o ado da c8a)e 5ue ser conectado ao microcontroador
utii=a um resistor de pull0up. Este resistor ir forar um n$)e +gico ato no #ino do
microcontroador configurado como entrada. Caso este resistor n"o seja utii=ado@ o #ino
do microcontroador ficar sujeito a ru$dos.
Em aguns microcontroadores os #inos de entrada #odem ser conectados
internamente a um resistor de pull0up@ e)itando 5ue seja necessrio utii=ar este resistor
e7ternamente.
<s microcontroadores geramente #ossuem uma interru#"o de !ardware
associada a #inos es#ec$ficos #ara tecado. Esta interru#"o tem como o6jeti)o e)itar 5ue
seja necessrio o monitoramento #or software dos #inos conectados a c8a)es. *inda@ o
gati8o de re5uisi"o destas interru#es #ode ser dis#arado #or e)entos de detec"o de
6ordas de descida ou su6ida@ ou ainda #or detec"o de n$)e de tens"o.
*s c8a)es mecXnicas #ossuem micro ran8uras geradas no seu #rocesso de
fa6rica"o. De)ido a estas micro ran8uras@ ao serem fec8adas geram ru$dos Fcausados
#ea )i6ra"o gerada #eas micro ran8urasH 5ue #oder"o ser detectados #eo software
desen)o)ido como mPti#os ci5ues durante o #rocesso de eitura. Estas )i6raes 5ue
causam ru$dos@ tam6;m con8ecidas #or contact +ounce@ de)em ser eiminadas #or
8ardNare Fca#acitor@ fi#Afo# ti#o DH ou #or softNare@ inserindo um atraso antes da eitura
da c8a)e fec8ada.
* figura a6ai7o demonstra o n$)e de tens"o na entrada do #ino de um
microcontroador conectado a uma c8a)e rec;m #ressionada.
69 Prof. Gustavo Weber Denardin
< caso a#resentado acima ir causar 3 interru#es se a interru#"o associada a
este #ino esti)er configurada #ara dis#aro de gati8o #or 6orda de descida e n"o for
im#ementado nen8uma t;cnica #ara e)itar este ru$do.
Para conectar c8a)es aos #inos do microcontroador MC!/0-*W.0 de)emos
configurar os registradores associados a uma das #ortas de entrada , sa$da do
microcontroador FP'7DDn@ P'7PEn@ JBIPEn e JBI1/CH.
<s registradores P'7DD e P'7PE foram a#resentados no ca#$tuo 2. * seguir
ser"o a#resentadas as funes dos 6its de controe dos registradores JBIPE e JBI1/C.
*e$istrador de Estado e Controle do M=dulo de ,eclado 32I (+('SC)
<B)(=U%>&V 83e(+oard Ed$e Select for 32I Port 2its9 C Cada um destes 6its de eitura , escrita
seeciona a 6orda e,ou n$)e 5ue ser recon8ecido como e)ento de gati8o no #ino do microcontroador
configurado como entrada de interru#"o de tecado FJBIPEn M 1H.
0 C Borda de descida , ?$)e +gico 0
1 C Borda de su6ida , ?$)e +gico 1
<B9 83e(+oard Interrupt Fla$9 C Este 6it de fla$ de estado ; e)ado a n$)e +gico 1 5uando um
e)ento associado a 6orda seecionada ; detectado em 5ua5uer um dos #inos configurados como entrada
de interru#"o de tecado. Esta fla$ ; im#a atra);s da escrita de n$)e +gico 1 no 6it de controe JB*CJ. *
fla$ ir #ermanecer em n$)e +gico 1 se JBIM<D M 1 e o #ino de entrada de tecado #ermanecer no n$)e
de tens"o configurado como e)ento de gati8o.
Esta fla$ #ode ser utii=ada #ara pollin$ em softNare ou #oder gerar uma re5uisi"o de uma
interru#"o de 8ardNare do m+duo de tecado FJBIE M 1H.
0 C ?"o e7iste interru#"o de tecado #endente
1 C Interru#"o de tecado #endente
70 Prof. Gustavo Weber Denardin
<BAC< F3e(+oard Interrupt Ac#nowled$eH C Este 6it somente de escrita ; utii=ado #ara im#ar a
fla$ de estado JB3@ #ea escrita de n$)e +gico 1. * fla$ JB3 ir #ermanecer em n$)e +gico 1 se
JBIM<DM1 #ara seecionar o modo de o#era"o sens$)e a n$)e e 6orda e 5ua5uer um dos #inos
8a6iitados #ara entrada #ermanecerem no n$)e configurado como e)ento de gati8o. ?este cenrio
escre)er o n$)e +gico 1 #ara o 6it JB*CJ n"o ir ter efeito so6re a fla$ JB3.
<B#) 83e(+oard Interrupt Ena+le9 C Este 6it de controe de eitura , escrita determina se
interru#es de 8ardNare ser"o geradas 5uando a fla$ de estado JB3 esti)er em n$)e +gico igua a 1.
Ouando JBIE M 0@ nen8uma interru#"o de 8ardNare ser gerada #eo m+duo de tecado@ mas JB3
continuar sendo utii=ada #ara pollin$ #or softNare.
0 C * fag JB3 n"o ir gerar interru#es de 8ardNare Futii=ar pollin$H
1 C /er gerado interru#"o de 8ardNare de tecado 5uando JB3 M 1
<B#M$( 83e(+oard Detection Mode9 C Este 6it de controe de eitura , escrita seeciona entre
detec"o somente #or 6orda ou detec"o #or 6orda e n$)e. <s 6its 3 a 0 da #orta de tecado #odem
detectar somente 6orda de descida ou 6orda de descida e n$)e +gico 6ai7o. <s 6its % a & da #orta de
tecado #odem ser configurados #ara detec"o como a#resentado a6ai7o>
/omente 6orda de su6ida ou 6orda de su6ida e n$)e +gico ato FJBEDGn M 1H
/omente 6orda de descida ou 6orda de descida e n$)e +gico 6ai7o FJBEDGn M 0H
0 C Detec"o somente #or 6orda
1 C Detec"o #or 6orda e n$)e
*6ai7o ; a#resentado o diagrama de 6ocos do microcontroador com os #inos
destinados Z tecado reaados.
71 Prof. Gustavo Weber Denardin
*e$istrador para 4a+ilita:;o do Modo de ,eclado (+('PE)
Este registrador ; utii=ado #ara configurar se os #inos associados ao m+duo de
tecado ser"o 8a6iitados ou n"o.
<B#P)U%>0V 83e(+oard Pin Ena+le for 32I Port 2its9 C Cada um destes 6its de eitura , escrita
seeciona se o #ino da #orta de tecado associado ser 8a6iitado como entrada de interru#"o de tecado
ou como #ino de entrada , sa$da #ara #ro#+sito gera.
0 C Bit n da #orta de tecado ; um #ino de entrada , sa$da de #ro#+sito gera n"o associada
como o m+duo de tecado.
1A Bit n da #orta de tecado 8a6iitado como entrada #ara interru#"o de tecado.
* ta6ea a6ai7o a#resenta as #oss$)eis configura"o #ara pull0up ou pull0down
nos #inos de I,< associados ao m+duo de tecado.
PT6P)n
PPull )na4leQ
PT6((n
P(ireo dos
dadosQ
<B#P)n
PHa4ilita pino
para teclado
<B)(=n
PSeleo de
4ordaQ
Pull,-. Pull,Down
0 0 0 T desa6iitado desa6iitado
1 0 0 T 4a6iitado desa6iitado
T 1 0 T desa6iitado desa6iitado
1 T 1 0 4a6iitado desa6iitado
1 T 1 1 desa6iitado 4a6iitado
0 T 1 T desa6iitado desa6iitado
* #artir dos registradores de configura"o a#resentados acima #ara o
microcontroador MC!/0-*W.0 #odeAse sugerir um e7em#o de iniciai=a"o #ara o
m+duo de tecado. < e7em#o a seguir considera os - #inos associados ao m+duo de
tecado FP'G0>P'G&@ P'D2>P'D3 e P'D%H configurados como entrada de interru#"o
com pull0up ati)o. *inda@ re5uisi"o de interru#"o ati)a somente #ara 6orda de descida.
// C&+@-A?*!12& #& 3>#?%& #$ )$'%!#&
// I+-'-! ! %!)'8 #! ,&*)! G '&3 )&#&. &. /-). $3 0$*&
PTGD = 0;
// T&#&. &. ,-+&. #! ,&*)! G '&3& $+)*!#!.
PTGDD = 0;
// P-+&. #& 3>#?%& #$ )$'%!#& #! ,&*)! G '&+@-A?*!#&. ,!*! ,?%%I?,
PTGPE = 0x1F;
// I+-'-! ! %!)'8 #! ,&*)! D '&3 )&#&. &. /-). $3 0$*&
PTDD = 0;
// T&#&. &. ,-+&. #! ,&*)! D '&3& $+)*!#!.
PTDDD = 0;

72 Prof. Gustavo Weber Denardin
// P-+&. #& 3>#?%& #$ )$'%!#& #! ,&*)! D '&+@-A?*!#&. ,!*! ,?%%I?,
PTDPE = 0/10001100;

// 6 ,-+&. !..&'-!#&. !& 3>#?%& KBI '&+@-A?*!#&. ,!*! )$'%!#&
KBI1PE = 0xFF;

/* KBEDGF=0,KBEDGD=0,KBEDG5=0,KBEDGG=0,KBF=0,KBACK=0,KIE=1,KBIMOD */
// M>#?%& #$ )$'%!#& '&3 -+)$**?,12& !)-E! $ !'-&+!#! ,&* /&*#! #$ #$.'-#!
KBI1SC = 0x02;

KBI1SC;KBACK = 1; // L-3,! @%!A #$ )$'%!#&
* fun"o m$nima de interru#"o #ara o m+duo de tecado ; a#resentada a6ai7o.
-+)$**?,) E&-# )$'%!#&9E&-#<=
KBI1SC;KBACK = 1; // L-3,! @%!A #$ )$'%!#&
B
?ote 5ue a fun"o de interru#"o a#resentada acima n"o e)a em considera"o a
e7istBncia de )i6raes na c8a)e. Como j foi comentado@ #ara e)itar os #ro6emas
reacionados com estas )i6raes #odemos utii=ar recursos de #rote"o em softNare. *s
#oss$)eis #rotees em softNare s"o a utii=a"o de um atraso Fdela(H #ara eitura do
tecado Fdela( nunca ; uma 6oa sou"o@ #ois o #rocessador ficar #arado@ sem e7ecutar
nen8uma instru"o PtiH ou a utii=a"o do tem#ori=ador #ara agendar uma eitura de
tecado a#+s a ocorrBncia da interru#"o. * tem#ori=a"o ir de#ender do tem#o
necessrio #ara e)itar as )i6raes da c8a)e@ onde normamente 1ms ; suficiente. Caso
os efeitos das )i6raes #ersistam@ #odeAse aumentar este tem#o.
* figura a6ai7o a#resenta uma sugest"o de im#ementa"o do uso de um
tem#ori=ador #ara eitura de tecado e)itando os efeitos de )i6raes na c8a)e.
73 Prof. Gustavo Weber Denardin
< c+digo a6ai7o demonstra a im#ementa"o deste #rocesso #ara o
microcontroador MC!/0-*W.0 utii=ando uma )ari)e de fla$ #ara agendamento de
tarefa.
/* I+)$**?,12& #$ )$'%!#& */
-+)$**?,) E&-# )$'%!#&9E&-#<=
KBI1SC;KBACK = 1; // L-3,! @%!A #$ )$'%!#&
KBJ1SC;KBIE = 0; // D$.%-A! -+)$**?,12& #$ )$'%!#&
@%!A;)$'%!#& = 1; // A'-&+! ! '&+)!A$3 #& )$3,& #$ /&?+'$
B
/* I+)$**?,12& #$ )-3$* ! '!#! 50?. */
-+)$**?,) E&-# )-3$*9E&-#<=
TPM1SC;TOF = 0 // L-3,! ! @%!A #& )$3,&*-0!#&*
-@9@%!A;)$'%!#&<=
-MM;
B
B
E&-# 3!-+9E&-#< =
MCJ;-+-)9<; // C8!3! @?+12& #$ -+-'-!%-0!12& #& ?'&+)*&%!#&*
@&*9;;<
=
-@9- == 20<= // 20 * 50?. = 13.
)$'%!#& = PTGD; // L$-)?*! #&. ,-+&. #$ )$'%!#&
@%!A;)$'%!#& = 0; // D$.%-A! '&+)!A$3 #& )$3,& #$ /&?+'$
- = 0; // R$-+-'-! '&+)!A$3 #& )$3,& #$ /&?+'$
KBI1SC;KBACK = 1; // L-3,! -+)$**?,1Q$. !'-&+!#!. ,&* E-/*!1Q$.
KBI1SC;KBIE = 1; // 4!/-%-)! -+)$**?,12& #$ )$'%!#& +&E!3$+)$
B
B /* %!1& -+@-+-)& */
/* )$+8! '$*)$0! #$ O?$ E&'T +?+'! .!-*K #& 3!-+ #& !,%-'!)-E& #$.$+E&%E-#& */
B
<utra forma 6astante comum de im#ementa"o de tecado em sistemas
em6arcados ; o tecado matricia. Em tecado matricia de & in8as #or & counas #ermite a
gera"o de 1. c+digos inde#endentes utii=andoAse a#enas - #inos de uma #orta do
microcontroador. * figura a6ai7o a#resenta um tecado matricia comercia.
74 Prof. Gustavo Weber Denardin
Em e7em#o de cone7"o interna de um tecado matricia com 1. c8a)es #ode ser
o6ser)ado na figura a6ai7o. ?ote 5ue #ara reai=ar a interface com o microcontroador as
counas do tecado matricia s"o conectadas com #inos configurados como sa$das e as
in8as do tecado s"o conectadas a #inos configurados como entradas. *inda@ nos #inos
configurados como entradas ser utii=ado pull0up.
<s #inos configurados como sa$das s"o utii=ados #ara reai=ar a )arredura do
tecado matricia. Esta )arredura ter como tarefa identificar 5uando uma c8a)e do tecado
for #ressionada. * )arredura ir aternar os )aores +gicos nos #inos configurados como
sa$das. Estes #inos sem#re estar"o configurados #ara 5ue somente um dees conten8a
n$)e +gico =ero em um determinado momento. Desta forma@ 5uando uma c8a)e for
#ressionada ir gerar um c+digo 6em definido@ onde somente dois #inos da #orta utii=ada
como tecado estar"o em n$)e +gico =ero Fum #ino de sa$da e um #ino de entradaH.
* ta6ea a6ai7o a#resenta um e7em#o de c+digos de identifica"o de c8a)es em
uma interface com um tecado matricia Fa #orta G do microcontroador ser utii=ada #ara
reai=ar a interface com o tecadoH.
75 Prof. Gustavo Weber Denardin
Considere ainda #ara a gera"o desta ta6ea as figuras a#resentadas
anteriormente.
Pinos con+igurados como sa?da Pinos con+igurados como entrada
Tecla
PT=(I PT=(6 PT=(7 PT=(. PT=(8 PT=(* PT=(% PT=(0
1 1 1 0 1 1 1 0 0
1 1 0 1 1 1 1 0 %
1 0 1 1 1 1 1 0 *
0 1 1 1 1 1 1 0 8
1 1 1 0 1 1 0 1 .
1 1 0 1 1 1 0 1 7
1 0 1 1 1 1 0 1 6
0 1 1 1 1 1 0 1 I
1 1 1 0 1 0 1 1 8
1 1 0 1 1 0 1 1 9
1 0 1 1 1 0 1 1 A
0 1 1 1 1 0 1 1 B
1 1 1 0 0 1 1 1 C
1 1 0 1 0 1 1 1 (
1 0 1 1 0 1 1 1 )
0 1 1 1 0 1 1 1 9
Caso nen8uma c8a)e for #ressionada@ o n$)e +gico dos #inos configurados como
entrada Fin8asH ser um@ de)ido ao pull0up utii=ado. Este pull0up #ode ser interno ao
microcontroador ou e7terno.
* #artir da ta6ea a#resentada #odemos definir dois )etores de constantes> o )etor
contendo os )aores da )arredura e o )etor 5ue ir conter os )aores reati)os aos c+digos
de cada teca.
<s )etores #ara este caso s"o a#resentados a6ai7o>
'&+.) /N)$ E!**$#?*!YGZ =
=0xE0,0xD0,0xB0,0xF0B;
'&+.) /N)$ '&#-A&Y1DZ =
=0xEE,0xDE,0xBE,0xFE,0xED,0xDD,0xBD,0xFD,0xEB,0xDB,0xBB,0xFB,0xEF,0xDF,0xBF,
0xFFB;
76 Prof. Gustavo Weber Denardin
< #rocesso de )arredura de)er ser inserido na interru#"o do estouro de tem#o
do tem#ori=ador da seguinte forma>
-+)$**?,) E&-# )-3$*9E&-#<=
9E&-#<TPM1SC;
TPM1SC;TOF = 0; // L-3,! ! @%!A #& $.)&?*& #$ )$3,&
PTGD = E!**$#?*!Y-E!**$Z; // A%)$*! & E!%&* #$ E!**$#?*! #& )$'%!#&
-E!**$MM; // I+'*$3$+)! & "+#-'$ #$ E!%&*$. #$ E!**$#?*!
-@ 9-E!**$ == G< // R$)&*+! !& -+"'-& #! E!**$#?*!
-E!**$ = 0;
B
< m+duo de tem#o #ode ser configurado #ara )aores entre 20Rs e (0ms@
de#endendo a sensi6iidade desejada #ara o tecado.
/e uma teca for #ressionada e a )arredura esti)er #osicionada com n$)e +gico 0
na couna desta c8a)e@ ir ocorrer uma interru#"o de tecado de)ido a 6orda de descida
no #ino de entrada conectado a c8a)e. Dentro desta interru#"o #odeAse tomar medidas
#ara anise de 5ua c8a)e foi #ressionada. < c+digo a6ai7o a#resenta uma das #oss$)eis
formas de anise do tecado #ara este caso.
-+)$**?,) E&-# )$'%!#&9E&-#<=
KBI1SC;KBACK = 1; // L-3,! @%!A #$ )$'%!#&
)$'%! = PTGD;
.7-)'8 9)$'%!<= // A+!%-.! O?!% )$'%! @&- ,*$..-&+!#!
'!.$ '&#-A&Y0Z: // $ $.'*$E$ & E!%&* +! E!*-KE$% )$'%!
)$'%! = 0;
/*$!(;
'!.$ '&#-A&Y1Z:
)$'%! = 1;
/*$!(;
'!.$ '&#-A&Y2Z:
)$'%! = 2;
/*$!(;
'!.$ '&#-A&Y3Z:
)$'%! = 3;
/*$!(;
'!.$ '&#-A&YGZ:
)$'%! = G;
/*$!(;
'!.$ '&#-A&Y5Z:
)$'%! = 5;
/*$!(;
'!.$ '&#-A&YDZ:
)$'%! = D;
/*$!(;
'!.$ '&#-A&YFZ:
)$'%! = F;
/*$!(;
'!.$ '&#-A&Y6Z:
)$'%! = 6;
/*$!(;
'!.$ '&#-A&YCZ:
)$'%! = C;
/*$!(;
'!.$ '&#-A&Y10Z:
77 Prof. Gustavo Weber Denardin
)$'%! = [A[;
/*$!(;
'!.$ '&#-A&Y11Z:
)$'%! = [B[;
/*$!(;
'!.$ '&#-A&Y12Z:
)$'%! = [C[;
/*$!(;
'!.$ '&#-A&Y13Z:
)$'%! = [D[;
/*$!(;
'!.$ '&#-A&Y1GZ:
)$'%! = [E[;
/*$!(;
'!.$ '&#-A&Y15Z:
)$'%! = [F[;
/*$!(;
#$@!?%):
)$'%! = 255;
/*$!(;
B
B
De)emos em6rar 5ue este c+digo n"o contem#a a #rote"o em softNare #ara as
)i6raes na c8a)e. Para 5ue esta im#ementa"o seja funciona ; necessrio adicionar
esta #rote"o ou #eo menos uma #rote"o em 8ardNare.
%0& #nter+ace com um (isplaR I Segmentos
Em dis#a1 de % segmentos ; formado #or % 2EDs Fa@ 6@ c@ d@ e@ f@ gH 5ue s"o
#re)iamente enca#suados e conectados de duas maneiras> anodo comum e catodo
comum. * figura a6ai7o a#resenta estas configuraes.
78 Prof. Gustavo Weber Denardin
?o modo catodo comum acendeAse cada 2ED conectandoAse o 6arramento
comum ao G?D e a#icandoAse o )aor +gico 1 em cada segmento 5ue se deseja
acender. a no modo anodo comum acendeAse cada 2ED conectandoAse o 6arramento
comum ao ICC e a#icandoAse o )aor +gico 0 em cada segmento 5ue se deseja
acender. * figura a6ai7o a#resenta de forma mais cara estas configuraes.
?ormamente estes dis#a1s #ossuem um oita)o 2ED@ 5ue #ossi6iita a
re#resenta"o de um #onto decima. Esta configura"o ; a#resentada na figura a6ai7o.
79 Prof. Gustavo Weber Denardin
Para reai=ar a interface de um dis#a1 de % segmentos com um microcontroador
de)eAse determinar 5uais 6its de uma #orta ser"o utii=ados #ara acionar os 2EDs dos
segmentos. Por e7em#o@ iremos definir a #orta * como interface com o dis#a1. Desta
forma temAse a seguinte configura"o>
Porta do
microcontrolador
PTA(I PTA(6 PTA(7 PTA(. PTA(8 PTA(* PTA(% PTA(0
Segmentos Ponto
Decima
a 6 c d e f g
* #artir da defini"o da cone7"o com os #inos do microcontroador #odeAse criar a
ta6ea de codifica"o #ara um dis#a1 anodo ou catodo comum.
Ta4ela de Codi+icao para um displaR cadoto comum
PTA(6 PTA(7 PTA(. PTA(8 PTA(* PTA(% PTA(0 (?gito CAdigo em He6a
1 1 1 1 1 1 0 0 %E
0 1 1 0 0 0 0 1 30
1 1 0 1 1 0 1 2 .D
1 1 1 1 0 0 1 3 %!
0 1 1 0 0 1 1 & 33
1 0 1 1 0 1 1 ( (B
1 0 1 1 1 1 1 . (3
1 1 1 0 0 0 0 % %0
1 1 1 1 1 1 1 - %3
1 1 1 1 0 1 1 ! %B
1 1 1 0 1 1 1 * %%
0 0 1 1 1 1 1 6 13
1 0 0 1 1 1 0 C &E
0 1 1 1 1 0 1 d 3D
1 0 0 1 1 1 1 E &3
1 0 0 0 1 1 1 3 &%
<B/> Para construir uma ta6ea de codifica"o #ara um dis#a1 anodo comum
considerando este cenrio de)emos in)erter os n$)eis +gicos a#resentados na ta6ea
acima. *inda@ o 6it mais significati)o da #orta conectada ao dis#a1 #oder ser utii=ado
#ara re#resentar o #onto decima. /endo assim@ se P'*D% M 1 o #onto decima estar
ati)o.
* #artir do e7#osto notamos 5ue n"o e7iste uma grande diferena entre um
dis#a1 anodo comum #ara um dis#a1 catodo comum a;m da +gica de acionamento dos
2EDs. ?o entanto@ 5uando #rojetaAse este circuito #erce6eAse uma diferena im#ortante.
Em uma configura"o catodo comum@ o microcontroador estar fornecendo corrente #ara
80 Prof. Gustavo Weber Denardin
os 2EDs do dis#a1@ en5uanto em uma configura"o anodo comum o microcontroador
estar drenando corrente. Este fato ; im#ortante #or5ue normamente os #inos de
entrada,sa$da de um microcontroador #ossuem maior ca#acidade de dreno de corrente
do 5ue #ara fornecer corrente. *inda@ e7iste um imite m7imo de fornecimento de
corrente@ considerando todos as #ortas do microcontroador. ?o caso do MC!/0-*W.0
este imite ; 100m* 5uando aimentado em (I e .0m* 5uando aimentado em 3I. De
#osse destas informaes #odeAse c8egar a concus"o 5ue ; recomend)e utii=ar
dis#a1s do ti#o anodo comum #ara interface com um microcontroador.
< c+digo 5ue im#ementa a escrita no dis#a1 2CD ; e7tremamente sim#es@ #ois
ser sim#esmente uma iguadade de uma das constantes a#resentadas na ta6ea acima
#ara a #orta onde o dis#a1 est conectado@ como a#resentado a6ai7o.
// D$'%!*!12& #!. '&+.)!+)$. #& #-.,%!N
'&+.) /N)$ '&#-A&F.$AY1DZ =
=0xFE,0x30,0xDD,0xFC,0x33,0x5B,0x5F,0xF0,0xFF,0xFB,0xFF,0x1F,0xGE,0x3D,0xGF,
0xGFB;
E #ara escre)er no dis#a1>
// E.'*$E$ 0 +& #-.,%!N F .$A3$+)&. '&+$')!#& ! ,&*)! A
PTAD = '&#-A&F.$AY0Z;
* im#ementa"o da interface com um dis#a1 de % segmentos #ara um d$gito
a#arentemente ; sim#es. ?o entanto@ se for necessrio conectar 2 ou mais d$gitos a
a6ordagem ; um #ouco diferente. Etii=ar 1 #orta de entrada,sa$da com#eta #ara cada
d$gito n"o ; uma 6oa sou"o. Desta forma@ #recisamos encontrar formas mais
econbmicas em termos de #inos e #ortas #ara im#ementar est interface. Duas soues
6em con8ecidas #ara estes casos #odem ser utii=adas> muti#e7a"o #or atc8es ou
muti#e7a"o no tem#o com transistores.
< #ro6ema de utii=ar atc8es ; 5ue ser necessrio ainda utii=ar um driver de
corrente #ara aimentar os 2EDs do dis#a1@ sendo necessrio 1 atc8 e um driver #ara
cada d$gito utii=ado. * segunda sou"o ; mais eficiente e redu=ida em termos de
com#onentes. Com a muti#e7a"o no tem#o uma #orta ir manter o )aor do c+digo
8e7adecima corres#ondente ao d$gito a ser aceso e uma outra #orta de entrada , sa$da
indicar em 5ua dos dis#a1s ser aceso o d$gito e5ui)aente. Portanto@ de)e ser
reai=ado uma )arredura do d$gito menos significati)o #ara o d$gito mais significati)o Fou
)iceA)ersaH@ controada #or uma outra #orta@ aterandoAse o )aor de cada d$gito no tem#o@
atra);s da #orta conectada aos 2EDs dos dis#a1s.
81 Prof. Gustavo Weber Denardin
* seguir ; a#resentado uma #oss$)e interface de 3 d$gitos de % segmentos anodo
comum com o microcontroador MC!/0-*W.0.
?a t;cnica de muti#e7a"o do tem#o temos somente um dis#a1 ati)o num dado
momento@ sendo os dis#a1s ati)ados e desati)ados em se5LBncia@ um a#+s o outro@ em
um cico 5ue se re#ete a uma )eocidade muito ata@ de forma 5ue o o8o 8umano tem a
ius"o de 5ue todos est"o acesos simutaneamente. Esta sensa"o de ius"o ; o6tida
5uando utii=armos fre5LBncias de )arredura acima de 304=.
E7em#o> DefineAse 5ue a fre5LBncia de )arredura de 3 dis#a1s de % segmentos
conectados Z um microcontroador ser .( 4=. De 5uanto em 5uanto tem#o de)emos
aterar o )aor do d$gito a ser escritoc
Per)odo=
1
65
=1538m#
Ierificamos 5ue o #er$odo tota de )arredura dos 3 d$gitos de)er ser em torno de
1(ms. Como temos 3 d$gitos@ de)emos aterar o )aor dos d$gitos a cada 7ms. Para 5ue
isto seja #oss$)e #odeAse utii=ar a interru#"o de estouro de tem#o configurada #ara
este tem#o. * cada entrada nesta interru#"o de)eAse aterar 5ua d$gito ser aceso e o
)aor do c+digo 8e7adecima 5ue ir escre)er o )aor desejado no dis#a1.
82 Prof. Gustavo Weber Denardin
*6ai7o ; a#resentado o c+digo 5ue im#ementa a escrita de trBs d$gitos
num;ricos em um conjunto de dis#a1s de % segmentos anodo comum@ onde a #orta *
ser utii=ada #ara es#ecificar os 2EDs a serem acesos e a #orta C reai=ar a )arredura.
?ote 5ue como ser utii=ada a configura"o anodo comum@ os c+digos
a#resentados na ta6ea anterior de)em ser in)ertidos@ #ois nesta configura"o os 2EDs
acendem com n$)e +gico 0.
// D$'%!*!12& #!. '&+.)!+)$. #& #-.,%!N '&3 ,&+)& !,!A!#&
'&+.) /N)$ '&#-A&F.$AY10Z =
=0x61, 0xCF, 0xC2, 0x6D, 0xCC, 0xAG, 0xA0, 0x6F, 0x60, 0x6GB;
Imagine agora 5ue o )aor a ser escrito foi #re)iamente #rocessado e 5ue as
)ari)eis dig1@ dig2 e dig3 cont;m os )aores num;ricos a serem escritos nos dis#a1s F0
a !H. De)emos definir uma condi"o inicia no #rograma@ #or e7em#o@ o d$gito mais a
direita Fdig3H aceso. Desta forma temos o c+digo a6ai7o>
PTCD = 0x00; // I+-'-!%3$+)$ )&#&. &. #-.,%!N. !,!A!#&.
PTAD = '&#-A&F.$AY#-A3Z; // E.'*$E$ &. /-). O?$ -*2& !'$+#$* &. LED.
PTCD;PTCD0 = 1; // A'$+#$ & )$*'$-*& #-.,%!N
E na interru#"o de estouro de tem#o de)emos im#ementar a +gica 5ue ir
controar a )arredura do dis#a1@ como )isto a6ai7o.
-+)$**?,) E&-# )-3$*9E&-#<=
9E&-#<TPM1SC;
TPM1SC;TOF = 0; // L-3,! ! @%!A #& $.)&?*& #$ )$3,&
-@ 9PTCD;PTCD0 == 1<= // S$ & )$*'$-*& #-A-)& $.)!E! !'$.&
PTCD;PTCD0 = 0; // !,!A! )$*'$-*& #-A-)&
PTAD = '&#-A&F.$AY#-A2Z; // C&,-! & '>#-A& #& .$A?+#& #-A-)&
PTCD;PTCD1 = 1; // !'$+#$ .$A?+#& #"A-)&
B$%.$= // .$+2&
-@ 9PTCD;PTCD1 == 1<= // SSS
PTCD;PTCD1 = 0;
PTAD = '&#-A&F.$AY#-A1Z;
PTCD;PTCD2 = 1;
B$%.$=
-@ 9PTCD;PTCD2 == 1<=
PTCD;PTCD2 = 0;
PTAD = '&#-A&F.$AY#-A3Z;
PTCD;PTCD0 = 1;
B
B
B
B
83 Prof. Gustavo Weber Denardin
%%& #nter+ace com um (isplaR :C(
?este ca#$tuo ser a#resentado as formas de se reai=ar uma interface com um
dis#a1 2CD@ 6em como agumas funes em inguagem C #ara comunica"o com
dis#a1s 2CD utii=ando controadores J/00.. ou 4D&&%-0 Fcontroadores de 2CD mais
difundidos no mercadoH. Estes controadores #ossuem -0 61tes de mem+ria D*M #ara os
dados do dis#a1 FDDD*MH@ .& 61tes de D*M #ara o gerador de caracteres do usurio e
12&0 61tes #ara a D<M do gerador de caracteres.
<s m+duos 2CD normamente a#resentam distri6ui"o de #inos #adroni=ada@
com um conector de 1. #inos@ cujas funes encontramAse na ta6ea a6ai7o.
Pino >ome 9uno
1
I
//
DeferBncia de terra
2
I
DD
*imenta"o FY(IH
3
I
<
'ens"o de contraste
& D/ /ee"o entre modo de comando F0H ou dados F1H
(
R/ -
/ee"o entre escrita F0H ou eitura F1H
. E 4a6iita"o C um #uso de no m$nimo &(0ns ir #ermitir 5ue o m+duo
rece6a comandos ou dados ou ainda en)iar dados
% DB0 Bit 0 do dado , comando. ?"o utii=ado no modo de & 6its
- DB1 Bit 1 do dado , comando. ?"o utii=ado no modo de & 6its
! DB2 Bit 2 do dado , comando. ?"o utii=ado no modo de & 6its
10 DB3 Bit 3 do dado , comando. ?"o utii=ado no modo de & 6its
11 DB& Bit & do dado , comando
12 DB( Bit ( do dado , comando
13 DB. Bit . do dado , comando
1& DB% Bit % do dado , comando
1( * *nodo do 2ED de +ac#li$!t
1. J Catodo do 2ED de +ac#li$!t
* DDD*M ; organi=ada de forma 5ue os endereos de 0700 a 072% arma=enem
os dados da #rimeira in8a e de 07&0 a 07.%@ os dados da segunda in8a. S caro 5ue
desses &0 61tes de cada in8a@ a#enas 1. em cada uma s"o )is$)eis Fem um dis#a1 de
1. caracteresH. * figura a6ai7o a#resenta a organi=a"o da DDD*M.
:in/a )ndereo
1
00 01 02 03 0& 0( 0. 0% 0- 0! 0* 0B 0C 0D 0E 03 10 11 12 13 1& 1( 1. 1% 1- 1! 1* 1B 1C 1D 1E 13 20 21 22 23 2& 2( 2. 2%
2
&0 &1 &2 &3 && &( &. &% &- &! &* &B &C &D &E &3 (0 (1 (2 (3 (& (( (. (% (- (! (* (B (C (D (E (3 .0 .1 .2 .3 .& .( .. .%
84 Prof. Gustavo Weber Denardin
?o modo norma Fsem desocamento da imagemH o #rimeiro caractere da #rimeira
in8a ; o endereo 0700@ o segundo o endereo 0701 e assim #or diante.
* CGD*M ; uma rea de mem+ria dedicada Z constru"o de caracteres #eo
#r+#rio usurio. ?os .& 61tes da CGD*M ; #oss$)e a cria"o de - caracteres de -7( ou
& de 107(. Esses caracteres do usurio #odem ser seecionados #eos c+digos da
#rimeira couna da ta6ea a6ai7o.
* D<M do gerador de caracteres cont;m uma ta6ea de 20- caracteres -7( e 32
caracteres 107(@ conforme #ode ser )isto a6ai7o Fa ta6ea a seguir re#resenta o conjunto
de caracteres da D<M de c+digo *00H.
85 Prof. Gustavo Weber Denardin
Para utii=ar um m+duo 2CD ; necessrio con8ecer o seu 8ardNare. *s
informaes descritas neste documento s"o 6aseadas na utii=a"o de um m+duo 2CD
de duas in8as #or 1. caracteres@ com controador J/00...
Esses m+duos #odem tra6a8ar em dois modos distintos de 6arramento de
comunica"o> & ou - 6its. ?o modo de - 6its@ os dados e comandos s"o idos e escritos
#eo 6arramento de - 6its do m+duo F#inos DB0 a DB%H. ?o modo de & 6its@ utii=amAse
a#enas os #inos DB& a DB% e a informa"o ; en)iada em duas eta#as.
Para utii=ar o m+duo em modo & ou - 6its ; necessrio utii=ar uma se5LBncia de
iniciai=a"o determinada #eo fa6ricante@ conforme ser )isto mais tarde. ?o entanto@
antes de a#resentar os modos de iniciai=a"o ; necessrio con8ecer os ti#os de
comandos dis#on$)eis no m+duo e a sua forma de utii=a"o.
* ta6ea a6ai7o a#resenta os comandos #oss$)eis #ara os m+duos com
controadores J/00.. ou 4D&&%-0.
Comando "S "CW (I (6 (7 (. (8 (* (% (0 (escrio (urao
*#aga Dis#a1 0 0 0 0 0 0 0 0 0 1 *#aga o Dis#a1 e retorna o cursor #ara a #rimeira #osi"o da #rimeira in8a. AAA
Detorno 0 0 0 0 0 0 0 0 1 T Detorna o cursor #ara a #rimeira #osi"o da #rimeira in8a e retorna a
mensagem ao formato origina caso esti)esse desocada.
1@(2ms
Configura
Modo
0 0 0 0 0 0 0 1 I , D / I , D C Configura o sentido de desocamento do dis#a1>
1 C mo)imenta o cursor Z direita #ara cada caractere escrito[
0 C mo)imenta o cursor Z es5uerda #ara cada caractere escrito[
/ C ati)a F1H ou desati)a F0H o desocamento da mensagem a cada eitura da
DDD*M.
3%Rs
Controe 2iga ,
Desiga do
Dis#a1
0 0 0 0 0 0 1 D C B 2iga FD M 1H ou desiga FD M 0H o dis#a1.
*ti)a FC M 1H ou desati)a FC M 0H o cursor.
*ti)a FB M 1H ou desati)a FB M 0H o cursor #iscante.
3%Rs
Desocamento 0 0 0 0 0 1 / , C D , 2 T T / , C C seeciona entre desocamento do cursor F0H ou desocamento do
cursor Y mensagem F1H
D , 2 C sentido de desocamento> direita F1H ou es5uerda F0H.
3%Rs
Configura"o
do Dis#a1
0 0 0 0 1 D2 ? 3 T T D2 C nPmero de 6its do 6arramento> - 6its F1H ou & 6its F0H.
? C nPmero de in8as> 2 in8as F1H ou 1 in8a F0H.
3 C taman8o dos caracteres> 107( F1H ou -7( F0H.
3%Rs
Enderea a
CGD*M
0 0 0 1 * * * * * * Es#ecifica um endereo F. 6itsH de acesso Z CGD*M. 3%Rs
Enderea a
DDD*M
0 0 1 * * * * * * * Es#ecifica um endereo F% 6itsH de acesso a DDD*M. 3%Rs
2B contador
de endereos
e Bus1 3ag
0 1 B3 *C. *C( *C& *C3 *C2 *C1 *C0 2B o )aor do contador de endereos F*CH e estado de fag B3>
B3 M 1@ controador ocu#ado
B3 M 0@ controador i)re
3%Rs
Escre)e dado
na CGD*M ou
DDD*M
1 0 D% D. D( D& D3 D2 D1 D0 Escre)e um dado FDH na #osi"o indicada #eo registrador *C da mem+ria
CGD*M ou DDD*M.
3%Rs
2B um dado
da CGD*M ou
DDD*M
1 1 D% D. D( D& D3 D2 D1 D0 2B um dado FDH da #osi"o de mem+ria FCGD*M ou DDD*MH endereada
#eo registrador *C.
3%Rs
De#are 5ue o en)io de um comando de)e o6edecer aos seguintes #assos>
1. < dado , comando ; coocado no 6arramento de dados[
2. a in8a D/ ; configurada #ara n$)e 91: caso seja um dado ou 90: caso seja
um comando[
3. a in8a E gera um #uso de #eo menos &(0ns.
86 Prof. Gustavo Weber Denardin
* se5LBncia necessria #ara iniciai=a"o do m+duo no modo de comunica"o
em - 6its ;>
1. En)iaAse o comando de configura"o do dis#a1[
2. en)iaAse o comando de configura"o iga , desiga do dis#a1[
3. en)iaAse o comando de configura"o do modo de o#era"o[
&. en)iaAse o comando #ara a#agar 5ua5uer mensagem no dis#a1 e #osicionar o
cursor no in$cio da #rimeira in8a.
<6ser)e 5ue os trBs Ptimos #assos s"o o#cionais.
* se5LBncia #ara iniciai=a"o do m+duo no modo de comunica"o em & 6its@
com as modificaes necessrias@ ; a#resentada a seguir.
1. En)iaAse um comando de 5uadro 6its contendo o )aor 3 F0011 6inrioH #or
meio das in8as DB& a DB%[
2. aguardaAse a#ro7imadamente (ms[
3. en)iaAse no)amente o comando do item 1[
&. aguardaAse a#ro7imadamente 100Rs[
(. en)iaAse no)amente o comando do item 1[
.. en)iaAse o comando 2 F0010 6inrioH. Desse #onto em diante o m+duo
#assa a tra6a8ar no modo de & 6its e de)emos en)iar cada 61te em duas metades
de & 6its Fcon8ecidas #or ni++leH@ iniciando #eos & 6its mais significati)os[
%. en)iaAse o comando de configura"o de dis#a1[
-. en)iaAse o comando de configura"o iga , desiga do dis#a1[
!. en)iaAse o comando de configura"o do modo de o#era"o[
10. en)iaAse o comando #ara a#agar 5ua5uer mensagem no dis#a1 e
#osicionar o cursor no in$cio da #rimeira in8a.
Configurado o m+duo #odemos escre)er os dados nee a 5ua5uer momento.
Basta en)iar os dados com a in8a D/ em n$)e +gico ato.
* ta6ea a6ai7o a#resenta aguns dos #rinci#ais comandos inter#retados #eos
m+duos 2CD com controadores J/00.. ou 4D&&%-0 em formato 8e7adecima.
87 Prof. Gustavo Weber Denardin
Con+igurao do (isplaR
1 in8a com caracteres (7% F- 6itsH 0680
2 in8as com caracteres (7% F- 6itsH 0688
1 in8a com caracteres (710 F- 6itsH 068.
1 in8a com caracteres (7% F& 6itsH 06*0
2 in8as com caracteres (7% F& 6itsH 06*8
1 in8a com caracteres (710 F& 6itsH 06*.
Controle AtiBo C #natiBo do (isplaR
Dis#a1 aceso com cursor fi7o 060)
Dis#a1 aceso com cursor intermitente 0609
Dis#a1 aceso sem o cursor 060C
Dis#a1 a#agado 0608
Con+igurao do modo de operao
Escre)e desocando a mensagem a es5uerda 060I
Escre)e desocando a mensagem a direita 0607
Escre)e desocando o cursor a direita 0606
Escre)e desocando o cursor a es5uerda 060.
Comandos Steis
2im#a dis#a1 e retorna o cursor 060%
Detorna o cursor Fsem aterar a DDD*MH 060*
Desoca somente o cursor a direita 06%.
Desoca somente o cursor a es5uerda 06%0
Desoca cursor Y mensagem a direita 06%C
Desoca cursor Y mensagem a es5uerda 06%8
Desoca cursor #ara #rimeira in8a@ #rimeira #osi"o 0680
Desoca cursor #ara segunda in8a@ #rimeira #osi"o 06C0
)ndereo da C="AM Pcaracteres especiaisQ
Para configurar Fendereo iniciaH 06.0
Para escre)er #rimeiro caractere 0600
Para escre)er Ptimo caractere 06I0
Para reai=ar a interface com o microcontroador MC!/0-*W.0 em - 6its iremos
utii=ar a #orta * como 6arramento de dados e a #orta C como 6its de controe FE@ D/ e
DWH. * figura a seguir a#resenta a configura"o de 8ardNare #ara interface entre o
microcontroador e um m+duo 2CD.
88 Prof. Gustavo Weber Denardin
* seguir s"o a#resentadas agumas funes em inguagem C #ara comunica"o
do microcontroador MC!/0-*W.0 com um m+duo 2CD 6aseadas no 8ardNare e7#osto
acima.
\-+'%?#$ ]#$*-E!)-E$S8] /* -+'%?#$ ,$*-,8$*!% #$'%!*!)-&+. */
// D$@-+-1Q$. ,!*! $.'&%8! #&. ,-+&. #! ,&*)! #& 3-'*&'&+)*&%!#&*
\#$@-+$ RS PTCD;PTCD0
\#$@-+$ R PTCD;PTCD0
\#$@-+$ E PTCD;PTCD0
\#$@-+$ #!#&. PTAD
\#$@-+$ #-*$'!& PTADD
\#$@-+$ /?.N;@%!A PTAD;PTADF
// D$'%!*!12& #& ,*&)>)-,& #! @?+12& #$ )$.)$ #! /?.N @%!A
E&-# )$.)!;/-)9E&-#<;
89 Prof. Gustavo Weber Denardin
// F?+12& ,!*! $.'*-)! #$ ?3! @*!.$ +& #-.,%!N
E&-# 7*-)$;%'#9'8!* *.)*-+A<=
78-%$9*.)*-+A<=
)$.)!;/-)9<;
RS = 1;
R = 0;
#!#&. = *.)*-+A;
E = 1;
!.3= // P?%.& #$ G50+. +! %-+8! E
+&,
+&,
+&,
B
E = 0;
.)*-+AMM;
B
B
// F?+12& ,!*! $.'*-)! #$ ?3 +^3$*& #$ 2 #-A-)&. +& #-.,%!N
E&-# 7*-)$;+?3$*&9?+.-A+$# '8!* +?3$*&<=
?+.-A+$# '8!* - = 0;

)$.)!;/-)9<;
RS = 1;
R = 0;
- = 9+?3$*& / 10<;
#!#&. = G6 M -;
E = 1;
!.3=
+&,
+&,
+&,
B
E = 0;

)$.)!;/-)9<;
RS = 1;
R = 0;
#!#&. = G6 M 9+?3$*& I 9- * 10<<;
E = 1;
!.3=
+&,
+&,
+&,
B
E = 0;
B
// E+E-! ?3 '&3!+#& ,!*! & 3>#?%& #& #-.,%!N
E&-# -+.)*9'8!* '&3!+#&<=
)$.)!;/-)9<;
RS = 0;
R = 0;
#!#&. = '&3!+#&;
E = 1;
!.3=
+&,
+&,
+&,
B
E = 0;
B
90 Prof. Gustavo Weber Denardin
// E+E-! ?3 '!*!')$*$ ,!*! & 3>#?%& #& #-.,%!N
E&-# '!*!')$*$9'8!* #!#&<=
)$.)!;/-)9<;
RS = 1;
R = 0;
#!#&. = #!#&;
E = 1;
!.3=
+&,
+&,
+&,
B
E = 0;
B
// I+-'-!%-0!12& #& #-.,%!N ,!*! 2 %-+8!. '&3 '!*!')$*$. #$ 5xF
// D$.%&'!3$+)& #& '?*.&* ! #-*$-)! '&3 '?*.&* !,!A!#&
E&-# -+-);%'#9E&-#<=
-+.)*90x36<;
-+.)*90x36<;
-+.)*90x0D<;
-+.)*90x0'<;
-+.)*90x01<;
B
// F?+12& #$ ,&.-'-&+!3$+)& #& '?*.&* #& #-.,%!N
E&-# ,&.-'-&+!9/N)$ %-+8!, /N)$ '&%?+!<=
)$.)!;/-)9<;
RS = 0;
R = 0;
.7-)'89%-+8!<=
'!.$ 1:
'&%?+!II;
#!#&. = 0x60 M '&%?+!;
/*$!(;
'!.$ 2:
'&%?+!II;
#!#&. = 0xC0 M '&%?+!;
/*$!(;
#$@!?%):
*$)?*+;
B
E = 1;
!.3=
+&,
+&,
+&,
B
E = 0;
B
91 Prof. Gustavo Weber Denardin
// F?+12& ,!*! %-3,!* & #-.,%!N $ *$)&*+!* ! ,*-3$-*! ,&.-12& #! ,*-3$-*! %-+8!
E&-# %-3,!;%'#9E&-#<=
)$.)!;/-)9<;
RS = 0;
R = 0;
#!#&. = 0x01;
E = 1;
!.3=
+&,
+&,
+&,
B
E = 0;
B
// F?+12& #$ )$.)$ #! /?.N @%!A
E&-# )$.)!;/-)9E&-#<=
RS = 0;
R = 1;
#-*$'!& = 0x00;
E = 1;
78-%$9/?.N;@%!A<;
E = 0;
R = 0;
#-*$'!& = 0xFF;
B
S interessante criar um ar5ui)o .8 com os #rot+ti#os das funes #ara utii=ar o
c+digo como 6i6ioteca atra);s de um include@ como )isto a6ai7o.
E&-# 7*-)$;%'#9'8!* *.)*-+A<;
E&-# 7*-)$;+?3$*&9?+.-A+$# '8!* +?3$*&<;
E&-# -+.)*9'8!* '&3!+#&<;
E&-# -+-);%'#9E&-#<;
E&-# ,&.-'-&+!9/N)$ %-+8!, /N)$ '&%?+!<;
E&-# %-3,!;%'#9E&-#<;
E&-# )$.)!;/-)9E&-#<;
Para utii=armos as funes criadas incu$mos o ar5ui)o .8@ #or e7em#o@ cd.8 no
#rograma #rinci#a.
\-+'%?#$ ]%'#S8]
Desta forma as funes estar"o dis#on$)e #ara o #rograma #rinci#a@ como
mostrado a6ai7o>
//I+-'-!%-0! & 3>#?%& LCD
-+-);%'#9<;
// E.'*$E$ _T$.)$ #$ E.'*-)!` +! ,*-3$-*! ,&.-12& #! ,*-3$-*! %-+8!
7*-)$;%'#9]T$.)$ #$ E.'*-)!]<;
// P&.-'-&+! & '?*.&* +! ,*-3$-*! ,&.-12& #! .$A?+#! %-+8!
,&.-'-&+!92,1<;
// E.'*$E$ _MCCS06AD0` +! ,*-3$-*! ,&.-12& #! .$A?+#! %-+8!
7*-)$;%'#9]MCCS06AD0]<;
// E.'*$E$ & '!*!')$*$ A
'!*!')$*$9[A[<;
92 Prof. Gustavo Weber Denardin
MF(:$S :C( () . :#>HAS P$" *0 CA"ACT)")S
Em m+duos 2CDds &720 F& in8as 7 20 caracteresH utii=ando o controador
J/00..@ #oucas caracter$sticas de o#era"o se modificam@ tanto em 8ardNare como no
softNare.
< 8ardNare #ermanece 5uase o mesmo. <s #inos de dados e controe do m+duo
s"o iguais aos dos m+duos de 2 in8as #or 1. caracteres a#resentados acima. ?o
entanto@ os m+duos 2CD &720 #ossuem dois controadores@ cada um res#ons)e #or um
#ar de in8as. < softNare sofre agumas ateraes na iniciai=a"o do m+duo e nos
endereos da DD D*M #ara #osicionamento dos caracteres.
* figura a6ai7o a#resenta a organi=a"o da DDD*M dos m+duos 2CD &720 5ue
utii=am o controador J/00...
:in/a )ndereo
1 00 01 02 03 0& 0( 0. 0% 0- 0! 0* 0B 0C 0D 0E 03 10 11 12 13
2 &0 &1 &2 &3 && &( &. &% &- &! &* &B &C &D &E &3 (0 (1 (2 (3
3 1& 1( 1. 1% 1- 1! 1* 1B 1C 1D 1E 13 20 21 22 23 2& 2( 2. 2%
& (& (( (. (% (- (! (* (B (C (D (E (3 .0 .1 .2 .3 .& .( .. .%
<6s> Ierifi5ue 5ue no comando #ara #osicionar o cursor na DD D*M utii=a o 6it
mais significati)o em n$)e +gico 1@ ou seja@ o softNare desen)o)ido de)e en)iar os
comandos como indicado a6ai7o #ara o correto #osicionamento.
* iniciai=a"o dos m+duos com controador J/00.. com comunica"o em - 6its
de)e seguir a se5LBncia a6ai7o>
1. En)iaAse o comando de configura"o do dis#a1[
2. En)iaAse o comando de configura"o iga, desiga do dis#a1[
3. En)iaAse o comando #ara a#agar 5ua5uer mensagem no dis#a1 e
#osicionar o cursor no inicio da #rimeira in8a[
&. En)iaAse o comando de configura"o do modo de o#era"o.
93 Prof. Gustavo Weber Denardin
< fu7ograma da se5LBncia a#resenta acima com os tem#os de #rocessamento
reati)os a cada comando ; a#resentado na figura a6ai7o.
94 Prof. Gustavo Weber Denardin
/e o modo de comunica"o de & 6its Faterando )aor do 6it D2H for utii=ado@ os
#assos ser"o os mesmos@ e os dados ter"o 5ue ser en)iados em ni++les. como no
diagrama de 6ocos a6ai7o.
95 Prof. Gustavo Weber Denardin
De)ido a estas diferenas de o#era"o agumas funes a#resentadas
anteriormente ir"o sofrer modificaes. Estas s"o as funes de #osicionamento F#ois
agora #ossu$mos mais caracteres #or in8a e mais in8asH e de iniciai=a"o. * seguir
estas modificaes s"o a#resentadas.
// I+-'-!%-0!12& #& #-.,%!N ,!*! G %-+8!. '&3 '!*!')$*$. #$ 5xF
// D$.%&'!3$+)& #& '?*.&* ! #-*$-)! '&3 '?*.&* !,!A!#&
E&-# -+-);%'#9E&-#<=
-+.)*90x3C<;
-+.)*90x0C<;
-+.)*90x01<;
-+.)*90x0D<;
B
// F?+12& #$ ,&.-'-&+!3$+)& #& '?*.&* #& #-.,%!N Gx20
E&-# ,&.-'-&+!9/N)$ %-+8!, /N)$ '&%?+!<=
)$.)!;/-)9<;
RS = 0;
R = 0;
.7-)'89%-+8!<=
'!.$ 1:
'&%?+!II;
#!#&. = 0x60 M '&%?+!;
/*$!(;
'!.$ 2:
'&%?+!II;
#!#&. = 0xC0 M '&%?+!;
/*$!(;
'!.$ 2:
'&%?+!II;
#!#&. = 0xCG M '&%?+!;
/*$!(;
'!.$ 2:
'&%?+!II;
#!#&. = 0xDG M '&%?+!;
/*$!(;
#$@!?%):
*$)?*+;
B
E = 1;
!.3=
+&,
+&,
+&,
B
E = 0;
B
96 Prof. Gustavo Weber Denardin
%*& Acesso a MemAria 9:ASH do Microcontrolador
<s microcontroadores 4C/0- #ossuem um circuito de controe 5ue automati=a as
o#eraes de escrita e a#agamento da mem+ria 32*/4.
< controador utii=a um circuito ee)ador de tens"o interno@ ca#a= de gerar a
tens"o necessria Z #rograma"o e a#agamento das c;uas de mem+ria. Incui ainda um
circuito ca#a= de di)idir a fre5LBncia de 6arramento #or um fator #rogram)e@ de forma
5ue a fre5LBncia resutante F3C2JH esteja situada na fai7a entre 1(0 e 200K4=@ 5ue ; a
regi"o de tra6a8o do controador da 32*/4.
Ouanto maior a fre5LBncia de o#era"o do controador@ mais r#ida ser a
#rograma"o e a#agamento da mem+ria@ entretanto@ a o#era"o fora da fai7a de
fre5LBncias es#ecificada n"o ; garantida #eo fa6ricante.
* ta6ea a6ai7o a#resenta os tem#os t$#icos #ara a e7ecu"o dos comandos de
#rograma"o e a#agamento da 32*/4.
Comando Ciclos P9C:<Q Tempo para 9C:< 5 *00 @H0
Programa"o de 61te ! &(Rs
Programa"o de mPti#os 61tes & 20Rs
*#agamento de #gina &000 20ms
*#agamento com#eto 20000 100ms
* fre5LBncia de o#era"o do controador F3C2JH #ode ser cacuada utii=ando a
seguinte e5ua"o>
FCLK=
.SCLK
8bPR%I'/b%I'1
/endo> 6PDDII- C 6it de #r;Adi)is"o #or - Fregistrador 3CDIIH
6DII C fator de di)is"o do cocK Fregistrador 3CDIIH
< controador de mem+ria o#era de forma muito sim#es> o usurio #rograma o
di)isor de cocK do controador Fregistrador 3CDIIH@ escre)e o endereo o 5ua deseja
#rogramar ou a#agar@ escre)e o comando a ser e7ecutado no registrador 3CMD e em
seguida a#aga o 6it 3CBE3 Fregistrador 3/'*'H@ dando in$cio Z e7ecu"o do comando.
Para a#agar o 6it 3CBE3 de)eAse escre)er o )aor 1 nee. *#+s a e7ecu"o do comando@
o controador seta o 6it 3CC3 Fregistrador 3/'*'H.
97 Prof. Gustavo Weber Denardin
<6ser)e 5ue antes da e7ecu"o de um comando ; necessrio )erificar o 6it
3CBE3. Em no)o comando s+ #ode ser escrito no registrador 3CMD 5uando o 6it 3CBE3
est em n$)e +gico 1. Caso contrrio@ um erro de acesso Z mem+ria 32*/4 ; gerado.
$BSJ >o L poss?Bel programar ou apagar a memAria 9:ASH atraBLs de um
programa e6ecutado na prApria 9:ASH& )stas opera,es somente podem ser
reali0adas a partir de um programa sendo e6ecutado na memAria "AM& $s
e6emplos apresentados neste cap?tulo demonstram uma das poss?Beis +ormas de
se reali0ar tal operao&
C$MA>($S ($ C$>T"$:A($"
< controador recon8ece cinco comandos diferentes> )erifica"o de a#agamento@
#rograma"o de um 61te@ #rograma"o de mPti#os 61tes@ a#agamento de #gina e
a#agamento com#eto.
;)"#9#CADE$ () APA=AM)>T$
Este comando efetua a eitura de todo o contePdo da mem+ria 32*/4 e caso todos
os 6its estejam em n$)e +gico 1 Fn"o #rogramadosH@ o 6it 3B2*?J Fregistrador 3/'*'H ;
e)ado #ara n$)e +gico 1. Caso a mem+ria n"o esteja a#agada@ este 6it ; e)ado a n$)e
+gico 0.
Em outro efeito da e7ecu"o do comando de )erifica"o de a#agamento ; 5ue@
caso a mem+ria esteja a#agada@ o controador automaticamente desa6iita a #rote"o de
acesso Z mem+ria@ escre)endo os )aores 1 e 0 nos 6its /EC01 e /EC00
res#ecti)amente@ am6os ocai=ados no registrador 3<P'.
P"$="AMADE$ () M BTT)
Esse comando #ode ser utii=ado #ara #rogramar uma #osi"o 5ua5uer da
mem+ria 32*/4.
* utii=a"o deste comando de)e seguir os #assos descritos a seguir>
1. < #rograma )erifica se a fla$ de erro de acesso Z mem+ria 32*/4 F6it
3*CCEDD no registrador 3/'*'H est em n$)e +gico 1. Oua5uer o#era"o
do controador da mem+ria ; ini6ida 5uando este 6it est ati)ado. <
a#agamento ; reai=ado #ea escrita de n$)e +gico 1 neste 6it[
98 Prof. Gustavo Weber Denardin
2. #rogramaAse o fator de di)is"o do cloc# do controador #eo registrador
3CDII Festa #rograma"o somente #ode ser reai=ada uma Pnica )e=@ a#+s
o reset[
3. o #rograma de)e )erificar se a fla$ 3CBE3 est em n$)e +gico 1. Caso ee
esteja em n$)e +gico 0@ o #rograma de)e aguardar at; 5ue a e7ecu"o do
comando atua termine[
&. escre)eAse o dado a ser #rogramado no endereo desejado da mem+ria
32*/4. 2em6reAse 5ue #ode ser necessrio a#agar a mem+ria antes de
escre)er nea[
(. o comando de #rograma"o de 61te F0720H ; escrito no registrador 3CMD[
.. a fla$ 3CBE3 de)e ser e)ada a n$)e +gico 0@ escre)endo 1 neste 6it. Este
#rocedimento inicia a e7ecu"o do comando[
%. a#+s esta se5LBncia@ o #rograma de)e )erificar se 8ou)e agum ti#o de erro>
)ioa"o de acesso Z mem+ria 32*/4 F3*CCEDDH ou )ioa"o de #rote"o
F3PII<2H. De#are 5ue o erro de )ioa"o de #rote"o ocorre 5uando se
tenta #rogramar uma rea de mem+ria 5ue esteja dentro da rea de
#rote"o definida #eo registrador 3PD<'[
-. *guardaAse o t;rmino da e7ecu"o do comando #eo monitoramento da fla$
3CC3 Fregistrador 3/'*'H. Ee ; automaticamente a#agado no in$cio da
e7ecu"o do comando e e)ado a n$)e +gico 1 ao t;rmino da e7ecu"o do
comando. 2em6reAse de 5ue o #rograma de)e aguardar um #er$odo m$nimo
de 5uatro cicos de 6arramento antes de efetuar a eitura da fla$ 3CC3 ou
3CBE3.
$BSJ U recomendado 1ue apAs a memAria 9:ASH ser apagadaM somente se'a
reali0ada uma Knica graBao em cada posio de memAria de uma p-gina& >oBas
graBa,es somente deBem ser reali0adas mediante noBo apagamento da p-gina& A
programao de uma posio de memAria mais de uma Be0 apAs seu apagamento
pode corromper o conteKdo da memAria 9:ASH&
99 Prof. Gustavo Weber Denardin
P"$="AMADE$ () MS:T#P:$S BTT)S
Este modo@ denominado de rajada F+urstH@ caracteri=aAse #or n"o desigar o circuito
ee)ador de tens"o entre a #rograma"o de cada 61te. Desta forma@ o tem#o de
#rograma"o da mem+ria ; redu=ido considera)emente.
* utii=a"o do comando de #rograma"o de mPti#os 61tes ; imitada@ #ois
somente ; #oss$)e #rogramar 61tes situados em uma mesma in8a. Ema in8a ;
com#osta #or .& 61tes da mem+ria 32*/4 em 5ue os 6its de endereo *1( at; *. s"o
iguais@ conforme e7em#ificado na figura a6ai7o.
)ndereo
Bits do 4arramento de endereos PinternoQ
*1( *1& *13 *12 *11 *10 *! *- *% *. *( *& *3 *2 *1 *0
:in/a da 9:ASH 073333
a
0733C0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
:in/a da 9:ASH 0733B3
a
0733-0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
:in/a da 9:ASH 0733%3
a
0733&0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
<s #assos a serem seguidos #ara efetuar a #rograma"o de mPti#os 61tes da
32*/4 s"o 6asicamente os mesmos da #rograma"o de um Pnico 61te@ com e7ce"o do
comando a ser escrito no registrador 3CMD F5ue neste caso ; 072(H. *;m disso@ a#+s a
#rograma"o de cada 61te@ o #rograma de)e retornar ao #asso 3 Fda se5LBncia #ara
escrita de um 61teH #ara efetuar a #rograma"o de um no)o 61te@ re#etindo o #rocesso
#or toda a in8a da 32*/4@ ou en5uanto 8ou)er dados a serem gra)ados.
*#+s o Ptimo 61te@ o #rograma de)e monitorar a fla$ 3CC3@ aguardando a
concus"o do comando de #rograma"o.
APA=AM)>T$ () P!=#>A
<s microcontroadores 4C/0- di)idem a mem+ria 32*/4 em segmentos de (12
61tes@ c8amados de #ginas. Ema #gina ; a menor #or"o de mem+ria 5ue #ode ser
a#agada.
Para efetuar o a#agamento de uma #gina@ 6asta seguir os mesmos
#rocedimentos descritos #ara o comando de #rograma"o de 61te. < endereo em 5ue
de)e ocorrer a escrita seeciona a #gina a ser a#agada. < restante da se5LBncia ;
idBntico@ com e7ce"o do comando@ 5ue neste caso ; 07&0.
100 Prof. Gustavo Weber Denardin
*#+s a o#era"o de a#agamento@ as #osies de mem+ria conter"o o )aor 0733
Ftodos os 6its em n$)e +gico 1H.
APA=AM)>T$ C$MP:)T$
Este comando a#agar toda a mem+ria 32*/4. * e7ecu"o do comando ; idBntica
Z do a#agamento de #gina@ com e7ce"o do comando a ser carregado no 3CMD@ 5ue
neste caso ; 07&1.
P"$T)DE$ (A M)MF"#A 9:ASH
<s microcontroadores 4C/0- incuem um mecanismo de #rote"o contra
gra)a"o ou a#agamento da mem+ria 32*/4. Esse mecanismo ; controado #eo
registrador 3PD<'. Este registrador n"o #ode ser aterado #eo usurio e o seu contePdo
; carregado no reset@ a #artir do registrador ?IPD<'@ ocai=ado na mem+ria 32*/4.
* #rinci#a a#ica"o da #rote"o da mem+ria ; im#edir 5ue um #rograma consiga
a#agar uma #arte de si mesmo inad)ertidamente. Isto #ode acontecer 5uando se utii=a a
32*/4 #ara o arma=enamento de dados ou #arXmetros re#rogram)eis #eo usurio.
<utra a#ica"o ; a #rote"o do c+digo de um +ootloader@ um #e5ueno #rograma
5ue #ode ser utii=ado #ara re#rogramar a mem+ria 32*/4 do microcontroador. *
utii=a"o de um +ootloader #ermite atuai=aes ou modificaes em um #rograma
#rinci#a residente na mem+ria 32*/4@ utii=ando uma sim#es cone7"o seria com um
com#utador.
?a fam$ia de microcontroadores MC!/0-*W@ o registrador 3PD<' #ossui sete
6its res#ons)eis #ea see"o da rea de mem+ria #rotegida. <s 6its 3P/% a 3P/1 F6its
mais significati)os do endereoH concatenados com o )aor 07133 determinam o fim da
mem+ria 32*/4 des#rotegida. * ta6ea a6ai7o a#resenta #oss$)e )aores de #rote"o
#ara a mem+ria.
9PSI 9PS6 9PS7 9PS. 9PS8 9PS* 9PS% 9ai6a de endereos
protegidos
Taman/o total do 4loco
protegido
)ndereo dos Betores
redirecionados
0 0 0 1 1 0 0 071*00 a 073333 (---0 61tes 071!C0 a 071!3D
0 0 0 1 1 0 1 071C00 a 073333 (-3.- 61tes 071BC0 a 071B3D
0 0 0 1 1 1 0 071E00 a 073333 (%-(. 61tes 071DC0 a 071D3D
0 0 0 1 1 1 1 072000 a 073333 (%3&& 61tes 0713C0 a 07133D
0 0 1 0 0 0 0 072200 a 073333 (.-32 61tes 0721C0 a 07213D
0 0 1 0 0 0 1 072&00 a 073333 (.320 61tes 0723C0 a 07233D
0 0 1 0 0 1 0 072.00 a 073333 ((-0- 61tes 072(C0 a 072(3D
0 0 1 0 0 1 1 072-00 a 073333 ((2!. 61tes 072%C0 a 072%3D
101 Prof. Gustavo Weber Denardin
0 0 1 0 1 0 0 072*00 a 073333 (&%-& 61tes 072!C0 a 072!3D
0 0 1 0 1 0 1 072C00 a 073333 (&2%2 61tes 072BC0 a 072B3D
0 0 1 0 1 1 0 072E00 a 073333 (3%.0 61tes 072DC0 a 072D3D
0 0 1 0 1 1 1 073000 a 073333 (32&- 61tes 0723C0 a 07233D
0 0 1 1 0 0 0 073200 a 073333 (2%3. 61tes 0731C0 a 07313D
0 0 1 1 0 0 1 073&00 a 073333 (222& 61tes 0733C0 a 07333D
0 0 1 1 0 1 0 073.00 a 073333 (1%12 61tes 073(C0 a 073(3D
0 0 1 1 0 1 1 073-00 a 073333 (1200 61tes 073%C0 a 073%3D
0 0 1 1 1 0 0 073*00 a 073333 (0.-- 61tes 073!C0 a 073!3D
0 0 1 1 1 0 1 073C00 a 073333 (01%. 61tes 073BC0 a 073B3D
0 0 1 1 1 1 0 073E00 a 073333 &!..& 61tes 073DC0 a 073D3D
0 0 1 1 1 1 1 07&000 a 073333 &!1(2 61tes 0733C0 a 07333D
0 1 0 0 0 0 0 07&200 a 073333 &-.&0 61tes 07&1C0 a 07&13D
0 1 0 0 0 0 1 07&&00 a 073333 &-12- 61tes 07&3C0 a 07&33D
0 1 0 0 0 1 0 07&.00 a 073333 &%.1. 61tes 07&(C0 a 07&(3D
0 1 0 0 0 1 1 07&-00 a 073333 &%10& 61tes 07&%C0 a 07&%3D
0 1 0 0 1 0 0 07&*00 a 073333 &.(!2 61tes 07&!C0 a 07&!3D
0 1 0 0 1 0 1 07&C00 a 073333 &.0-0 61tes 07&BC0 a 07&B3D
0 1 0 0 1 1 0 07&E00 a 073333 &((.- 61tes 07&DC0 a 07&D3D
0 1 0 0 1 1 1 07(000 a 073333 &(0(. 61tes 07&3C0 a 07&33D
.... .... .... .... .... .... .... .... .... ....
.... .... .... .... .... .... .... .... .... ....
0 1 1 1 1 1 1 07-000 a 073333 32%.- 61tes 07%3C0 a 07%33D
1 0 1 1 1 1 1 07C000 a 073333 1.3-& 61tes 07B3C0 a 07B33D
1 1 0 1 1 1 1 07E000 a 073333 -1!2 61tes 07D3C0 a 07D33D
1 1 1 0 1 1 1 073000 a 073333 &0!. 61tes 07E3C0 a 07E33D
1 1 1 1 0 1 1 073-00 a 073333 20&- 61tes 073%C0 a 073%3D
1 1 1 1 1 0 1 073C00 a 073333 102& 61tes 073BC0 a 073B3D
1 1 1 1 1 1 0 073E00 a 073333 (12 61tes 073DC0 a 073D3D
< registrador 3PD<' incui tam6;m um 6it de controe>
9P(#S 8F/AS4 Protection Disa+le9
0 C ati)a a #rote"o da mem+ria
1 C desa6iita a #rote"o da mem+ria
< registrador 3PD<' n"o #ode ser aterado diretamente #eo usurio Fa n"o ser )ia
BDMH@ o 5ue significa 5ue o )aor de)e ser #rogramado no registrador ?IPD<'. Em um
reset@ o contePdo de ?IPD<' ; co#iado #ara 3PD<'.
< registrador 3PD<' atra);s do 6it 3PDI/ #ode desa6iitar totamente a #rote"o
contra gra)a"o e a#agamento da mem+ria 32*/4.
102 Prof. Gustavo Weber Denardin
")(#")C#$>AM)>T$ ($S ;)T$")S () #>T)""PDE$
<utro mecanismo interessante ; o de redirecionamento dos )etores de interru#"o.
Esse mecanismo ; controado #eo 6it 3?<DED Fregistrador 3<P'H e 5uando 8a6iitado@
redireciona os )etores de interru#"o@ dos endereos 0733C0 a 073333@ #ara o Ptimo
6oco de .& 61tes da mem+ria des#rotegida. * ta6ea anterior a#resenta os endereos de
redirecionamento #ara as fai7as de #rote"o indicadas.
* fai7a de endereos #ara os 5uais os )etores s"o direcionados de)e ser cacuada
manuamente. De#are 5ue o mecanismo de redirecionamento de )etores n"o incui o
)etor de reset@ 5ue ; mantido fi7o no seu endereo F07333E a 073333H. *;m disto@ o
mecanismo de redirecionamento n"o #ode ser utii=ado 5uando a #rote"o de mem+ria
est desati)ada.
S)="A>DA (A M)MF"#A
Para #re)enir a eitura n"o autori=ada do contePdo de toda a mem+ria F32*/4 e
D*MH@ os microcontroadores 4C/0- incuem tam6;m um mecanismo de segurana 5ue
im#ede o acesso Z mem+ria )ia interface BDM.
Para ati)ar esta #rote"o @ 6asta configurar os 6its /EC01 e /EC00 #ara 00@ 01 ou
11. Estes 6its est"o ocai=ados no registrador 3<P' mas n"o #odem ser aterados
diretamente #eo usurio. < seu estado somente #ode ser indiretamente aterado atra);s
do registrador ?I<P'.
?o reset@ o registrador 3<P' ; carregado com o contePdo do registrador ?I<P'@
ocai=ado na mem+ria 32*/4.
Ema )e= #rotegida@ s+ e7istem duas formas de des#roteger a mem+ria>
1. Peo a#agamento com#eto da mem+ria seguido de uma )erifica"o de
a#agamento Fo comando de )erifica"o de a#agamento des#rotege a mem+ria
5uando detecta 5ue ea est totamente a#agadaH. Essa o#era"o #ode ser
reai=ada com o uso do BDM.
2. Com uma sen8a de - 61tes> os 4C/0- #ossuem um mecanismo de sen8a
#arecido com o e7istente no monitor da fam$ia 4C0-. S #oss$)e #rogramar uma
sen8a nos endereos 0733B0 a 0733B% 5ue ser utii=ada #ara #ermitir o acesso Z
mem+ria do microcontroador. Essa sen8a somente est dis#on$)e 5uando
8a6iitada #eo 6it JEeE? Fregistrador 3<P'H. ?ote 5ue a sen8a n"o #ode ser
utii=ada com o BDM. /omente um #rograma e7ecutado a #artir da mem+ria
#rotegida #ode i6erar o acesso Z mem+ria atra);s da sen8a.
103 Prof. Gustavo Weber Denardin
*e$istrador de Divis;o do Cloc# da F/AS4 ($CD'#)
(#;(: FDivisor /oaded Status Fla$H C indicador de di)isor carregado. Esse 6it@ iniciamente em n$)e
+gico 0 a#+s o reset@ ; e)ado a n$)e +gico 1 a#+s a escrita no registrador 3CDII@ de forma a indicar 5ue o
fator DII foi #rogramado. *s o#eraes de escrita e a#agamento da 32*/4 s"o desa6iitadas 5uando este
6it est em n$)e +gico 0.
0 C o registrador 3CDII ainda n"o foi #rogramado
1 C o registrador 3CDII foi #rogramado e as o#eraes de escrita na 32*/4 est"o
i6eradas
P"(#;8 FPrescale F/AS4 cloc# +( BH C see"o do cocK do controador da mem+ria 32*/4>
0 C BE/C2J
1 C BE/C2J , -
(#;U(>0V FDivisor for F/AS4 cloc# DividerH C fator de di)is"o do cocK do controador da mem+ria
32*/4. < cocK da mem+ria 32*/4 ; igua ao )aor da fonte de cocK di)idido #or DII mais um. < )aor
resutante de)e estar entre 1(0 e 200K4=.
* ta6ea a seguir a#resenta a configura"o do registrador 3CDII #ara diferentes
cocKs de 6arramento.
+4us P"(#;8 (#;7J(#;0 +9C:< Tempo mLdio para
programao
20 M4= 1 12 1!2.3 K4= (@2 Rs
10 M4= 0 &! 200 K4= ( Rs
- M4= 0 3! 200 K4= ( Rs
& M4= 0 1! 200 K4= ( Rs
2 M4= 0 ! 200 K4= ( Rs
1 M4= 0 & 200 K4= ( Rs
200 K4= 0 0 200 K4= ( Rs
1(0 K4= 0 0 1(0 K4= .@% Rs
104 Prof. Gustavo Weber Denardin
*e$istrador de )p:Ces da F/AS4 ($OPT e N#OPT)
<)T)> F2ac#door 3e( Mec!anis Ena+leH C 8a6iita"o do mecanismo de sen8a de acesso.
0 C entrada )ia sen8a desa6iitada@ nen8um acesso ; #ermitido
1 C entrada )ia sen8a 8a6iitada
9>$")( F1ector *edirection Disa+leH C controe de redirecionamento dos )etores de interru#"o.
0 C redirecionamento 8a6iitado
1 C redirecionamento desa6iitado
S)C0U1>0V FSecurit( State CodeH C see"o do modo de #rote"o da mem+ria. ?o modo #rotegido@ o
contePdo da mem+ria 32*/4 e D*M n"o #ode ser acessado #eo BDM. ?o modo des#rotegido@ ; #oss$)e
er o contePdo da mem+ria #eo BDM.
00 C modo #rotegido
01 C modo #rotegido
10 C modo des#rotegido
11 C modo #rotegido
*e$istrador de Confi$ura:;o da F/AS4 ($CN$G)
<)TACC FEna+le Writin$ of Access 3e(H C see"o do modo de entrada da sen8a de - 61tes.
0 C a escrita nos endereos 0733B0 a 0733B% ; inter#retada como uma o#"o norma de
escrita ou a#agamento de mem+ria.
1 C a escrita nos endereos 0733B0 a 0733B% ; com#arada com a sen8a arma=enada nos
mesmos endereos
105 Prof. Gustavo Weber Denardin
*e$istrador de Prote:;o da F/AS4 ($PROT e N#PROT)
9PS FFlas! Protect Select 2itsH C see"o da rea de mem+ria 32*/4 #rotegida contra escrita e
a#agamento. Este registrador cont;m os % 6its mais significati)os do Ptimo endereo da mem+ria 5ue
#ermanecer des#rotegida. < 6oco entre o endereo seguinte at; o fina da mem+ria F073333H #ode ser
#rotegido contra escrita , a#agamento caso o 6it 3PDI/ esteja em n$)e +gico 0.
9P(#S FFlas! Protection Disa+leH C desa6iita"o da #rote"o da 32*/4.
0 C 6oco de mem+ria es#ecificado #eos 6its 3P/ #rotegido
1 C mem+ria des#rotegida
* figura a6ai7o a#resenta a forma"o do endereo a #artir do 5ua a mem+ria ser
des#rotegida.
*e$istrador de Estado da F/AS4 ($STAT)
9CB)9 FFlas! Coand 2uffer Ept( Fla$H C indicador de +uffer de comandos da 32*/4 )a=io.
0 C +uffer de comandos c8eio
1 C +uffer de comandos )a=io
9CC9 FF/AS4 coand Coplete Fla$H C indicador de comando da 32*/4 com#eto.
0 C comando em e7ecu"o
1 C nen8um comando em e7ecu"o
106 Prof. Gustavo Weber Denardin
9P;#$: FProtection 1iolation Fla$H C indicador de )ioa"o da mem+ria 32*/4 Ftentati)a de
escre)er , a#agar um endereo de mem+ria #rotegidaH. Esta indica"o #ode ser a#agada escre)endoAse
n$)e +gico 1 no 6it em 5uest"o.
0 C nen8uma )ioa"o
1 C 8ou)e uma )ioa"o de #rograma"o da 32*/4
9ACC)"" FAccess Error Fla$H C Indicador de erro de acesso Z 32*/4. Esse 6it ; e)ado a n$)e
+gico 1 sem#re 5ue a se5LBncia correta de #rograma"o da mem+ria n"o ; seguida@ ou nos casos
descritos no te7to. Esta indica"o #ode ser a#agada escre)endoAse n$)e +gico 1 no 6it em 5uest"o.
0 C nen8um erro de acesso
1 C erro de acesso
9B:A>< FF/AS4 1erified as All 2lan# Fla$H C indicador de )erifica"o da mem+ria 32*/4
com#etamente a#agada. Este 6it ; e)ado #ara n$)e +gico 1 caso@ a#+s a e7ecu"o de um comando de
)erifica"o de a#agamento da mem+ria@ esta esteja totamente a#agada. Esta indica"o ; a#agada 5uando
o 6it 3CBE3 ; e)ado a n$)e +gico 0.
0 C mem+ria 32*/4 n"o a#agada
1 C mem+ria 32*/4 a#agada
*e$istrador de Coandos da F/AS4 ($CMD)
<s #oss$)eis comandos da 32*/4 s"o a#resentados na ta6ea a6ai7o. Oua5uer
outro c+digo gera um erro de acesso.
Comando 9CM( )1uate C de+ine
Ierifica"o de a#agamento 070( mBanK
Programa"o de um 61te 0720 mB1teProg
Programa"o de mPti#os 61tes 072( mBurstProg
*#agamento de #gina F(12 61tesH 07&0 mPageErase
*#agamento gera da mem+ria 07&1 mMassErase
107 Prof. Gustavo Weber Denardin
* seguir ser"o a#resentados os #rocedimentos em inguagem C #ara reai=ar
acessos de escrita e eitura na mem+ria 32*/4.
< #rimeiro #asso #ara 5ue #ossamos utii=ar a mem+ria 32*/4 ; reaocar o
es#ao utii=ado #ara o #rograma #rinci#a. Por e7em#o@ o microcontroador
MC!/0-*W.0 tem como #osi"o inicia de mem+ria de #rograma F32*/4H o endereo
071-.0. < es#ao de mem+ria a ser utii=ado como mem+ria de arma=enamento de)e ser
reser)ado no in$cio da mem+ria 32*/4. *ssim@ #ara reser)ar 1!(2 61tes@ de)emos
re#osicionar o in$cio da mem+ria 32*/4 destinada ao #rograma desen)o)ido #ara o
endereo 072000 no segmento D<M do ar5ui)o Project.#rm.
SEGME5TS /* 4$*$ !%% RAM/ROM !*$!. &@ )8$ #$E-'$ !*$ %-.)$#S J.$# -+ PLACEME5T
/$%&7S */
a;RAM = READ;RITE 0x00F0 TO 0x00FF;
RAM = READ;RITE 0x0100 TO 0x06DF;
ROM = READ;O5Lb 0x2000 TO 0xFFAF;
ROM1 = READ;O5Lb 0x06F0 TO 0x1FFF;
ROM2 = READ;O5Lb 0xFFC0 TO 0xFFCB;
/* I5TVECTS = READ;O5Lb 0xFFCC TO 0xFFFF; R$.$*E$# @&*
I+)$**?,) V$')&*. */
E5D
* seguir de)eAse incuir um ar5ui)o com o c+digo a6ai7o@ em *ssem61@ das
#rinci#ais funes de acesso a mem+ria na #asta Sources do #rojeto no CodeWarrior.
;**************************************************************
;* T8-. .)!)-&+$*N -. 3$!+) )& .$*E$ !. )8$ @*!3$7&*( @&* ! *
;* ?.$* !,,%-'!)-&+S F&* ! 3&*$ '&3,*$8$+.-E$ ,*&A*!3 )8!) *
;* #$3&+.)*!)$. )8$ 3&*$ !#E!+'$# @?+')-&+!%-)N &@ )8-. *
;* ,*&'$..&*, ,%$!.$ .$$ )8$ #$3&+.)*!)-&+ !,,%-'!)-&+. *
;* %&'!)$# -+ )8$ $x!3,%$. .?/#-*$')&*N &@ )8$ *
;* M$)*&7$*(. C&#$7!**-&* @&* )8$ 4C06 P*&A*!3 #-*$')&*N *
;**************************************************************
; $x,&*) .N3/&%.
PDEF D&O+S)!'(
PDEF F%!.8E*!.$
PDEF F%!.8P*&A
; 7$ ?.$ $x,&*) [E+)*N[ !. .N3/&%S T8-. !%%&7. ?. )&
; *$@$*$+'$ [E+)*N[ $-)8$* -+ )8$ %-+($* S,*3 @-%$
; &* @*&3 C/CMM %!)$* &+

; -+'%?#$ #$*-E!)-E$ .,$'-@-' 3!'*&.
I+'%?#$ [3'C.06!7D0S-+'[
; E!*-!/%$/#!)! .$')-&+
Mb;aEROPAGE: SECTIO5 S4ORT
; I+.$*) 8$*$ N&?* #!)! #$@-+-)-&+S F&* #$3&+.)*!)-&+, )$3,;/N)$ -. ?.$#S
; )$3,;/N)$ #.S/ 1
108 Prof. Gustavo Weber Denardin
; '&#$ .$')-&+
MNC&#$: SECTIO5
;**************************************************************
; )8-. !..$3/%N *&?)-+$ -. '!%%$# )8$ C/CMM !,,%-'!)-&+
D&O+S)!'(: ,.8x
,.88 ;.!E$ ,&-+)$* )& @%!.8
,.8! ;.!E$ '&33!+# &+ .)!'(
%#8x \S,S?/E+# ;,&-+) !) %!.) /N)$ )& 3&E$ )& .)!'(;
S,M&E$L&&,: %#! ,x ;*$!# @*&3 @%!.8
,.8! ;3&E$ &+)& .)!'(
!-x \I1 ;+$x) /N)$ )& 3&E$
',8x \S,S?/I1 ;,!.) $+#?
/+$ S,M&E$L&&, ;%&&, )-%% 78&%$ .?/ &+ .)!'(
).x ;,&-+) )& .?/ &+ .)!'(
),! ;3&E$ CCR )& A @&* )$.)-+A
!+# \c06 ;'8$'( )8$ I 3!.(
/+$ I;.$) ;.(-, -@ I !%*$!#N .$)
.$- ;/%&'( -+)$**?,). 78-%$ FLAS4 /?.N
%#! S,S?/S-0$MD,., ;,*$%&!# #!)! @&* '&33!+#
d.* ,x ;$x$'?)$ )8$ .?/ &+ )8$ .)!'(
'%- ;&( )& '%$!* I 3!.( +&7
/*! I;'&+) ;'&+)-+?$ )& .)!'( #$I!%%&'!)-&+
I;.$): %#! S,S?/S-0$MD,., ;,*$%&!# #!)! @&* '&33!+#
d.* ,x ;$x$'?)$ )8$ .?/ &+ )8$ .)!'(
I;'&+): !-. \S,S?/S-0$M3 ;#$!%%&'!)$ .?/ /&#N M 4:P M '&33!+# ;4:P
@%!.8 ,&-+)$* OK @*&3 S,S?/
%.%! ;A=00 W a=1 ?+%$.. PVIOL &* ACCERR
*). ;)& @%!.8 78$*$ D&O+S)!'( 7!. '!%%$#
;**************************************************************
S,S?/: %#8x LO9S,S?/S-0$MG<,., ;A$) @%!.8 !##*$.. @*&3 .)!'(
.)! 0,x ;7*-)$ )& @%!.8; %!)'8 !##* !+# #!)!
%#! S,S?/S-0$M3,., ;A$) @%!.8 '&33!+#
.)! FCMD ;7*-)$ )8$ @%!.8 '&33!+#
%#! \3FSTAT;FCBEF ;3!.( )& -+-)-!)$ '&33!+#
.)! FSTAT ;Y,7,,Z *$A-.)$* '&33!+#
+&, ;Y,Z 7!+) 3-+ Ge @*&3 7 'N'%$ )& *
C8(D&+$: %#! FSTAT ;Y,*,,Z .& FCCF -. E!%-#
%.%! ;FCCF +&7 -+ MSB
/,% C8(D&+$ ;%&&, -@ FCCF = 0
S,S?/E+#: *). ;/!'( -+)& D&O+S)!'( -+ @%!.8
S,S?/S-0$: $O? 9*IS,S?/<
;**************************************************************
F%!.8E*!.$: ,.8! ;!#d?.) ., @&* D&O+S)!'( $+)*N
%#! \93FSTAT;FPVIOLM3FSTAT;FACCERR< ;3!.(
.)! FSTAT ;!/&*) !+N '&33!+# !+# '%$!* $**&*.
%#! \3P!A$E*!.$ ;3!.( ,!))$*+ @&* ,!A$ $*!.$ '&33!+#
/.* D&O+S)!'( ;@-+-.8 '&33!+# @*&3 .)!'(I/!.$# .?/
!-. \1 ;#$!%%&'!)$ #!)! %&'!)-&+ @*&3 .)!'(
*).
;**************************************************************
F%!.8P*&A: ,.8! ;)$3,&*!*-%N .!E$ $+)*N #!)!
%#! \93FSTAT;FPVIOLM3FSTAT;FACCERR< ;3!.(
.)! FSTAT ;!/&*) !+N '&33!+# !+# '%$!* $**&*.
%#! \3BN)$P*&A ;3!.( ,!))$*+ @&* /N)$ ,*&A '&33!+#
/.* D&O+S)!'( ;$x$'?)$ ,*&A '&#$ @*&3 .)!'( RAM
!-. \1 ;#$!%%&'!)$ #!)! %&'!)-&+ @*&3 .)!'(
*).
;**************************************************************
*inda@ no ar5ui)o #rinci#a do #rograma desen)o)ido de)emos incuir um ar5ui)o
com os #rot+ti#os destas funes.
109 Prof. Gustavo Weber Denardin
\-+'%?#$ ]#&&+.)!'(S8]
Este ar5ui)o de)e conter o seguinte c+digo>
/*
I )8-. @-%$ API /$)7$$+ 3!-+S' !+# #&&+.)!'(S!.3
*/
\-@+#$@ ;#&&+.)!'(
\#$@-+$ ;#&&+.)!'(
\-@#$@ ;;',%?.,%?.
$x)$*+ ]C] = /* &?* !..$3/%N @?+')-&+. 8!E$ C '!%%-+A '&+E$+)-&+ */
\$+#-@
/* ,*&)&)N,$ @&* D&O+S)!'( *&?)-+$ */
E&-# D&O+S)!'(9E&-#<;
/* ,*&)&)N,$ @&* F%!.8E*!.$ *&?)-+$ */
/* P!A$ E*!.$ '&33!+# */
E&-# F%!.8E*!.$9?+.-A+$# '8!* *<;
/* ,*&)&)N,$ @&* F%!.8P*&A *&?)-+$ */
/* BN)$ P*&A*!3 '&33!+# */
E&-# F%!.8P*&A9?+.-A+$# '8!* *, ?+.-A+$# '8!*<;

\-@#$@ ;;',%?.,%?.
B
\$+#-@

\$+#-@ /* ;#&&+.)!'( */
?o #rograma #rinci#a de)eAse configurar a fre5LBncia de o#era"o do controador
da mem+ria 32*/4 e os #rot+ti#os das funes 5ue ser"o utii=adas.
\#$@-+$ EFCDIV FD // #-E-.&* ,!*! & FCLK = 9BJSCLK< / 96 * 12M1<
// FCLK = 20M80 / 9112< = 1C2,3 K80
// O E!%&* 3Kx-3& +2& ,&#$ ?%)*!,!..!* 200 K80
// P*&)>)-,&. #$ @?+1Q$. #$ !'$..& ! 3$3>*-! FLAS4
E&-# S$*-!%;E+E-!;C!*!')$*9/N)$ '!*!')$*<;
E&-# S$*-!%;E+E-!;F*!.$9'8!* *.)*-+A<;
E&-# %!*A?*!;,?%.&9/N)$ '!+!%,/N)$ ,$*'$+)<;
* seguir s"o a#resentados e7em#os de funes #ara eitura e escrita na mem+ria
32*/4.
//LT ?3 $+#$*$1& #$ 3$3>*-!
?+.-A+$# '8!* @%!.8;*$!#9?+.-A+$# -+) $+#$*$'&<
=
?+.-A+$# '8!* *,&+)$-*&;
//A?!*#! & $+#$*$1& #! 3$3>*-! $3 ?3 ,&+)$-*&
,&+)$-*& = 9'8!**< $+#$*$'&;
//*$)&*+! & E!%&* !*3!0$+!#& +& $+#$*$1& -+#-'!#& ,$%& ,&+)$-*&
*$)?*+ 9*,&+)$-*&<;
B

110 Prof. Gustavo Weber Denardin
//E.'*$E$ $3 ?3 $+#$*$1& #! 3$3>*-! FLAS4
?+.-A+$# '8!* @%!.8;7*-)$9?+.-A+$# -+) $+#$*$'&, ?+.-A+$# '8!* #!#&<
=
?+.-A+$# '8!* *,&+)$-*&;
//A?!*#! & $+#$*$1& #! 3$3>*-! $3 ?3 ,&+)$-*&
,&+)$-*& = 9'8!**< $+#$*$'&;
//V$*-@-'! $ !,!A! @%!A #$ $**& #$ !'$..& ! FLAS4
-@9FSTAT;FACCERR<
FSTAT;FACCERR = 1;
//C8!3! ! @?+12& #$ ,*&A*!3!12& #! FLAS4
F%!.8P*&A9,&+)$-*&,#!#&<;
//.$ 8&?E$* $**&, *$)&*+! 1S C!.& '&+)*K*-&, *$)&*+! 0
-@9FSTAT;FACCERR RR FSTAT;FPVIOL<
*$)?*+91<;
$%.$
*$)?*+90<;
B


// A,!A! ?3! ,KA-+! +! FLAS4
?+.-A+$# '8!* @%!.8;,!A$;$*!.$9?+.-A+$# -+) $+#$*$'&<
=
?+.-A+$# '8!* *,&+)$-*&;
//A?!*#! & $+#$*$1& #! 3$3>*-! $3 ?3 ,&+)$-*&
,&+)$-*& = 9'8!**< $+#$*$'&;
//V$*-@-'! $ !,!A! @%!A #$ $**& #$ !'$..& ! FLAS4
-@9FSTAT;FACCERR<
FSTAT;FACCERR = 1;
//C8!3! ! @?+12& #$ ,*&A*!3!12& #! FLAS4
F%!.8E*!.$9,&+)$-*&<;
//.$ 8&?E$* $**&, *$)&*+! 1S C!.& '&+)*K*-&, *$)&*+! 0
-@9FSTAT;FACCERR RR FSTAT;FPVIOL<
*$)?*+91<;
$%.$
*$)?*+90<;
B

// I+-'-!%-0! & '&+)*&%!#&* #! 3$3>*-! FLAS4
E&-# -+-);FLAS49E&-#<=
-@9FSTAT;FACCERR<
FSTAT;FACCERR = 1;
FCDIV = EFCDIV;
// A,!A! ! FLAS4 #& $+#$*$1& 0x16D0 !)H ! $+#$*$1& 0x1FFF
*$. = @%!.8;,!A$;$*!.$90x16D0<; // G1D /N)$.
*$. = @%!.8;,!A$;$*!.$90x1A00<; // 512 /N)$.
*$. = @%!.8;,!A$;$*!.$90x1C00<; // 512 /N)$.
*$. = @%!.8;,!A$;$*!.$90x1E00<; // 512 /N)$.
B
E7em#o de utii=a"o das funes>
-+-);FLAS49<;
*$. = @%!.8;7*-)$90x16D0,[A[<;
*$. = @%!.8;7*-)$90x1A00,[B[<;
*$. = @%!.8;*$!#90x1A00<;
111 Prof. Gustavo Weber Denardin
%8& (iagrama es1uem-tico da Placa MC9S08AW60
112 Prof. Gustavo Weber Denardin
113 Prof. Gustavo Weber Denardin

You might also like