Arquitetura de Computadores · Capítulo 8
Objetivos do capítulo
8.1 / definição
Microcontroladores são circuitos integrados que possuem internamente os componentes necessários ao seu funcionamento, exceto a fonte de alimentação.
De forma sintética, microcontroladores são computadores de um único chip.

Figura 1 — Microcontroladores: visão geral.
8.2 / sobre o ATmega 2560
Ao combinar uma CPU RISC de 8 bits com memória Flash autoprogramável em um único chip, o ATmega2560 fornece uma solução flexível e econômica para aplicações de controle embarcadas.
A figura apresenta a pinagem do ATmega 2560.

Figura 2 — Pinagem do ATmega 2560.

Figura 3 — Diagrama em blocos do ATmega 2560.
O ATmega2560 fornece, entre outros recursos, memória Flash de 256 KB, EEPROM de 4 KB, SRAM de 8 KB, 32 registradores de uso geral, quatro USARTs, ADC de 16 canais e 10 bits e interface SPI.
8.2.4 / núcleo da CPU

Figura 4 — Núcleo da CPU do ATmega 2560.
Para maximizar desempenho e paralelismo, o AVR usa uma arquitetura Harvard, com memórias e barramentos separados para programa e dados.
As instruções são executadas com pipelining de nível único: enquanto uma instrução é executada, a próxima é pré-buscada na memória de programa.
O conjunto de registradores de acesso rápido contém 32 registradores de uso geral de 8 bits. Seis deles podem formar três ponteiros de endereço indireto de 16 bits: X, Y e Z.
A Unidade Lógica Aritmética opera em conexão direta com os 32 registradores de uso geral. Em um único ciclo de clock, executa operações aritméticas e lógicas.

Figura 5 — Registrador de status do ATmega 2560.

Figura 6 — Registradores de uso geral do ATmega 2560.
Os registradores R26 a R31 possuem funções adicionais como ponteiros de endereço de 16 bits para endereçamento indireto do espaço de dados: X, Y e Z.

Figura 7 — Registradores de endereço X, Y e Z do ATmega 2560.
8.2.5 / sistema de memória
A arquitetura AVR possui dois espaços principais: memória de dados e memória de programa. Além disso, possui memória EEPROM para armazenamento de dados.
O ATmega contém 256 KB de Flash reprogramável no sistema para armazenamento de programas. Como as instruções AVR têm 16 ou 32 bits, a Flash é organizada como 128K × 16 bits.

Figura 8 — Organização da memória Flash do ATmega 2560.

Figura 9 — Organização da memória SRAM do ATmega 2560.
Os modos de endereçamento da memória de dados incluem: direto, indireto com deslocamento, indireto, indireto com pré-decremento e indireto com pós-incremento.
O ATmega contém 4 KB de EEPROM de dados, organizada separadamente do espaço de dados, permitindo leitura e escrita de bytes individuais.
Todos os periféricos e E/S do ATmega são colocados no espaço de E/S. Esses locais podem ser acessados pelas instruções LD, LDS, LDD, ST, STS e STD.
8.2.6 / set de instruções
O manual do conjunto de instruções apresenta a sintaxe, o formato binário, o opcode, os operandos e a semântica de cada instrução.

Figura 10 — Exemplo de consulta ao manual do set de instruções AVR.
8.2.7 / assembly e assembler
O manual do set de instruções apresenta a sintaxe, o formato binário, o opcode, os operandos e a semântica das instruções. O manual do assembler apresenta a sintaxe, as diretivas, as diretivas de pré-processamento e as expressões aceitas.