Você está na página 1de 34

LT36D

Microcontroladores
Notas de Aula
Aulas 1 e 2
Prof. Eduardo G. Bertogna

DAELN/UTFPR-Campo Mourão

1
Sistema Microprocessado Mínimo

• Microprocessador: Também chamada de CPU (Central


Processing Unit), controla todas as operações do sistema,
executando instruções residentes na memória de programa.
Estas instruções podem realizar operações lógicas, aritmé-
ticas, de acesso às portas de entrada e saída, e acesso a
memória de dados ou programa;

• Memória de Programa: Memória do tipo não volátil


(ROM/EPROM/FLASH), onde o programa (Firmware) a ser
executado pelo microprocessador ca armazenado;

• Memória de Dados: Memória do tipo volátil (RAM)


onde os dados a serem processados cam temporariamente
armazenados. Estes dados podem ser provenientes das portas
de entrada, por exemplo um teclado, ou então podem ser ge-
rados através de operações lógicas ou aritméticas com outros
dados;
2
• Portas de Entrada e Saída (E/S): São dispositivos
que permitem a entrada e saída de dados do/para o mundo
exterior, sendo constituídas de interfaces e periféricos;

• Bus de Dados: Linhas de dados bidirecionais que inter-


ligam a CPU às portas de E/S e memória, sendp utilizadas
para leitura/escrita nestes dispositivos;

• Bus de Endereços: Linhas de endereços unidirecionais


(a CPU sempre fornece endereços), que interligam o barra-
mento de endereços da CPU aos barramentos de endereços
das memórias e circuito de seleção;

• Bus de Controle: Linhas de controle que interligam si-


nais de controle da CPU e os respectivos sinais nas memórias,
portas de E/S e demais circuitos auxiliares. Alguns sinais de
controle são fornecidos pela CPU, como sinais de requisição
de leitura e escrita, e requisição de memória/dispositivos de
E/S, enquanto outros são por esta recebidos, como os de
interrupção, reset, de espera, requisição de acesso direto à
memória, etc.

• Circuito de Power-On Reset: Fornece o sinal de


RESET ao se energizar o sistema, assim a CPU inicializa os
seus registros internos para valores default;

• Circuito de Seleção: Fornece os sinais de seleção e


habilitação para as memórias de dados e de programa, assim
como para portas de E/S, de conformidade com instruções
executadas pela CPU;

• Circuito de Clock: Fornece o sinal de clock ou relógio


para que o Microprocessador possa operar.
Microcontroladores

• Microcontrolador é um sistema microprocessado e


vários periféricos integrados em um único chip, com
as seguintes vantagens:

 Custo muito reduzido e minimização no projeto da PCI e


maior facilidade de uso, com menor consumo de potência;

 Grande número de derivativos com características diver-


sas, atendendo aos mais variados projetos, e grande su-
porte de HW (Kits) e SW (IDEs) fornecido por fabricantes
e parceiros.

Von-Neumann e Harvard

Quanto à organização do barramento de dados há dois


tipos de arquiteturas de microprocessadores e micro-
controladores:

• Von-Neumann: nesta arquitetura, cujo nome


foi dado em homenagem ao seu criador - John Von-
Neumann, um único barramento de dados interno
interfaceia a memória de programa, onde as instru-
ções são buscadas, e a memória de dados;

3
• Harvard: nesta outra arquitetura o processador
possui barramentos de dados distintos para a me-
mória de programa e a memória de dados.
 Desta forma, o processador pode buscar simultaneamente
o código de instrução na memória de programa e seu ope-
rando (quando existente) na memória de dados, e por-
tanto, a execução da instrução é mais rápida que no Von-
Neumann;

 Uma possiblidade adicional é a busca antecipada de ins-


truções, operação esta chamada de pipeline, e neste caso
todas as duas arquiteturas podem fazer uso deste pro-
cesso.
Arquiteturas CISC vs RISC

• CISC: sigla de Complex Instruction Set Compu-


ter , nesta arquitetura há um grande número de ins-
truções com variedade de operações e sua codi-
cação não possibilita um código de tamanho xo,
podendo haver instruções com variado nr de bytes;

• RISC: sigla de Reduced Instruction Set Compu-


ter , nesta arquitetura, há um menor número de ins-
truções com operações mais simples e nr de bytes
xo.
 Como a arquitetura CISC tem um conjunto de instruções
com nr de bytes maior que a RISC, a execução destas
instruções se torna menos eciente que os de arquitetura
RISC.

4
Famílias de Microcontroladores
Populares

• 8051: Originalmente desenvolvida pela INTEL,


hoje produzida por um grande n° de fabricantes
como Atmel, Dallas Semiconductors, NXP, dentre
tantas outras. Possui arquitetura CISC de 8 bits,
com cerca de 400 dispositivos derivativos entre os
vários fabricantes.

• PIC: Produzida pela Microchip, possui arquitetura


RISC de 8 bits, ideal para as aplicações de baixa e
média complexidade, como os da família AVR.

• AVR: Produzida pela Atmel, possui arquitetura


RISC de 8 bits, alto desempenho, ideal para aplica-
ções de baixa e média complexidade. Usado como
base das placas Arduino.

• MSP430: Produzida pela Texas Instruments, pos-


sui arquitetura RISC de 16 bits ideal para aplicações
de baixo consumo e média complexidade.

• ARM: Produzida por inúmeros fabricantes, o nú-


cleo é licenciado pela empresa ARM, sendo de ar-
quitetura RISC de 32 bits, ideal para as aplicações
de média e alta complexidade.
5
Visão Geral da Família AVR

• Desenvolvido em 1996, na Atmel da Noruega por Alf-Egil


Bogen e Vergard Wollan, sendo o AT90S1200 o primeiro ele-
mento da família, pino a pino compatível com o AT89S2051
exceto pelo Reset em nível 1;

• A família AVR possui arquitetura RISC de 8 bits com conceito


Harvard, e pipeline de um nível garantindo o paralelismo;

• Conjunto de 131 instruções, a maioria sendo executadas em


um único ciclo de clock, poucas executadas em 2, 3 ou 4
ciclos;

• 32 registros de uso geral, todos conectados diretamente à


ULA, permitindo que dois registros quaisquer sejam acessados
em um único ciclo de clock;

• Perto de 20 MIPS, com o clock máximo de 20 MHz: 1MIPS


por MHz, 10x mais rápido que os microcontroladores de ar-
quitetura CISC;

• Eciência na geração de código, tanto em C como em as-


sembly, comparável ao CISC;

• Memória Flash ISP, 10.000 ciclos de escrita/apagamento;

• Tensões de alimentação em alguns elementos entre 1,8V e


5,5V, e possibilidade de operação em baixo consumo;

• Grande suporte de hardware e software para o desenvolvi-


mento, muitos destes de natureza livre e aberta.
6
Elementos da Família AVR

• tinyAVR

• megaAVR

• XmegaAVR

• Battery Management

• Automotive AVR

Sub-Famílias tinyAVR e megaAVR

• tinyAVR: Entre 6 e 20 pinos de E/S linhas, pe-


quena área de memória Flash (1kB ou 2kB), poucos
periféricos internos, ideal para aplicações de baixa
complexidade, e baixo custo.

• megaAVR: Entre 8kB e 256kB de memória Flash,


entre 23 e 54 pinos de E/S, inúmeros periféricos
internos: Canais de ADC, Canais de PWM, Com-
parador Analógico, Canais TWI/I2C, UART e SPI,
ideal para as aplicações de média complexidade.

7
Sub-Famílias tinyAVR, e megaAVR
Modelo* Características Principais
tiny11 1kB Flash, 1 T/C de 8bits, 6 Pinos de E/S.
tiny12 Idem ao tiny11, com 64B de EEPROM.
tiny13 Idem ao tiny12, com 64B de SRAM, e 4 ADC's.
tiny15 Idem ao tiny12, com 4 ADC's.
tiny26 2kB Flash, 128B EEPROM, 128B SRAM, 2 T/C
de 8bits, 16 Pinos de E/S, 11 ADC's de 8bits.
tiny28 2kB Flash, 1 Timer/Counter de 8bits, 20 Pinos de E/S.
tiny2313 2kB Flash, 128B de EEPROM, 128B de SRAM, 2 T/C
(1 de 8bits, 1 de 16bits), 18 Pinos de E/S, 1 Serial.
mega8 8kB Flash, 512B EEPROM, 512B SRAM, 3 T/C (2x8,1x16)
23 Pinos de E/S, 1 Serial, 3 PWM, 8 ADC' s,
mega8515 8kB Flash, 512B EEPROM, 512B SRAM, 2 T/C (1x8,1x16)
35 Pinos de E/S, 1 Serial, 3 Canais de PWM
mega8535 Idem ao mega8515, com 2 Timer/Counter de 8bits,
4 Canais de PWM, 8 ADC's, e 32 Pinos de E/S.
mega16 16kB Flash, 1KB EEPROM, 1KB SRAM, 3 T/C (2x8,1x16)
32 Pinos de E/S, 1 Serial, 6 Canais de PWM, 8 ADC' s,
mega162 Idem ao mega16, c/ 2 T/C de 16bits, 4 Canais de PWM,
2 Canais Seriais, 35 Pinos de E/S, porém sem ADC's.
mega32 Idem ao mega16, c/ 32kB de Flash, 2kB SRAM, 4 PWM.
mega64 64kB Flash, 2kB EEPROM, 4kB SRAM, 4 T/C (2x8,1x16)
54 Pinos de E/S, 2 Serial, 8 Canais de PWM, 8 ADC's.
mega128 Idem ao mega64, com 128kB Flash, 4kB EEPROM.
mega48 4kB Flash, 256B EEPROM, 512B SRAM, 3 T/C (2x8,1x16)
24 Pinos de E/S, 1 Serial, 5 Canais de PWM, 8 ADC's.
mega88 Idem ao mega48, c/ 8kB Flash, 512B EEPROM, 1kB RAM.
mega168 Idem ao mega88, c/ 16kB de Flash.
mega256 Idem ao mega128, c/ 256kB Flash, 8kB SRAM, 16 PWM.

8
Ambientes de Desenvolvimento p/
AVR

CodeVisionAVR

• Possibilita apenas desenvolvimento em C, e não


conta com simulador /depurador.

• Possui um Wizard para prévia conguração do có-


digo através da geração automática de código de
congurações de registros de acordo com as sele-
ções feitas para cada periféricos neste Wizard.

• Sua versão de avaliação possibilita a geração de até


4k de código, com pequenas limitações.

AVR Studio 4 ou Atmel Studio 7

• Desenvolvimento em assembly e C, com simula-


dor/depurador.

• Freeware fornecido pela Atmel.

• No desenvolvimento em C pode ser usado com o


compilador GNU GCC WinAVR e com o AVR To-
olchain da Atmel.
9
Tela do IDE CodeVisionAVR

Bastante leve de baixar e instalar, podendo ser obitido


em http://www.hpinfotech.com sua versão de avalia-
ção.

10
AVR Studio 4 ou 5
Versão distribuída anteriormente à criação do Atmel
Studio, tendo como vantagem ser mais leve (125MB),
pela razão de não sendo baseado no Visual Studio.
Pode ser baixada de:
http://pessoal.utfpr.edu.br/ebertonha/programas-p-download/avr-
studio-4.19.

11
Atmel Studio 6 ou 7

Versão bastante pesada para baixar (cerca de 900MB)


e também para instalar, porém, dispõe de recursos po-
derosos como plugins que possibilitam o uso do Code-
Vision AVR e Arduino, incluindo ainda suporte a uma
variedade de placas de desenvolvimento.

12
Núcleo da Arquitetura AVR RISC

13
Recursos do ATmega328

131 Instruções (maioria executada em 1 ciclo clock)


32 kB Memória Flash ISP 10.000 ciclos de escrita
2.048 B Memória SRAM
1.024 B Memória EEPROM 100.000 ciclos de escrita
32 Registros de 8 bits de uso geral
23 pinos de I/O programáveis individualmente
2 T/C de 8 bits, c/ prescaler separado e Modo de
Comparação
1 T/C de 16 bits, c/ prescaler separado e Modos de
Comparação e de Captura
6 Canais de PWM
Contador de Tempo Real c/ oscilador independente
Watchdog Timer c/ oscilador independente
6 Conversores A/D de 10-bits (8 ADCs em TQFP/MLF)
Multiplicador por Hardware (2 ciclos de clock)
1 Comparador Analógico
1 Serial TWI compatível c/ I2C Philips
1 USART
1 SPI Master/Slave
2 Interrupções Externas e 23 Interrupções/Wake-Up de I/O
6 Modos de Baixo Consumo
Detecção de Brown-out e Power-On Reset
Oscilador RC Interno Calibrado
Encapsulamentos DIP-28, TQFP-32, MLF-28
Tensões: 1,8V-5,5V
Clock: 0-20 MHz

14
ATmega328: Arquitetura Interna

15
ATmega328: Pinagem DIP-28

Descrição dos Pinos do


ATmega328

• Vcc - Tensão de Alimentação de 1,8 a 5,5V

• GND - Referência.

• AVcc - Entrada da Tensão do Conversor A/D, devendo ser


conectado externamente a Vcc. Se o ADC é usado deve ser
conectado a Vcc via ltro passa-baixas.

• AREF - Entrada da Tensão de Referência do Conversor A/D

16
• PORTAS B, C e D (PCINT0...PCINT22) - Todos os 23
pins de E/S das Portas B, C e D possuem a função alternativa
de ativar uma interrupção na mudança de estado do respec-
tivo pino, servindo assim como uma interrupção externa.

• PORTB (PB0...PB7) - Porta de 8 bits bidirecional de E/S.


Cada pino desta porta possui uma função alternativa, ver
tabela abaixo.

Pinos Funções Alternativas


PB0 CLK0 Saída de clock dividido
ICP1 Entrada de Captura do T/C1
PB1 OC1A Saída Comparação A do T/C1
PB2 OC1B Saída Comparação B do T/C1
SS Seleção Master/Slave da SPI
PB3 OC2A Entr. Inv. do Comp. Analógico
MOSI Saída Output/Slave da SPI
PB4 MISO Saída Input/Slave da SPI
PB5 SCK Entrada de Clock da SPI
PB6 XTAL1 Entrada Clock Externo 1
TOSC1 Entrada Clock T/C2 qdo Osc. RC
PB7 XTAL2 Entrada Clock Externo 2
TOSC2 Entrada Clock T/C2 qdo Osc. RC

17
• PORTC (PC0...PC6) - Porta de 7 bits bidirecional de E/S.
Cada pino desta porta possui uma função alternativa, ver
tabela a seguir.

Pinos Funções Alternativas


PC0...PC5 ADC0...ADC5 Entradas de conversão A/D
PC4 SDA Entrada/Saída de Dados da I2C
PC5 SCL Entrada/Saída de Clock da I2C
PC6 RESET Entrada de Reset

• PORTD (PD0...PD7) - Porta de 8 bits bidirecional de E/S.


Cada pino desta porta possui uma função alternativa, ver
tabela a seguir.

Pinos Funções Alternativas


PD0 RXD Entrada de Recepção Serial - USART
PD1 TXD Saída de Transmissão Serial - USART
PD2 INT0 Entrada Interrupção Externa INT0
PD3 INT1 Entrada Interrupção Externa INT1
OC2B Saída de Comparação B do T/C2
PD4 T0 Entrada Contagem do T/C0
XCK Entrada/Saída Clock Externo da USART
PD5 T1 Entrada Contagem do T/C1
OC0B Saída de Comparação B do T/C0
PD6 AIN0 Entrada Positiva Comparador Analógico
OC0A Saída de Comparação A do T/C0
PD7 AIN1 Entrada Negativa Comparador Analógico

18
Placas da Família Arduino AVR

Pinagem do ATmega328p na
Placa Arduino Uno/Nano

Aduino - Pino ATmega328p Aduino - Pino ATmega328p


D0 PD0 D8 PB0
D1 PD1 D9 PB1
D2 PD2 D10 PB2
D3 PD3 D11 PB3
D4 PD4 D12 PB4
D5 PD5 D13 PB5
D6 PD6 A0..A5 PC0...PC5
D7 PD7 VIN ARef
19
Placa Atmel Xplained328

Gravadores ISP

20
Sistema de Clock do ATmega328

• Seleciona a fonte primária de clock de 5 fontes distintas:

 Clock Externo, Cristal Oscilador Externo, Cristal Osci-


lador de Baixa-Freq., Oscilador RC Interno e Oscilador
Watchdog.

• Fornece os sinais de clock derivados da fonte primária;

21
• Sinais de clock derivados da fonte primária:

Clk CPU Núcleo AVR e RAM


Clk IO Módulo de E/S, T/C's, Canal SPI, e UART;
Clk Flash Memória Flash, ativado junto c/ clock da CPU;
Clk ADC Conversor A/D;
Clk ASY T/C2 clock assíncrono

• Arbitra a ativação dos sinais de clock, acima, não necessaria-


mente ativos simultaneamente, em razão dos modos de baixo
consumo.

Fontes de Sinal de Clock


São 5 diferentes possibilidades para a fonte de geração de sinal de
clock, listadas a seguir:

• Fonte de Clock Externa;

• Cristal/Ressonador Cerâmico Externo:

• Cristal de Baixa Freqüência Externo;

• Oscilador RC Interno Calibrado;

• Oscilador RC Interno de 128 kHz.

22
Seleção da Fonte Primária de Clock - Fuse-bits CKSEL3...0
A fonte primária de clock é selecionada quando da programação
do dispositivo, através dos fuse-bits CKSEL3...0 :

CKSEL3...0 Fonte de Clock Selecionada


1111-1000 Cristal Externo Baixa Potência
0111-0110 Cristal Externo Excursão Completa
0101-0100 Cristal Externo de Baixa Frequência
0011 Oscilador RC Interno de 128 kHz
0010 Oscilador RC Interno Calibrado
0000 Clock Externo
Seleção default de fábrica é p/ Oscilador RC interno

Obs: Maior atraso de inicialização (start-up time), possibilita usar


qualquer métodos de gravação ISP disponível.

Fontes Externas de Clock

• Cristal Quartz Oscilador - Figura (a)

 Pinos XTAL1/XTAL2: Entrada/Saída do amplicador in-


versor usado como oscilador interno.
 O cristal oscilador e dois capacitores, ou um ressonador
cerâmico devem ser conectados conforme a gura (a).

• Fonte de Clock Externa - Figura (b)

 Pino XTAL1: Entrada de fonte de clock externa;


 Pino XTAL2: Não conectado, conforme gura (b).
23
Oscilador Interno Calibrado

• Quando se deseja minimizar o uso de componentes externos,


e existe uma certa tolerância na precisão do sinal de clock;

• Por default 8 MHz a 25ºC e Vcc=3V ±10%, ou calibrado pelo


usuário de 7,3 a 8,1 MHz ±1%;

• Precisão é dependente de temperatura e tensão de alimenta-


ção;

• Registro de Calibração OSCCAL permite ajustar a calibração


do oscilador RC Interno, no Reset um valor associado ao byte
de assinatura é carregado neste registro.

Start-up do Oscilador Interno Calibrado


Os tempos de inicialização do Oscilador RC Interno, é feita através
dos fuse-bits SUT1 e SUT0:
Start-up Time para Oscilador Interno (Vcc=5V)
SUT0 Start-Up Time Adicional Recomen-
SUT1 após Power-Down após Reset* dação
00 6 Clocks 14 Clks BOD Habilit.
01 6 Clocks 14 Clk + 4,1 ms Fonte Rápida
10 6 Clocks 14 Clk + 65 ms Fonte Lenta
11 Reservado
24
Circuito de Reset

• Faz a carga dos Registros de E/S com seus valores iniciais e


carrega o PC com o vetor de Reset: 0000H;

• Após sua ativação, um atraso de tempo, Start-Up Time, é


gerado conforme seleção dos fuse-bits CKSEL3...CKSEL0;

• A execução do programa inicia no endereço RESET, e uma


instrução de desvio desvia a execução p/ a rotina principal.

• Modo de operação do Circ. de Reset, depende dos bits


de controle: WDRF , BORF , EXTRF , e PORF , do Reg.
MCUSR.
25
Fontes de Ativação do Reset

• Sinal de Ativação Externo: sinal de nível lógico


baixo por mais de 50ns no pino de RESET;

• Power-On Reset: tensão Vcc abaixo da tensão


limite de Power-On Reset (Power-On Threshold) -
VP OT , tipicamente entre 1,4V e 2,3V;

• Watchdog Timer Reset: período programado no


Temporizador Watchdog expira antes da instrução
WDR ser executada, com o WDT habilitado;

• Brown-Out Reset: tensão Vcc abaixo de um valor


limite, (Brown-Out Threshold) VBOT , c/ o detec-
tor de Brown-Out (BOD) habilitado pelo fuse bit
BODEN .

 VBOT é selecionada pelo fuse-bit BODLEVEL:


- Se programado o VBOT = 4, 0V
- Se desprogramado, VBOT = 2, 7V .

 Por default BODEN estará desprogramado;

 Bits BODSE e BODS no registro MCUCR permite desli-


gar o circuito de BOD em modo Sleep.

26
Registro de e Status da CPU - MCUSR

Neste registro são alocados bits de status (Flags ) da


CPU em relação à geração do sinal de Reset pelas 5
fontes distintas.
MCUSR
    WDRF BORF EXTRF PORF

• Bit PORF : Power-On Reset Flag ,


Sinalizador de
Power-On Reset, setado no Power-On, e resetado
somente por software;

• Bit EXTRF : External Reset Flag ,


Sinalizador de
Reset Externo, setado no reset externo e resetado
unicamente por software;

• Bit BORF: Brown-Out Reset Flag , Sinalizador de


Brown-Out Reset, setado no reset por Brown-Out,
e resetado por software ou Power-On;

• Bit WDRF : Watchdog Reset Flag ,


Sinalizador de
Watchdog Reset, setado pelo reset do WDT, e re-
setado por software ou no Power-On.

27
Registro de Controle da CPU - MCUCR

Neste registro são alocados bits de controle da CPU.


MCUCR
- BODS BODSE PUD - - IVSEL IVCE

• Bit IVSEL: Interrupt Vector Selection, setado move


os vetores de interrupção p/ o início do setor de
boot;

• Bit IVCE: Interrupt Vector Change Enable, setado


habilita a função do bit IVSEL. Resetado por hard-
ware 4 ciclos de clock após ter sido setado, ou
quando IVSEL é setado.

• Bit :
PUD Pull-Up Disable , setado desabilita todos
os pull-ups em todos os pinos das portas;

• Bit BODSE : BOD Sleep Enable ,


setado permite
que o bit BODS desligue o circuito de detecção de
Brown-out durante estado Sleep;

• Bit BODS : BOD Selection,


Deve ser setado para
desligar o circuito de detecção de Brown-out du-
rante estado alguns modos Sleep;
28
Registro de Status da CPU - SREG
Registro de ags acerca das operações Aritméticas/-
Lógicas executadas, como também alocação do bit de
habilitação global de interrupções e um bit de uso geral.
SREG
I T H S V N Z C

• Flag T: Temporary , bit de alocação temporária usado p/


teste em bits, através das instruções BLD e BST;

• Flag H: Half-Carry , indica ocorrência de um vai-um do nibble


inferior p/ o superior;

• Flag S: Signal , indica o resultado: N ⊕V

• Flag V: Overow , indica se o byte sinalizado em comple-


mento de 2, está na faixa de -127 a 128;

• Flag N: Negative , indica resultado negativo em operação arit-


mética/lógica;

• Flag Z: Zero , indica resultado zero em operação aritméti-


ca/lógica;

• Flag C: Carry , indica ocorrência de vai-um, em uma operação


aritmética/lógica.

• Bit I: Interrupt , setado p/ que qualquer fonte de interrupção


possa ter efeito.
30
Operação do Registro SREG

Habilitação/Desabilitação de Interrupções

Declarações em C:
Para o compilador C do IDE Codevision:
#include
...
<mega328p . h> / / A r q . h e a d e r i n t e r r u p .
#asm ( " c l i " ) / * D e s a b i l i t a i n t e r r u p ç õ e s g l o b a l m e n t e * /
...
#asm ( " s e i " ) / * H a b i l i t a i n t e r r u p ç õ e s g l o b a l m e n t e * /

Para o compilador C avr-gcc do WinAVR:


#include
...
<a v r / i n t e r r u p t . h> / / A r q . h e a d e r i n t e r r u p .
cli (); /* Desabilita interrupções globalmente */
...
sei (); /* Habilita interrupções globalmente */

Declarações em ASM:
. INCLUDE "M328PDEF . INC " ; Arq . de d e f i n i ç õ e s d i s p o s .
...
CLI ; D e s a b i l i t a i n t e r r u p ç õ e s
...
SEI ; H a b i l i t a i n t e r r u p ç õ e s
31
Modos de Baixo Consumo - Sleep Modes
O modo de baixo consumo é ativado se o bit de Habilitação do
Modo Sleep, SE =1 (registro SMCR), e uma instrução SLEEP for
executada.

Modo Idle
- CPU é parada;
- Periféricos e Interrupções continuam funcionando;
- CPU retorna do modo Idle ao ocorrer uma destas interrupções;
- Circuito de BOD não pode ser desativado neste modo.

Modo Power-Down
- Oscilador externo é parado;
- Circuitos dos TWI, WDT, e Interrupções, permanecem funcio-
nando;
- Retorno do Power-Down através de uma interrupção destes cir-
cuitos, de um Reset externo, ou Reset por Brown-out.

Modo Power-Save
- Idêntico ao Power-Down, exceto que T/C2 continua ativo;
- Adicionalmente, pode retornar deste modo por interrupções do
T/C2;
- Se o T/C2 não será usado recomenda-se o modo Power-Down.

Modo Standby
- Idêntico ao Power-Down, exceto que o oscilador externo se man-
tém funcionando;
- Somente possível de ser usado com Cristal/Ressonador externo.

Modo Standyby Extendido


- Idêntico ao modo Power-Save, exceto que o oscilador externo se
mantém funcionando.
- Somente possível de ser usado com Cristal/Ressonador externo.
32
Reg. de Controle dos Modos de Sleep -
SMCR

Neste registro são alocados bits de controle e seleção


do modo de baixo consumo dentre os 5 modos dispo-
níveis já descritos.

SMCR
    SM2 SM1 SM0 SE

• Bit SE: Sleep Enable , setado bit permite que o AT-


mega328 entre em dos 5 modos de baixo consumo
disponíveis após a execução da instrução SLEEP.

• Bits SM0...SM2 : Sleep Modes ,


seleciona um dos
5 modos de operação sleep conforme tabela abaixo.

Modos de Baixo Consumo


SM2 SM1 SM0 Modo
0 0 0 Modo Idle
0 0 1 Redução de ruído do ADC
0 1 0 Modo Power-down
0 1 1 Modo Power-save
1 0 0 Reservado
1 0 1 Reservado
1 1 0 Modo Standby
1 1 1 Modo Standby extendido

33

Você também pode gostar