Atmel AVR
AVR é um microcontrolador RISC de chip único com uma arquitetura Harvard modificada de 8-bits (µC), desenvolvido em 1996 pela Atmel, comprada pela Microchip Technology em 2016. 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órias do tipo PROM, EPROM ou EEPROM.
Imagem: mrbill · BY · Openverse
Acreditava-se que sua arquitetura[nota 1] base foi conceituada por dois estudantes do Instituto Norueguês de Tecnologia (INT) Alf-Egil Bogen e Vegard Wollan. Entretanto, ela foi desenvolvida por eles na Atmel Noruega, em Trondheim, onde, sendo eles dois fundadores da subsidiária naquele país, venderam a tecnologia para a Atmel como μRISC (Micro RISC). A empresa diz que o nome AVR não é um acrônimo e não tem nenhum significado em especial. Os criadores nunca deram uma resposta definitiva sobre o assunto. A linha AT90S8515 está entre as primeiras fabricadas, na qual seu formato de pacote DIP de 40 pinos teve a mesma pinagem que o 8051, incluindo endereços externos multiplexados e dados de controlador. A polaridade do RESET era invertida, mas fora isso, o restante da pinagem era idêntica.
Imagem: thepodger · BY-NC-ND · Openverse
A arquitetura Havard modificada do AVR tem o programa e os dados 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.
Famílias
Há, geralmente, quatro amplos grupos de classificação: • Conjunto de instruções estendidas (múltiplas instruções e instruções para gerenciamento de programas com grandes memórias) • Maior desempenho, tal como DMA, "Evento de Sistema" • Conjunto extensivo de periféricos com DACs • Utiliza SRAM para o código do programa, diferente dos restantes AVRs • Em parte, devido a diferença de velocidade relativa entre SRAM e Flash, este núcleo pode executar velocidades acima de 50 megahertz
Arquitetura
Flash, EEPROM e SRAM são todos integrados em um único chip, fora o necessário pelas memórias externas nas maiorias das aplicações. Algumas aplicações têm a opção de inserir um barramento paralelo externo para permitir memória para dados adicionais, código ou para mapeamento de dispositivos. Todos possuem interface seriais, que podem ser usadas para conectar EEPROMs seriais ou chips flash. As instruções de programas são armazenados em memórias flash não voláteis. Apesar de serem de 8 bits, cada instrução consiste de palavras de 16 bits, além disso, não há suporte de utilizar os códigos de programas externamente, todas as instruções devem residir no núcleo do dispositivo.
Imagem: Travis Goodspeed · BY · Openverse
Com a crescente popularidade dos FPGAs na comunidade open-source, começaram a desenvolver processadores open-source compatíveis com o conjunto de instruções AVR. O sítio OpenCores lista os maiores projetos clones do AVR a seguir:


