Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCONTROLADORES
Atmel AVR
Débora Eliane Soares de Souza Batista - 202004709
Luis Guilherme Barbosa Custodio - 201905500
Pedro Lucas Gonçalves Sene - 201905469
Vitor Pires Silva e Souza - 201802749
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
Sumário
Introdução__________________________________________________________________3
Arquitetura_________________________________________________________________ 4
1. Memória de Programa (Flash)______________________________________________ 5
2. Dados de memória interna_________________________________________________ 5
3. Registradores Internos____________________________________________________ 5
4. EEPROM______________________________________________________________ 6
Instruções__________________________________________________________________ 7
1. RISC - Reduced Instruction Set Computer_____________________________________7
2. Registradores___________________________________________________________ 8
3. Endereçamento_________________________________________________________ 8
4. Lista de Instruções_______________________________________________________ 9
Aplicação__________________________________________________________________10
1. Microcontroladores AVR DA_______________________________________________10
Conclusão_________________________________________________________________ 11
Quadro Comparativo:______________________________________________________ 11
Referências Bibliográficas___________________________________________________ 12
2
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
Introdução
Os microcontroladores da família AVR são microcontroladores RISC (Reduced
Instruction Set Computer) de 8 bits desenvolvidos pela fabricante Atmel. Foi desenvolvido em
1996 com uma arquitetura Harvard modificada que baseia-se em um conceito mais recente que
a de Von Neumann, tendo surgido da necessidade de se pôr o microcontrolador para trabalhar
mais rápido. Foi um dos primeiros da família de microcontroladores a utilizar uma memória
flash com o intuito de armazenar a programação, diferentemente de seus concorrentes da
época que utilizavam memória do tipo PROM, EPROM ou EEPROM.
O AVR tem uma característica importantíssima, que é o fato de separar a memória de
dados da memória de programa. Desta forma, um microcontrolador AVR tem um barramento
para dados e um barramento para o programa. Essa separação de barramentos permite uma
maior velocidade no tratamento dos dados e do programa.
Outro detalhe importante sobre a família AVR diz respeito à quantidade de ciclos de
máquina necessários para se executar uma instrução. Esse fator determina a quantidade de
MIPS (milhões de instruções por segundo) que um microcontrolador pode alcançar. Na família
AVR um pulso de clock equivale a um ciclo de máquina. Como são necessários apenas um
único ciclo de máquina para executar a maioria das instruções pertencentes ao seu instruction
set, um AVR operando com um oscilador de 4MHz estará operando exatamente a 4 MIPS.
Essa informação é bastante interessante e deve ser levada em conta caso o leitor precise
executar operações com grande performance (ou ainda, grandes velocidades) com um
microcontrolador.
Figura 1 - Família de Microcontroladores AVR.
3
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
Arquitetura
A arquitetura dos microcontroladores da família AVR, como já comentado
anteriormente, é baseada na arquitetura modificada de Harvard de 8-bit, desenvolvidos sob a
tecnologia RISC, em que a principal característica se dá pelo fato que os programas e os dados
são armazenados em sistemas de memória física separados, que aparecem em diferentes
espaços de endereços, mas possui a habilidade de ler os itens da memória do programa
usando instruções especiais. Abaixo, a figura 2 exemplifica como a arquitetura de Harvard é
esquematizada.
Figura 2 - Diagrama Arquitetura de Harvard
Ocorre também uma separação de barramentos de dados das memórias onde estão as
instruções de programa e das memórias de dados, permitindo que um processador possa
acessar as duas simultaneamente, obtendo um desempenho melhor do que a arquitetura de
von Neumann, pois pode buscar uma nova instrução enquanto executa outra. A principal
vantagem dessa arquitetura é que a leitura de instruções e de alguns tipos de operandos pode
ser feita ao mesmo tempo em que a execução das instruções. Assim, o sistema fica o tempo
todo executando instruções, o que acarreta um significativo ganho de velocidade. Enquanto
uma está sendo executada, a seguinte está sendo lida. Ou seja, pipelining.
Comparando um AVR com um microcontrolador 8051, ambos com oscilador de 12 MHz,
teríamos as seguintes velocidades, em MIPS, indicadas na tabela abaixo:
Microcontrolador com cristal externo de 12 MHz MIPS (milhões de instruções por segundo)
AVR Atmel 12
8051 Intel 1
Tabela 1 - Comparativo 8051 Intel com AVR Atmel
4
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
Como pode ser visto na tabela, a velocidade dos microcontroladores AVR é grande.
Voltando, agora, mais especificamente para a arquitetura dos microcontroladores AVR,
temos que as memórias FLASH, EEPROM e SRAM são todas integradas em um único chip,
fora o necessário pelas memórias externas nas maiorias das aplicações. Nos tópicos
seguintes, será detalhado como cada componente se integra na arquitetura do
microcontrolador.
1. Memória de Programa (Flash)
As memórias de programas são armazenadas em memórias flash não voláteis. Apesar
de serem de 8 bits, cada instrução consiste em palavras de 16 bits, além disso, não há suporte
para utilizar os códigos de programas externamente, todas as instruções devem residir no
núcleo do dispositivo.
O tamanho da memória do programa é normalmente indicado no nome do próprio
dispositivo. Por exemplo, a linha ATMega64x tem 64 KB de flash, assim como o ATmega32x
tem apenas 32 KB.
Figura 3 - Exemplo de Memória Flash em um Pen Drive
2. Dados de memória interna
Os dados do espaço de endereçamento consistem de arquivos registradores, como os
registradores de Entrada/Saída (entrada ou saída de dados por meio de um código ou
programa) e também os registrados de SRAM, que é a memória de acesso aleatório, que
basicamente é uma memória temporária computacional de acesso rápido.
3. Registradores Internos
Os AVRs tem 32 registradores de byte-único e são classificados como dispositivos de
de 8-bits RISC.
5
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
Em algumas variantes, os registradores em funcionamento são mapeados nos primeiros
32 endereços de memória ( ) e são seguidos por 64 registradores de0000
16
− 001𝐹
16
Entrada/Saída ( ). Atualmente a SRAM inicia depois destas seções de0020
16
− 005𝐹
16
registradores (endereço ). O espaço dos registradores de E/S pode ser ampliado em0060
16
alguns dispositivos extensivos, no caso dos registradores de memória mapeada em E/S, uma
parte do espaço de endereçamento SRAM será ocupada.
Ainda que haja separados esquemas e códigos otimizados para o arquivo registrador e
para os acessos de E/S, tudo poderá continuar endereçado e manipulado como se estivesse
na SRAM. Com exceção da XMEGA, na qual o funcionamento do arquivo registrador não é
mapeado para o espaço de endereçamento de dados. Em vez disso, eles são mapeados para
o endereçamento começando logo no início dele. Consequentemente, a parte dedicada ao
endereçamento para os registradores de E/S foram acrescidos para 4096 bytes
(000016-0FFF16).Como na geração anterior, no entanto, as instruções rápidas para manipular E/S apenas
podiam acessar as primeiras 64 posições dos registradores de E/S (sendo que as primeiras 32
posições são para instruções bitwise). Logo em seguida aos registradores de E/S, a séria
XMEGA reserva uma faixa de 4096 bytes do espaço de endereçamento de dados que pode ser
usado opcionalmente para mapear a EEPROM interna (100016-1FFF16). A SRAM real é
localizada após essas faixas, começando em 200016.
4. EEPROM
Quase todos os microcontroladores AVR possuem EEPROM - memória interna usada
para armazenar pequenas quantidades de dados que precisam ser salvos quando a energia é
removida - para armazenamento de dados semi-permanentemente. Diferente da memória
RAM, a EEPROM pode manter seu conteúdo quando a energia é desligada, como já foi
comentado.
Na maioria das variantes da arquitetura AVR, esta memória EEPROM interna não é
mapeada para o espaço de memória endereçável da MCU. Ela só pode ser acessada da
mesma forma que um dispositivo periférico externo, usando registradores de ponteiros
especiais e instruções de leitura/escrita, o que faz o acesso à EEPROM muito mais lento que
outra RAM interna.
Entretanto, alguns dispositivos na família SecureAVR (AT90SC) usam um mapeamento
de EEPROM especial para a memória de dados ou texto (programa) dependendo da
configuração. A família XMEGA também permite que a EEPROM seja mapeada para o espaço
de endereçamento de dados.
6
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
Como o número de escritas na EEPROM não é ilimitado — a Atmel específica 100.000
ciclos de escrita nos seus datasheets — uma boa rotina de escrita na EEPROM deve comparar
o conteúdo do endereço da EEPROM a ser escrito com o valor desejado a ser gravado e fazer
a escrita apenas se o conteúdo precisar ser modificado.
Figura 4 - Exemplo EEPROM - ST M24C02
Instruções
O microcontrolador AVR tem como base para suas instruções o RISC, o que oferece
suporte para uma poderoso e eficiente modo de endereçamento para acesso aos programas
de memória (flash) e memória de dados (SRAM, Arquivos Registradores, Memória de E/S e
Memória de E/S extendida).
1. RISC - Reduced Instruction Set Computer
É uma linha de arquitetura de processadores que favorece um conjunto simples e
pequeno de instruções que levam aproximadamente a mesma quantidade de tempo para
serem executadas.
Os processadores baseados na RISC não tem micro-programação, as instruções são
executadas diretamente pelo hardware. Como característica, esta arquitetura, além de não ter
microcódigo, tem o conjunto de instruções reduzidas, bem como baixo nível de complexidade.
O conjunto de instruções RISC são executadas em único ciclo de clock (operações
aritméticas e lógicas), o que torna os microcontroladores AVR muito rápidos e eficientes em
termos de energia. Inclui instruções para operações básicas como adição, subtração,
7
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
multiplicação, divisão e operações de bit. Também inclui algumas mais complexas, como
controle de fluxo, operações de memória e operações de entrada/saída.
2. Registradores
Existem 32 registradores de propósito geral, cada um com 8 bits que vão de R0-R31.
Todas as operações aritméticas e lógicas ocorrem nestes registradores, e apenas as instruções
de carregamento e armazenamento de dados acessam a RAM. Um limitado número de
instruções ocorrem em pares de registradores de 16-bits. Instruções que permitem um valor
imediato são limitadas para os registradores R16-R31 (operações de 8 bits) ou para os pares
de registradores R25:R24-R31:R30 (operações de 16 bit ADIW e SBIW).
A CPU tem alguns poucos registradores de propósito especial, como: PC (16 ou 22 bits
- program counter), SP (8 ou 16 bits - stack pointer), SREG (8 bits - status register) e RAMPX,
RAMPY, RAMPZ, RAMPD e EIND (8 bits - disponíveis apenas em grandes espaços de
endereçamento).
3. Endereçamento
Os seguintes espaços de endereçamento estão disponíveis:
- Os registradores de propósito geral são endereçados pelos números de 0 a 31.
- Registradores de Entrada/Saída apresentam um espaço de endereçamento dedicado
de 6 bits, cuja metade inferior é endereçável por bits. Algumas partes possuem
registradores de E/S fora deste espaço de endereço, que são os chamados “E/S
Estendidos” e só são acessíveis como E/S mapeada em memória no espaço de
endereço de dados.
- O espaço de endereçamento para dados mapeia os 32 registradores de propósito geral,
todos os registradores de E/S e a RAM.
- A memória de programa (flash) tem um espaço de endereçamento separado,
endereçada em palavras de 16 bits com propósito de buscar instruções.
- Quanto a busca por dados constantes, a memória do programa é endereçada byte a
byte através do registrador ponteiro Z, prefixado por RAMPZ.
- A EEPROM é mapeada na memória em alguns dispositivos. Em outros, não é
diretamente endereçável e em vez disso, é acessado através de endereços, dados e
registros de controle de Entrada/Saída.
- Os registradores de uso geral, o registrador de status (SP) e alguns registradores de
E/S são endereçáveis por bits, sendo o bit 0 o menos significativo e o bit 7 o mais
significativo.
A tabela exemplifica um mapeamento da memória do típico microcontrolador AVR
ATmega, e pode ser vista abaixo:
8
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
End. de Dados End. de E/S Conteúdo
0x0000 - 0x001F Registradores R0 - R31
0x0020 - 0x003F 0x00 - 0x1F Registradores de E/S (endereçável por bit)
0x0040 - 0x005F 0x20 - 0x3F Registradores de E/S (não endereçável por bit)
0x0060 - 0x00FF Registradores de E/S estendidos
0x0100 - RAM END SRAM Interna
Tabela 2 - Endereçamento ATmega
4. Lista de Instruções
As instruções são palavras longas de 16 bits, salvo aquelas que incluem
endereçamento de 16 ou 22 bits, o que acarreta que as instruções sejam de 2 palavras.
Existem dois tipos de saltos condicionais, jumps to address e skips. Saltos condicionais
podem testar uma flag na ALU e pular para um endereço específico. Já os skips testam um bit
arbitrário em um registrador ou E/S e priorizam a próxima instrução se o teste deu verdadeiro.
Abaixo, na imagem, é possível observar as instruções para o AVR de um modo geral.
9
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
Aplicação
Os microcontroladores AVR são amplamente utilizados em uma variedade de
aplicações. Alguns exemplos de aplicações incluem:
- Controle de automação industrial;
- Dispositivos médicos;
- Dispositivos de consumo;
- Aplicações automotivas;
- Aplicações militares, entre outras.
Um exemplo de projeto que pode ser implementado usando um microcontrolador AVR é um
sistema de controle de temperatura. O sistema de controle de temperatura pode usar um
sensor de temperatura para medir a temperatura ambiente. O microcontrolador pode então
usar essa informação para controlar um elemento de aquecimento ou resfriamento para manter
a temperatura ambiente em um nível desejado.
1. Microcontroladores AVR DA
A família AVR DA foi criada para permitir o projeto de funções de detecção de toque
capacitiva e controle em tempo real para aplicações, incluindo controle industrial, produtos de
eletrodomésticos, automotivo e internet das coisas (IoT).
A família traz os mais recentes periféricos independentes de núcleo desenvolvidos pela
Microchip com recursos de baixo consumo de energia e operação de 5V para maior imunidade
a ruídos.
10
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
Conclusão
Neste trabalho foi visto que os microcontroladores AVR são uma famíliade
microcontroladores RISC de 8 bits que são amplamente utilizados em uma variedade de
aplicações devido a suas características. Primeiramente, por conta do seu conjunto de
instruções RISC, que é simples e permite que sejam executadas em um único ciclo de clock, o
que acarreta em uma maior velocidade e eficiência. Segundo porque são caracterizados por
seu baixo custo, baixo consumo de energia e alto desempenho.
Durante a pesquisa foi destacado pontos importantes dos microcontroladores AVR,
como sua capacidade de processamento, memória flash programável, capacidade de entrada e
saída. Não apenas, foi discutido também as aplicações dos microcontroladores AVR DA em
diversos setores, como automação residencial, dispositivos médicos e sistemas de controle
industrial.
No entanto, aqui é crucial estar ciente dos desafios associados ao uso de
microcontroladores AVR, como limitações de recursos em termos de memória e potência de
processamento. A constante evolução da tecnologia também exige que os desenvolvedores
estejam atualizados sobre as últimas inovações e tendências no campo.
Abaixo, um quadro comparativo entre os microcontroladores AVR contra o 8051 da Intel
e o microcontrolador PIC da Microchip:
Quadro Comparativo:
Como pode ser visto, os microcontroladores AVR oferecem uma combinação de
recursos que os tornam uma escolha atraente para uma variedade de aplicações, justamente
como foi mostrado na pesquisa acima.
11
Característica AVR 8051 PIC
Conjunto de instruções RISC de 8 bits CISC de 8 bits RISC de 8 bits
Velocidade Rápido Lento Rápido
Consumo de energia Baixo Alto Baixo
Recursos Ampla gama Limitada Limitada
Custo Baixo Alto Alto
Popularidade Alta Baixa Baixa
AVR
UNIVERSIDADE FEDERAL DE GOIÁS
ESCOLA DE ENGENHARIA ELÉTRICA, MECÂNICA E DE COMPUTAÇÃO
MICROPROCESSADORES / MICROCOMPUTADORES
Referências Bibliográficas
1. AVR - Curso Técnico em Automação Industrial Integrado ao Ensino Médio - Professor
Thiago Prati - Disciplina: Microcontroladores
2. Família de Microcontroladores Microchip AVR DA - Embarcados
3. Atmel AVR - Wikipédia
4. EEPROM - Wikipédia
5. Arquitetura Harvard - Wikipédia
6. Os microcontroladores AVR Atmel Noções Básicas - Arnerobotics
7. AVR - Microchip Technology
8. AVR Instruction Set Manual
9. RISC - Computador com conjunto reduzido de instruções - Wikipédia
10. Atmel AVR instruction set - Wikipedia
12
https://professor.luzerna.ifc.edu.br/thiago-prati/wp-content/uploads/sites/24/2015/10/EMITAI-MIC002-Apresenta%C3%A7%C3%A3o-AVR-ATMEGA.pdf
https://professor.luzerna.ifc.edu.br/thiago-prati/wp-content/uploads/sites/24/2015/10/EMITAI-MIC002-Apresenta%C3%A7%C3%A3o-AVR-ATMEGA.pdf
https://embarcados.com.br/familia-de-microcontroladores-microchip-avr-da/
https://pt.wikipedia.org/wiki/Atmel_AVR
https://pt.wikipedia.org/wiki/EEPROM
https://pt.wikipedia.org/wiki/Arquitetura_Harvard
https://www.arnerobotics.com.br/eletronica/Microcontroladores_AVR_basico.htm
https://www.microchip.com/en-us/products/microcontrollers-and-microprocessors/8-bit-mcus/avr-mcus#
https://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf
https://pt.wikipedia.org/wiki/RISC
https://en.wikipedia.org/wiki/Atmel_AVR_instruction_set

Mais conteúdos dessa disciplina