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