Você está na página 1de 34

Microcontroladores

1. Introduo
Atualmente um grande nmero de microcontroladores, integrados em diversos
equipamentos, exercem um papel importante no dia a dia das pessoas. Despertar ao som
de um CD Player programvel, tomar caf da manh preparado por um microondas
digital, e ir ao trabalho de carro, cua ine!o de combust"vel microcontrolada, so
apenas alguns exemplos.
# mercado de microcontroladores apresenta$se em franca expanso, ampliando
seu alcance principalmente em aplica!%es residenciais, industriais, automotivas e de
telecomunica!%es. &egundo dados da National Semiconductor '())*+, uma resid,ncia
t"pica americana possui -. produtos baseados em microcontrolador. /stima$se que, em
01(1, em mdia uma pessoa interagir com 0.1 dispositivos com microcontroladores
diariamente.
/m um passado recente, o alto custo dos dispositivos eletr2nicos limitou o uso dos
microcontroladores apenas aos produtos domsticos considerados de alta tecnologia
'televiso, v"deo e som+. 3orm, com a constante queda nos pre!os dos circuitos
integrados, os microcontroladores passaram a ser utili4ados em produtos menos
sofisticados do ponto de vista da tecnologia, como mquinas de lavar, microondas, fog%es
e refrigeradores. Assim, a introdu!o do microcontrolador nestes produtos cria uma
diferencia!o e permite a incluso de melhorias de seguran!a e de funcionalidade. Alguns
mercados chegaram ao ponto de tornar obrigat5rio o uso de microcontroladores em
determinados tipos de equipamentos, impondo um pr$requisito tecnol5gico.
6uitos produtos que temos dispon"veis hoe em dia, simplesmente no existiriam,
ou no teriam as mesmas funcionalidades sem um microcontrolador. 7 o caso, por
exemplo, de vrios instrumentos biomdicos, instrumentos de navega!o por satlites,
detetores de radar, equipamentos de udio e v"deo, eletrodomsticos, entre outros.
/ntretanto, o alcance dos microcontroladores vai alm de oferecer algumas
facilidades. 8ma aplica!o crucial, onde os microcontroladores so utili4ados, na
redu!o de consumo de recursos naturais. /xistem sistemas de aquecimento modernos
que captam a lu4 solar e, de acordo com a demanda dos usurios, controlam a
temperatura de forma a minimi4ar perdas. 8m outro exemplo, de maior impacto, o uso
( 3rof. 9ustavo :eber Denardin
de microcontroladores na redu!o do consumo de energia em motores eltricos, que so
responsveis pelo consumo de, aproximadamente, .1; de toda eletricidade produ4ida no
planeta. 3ortanto, o alcance dessa tecnologia tem influ,ncia muito mais importante em
nossas vidas, do que se possa imaginar.
# universo de aplica!%es dos microcontroladores, como mencionado, est em
grande expanso, sendo que a maior parcela dessas aplica!%es em sistemas
embarcados. A expresso <sistema embarcado= 'do ingl,s embedded system+ se refere
ao fato do microcontrolador ser inserido nas aplica!%es 'produtos+ e usado de forma
exclusiva por elas. Como a complexidade desses sistemas cresce vertiginosamente, o
software tem sido fundamental para oferecer as respostas >s necessidades desse
mercado. ?anto , que o software para microcontroladores representa uma fatia
considervel do mercado de software mundial. &egundo /d@ard Aourdon 'consultor na
rea de computa!o, pioneiro nas metodologias de engenharia do soft@are e
programa!o estruturada+ a prolifera!o dos sistemas embarcados, untamente com o
advento da 6icrosoft, so os responsveis pela retomada do crescimento da indstria de
software nos /stados 8nidos da Amrica.
2. Definio de Microcontrolador
8m microcontrolador um sistema computacional completo, no qual esto
inclu"dos uma C38 'Central Processor Unit+, mem5ria de dados e programa, um sistema
de clocB, portas de CD# 'Input/Output+, alm de outros poss"veis perifricos, tais como,
m5dulos de tempori4a!o e conversores ADD entre outros, integrados em um mesmo
componente. As partes integrantes de qualquer computador, e que tambm esto
presentes, em menor escala, nos microcontroladores soE
8nidade Central de 3rocessamento 'C38+
&istema de clock para dar seqF,ncia >s atividades da C38
6em5ria para arma4enamento de instru!%es e para manipula!o de dados
/ntradas para interiori4ar na C38 informa!%es do mundo externo
&a"das para exteriori4ar informa!%es processadas pela C38 para o mundo externo
3rograma 'firmware+ para definir um obetivo ao sistema
0 3rof. 9ustavo :eber Denardin
2.1 Unidade Central de Processamento (CPU)
A unidade central de processamento composta por uma unidade l5gica aritmtica
'8GA+, por uma unidade de controle e por unidades de mem5ria especiais conhecidas por
registradores. 3ara que a C38 possa reali4ar tarefas necessrio que se agregue outros
componentes, como unidades de mem5ria, unidades de entrada e unidades de sa"da. A
figura a seguir apresenta um diagrama de blocos com uma poss"vel interface entre a C38
e outros dispositivos.
A unidade de mem5ria permite arma4enar grupos de d"gitos binrios que podem
representar instru!%es que o processador ir executar ou dados que sero manipulados
pelo processador. A unidade de entrada consiste em todos os dispositivos utili4ados para
obter informa!%es e dados externos ao processador. A unidade de sa"da consiste em
dispositivos capa4es de transferir dados e informa!%es do processador para o exterior.
A 8GA a rea de uma C38 na qual as opera!%es l5gicas e aritmticas so
reali4adas sobre os dados. # tipo de opera!o reali4ada determinada pelos sinais da
unidade de controle. #s dados a serem operados pela 8GA podem ser oriundos de uma
mem5ria ou de uma unidade de entrada. #s resultados das opera!%es reali4adas na 8GA
podem ser transferidos tanto para uma mem5ria de dados como para uma unidade de
sa"da.
- 3rof. 9ustavo :eber Denardin
A fun!o da unidade de controle comandar as opera!%es da 8GA e de todas as
outras unidades conectadas a C38, fornecendo sinais de controle e tempori4a!o. De
certa maneira, a unidade de controle como um maestro que responsvel por manter
cada um dos membros da orquestra em sincronismo. /ssa unidade contm circuitos
l5gicos e de tempori4a!o que geram os sinais apropriados necessrios para executar
cada instru!o de um programa.
A unidade de controle busca uma instru!o na mem5ria enviando um endere!o e
um comando de leitura para a unidade de mem5ria. A palavra da instru!o arma4enada
na posi!o de mem5ria transferida para um registrador conhecido por registrador de
instru!%es 'HC+ da unidade de controle. /ssa palavra de instru!o, que est de alguma
forma de c5digo binrio, ento decodificada pelos circuitos l5gicos na unidade de
controle para determinar a instru!o que est sendo invocada. A unidade de controle usa
essa informa!o para enviar os sinais apropriados para as unidades restantes a fim de
executar a opera!o espec"fica.
/ssa seqF,ncia de busca de um c5digo de instru!o e de execu!o da opera!o
indicada repetida indefinidamente pela unidade de controle. /ssa seqF,ncia repetitiva
de buscaDexecu!o continua at que a C38 sea desligada ou at que o H/&/? sea
ativado. # H/&/? sempre fa4 a C38 buscar sua primeira instru!o no programa.
8ma C38, tambm conhecida por processador, repete indefinidamente as mesmas
opera!%es bsicas de busca e execu!o. Iaturalmente, os diversos ciclos de execu!o
sero diferentes para cada tipo de instru!o > medida que a unidade de controle envia
sinais diferentes para as outras unidades de execu!o de uma instru!o em particular.
8m registrador um tipo de mem5ria de pequena capacidade porm muito rpida,
contida na C38, utili4ado no arma4enamento temporrio de dados durante o
processamento. #s registradores esto no topo da hierarquia de mem5ria, sendo desta
forma o meio mais rpido e de maior custo para arma4enar um dado.
Cada registrador de um processador possui uma fun!o especial. 8m dos mais
importantes o contador de programa 'program counter J 3C+, que arma4ena os
endere!os dos c5digos das instru!%es > medida que so buscadas da mem5ria. #utros
registradores so utili4ados para reali4ar fun!%es comoE arma4enamento de c5digos de
instru!o 'HC+, manuten!o dos dados operados pela 8GA 'acumulador+, arma4enamento
de endere!os de dados a serem lidos na mem5ria 'ponteiro de dados+, alm de outras
fun!%es de arma4enamento e contagem. ?odos os processadores possuem um
registrador em especial muito utili4ado chamado de acumulador ou registrador A. /le
K 3rof. 9ustavo :eber Denardin
arma4ena um operando para quaisquer instru!%es, l5gica ou matemtica. # resultado da
opera!o arma4enado no acumulador ap5s a instru!o ser executada.
3ara que exista comunica!o entre as unidades que formam um processador
devemos definir uma forma de conexo entre estas unidades. /m um processador
tradicional com arquitetura Lon Ieuman este meio o barramento de dados. A largura do
barramento de dados em bits o que determina o nmero de bits para um dado
processador. A figura a seguir apresenta a interface dos principais dispositivos que
comp%em um sistema microprocessado atravs de um barramento de dados.
A C38 o centro de todo sistema computacional, e no diferente quando se trata
de microcontroladores. # trabalho da C38 executar rigorosamente as instru!%es de um
programa, na seqF,ncia programada, para uma aplica!o espec"fica. 8m programa
computacional 'soft@are+ instrui a C38 a ler informa!%es de entradas, ler e escrever
informa!%es na mem5ria de dados, e escrever informa!%es nas sa"das. # diagrama de
blocos simplificado da C38 presente nos microcontroladores da fam"lia MC1N, tambm
denominado de C381N, apresentado na figura a seguir. /sta arquitetura de processador
ser utili4ada como modelo neste documento.
. 3rof. 9ustavo :eber Denardin
As principais fun!%es de cada um dos componentes da C381N sero apresentadas
a seguir.
Unidade Lgica!ritm"tica (UL!)E A 8GA utili4ada para reali4ar opera!%es
l5gicas e aritmticas definidas no conunto de instru!%es da C38. Lrios circuitos
implementam as opera!%es aritmticas binrias decodificas pelas instru!%es e fornecem
dados para a execu!o da opera!o na 8GA. A maioria das opera!%es aritmticas
binrias so baseadas em algoritmos de adi!o e subtra!o 'adi!o com o valor
negativo+. A multiplica!o reali4ada atravs de uma srie de adi!%es e deslocamentos
com a 8GA sob controle l5gico da C38.
Controle da CPUE # circuito de controle da C38 implementa o sequeciamento de
elementos l5gicos necessrios para a 8GA reali4ar as opera!%es requisitadas durante a
execu!o do programa. # elemento central da se!o de controle da C38 o
decodificador de instru#es. Cada opcode 'c5digo de instru!o+ decodificado para
determinar quantos operandos so necessrios e qual seqF,ncia de passos ser
necessria para completar a instru!o em curso. Ouando uma instru!o executada
completamente, o pr5ximo opcode lido e decodificado.
P 3rof. 9ustavo :eber Denardin
$egistradores da CPUE A C381N contm . registradores como apresentado na
figura anterior. #s registradores da C38 so mem5rias especiais que no fa4em parte do
mapa de mem5ria. # conunto de registradores da C38 freqFentemente chamado de
modelo de %rogramao.
# acumulador, tambm chamado de registrador A, freqFentemente utili4ado para
arma4enar um dos operandos ou o resultado de opera!%es.
# registrador &'( um registrador de (P bits de "ndice que possibilita ao usurio
endere!ar indiretamente o espa!o de mem5ria de PKQbRtes. # bRte mais significativo do
registrador de "ndice denominado M, e o bRte menos significativo denominado S. &ua
principal fun!o servir de apontador para uma rea na mem5ria onde a C38 ir
carregar 'ler+ ou arma4enar 'escrever+ informa!o. Ouando no estiver sendo utili4ado
para apontar um endere!o na mem5ria, ele pode ser utili4ado como registrador genrico.
# registrador Program Counter '3C+ usado pela C38 para controlar e condu4ir
ordenadamente a busca do endere!o da pr5xima instru!o a ser executada. Ouando a
C38 energi4ada ou passa por um processo de reset, o 3C carregado com o contedo
de um par de endere!os espec"ficos denominados )etor de reset 'reset vector+. # vetor
de reset contm o endere!o da primeira instru!o a ser executada pela C38. Assim que
as instru!%es so executadas, uma l5gica interna a C38 incrementa o 3C, de tal forma
que ele sempre aponte para o pr5ximo peda!o de informa!o que a C38 vai precisar. #
nmero de bits do 3C coincide exatamente com o nmero de linhas do barramento de
endere!os, que por sua ve4 determina o espa!o total dispon"vel de mem5ria que pode ser
acessada pela C38.
* 3rof. 9ustavo :eber Denardin
# registrador Condition Code 'CCH+ um registrador de N bits que arma4ena os
bits de estado 'flags+ que refletem o resultado de algumas opera!%es da C38. A
instru!%es de desvio usam estes bits de estado para tomar suas decis%es.
A descri!o dos bits do registrador de condi!o apresentada abaixoE
* 'Bit de Overflow+ $ A C38 leva o bit de overflow para n"vel l5gico alto quando
houver estouro no resultado de uma opera!o em complemento de 0. # bit L utili4ado
pelas instru!%es de desvios condicionais T9?, T9/, TG/, e TG?.
& 'Tit de alf!carry+ $ A C38 leva o bit de "alf!carry para n"vel l5gico alto quando
ocorrer estouro entre os bits - e K do acumulador durante as opera!%es ADD e ADC. # bit
M importante nas opera!%es aritmticas codificadas em binrio 'TCD+. A instru!o DAA
utili4a o estado dos bits M e C para determinar o fator de corre!o apropriado.
I '6scara de Cnterrup!%es+ $ Ouando o bit C est em n"vel l5gico alto, todas as
interrup!%es so mascaradas 'desabilitadas+. As interrup!%es so habitadas quando o bit
C levado a n"vel l5gico baixo. Ouando ocorre uma interrup!o, o bit que mascara as
interrup!%es automaticamente levado a n"vel l5gico alto. Depois que os registradores da
C38 so arma4enados na pilha este bit volta ao n"vel l5gico baixo. &e uma interrup!o
ocorrer enquanto o bit C estiver setado, seu estado ser guardado. As interrup!%es so
atendidas, em ordem de prioridade, assim que o bit C for a n"vel l5gico 1. A instru!o
retorno da interrup!o 'H?C+ retorna os registradores da C38 da pilha, e restaura o bit C no
seu estado de n"vel l5gico 1. Ap5s qualquer reset, o bit C colocado em n"vel l5gico alto e
s5 pode ser limpo por uma instru!o de soft@are 'CGC+.
+ 'Tit Iegativo+ $ A C38 coloca o bit I em n"vel l5gico alto quando uma opera!o
aritmtica, l5gica ou de manipula!o de dados produ4ir um resultado negativo.
Corresponde ao N
o
bit do registrador que contm o resultado.
, 'Tit Uero+ $ A C38 leva o bit U para n"vel l5gico alto quando uma opera!o
aritmtica, l5gica ou de manipula!o de dados produ4ir um resultado igual a 1.
C 'Tit Carry/Borrow+ $ A C38 coloca o bit C em n"vel l5gico alto quando uma
opera!o de adi!o produ4ir um valor superior a N bits ou quando uma subtra!o
N 3rof. 9ustavo :eber Denardin
necessitar um emprstimo. Algumas opera!%es l5gicas e as instru!%es de manipula!o
de dados tambm podem modificar o estado do bit C.
# Stack Pointer '&3+ um registrador cua fun!o apontar para a pr5xima
locali4a!o dispon"vel 'endere!o livre+ de uma pilha 'lista de endere!os cont"guos+. A pilha
pode ser vista como um monte de cartas empilhadas, onde cada carta arma4ena um bRte
de informa!o. A qualquer hora, a C38 pode colocar uma carta nova no topo da pilha ou
retirar uma carta do topo da pilha. As cartas que esto no meio da pilha no podem ser
retiradas at que todas que esteam acima dela seam removidas primeiro. A C38
acompanha o efeito da pilha atravs do valor arma4enado no &3. # &3 sempre aponta
para a locali4a!o de mem5ria dispon"vel para se colocar a pr5xima carta 'bRte+.
Iormalmente, a C38 usa a pilha para guardar os endere!os de retorno e o
contexto, isto , os registradores da C38, na ocorr,ncia de uma exce!o 'interrup!o ou
reset+.
Durante um reset, o Stack Pointer contm o endere!o 1x11VV. A instru!o H&3
'#eset Stack Pointer+ carrega o bRte menos significativo com 1xVV e o bRte mais
significativo no afetado.
Ouando a C38 insere um novo dado na pilha, automaticamente o &3
decrementado para o pr5ximo endere!o livre. Ouando a C38 retira um dado da pilha, o
&3 incrementado para apontar para o dado mais recente, e o valor do dado lido nesta
posi!o. Ouando a C38 energi4ada ou passa por um processo de reset, o &3 aponta
para um endere!o espec"fico na mem5ria HA6 'no caso dos microcontroladores MC1N e
MC&1N W 1x11VV+.
A C381N possui modos de endere!amento indexado com offsets de N ou (P bits do
&3 para acesso de variveis temporrias inseridas na pilha. A C38 utili4a o contedo do
registrador &3 para determinar o endere!o efetivo do operando.
-./E /mbora o endere!o inicial do &3 sea 1x11VV, a locali4a!o da pilha
arbitrria e pode ser realocada pelo usurio em qualquer lugar na HA6. 6ovimentar o &3
para fora da pgina de acesso direto '1x1111 a 1x11VV+ permitir que este espa!o de
mem5ria sea utili4ado para modos de endere!amento mais eficientes.
) 3rof. 9ustavo :eber Denardin
2.2. /istema de Cloc0
?odo sistema computacional utili4a um clocB para fornecer a C38 uma maneira de
se mover de instru!o em instru!o, em uma seqF,ncia pr$determinada.
8ma fonte de clocB de alta freqF,ncia 'normalmente derivada de um cristal
ressonador conectado a C38+ utili4ada para controlar o sequeciamento das instru!%es
da C38. Iormalmente as C38s dividem a freqF,ncia bsica do cristal por 0 ou mais para
chegar ao clocB do barramento interno. Cada ciclo de leitura ou escrita a mem5ria
executado em um ciclo de clocB do barramento interno, tambm denominado ciclo de
barramento 'bus cycle+.
2.1. Memria
3odemos pensar na mem5ria como sendo uma lista de endere!os postais, onde o
contedo de cada endere!o um valor fixo de N bits 'para C38 de N bits+. &e um sistema
computacional tem n linhas 'bits+ de endere!os, ele pode endere!ar 0
n
posi!%es de
mem5ria 'p.ex.E um sistema com (K linhas pode acessar 0
(K
W (P-NK endere!os+. /ntre os
diversos tipos de mem5ria encontram$seE
$!M '#andom $ccess %emory+J 6em5ria de acesso aleat5rio. 3ode ser lida ou
escrita pela execu!o de instru!%es da C38 e, normalmente utili4ada para manipula!o
de dados pela C38. # contedo perdido na aus,ncia de energia 'mem5ria voltil+.
$-M '#ead Only %emory+ J 6em5ria apenas de leitura. 3ode ser lida, mas no
altervel. # contedo deve ser determinado antes que o circuito integrado sea fabricado.
# contedo mantido na aus,ncia de energia 'mem5ria no voltil+.
2P$-M '&rasable and Programmable #ead!Only %emory+ J 6em5ria H#6
programvel e apagvel. # contedo dessa mem5ria pode ser apagado com lu4
ultravioleta, e posteriormente, reprogramado com novos valores. As opera!%es de
apagamento e programa!o podem ser reali4adas um nmero limitado de ve4es depois
que o circuito integrado for fabricado. Da mesma forma que a H#6, o contedo mantido
na aus,ncia de energia 'mem5ria no voltil+.
#?3 'One 'ime Programmable+ J 6em5ria programvel uma nica ve4.
&emelhante > /3H#6 quanto a programa!o, mas que no pode ser apagada.
22P$-M '&lectrically &rasable and Programmable #ead!Only %emory+ J 6em5ria
H#6 programvel e apagvel eletricamente. 3ode ter seu contedo alterado atravs da
(1 3rof. 9ustavo :eber Denardin
utili4a!o de sinais eltricos convenientes. ?ipicamente, um endere!o de uma //3H#6
pode ser apagada e reprogramada at (11.111 ve4es.
3L!/& J 6em5ria funcionalmente semelhante a //3H#6, porm com ciclos de
escrita bem mais rpidos.
CD# 'Input/Output+ J Hegistradores de controle, estado e sinais de CD# so um tipo
especial de mem5ria porque a informa!o pode ser sentida 'lida+ eDou alterada 'escrita+
por dispositivo diferentes da C38.
2.4. /inais de 2ntrada
Dispositivos de entrada fornecem informa!o para a C38 processar, vindas do
mundo externo. A maioria das entradas que os microcontroladores processam so
denominadas sinais de entrada digitais, e utili4am n"veis de tenso compat"veis com a
fonte de alimenta!o do sistema. # sinal de 1L '9ID ou L&& + indica o n"vel l5gico 1 e o
sinal de fonte positiva, que tipicamente X.LDC 'LDD + indica o n"vel l5gico (
'atualmente os microcontroladores come!aram a redu4ir a tenso de LDD para valores na
faixa dos -L+.
Iaturalmente que no mundo real existem sinais puramente anal5gicos 'com uma
infinidade de valores+ ou sinais que utili4am outros n"veis de tenso. Alguns dispositivos
de entrada tradu4em as tens%es do sinal para n"veis compat"veis com LDD e L&&. #utros
dispositivos de entrada convertem os sinais anal5gicos em sinais digitais 'valores binrios
formados por 1s e (s+ que a C38 pode entender e manipular. Alguns microcontroladores
incluem circuitos conversores anal5gicosDdigitais 'ADC+ encapsulados no mesmo
componente.
2.5. /inais de /a6da
Dispositivos de sa"da so usados para informar ou agir no mundo exterior atravs
do processamento de informa!%es reali4ados pela C38. Circuitos eletr2nicos 'algumas
ve4es constru"dos no pr5prio microcontrolador+ podem converter sinais digitais em n"veis
de tenso anal5gicos. &e necessrio, outros circuitos podem alterar os n"veis de tenso
LDD e L&& nativos da C38 em outros n"veis.
(( 3rof. 9ustavo :eber Denardin
2.7. Cdigos de o%erao (opcodes)
#s programas usam c5digos para fornecer instru!%es para a C38. /stes c5digos
so chamados de c5digos de opera!o ou opcodes. Cada opcode instrui a C38 a
executar uma seqF,ncia espec"fica para reali4ar sua opera!o. 6icrocontroladores de
diferentes fabricantes usam diferentes conuntos de opcodes porque so implementados
internamente por hard@are na l5gica da C38. # conunto de instru!%es de uma C38
especifica todas as opera!%es que podem ser reali4adas. Opcodes so uma
representa!o das instru!%es que so entendidas pela mquina, isto , uma codifica!o
em representa!o binria a ser utili4ada pela C38. 6nem2nicos so outra representa!o
para as instru!%es, s5 que agora, para serem entendidas pelo programador.
2.8. Mnem9nicos das instru#es e assem:ler
8m opcode como 1xKC entendido pela C38, mas no significativo para n5s
humanos. 3ara resolver esse problema, um sistema de instru!%es mnem2nicas
equivalentes foram criadas 'Ginguagem AssemblR+. # opcode 1xKC corresponde ao
mnem2nico CICA, l,$se <incrementa o acumulador=, que muito mais intelig"vel. 3ara
reali4ar a tradu!o de mnem2nicos em c5digos de mquina 'opcodes e outras
informa!%es+ utili4ados pela C38 necessrio um programa computacional chamado
assembler 'compilador para linguagem AssemblR+. 8m programador utili4a um conunto
de instru!%es na forma de mnem2nicos para desenvolver uma determinada aplica!o, e
posteriormente, usa um assembler para tradu4ir estas instru!%es para opcodes que a
C38 pode entender.
Ap5s a descri!o da unidade central de processamento de um microcontrolador
podemos partir para o aprendi4ado da linguagem de programa!o AssemblR.
Hecomenda$se a leitura da folha de dados 'principalmente a se!o que trata do conunto
de instru!%es+ do microcontrolador, bem como da apostila do microcontrolador MC1N,
fam"lia O?DOA. # pr5ximo cap"tulo deste documento ir descrever diversos perifricos que
podem compor um microcontrolador, como portas de entradaDsa"da, tempori4adores, entre
outros.
(0 3rof. 9ustavo :eber Denardin
1. Perif"ricos
#s microcontroladores normalmente so classificados em fam"lias, dependendo
da aplica!o a que se destinam. A partir da aplica!o que a fam"lia de microcontroladores
se destina, um conunto de perifricos espec"ficos escolhido e integrado a um
determinado microprocessador. /stes microprocessadores normalmente operam com
barramentos de N, (P ou -0 bits, e apresentam arquiteturas HC&C 'Heduced Instruction
Set Computer+ ou CC&C 'Comple( Instruction Set Computer+. Alguns exemplos de
microcontroladores que utili4am microprocessadores com arquitetura HC&C so o 3CC
'%icroc"ip+ e o 6&3K-1 ''e(as Instruments+. Y o 6CPNMC1N e MC&1N ')reescale+ e o
N1.( 'Cntel+ so exemplos de microcontroladores que utili4am arquitetura CC&C.
Apesar da classifica!o dos microcontroladores em fam"lias, existem perifricos
necessrios a praticamente todas as aplica!%es, que so a mem5ria de dados e a
mem5ria de programa. A mem5ria de dados mais utili4ada a HA6 '#andom $ccess
%emory+, que uma mem5ria voltil, ou sea, no preserva o seu contedo sem uma
fonte de alimenta!o.
Hecentemente as mem5rias de programa sofreram uma grande mudan!a. A
alguns anos atrs as mem5rias de programa mais utili4adas eram a H#6 '#eady!Only
%emory+ e a /3H#6 '&rasable Programmable #ead!Only %emory+. # grande problema
da utili4a!o de tais mem5rias era a falta de praticidade durante o desenvolvimento de um
sistema embarcado. Com a populari4a!o das mem5rias VGA&M e, ainda, devido a
facilidade de utili4a!o, cada ve4 mais os microcontroladores tendem a ser produ4idos
com esta mem5ria, em substitui!o a H#6 e a /3H#6. Cmportante lembrar que a
praticidade da mem5ria VGA&M se deve a esta mem5ria ser uma varia!o das //3H#6
'&lectrically$&rasable Programmable #ead!Only %emory* +ue permitem que mltiplos
endere!os seam apagados ou escritos com sinais eltricos.
A seguir sero apresentadas as caracter"sticas e aplica!%es dos principais
perifricos encontrados em microcontroladores, tais comoE portas de entrada e sa"da,
tempori4adores, portas de comunica!o serial e conversores Anal5gico$digitais 'ADD+.
(- 3rof. 9ustavo :eber Denardin
1.1 ;em%ori<adores
8m microprocessador deve possuir um rel5gio. # rel5gio pode ser implementado
por um cristal oscilador que sincroni4a todo o funcionamento do microprocessador,
controlando o tempo de cada um dos eventos relacionados aos dispositivos integrados a
ele.
#s tempori4adores utili4am a base de tempo do rel5gio para poder implementar
contagens de tempo bem espec"ficas e configurveis. /stes utili4am contadores,
incrementados na mesma base de tempo do rel5gio. Desta forma poss"vel descrever
tempo em nmero de ciclos de um rel5gio. 3or exemplo, imagine um microprocessador
utili4ando um rel5gio de 01 6M4. # per"odo relativo a esta freqF,ncia .1 ns. 3odemos
representar ento um tempo de (ms atravs de per"odos de .1ns, obtendo o valor de
01111. #u sea, se incrementarmos um contador a cada ciclo de rel5gio, no caso .1ns,
quando este contador atingir o valor de 01111, teremos atingido a contagem de (ms.
3ara que este mtodo sea aplicado, existe a necessidade da utili4a!o de pelo menos 0
registradores. # registrador que ser incrementado e o registrador que conter o valor a
ser atingido. Io entanto, existe um problema relacionado a este mtodo. Cmagine que
precisemos de um tempo na ordem de segundos, por exemplo, ( segundos. &e
estivermos utili4ando um rel5gio de K 6M4, seria necessrio registradores de 0K bits para
representar o valor de Kx(1
P
. Com o intuito de redu4ir o tamanho destes contadores, os
tempori4adores apresentam a possibilidade de diviso do rel5gio, normalmente por
valores mltiplos de 0. Io caso do exemplo acima, poder"amos dividir o rel5gio por (0N,
obtendo uma freqF,ncia de -(,0.1 QM4. /nto, para representarmos ( segundo, seria
necessrio uma contagem de -(0.1 per"odos de -0Zs, ou sea, um valor que pode ser
representado em (P bits.
Devemos lembrar que a diviso ter influ,ncia somente no tempo de
incrementa!o do contador, continuando o barramento interno do microprocessador a
operar com o rel5gio original.
3ara exemplificar a configura!o dos registradores relativos a um tempori4ador
em um microcontrolador ser utili4ado o microcontrolador 6CPNMC)1NOAK. # processo
de configura!o apresentado a seguir.
#s microcontroladores da linha MC1N normalmente possuem ( ou 0
tempori4adores. #s registradores relativos a estes tempori4adores apresentam nomes
semelhantes, tendo apenas o nmero no tempori4ador para diferenci$los. #s tr,s
(K 3rof. 9ustavo :eber Denardin
registradores de configura!o do tempori4ador neste microcontrolador soE ?&C, ?CI? e
?6#D. Abaixo apresentado o diagrama de blocos do tempori4ador destes
microcontroladores. 7 importante ressaltar que alguns dos registradores apresentados na
figura so relativos ao m5dulo 3:6 e captura de entrada.
Vigura J Diagrama de blocos do m5dulo tempori4ador de microcontrolador 6CPNMC)1NOAK
?&C ''imer Status and Control #egister+E
3ossibilita habilitar a interrup!o do tempori4ador, verificar o estado da flag de
interrup!o, para$lo, reiniciar a contagem e dividir o rel5gio para obter a base de tempo.
(. 3rof. 9ustavo :eber Denardin
Vigura J Hegistrador ?&C
Abaixo sero descritos as fun!%es de cada um dos bits deste registradorE
?#V ''imer Overflow )lag+E /ste bit de escritaDleitura torna$se setado quando o
registrador contador '?CI?+ atinge o valor do registrador de m5dulo de contagem
'?6#D+, condi!o essa que indica o estouro da contagem de tempo. # procedimento
correto para limpar esta indica!o ler o registrador ?&C e escrever um <1= l5gico para o
bit ?#V[
( W # m5dulo tempori4ador atingiu o valor deseado
1 W # m5dulo tempori4ador no atingiu o valor deseado
?#C/ ''imer Overflow Interrupt &nable Bit+E /ste bit de escritaDleitura habilita a
interrup!o do tempori4ador quando o bit ?#V for setado.
( W Cnterrup!o do tempori4ador ativa
1 W Cnterrup!o do tempori4ador desabilitada
?&?#3 ''imer Stop Bit+E /ste bit de escritaDleitura para o incremento do contador
de tempo.
( W Contador de tempo parado
1 W Contador de tempo ativo
?H&? ''imer #eset Bit+E Gevar este bit de escrita para n"vel l5gico ( ir iniciar o
contador de tempo com 4ero e colocar o divisor de base de tempo para o estado inicial,
ou sea, diviso por (.
( W 3r$/scala de base de tempo e contador iniciados com o valor <1=[
1 W &em efeito
(P 3rof. 9ustavo :eber Denardin
3&\0E1] 'Prescaler Setect Bits+ J Tits de pr$escala da base de tempo. /stes bits
de escritaDleitura selecionam um dos sete poss"veis valores de diviso da base de tempo
do rel5gio para utili4a!o como base de tempo do tempori4ador.
P/2 P/1 P/= .ase de tem%o do tem%ori<ador
1 1 1 ClocB de barramento interno D (
1 1 ( ClocB de barramento interno D 0
1 ( 1 ClocB de barramento interno D K
1 ( ( ClocB de barramento interno D N
( 1 1 ClocB de barramento interno D (P
( 1 ( ClocB de barramento interno D -0
( ( 1 ClocB de barramento interno D PK
( ( ( Io dispon"vel
?CI? ''imer Count #egisters+E
/stes registradores so somente de leitura e contm o valor mais significativo
'?CI?M+ e menos significativo '?CI?G+ do contador do tempori4ador. A leitura do
registrador mais significativo deve ser reali4ada primeiro.
Vigura J Hegistrador ?CI?M e ?CI?G.
?6#D ''imer %odule #egisters+E
/stes registradores de escritaDleitura contm o valor do m5dulo da contagem do
tempori4ador. Ouando os registradores de contagem '?CI?+ atingem o valor dos
registradores de m5dulo '?6#D+, o bit ?#V torna$se n"vel l5gico <(= e os registradores de
(* 3rof. 9ustavo :eber Denardin
contagem resumem a contagem para ^1111 at o pr5ximo passo de clocB. /screver no
registrador ?6#DM inibe o bit ?#V at que o registrador ?6#DG sea escrito.
Vigura J Hegistradores ?6#DM e ?6#DG
/stando os registradores a serem configurados apresentados pode$se demonstrar
um exemplo de utili4a!o. Abaixo ser implementada a configura!o de um tempori4ador
utili4ando um rel5gio de -,0 6M4 para obter a base de tempo de (1ms.
3er"odo relativo a base de tempoE
Perodo=
1
3,210
6

=312,510
9
Clculo do valor de m5dulo de tempoE
Mdulo=
1010
3
312,510
9

=32000
# valor -0111 deve ser escrito nos registradores ?6#DM e ?6#DG da seguinte
maneiraE # valor deve ser convertido para hexadecimal, sendo este igual a *D11h. #
valor obtido um valor vlido dentro dos (P bits referentes aos registradores ?6#DM e
?6#DG, ou sea, a base de tempo do rel5gio foi dividida por (. Desta forma, ?6#DM
igual a *Dh e ?6#DG igual a 11h. Abaixo o exemplo de configura!o dos registradores
para este caso apresentado, tanto em assemblR, quanto em linguagem <c=.
(N 3rof. 9ustavo :eber Denardin
AssemblRE
MOV #$7D,TMODH
CLR TMODL
; Configurao do registrador TSC:
; Diiso !or ", ti#er atio $o# interru!o do te#!ori%ador &a'i(itada)
; TO* TO+, TSTO- TRST Reserado -S. -S" -S/
; / " / / / / / /
MOV #$0/,TSC
<c=E
TMOD 1 2.///;
34Configurao do registrador TSC:
Diiso !or ", ti#er atio $o# interru!o do te#!ori%ador &a'i(itada)
TO* TO+, TSTO- TRST Reserado -S. -S" -S/
/ " / / / / / / 43
TSC 1 /50/;
3ara demonstrar um caso onde se fa4 necessrio a diviso da base de tempo, o
tempori4ador ser configurado utili4ando um rel5gio de -,0 6M4 para obter a base de
tempo de (11ms.
3er"odo relativo a base de tempoE
Perodo=
1
3,210
6

=312,510
9
Clculo do valor de m5dulo de tempoE
Mdulo=
10010
3
312,510
9

=320000
3ara representar -01111 necessrio mais do que os (P bits dispon"veis. Desta
forma se fa4 necessrio a diviso da base de tempo. Dividindo -01111 pelo maior valor
poss"vel em (P bits, encontramos K,NN. Assumimos ento o pr5ximo valor vlido de
diviso, ou sea, oito, como fator de diviso da base de tempo.
Vator de diviso da base de tempoE
Fator =
320000
65535
=4,88
/, recalculando os valores de configura!oE
3er"odo relativo a base de tempoE
Perodo=
1

3,210
6
8

=2,510
6
() 3rof. 9ustavo :eber Denardin
Clculo do valor de m5dulo de tempoE
Mdulo=
10010
3
2,510
6

=40000
&endo K1111 um valor vlido em (P bits, a configura!o do tempori4ador em
linguagem <c= apresentada abaixoE
<c=E
TMOD 1 0////;
34Configurao do registrador TSC:
Diiso !or 6, ti#er atio $o# interru!o do te#!ori%ador &a'i(itada)
TO* TO+, TSTO- TRST Reserado -S. -S" -S/
/ " / / / / " " 43
TSC 1 /502;
#bsE Devemos lembrar que o c5digo contido nas interrup!%es deve ser o menor
poss"vel, com o intuito de evitar que o tempo de execu!o deste c5digo sea superior ao
tempo da pr5xima interrup!o. 3or exemplo, se configurarmos a interrup!o do
tempori4ador para ocorrer a cada (11Zs, o tempo de execu!o do c5digo contido nesta
interrup!o no deve ser superior a esta base de tempo.
/xemplo de utili4a!o da interrup!o do tempori4ador 'esta interrup!o
conhecida como interrup!o de estouro de tempo+E
AssemblRE
; +nterru!o do te#!ori%ador)
TOV,R: 7CLR 7,TSC ; Li#!a a f(ag da interru!o do te#!ori%ador
+8C + ; +n$re#enta u#a ari9e( :ua(:uer
RT+ ; Retorna da interru!o
<c=E
33 +nterru!o do te#!ori%ador
interru!t oid toer;oid< =
TSC>TO* 1 /; 33 Li#!a a f(ag da interru!o do te#!ori%ador
i??; 33 +n$re#enta u#a ari9e( :ua(:uer
@ 33 Retorna da interru!o
01 3rof. 9ustavo :eber Denardin
1.2 P>M (Pulse Width Modulation)
# m5dulo de gera!o de 6odula!o por Gargura de 3ulso '3:6+ um recurso
muito utili4ado para o controle de motores e conversores CC$CC em geral. A partir dele
poss"vel gerar um sinal anal5gico, apesar de sua sa"da ser um sinal digital que assume
apenas os n"veis l5gicos alto 'um+ e baixo '4ero+. A sa"da gerada uma onda quadrada,
com freqF,ncia constante e largura de pulso varivel. /stes conceitos esto diretamente
relacionados com o per"odo fixo e o ciclo ativo 'duty cycle+ respectivamente.
A freqF,ncia de uma onda pode ser definida como a quantidade de ve4es que ela
se repete no tempo. / o per"odo cada peda!o dessa onda que ir se repetir.
# duty cycle define o tempo de sinal ativo 'n"vel l5gico alto+ em um per"odo fixo.
Assim, quando temos um duty cycle de (11;, temos n"vel l5gico alto por todo o per"odo.
8m duty cycle de .1; define a metade do per"odo em n"vel l5gico alto e a outra metade
em n"vel l5gico baixo. &e uma sa"da ??G for utili4ada, a tenso mdia de sa"da em um
duty cycle de .1; ser 0,.L. /stes conceitos so demonstrados na figura abaixo.
Devemos lembrar que o 3:6 nem sempre possui estado inicial positivo, podendo iniciar
o per"odo com n"vel l5gico baixo.
Vigura J &inais modulados por Gargura de 3ulso
0( 3rof. 9ustavo :eber Denardin
A base de tempo dos m5dulos 3:6 normalmente implementada de duas
formas. 8ma destas formas utili4ando o pr5prio m5dulo tempori4ador como base de
tempo no 3:6, ou sea, se o tempori4ador est configurado para um per"odo de (ms, a
freqF,ncia do 3:6 ser de ( QM4. A outra forma utili4ando um tempori4ador espec"fico
para o 3:6, que deve ser configurado para a freqF,ncia deseada. Ainda, um
tempori4ador pode ser utili4ado como base de tempo de vrias sa"das 3:6, ou sea,
vrios 3:6 com a mesma freqF,ncia, mas larguras de pulso diferentes.
A figura a seguir ir exemplificar o funcionamento de um 3:6 em um
microcontrolador onde o registrador 3?3/H possui o valor referente ao per"odo do 3:6
e os registradores 3:6(M e 3:60M representam dois canais de sa"da 3:6.
Vigura J &inais 3:6 com mesmo per"odo e largura de pulso diferentes.
3ara exemplificar a configura!o de um m5dulo 3:6 ser utili4ado novamente o
microcontrolador 6CPNMC)1NOAK. /ste microcontrolador utili4a o tempori4ador como
base de tempo para o per"odo do 3:6. Desta forma, para configurar a freqF,ncia do
3:6 deve$se utili4ar a mesma metodologia adotada para o tempori4ador. Ieste exemplo
ser configurado um 3:6 de (1 QM4 com largura de pulso inicial do ciclo ativo de K1;,
onde o rel5gio utili4ado ser de -,0 6M4.
00 3rof. 9ustavo :eber Denardin
3er"odo da base de tempo do rel5gioE
Perodo=
1
3,210
6

=312,510
9
Lalor de m5dulo de tempo para (11ZsE
Mdulo=
10010
6
312,510
9

=320
/stando o m5dulo da base de tempo do 3:6 configurado, deve$se partir para a
configura!o da largura do pulso e do n"vel do ciclo inicial do 3:6. Atravs do m5dulo
3:6 deste microcontrolador poss"vel obter duas sa"das 3:6 para cada tempori4ador.
Como o microcontrolador utili4ado possui somente um tempori4ador, poss"vel obter
duas sa"das 3:6, conhecidas como canal 1 e canal (. #s registradores de configura!o
do m5dulo 3:6 soE ?&C1, ?&C(, ?CM1 e ?CM(. 3ode$se notar que os valores 1 e (
so relativos ao canal a que se destina a configura!o.
/ste microcontrolador apresenta duas maneiras de se utili4ar estes canais. As
sa"das 3:6 podem ser configuradas no modo com buffer ou sem buffer. Io modo com
buffer ambos os canais so aproveitados para gerar uma sa"da 3:6. # modo com buffer
opera da seguinte maneiraE Ambos os canais so configurados para operar com buffer. A
configura!o da largura de pulso inicial reali4ada no canal 4ero. Ouando se desear
alterar a largura de pulso da sa"da 3:6, altera$se o valor da largura de pulso no canal
um. #u sea, toda ve4 que se desear alterar o valor da largura de pulso reali4ado um
intercalamento entre os dois canais. A sa"da 3:6 ficar agregada ao pino de sa"da do
canal 4ero.
Y no modo sem buffer, cada canal de tempo pode gerar uma sa"da 3:6. #
cuidado que deve ser tomado neste caso que altera!%es de largura de pulso devem ser
reali4adas em locais bem espec"ficos. A altera!o da largura de pulso para um valor
superior deve ser reali4ada na interrup!o de estouro de tempo 'tempori4ador+. A
altera!o da largura de pulso para um valor inferior deve ser reali4ada na interrup!o de
compara!o do devido canal. Ia figura a seguir apresentado os locais referentes as
interrup!%es supracitadas.
0- 3rof. 9ustavo :eber Denardin
Vigura J Gargura de pulso e per"odo de um 3:6
Abaixo temos a configura!o de bits relativa aos registradores ?&C1 e ?&C(.
Vigura J 'imer C"annel Status $nd Control #egisters
A seguir sero descritos as fun!%es de cada um dos bits deste registradorE
CMxV 'C"annel ( )lag Bit+E Ouando o canal x est configurado para compara!o
de sa"da 'modo que permite a implementa!o de um 3:6+, esta flag torna$se ( quando o
valor do registrador contador de tempo '?CI?+ atinge a valor contido no registrador do
canal x '?CMx+. 3ara limpar esta flag deve$se ler o registrador ?&Cx e escrever um 4ero
l5gico para este bit.
0K 3rof. 9ustavo :eber Denardin
( W Compara!o de sa"da no canal x
1 W &em compara!o de sa"da no canal x
ChxC/ 'Channel x Cnterrupt /nable Tit+E /ste bit de escritaDleitura permite habilitar
a interrup!o de compara!o de sa"da para o canal x.
( W Cnterrup!o do canal x habilitada
1 W Cnterrup!o do canal x desabilitada
?#Lx ''oggle On Overflow Bit+E Ouando o canal x est configurado para
compara!o de sa"da, este bit de escritaDleitura controla o comportamento da sa"da do
canal x quando ocorre um estouro de tempo no tempori4ador.
( W Lalor l5gico no pino relativo ao canal x se altera no estouro de tempo
1 W Lalor l5gico no pino relativo ao canal x no se altera no estouro de tempo
Chx6AS 'C"annel ( %a(imum ,uty Cycle &nable Bit+E Ouando o bit ?#Lx est
em n"vel l5gico (, ao setar o bit Chx6AS ir for!ar o ,uty Cycle do canal para (11;.
Como a figura a seguir demonstra, o efeito relativo a este bit s5 notado ( ciclo ap5s que
este bit alterado. # ,uty Cycle permanece (11; at que este bit volte ao estado l5gico
4ero.
Vigura J Gat,ncia do bit CMx6AS
#s outros bits relativos a estes registradores so configurados a partir da tabela
abaixoE
0. 3rof. 9ustavo :eber Denardin
?abela J &ele!o de modo, n"vel e borda
# registrador onde reali4ada a configura!o da largura de pulso o ?CMx,
sendo ?CMxM o registrador de maior significado e ?CMxG o de menor significado na
palavra de (P bits que ir representar a largura do pulso. Abaixo estes registradores so
apresentados.
0P 3rof. 9ustavo :eber Denardin
Vigura J Hegistradores ?CM1M, ?CM1G, ?CM(M e ?CM(G.
Loltando ao exemplo onde desea$se configurar um 3:6 de (1QM4 com largura
de pulso inicial igual a K1; e ciclo inicial ativo, utili4ando um rel5gio de -,06M4. # m5dulo
referente ao per"odo do 3:6 foi definido, sendo igual a -01. 3ara configurarmos a
largura inicial para K1; deve$se utili4ar K1; do valor do m5dulo do per"odo encontrado,
ou sea, ?CM1 W -01 x K1; W (0N.
A seguir ser apresentado a configura!o do 3:6 do exemplo acima, utili4ando
modo sem buffer com sa"da no canal 4ero, tanto para AssemblR quanto para <c=.
0* 3rof. 9ustavo :eber Denardin
AssemblRE
; Configurao do #Adu(o de te#!o
LHDB #C2./ ; Va(or re(atio ao !erDodo de "//us
STHB TMD ; Moe !ara o registrador de #Adu(o do te#!ori%ador
LDHB #C".6 ; Va(or de 0/E de (argura de !u(so ;0/E de 2./<
STHB TCH/ ; Moe !ara o registrador do $ana( /
CLRH ; Li#!a a !arte a(ta do registrador de Dndi$e, uti(i%ado anterior#ente
; SaDda -FM no $ana( /, $o# a(terao !ara nDe( (Agi$o 'ai5o na $o#!arao
; CH/* CH/+, MS/7 MS/G ,LS/7 ,LS/G TOV/ CH/MGB
; / " / " " / " /
MOV #$HG,TSC/
; -erDodo do -FM igua( a "//us
; TO* TO+, TSTO- TRST Reserado -S. -S" -S/
; / " / / / / / /
MOV #$0/,TSC
<c=E
TMOD 1 2./; 34 -erDdo do -FM43
TCH/ 1 ".6; 34 0/E de -FM 43
34SaDda -FM no $ana( /, $o# a(terao !ara nDe( (Agi$o 'ai5o na $o#!arao
CH/* CH/+, MS/7 MS/G ,LS/7 ,LS/G TOV/ CH/MGB
/ " / " " / " / 43
TSC/ 1 /5HG;
34-erDodo do -FM igua( a "//us
TO* TO+, TSTO- TRST Reserado -S. -S" -S/
/ " / / / / / / 43
TSC 1 /50/; 34 8o diide o $(o$I 43
Apesar de termos definido as iniciali4a!%es, se o modo sem buffer est sendo
utili4ado, precisamos implementar tambm no c5digo as interrup!%es de estouro de
tempo e compara!o de sa"da para ser poss"vel alterar o valor da largura de pulso desta
sa"da.
AssemblRE
; +nterru!o do te#!ori%ador)
TOV,R: 7CLR 7,TSC ; Li#!a a f(ag da interru!o do te#!ori%ador
7RCLR $ondio,SG+R>OV,R ; Verifi$a a ne$essidade de au#entar a (argura
; Se a f(ag estier $o# %ero, no $orrige
7CLR GJM,*LGK ; Li#!a a f(ag da ne$essidade de au#entar
MOV Va(or>$orrigido,TCH/ ; au#enta a (argura de !u(so
SG+R>OV,R
RT+ ; Retorna da interru!o
0N 3rof. 9ustavo :eber Denardin
; +nterru!o da $o#!arao
COM-: LDG TSC/
7CLR 7,TSC/ ; Li#!a a f(ag da interru!o da $o#!arao
7RCLR $ondio,SG+R>COM- ; Verifi$a a ne$essidade de di#inuir a (argura
; Se a f(ag estier $o# %ero, no $orrige
7CLR D+M,*LGK ; Li#!a a f(ag da ne$essidade de di#inuir
MOV Va(or>$orrigido,TCH/ ; di#inui a (argura de !u(so
SG+R>COM-
RT+ ; Retorna da interru!o
<c=E
33 +nterru!o do te#!ori%ador
interru!t oid toer;oid< =
TSC>TO* 1 /; 33 Li#!a a f(ag da interru!o do te#!ori%ador
if ;$ondio<= 34 +ndi$ao !ara au#enta (argura do -FM43
f(ag>au# 1 /; 33 Li#!a f(ag de $ondio
TCH/ 1 Va(or>$orrigido; 33 Corrige a (argura do !u(so
@
@ 33 Retorna da interru!o
33 +nterru!o da $o#!arao
interru!t oid $o#!ara$ao;oid<=
'Lte i;
i 1 TSC/; 33 LM registrador de estado do -FM
TSC/>CH/* 1 /; 33 Li#!a a f(ag
if ;$ondio< = 33 Verifi$a se N ne$ess9rio di#inuir a (argura
f(ag>di# 1 /; 33 Li#!a f(ag de $ondio
TCH/ 1 Va(or>$orrigido; 33 Corrige a (argura do !u(so
@
@
/m algumas aplica!%es necessrio a inser!o de um tempo morto 'dead time+
devido ao tempo de comuta!o de certos tipos de componentes utili4ados ou devido as
topologias dos sistemas agregados a estas sa"das 3:6.
Iormalmente estes tempos mortos so inseridos em pares complementares de
sa"das 3:6, ou sea, quando uma das sa"das comuta para n"vel l5gico alto, a outra sa"da
comuta para n"vel l5gico baixo. Abaixo apresentado um exemplo de utili4a!o de
tempos mortos.
0) 3rof. 9ustavo :eber Denardin
Vigura J /xemplo de utili4a!o de tempo morto
1.1 Con)ersores !nalgico?Digital e Digital?!nalgico
De um modo geral, os sinais encontrados no mundo real so cont"nuos 'ou
anal5gicos, pois variam no tempo de forma cont"nua+, como, por exemploE a intensidade
luminosa de um ambiente que se modifica com a dist_ncia, a acelera!o de um carro de
corrida, etc. #s sinais manipulados por computadores e sistemas embarcados so
digitais, como por exemplo, uma faixa de udio lida de um compact disB.
A converso anal5gico$digital 'ADD+ o processo que possibilita a representa!o
de sinais anal5gicos no mundo digital. Desta forma poss"vel utili4ar os dados extra"dos
do mundo real para clculos ou operar seus valores.
/m geral, o conversor ADD est presente internamente nos processadores e
controladores de sinais digitais e alguns microcontroladores, mas tambm existem
circuitos integrados dedicados a este fim.
Tasicamente um bloco que apresenta portas de entrada e sa"da. A entrada
recebe sinais eltricos de forma cont"nua e possui uma faixa de tenso de entrada
mxima e m"nima. Ios microcontroladores que possuem um conversor ADD e operam na
faixa de .L, geralmente a faixa de tenso aceita sinais eltricos entre $.L e X.L.
-1 3rof. 9ustavo :eber Denardin
Ia sa"da o sinal amostrado em um dado intervalo de tempo fixo 'determinado
pela freqF,ncia de amostragem+. /sta amostra disponibili4a um certo valor que
representa o sinal original naquele momento 'quanti4a!o+. As caracter"sticas de
quanti4a!o esto relacionadas > preciso do conversor.
3ara ilustrar esta situa!o, imagine que voc, queira mostrar a temperatura de um
forno em um display de cristal l"quido 'GCD+. 3ara isto seriam necessrios alguns
componentes eletr2nicos. #s mais expressivos soE um transdutor 'sensor de
temperatura+, um display de cristal l"quido 'GCD+, um processador digital e um conversor
anal5gico digital.
Vigura $ Diagrama de blocos de uma converso ADD de um sinal de temperatura
A temperatura um sinal anal5gico. # sensor de temperatura converte a
temperatura em um sinal de impulsos eltricos anal5gicos. # conversor ADD recebe esse
sinal e o transforma em sinal digital, atravs de amostragem, entregando ao processador.
/ste, por sua ve4, manipula esses dados e envia$os para o display, mostrando em graus a
temperatura do forno. A figura abaixo mostra a representa!o do sinal anal5gico de
temperatura e seu equivalente na forma digital.
Vigura J Hepresenta!o de um sinal de temperatura anal5gico e digital.
-( 3rof. 9ustavo :eber Denardin
A informa!o digital diferente de sua forma original cont"nua em dois aspectos
fundamentaisE
7 amostrada porque baseada em amostragens, ou sea, so reali4adas
leituras em um intervalo fixo de tempo no sinal cont"nuo[
7 quanti4ada porque atribu"do um valor proporcional a cada amostra.
/xplorando um pouco mais o caso do forno, a figura abaixo detalha um pouco
mais as tr,s etapas mais importantes do processoE a aquisi!o, a amostragem e o
processamento.
Ieste diagrama de blocos, o sinal anal5gico capturado pelo transdutor 'sensor+,
em seguida passa por um filtro, denominado de anti!alias, a fim de diminuir os ru"dos. A
chave representa a freqF,ncia de amostragem do conversor ADD, entregando ao
processador o sinal digitali4ado.
Vigura J Diagrama de blocos da converso ADD.
A freqF,ncia de amostragem o nmero de amostras capturadas em um
segundo. /sta freqF,ncia dada em ert- 'M4+ e considerada adequada quando se
pode reconstruir o sinal anal5gico ra4ovel a partir de amostras obtidas na converso.
A taxa de converso ou freqF,ncia de amostragem de suma import_ncia para o
processamento de sinais reais. 3ara obter uma taxa de amostragem adequada pode$se
utili4ar os teoremas de Ny+uist ou S"annon. /stes teoremas indicam que um sinal
cont"nuo x't+ pode ser amostrado adequadamente se tiver banda limitada, ou sea, seu
espectro de freqF,ncia no pode conter freqF,ncias acima de um valor mximo ')m.( J
freqF,ncia mxima+. Ainda, outro ponto importante que a taxa de amostragem ')a J
VreqF,ncia de amostragem+ deve ser escolhida para ser no m"nimo duas ve4es maior que
a freqF,ncia mxima ')m.(+. 3or exemplo, para representar um sinal de udio com
-0 3rof. 9ustavo :eber Denardin
freqF,ncias at (1 QM4, o conversor ADD deve amostrar esses sinais utili4ando uma
freqF,ncia de amostragem de no m"nimo 01 QM4.
3ara melhor entendimento, vamos ver como funciona um conversor ADD de K bits
'Vigura abaixo+.
Vigura J Converso ADD de K bits.
Com K bits o mximo representvel o nmero (P. Csso quer di4er que temos
uma faixa de 1 a (. 'no sinali4ado+ ou X* a $N 'sinali4ado+. Iesse conversor fict"cio,
teremos uma varia!o a cada ( volt. A figura anterior mostra um sinal de udio de 011 M4
variando de X* a $N volts, que pode ser capturado por um microfone. Conforme o teorema
de Ny+uist, seria necessrio uma freqF,ncia de amostragem de K11 M4.
Gembrando que, se o sinal de udio possu"sse amplitude maior que a faixa
representvel do conversor ADD '*L a $NL+, ento no seria poss"vel converter tal sinal.
# conversor DDA possui todas as caracter"sticas do conversor ADD, as quais
diferem apenas porque o conversor DDA pega um sinal digital e transforma em anal5gico.
3or exemplo, em uma aplica!o de udio, um microfone captura o udio e envia a um
conversor ADD, que entrega o sinal amostrado e quanti4ado a um processador digital. /ste
ltimo efetua diversas opera!%es com o sinal de udio. &5 ento o processador envia ao
conversor DDA, para remontar o sinal anal5gico a partir do sinal digital, para ser
reprodu4ido em um alto$falante. 8m exemplo de conversor DDA de (P bits o DAC(00(,
da 'e(as Instruments.
Iovamente para exemplificar a configura!o de um conversor ADD em um
microcontrolador ser utili4ado o microcontrolador 6CPNMC)1NOAK. /ste
microcontrolador possui um conversor ADD por aproxima!o sucessiva linear com quatro
canais, ou sea, existem K entradas poss"veis para sinais anal5gicos que so
multiplexadas para um nico conversor ADD. Csto implica em que s5 um canal ser
convertido em um determinado momento. A resolu!o deste ADD de N bits, no entanto, a
-- 3rof. 9ustavo :eber Denardin
)reescale disponibili4ou uma nova verso com ADD de (1 bits, o 6CPNMC)1NOAKA. Ia
figura a seguir apresentado o diagrama de blocos do conversor ADD deste
microcontrolador.
Vigura J Diagrama de blocos do conversor ADD do microcontrolador 6CPNMC)1NOAK
-K 3rof. 9ustavo :eber Denardin

Você também pode gostar