Introdução ao AVR
"AVR" é o nome de uma família de microcontroladores de 8 bits comercializada pela ATMEL. O AVR consiste, tal como um PIC e outros microcontroladores, num processador (o "core"), memórias voláteis e não-voláteis e periféricos. Ao contrário do PIC, o core do AVR foi muito bem pensado e implementado desde o inicio. Assim de uma forma rápida podemos resumir a arquitectura do AVR nos seguintes pontos:
- Consiste num core de processamento, memória de programa (não volátil, FLASH), memória volátil (RAM estática, SRAM), memória de dados persistentes (não volátil, EEPROM) e bits fuse/lock (permitem configuraralguns parâmetros especiais do AVR).
- Arquitectura de memória Harvard (memória de programa e memória de dados separadas).
- A memória volátil (SRAM) é contínua.
- A maior parte das instruções têm 16 bits de tamanho, e é este o tamanho de cada palavra na memória deprograma (FLASH).
- Execução de 1 instrução por ciclo de relógio para a maior parte das instruções.
- Existem 32 registos de 8 bits disponíveis e há poucas limitações ao que se pode fazer com cada um.
- Os registos do processador e os de configuração dos periféricos estão mapeados (são acessíveis) na SRAM.
- Existe um vector de interrupção diferente por cada fonte de interrupção.
- Existem instruções com modos de endereçamento complexo, como base + deslocamento seguido de auto-incremento/decremento do endereço.
- O conjunto de instruções foi pensado para melhorar a conversão de código C em assembly.
Existem 4 grupos de microcontroladores AVR:
tinyAVR( Atiny ) - Memória de programa de 0.5 a 8KB; 6 ou 32 pinos;
megaAVR( ATmega ) - Memória de programa de 4 a 256KB; 20 ou 100 pinos;
XMEGA ( ATxmega ) - Memória de programa de 16 a 384Kb; 44, 64 ou 100 pinos; Maior desempenho;
ATMEL At94k - Núcleo baseado em FPGA; Utiliza SRAM para a memória de programa;
PROGRAMAÇÃO:
Assim como para os PICs, eu também utilizarei os compiladores da MikroElektronika. Neste caso vou utilizar o compilador MikroC PRO AVR.
Neste e nos proximos posts estarei fazendo tutoriais e projetos sobre esse microcntrolador, especialmente o ATMEGA328, o mesmo utilizado no arduíno.
Neste e nos proximos posts estarei fazendo tutoriais e projetos sobre esse microcntrolador, especialmente o ATMEGA328, o mesmo utilizado no arduíno.
Olá gostaria de saber se você tem algum exemplo de interrupção pela serial para o arduino Uno. Se tiver poderia me mandar no email j.felipe.araujo@outlook.com, obrigado e otimo blog.
ResponderExcluirOnde posso encontrar material para estudar programação de avrs em c, no braço como nos pic...Fora daquela plataforma básica do arduino... Obrigado
ResponderExcluirGostaria de saber o mesmo do amigo de cima fabio dos anjos quero programar no braço ele também.
ResponderExcluirGostaria de saber o mesmo do amigo de cima fabio dos anjos quero programar no braço ele também.
ResponderExcluir