# Estrutura básica de um microcontrolador genérico

Internamente, um microcontrolador possui diversos módulos. Assim como um computador, cada módulo possui uma função específica. Em geral, apresentam uma unidade de processamento simples, memória e dispositivos de entrada e saída \[8]. Em uma visão superficial, o sistema pode ser apresentado conforme o diagrama.

![](https://3269117709-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGWtnbRF0hQ-zc4ofA7%2F-LGlNLLN8xoWMr2pkVr4%2F-LGlOZUMN7gafPNiq6A4%2FEstruturaMicrocontrolador.png?alt=media\&token=6433b846-d7c8-46c2-a164-14fb2bedb3d4)

Nesse diagrama estão os principais elementos de um microcontrolador. O núcleo (Core) é o processador que coordena a operação do sistema. Na memória são colocadas informações que coordenarão a operação do processador, isto é, as instruções que o processador executará. Para interagir com o meio externo são usados periféricos, representado pelo módulo de entradas e saídas. Cabe destacar os terminais, ou pinos, que fazem a interface entre o microcontrolador e o meio externo.

## Terminais: Interface com o hardware

Microcontroladores apresentam diversos terminais com funções variadas:

Alimentação – Para que o microcontrolador funcione é preciso uma fonte de tensão contínua que atenda aos requisitos elétricos do dispositivo. Dependendo do encapsulamento do chip, e das características do microcontrolador, um ou mais terminais devem ser conectados na fonte.

Reset – A função principal desse pino é reiniciar o microcontrolador, isto é, definir um estado conhecido – lembre-se que é circuito digital sequencial – para iniciar a execução do programa armazenado na memória. Esse pino também é utilizado para funções de programação do dispositivo.

Controlados por periféricos – Podem ser usados como entradas e saídas de propósito geral. Ou ainda, exercer uma função específica em um periférico do microcontrolador. Diversos microcontroladores apresentam terminais com funções multiplexadas e podem assumir diferentes funções dependendo da configuração realizada.

Analógicos – Alguns periféricos do microcontrolador atuam com sinais analógicos. Por exemplo, comparadores analógicos e conversores de sinais (A/D ou D/A).

Clock – As operações executadas pelo processador são governadas por um sinal de sincronismo, denominado clock \[1]. O sinal de sincronismo pode ser gerado internamente ou externamente. Externamente, o modo mais comum de gerar esse sinal é com a utilização de circuitos eletrônicos em conjunto com elementos piezoelétricos, formando um sistema chamado de oscilador Pierce \[11, 12]. Em geral, tais sistemas utilizam cristal de quartzo ou ressonador cerâmico como oscilador \[11, 12].

![](https://3269117709-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGWtnbRF0hQ-zc4ofA7%2F-LGlNLLN8xoWMr2pkVr4%2F-LGlOeHyaCvlgTTWEFb6%2FPierceOscillator.png?alt=media\&token=9d04a62f-299a-4cdf-a926-b9bd8f0c7639)

Internamente, alguns microcontroladores apresentam circuitos osciladores RC. Independente da fonte, cabe ressaltar que velocidade do processador é ditada pela frequência do sinal de clock \[1], que corresponde a taxa de pulsos por segundo. Além disso, o tempo necessário para executar uma instrução é medido com relação a quantidade de ciclos do sinal de clock \[1, 8].

## Periféricos

Todo microcontrolador possui internamente uma seleção de periféricos que podem variar em quantidade e complexidade \[6]:

**Complexidade: Nível Baixo**

* Conversor de sinal (D/A e A/D);
* Comparador analógico;
* Barramentos: I2C, SPI, CAN;
* Temporizadores e contadores;
* Watchdog;
* Interface serial assíncrona e síncrona.

**Complexidade: Nível Médio**

* USB;
* IrDA cde alta velocidade;
* Ethernet;
* Controlador de memória: SRAM externa.

**Complexidade: Nível Alto**

* Unidade de gerenciamento de memória (MMU);
* Barramento PCI e PCIe;
* Codificadores e decodificadores de vídeo;
* Controlador de memória: DRAM/SDRAM externa.

## Memórias

Para manter o programa armazenado, microcontroladores possuem memória não volátil do tipo Flash \[6]. Alguns ainda integram uma EEPROM, sendo é usada para manter dados de configuração da aplicação, por exemplo, dados de calibração. Já os dados são carregados em memória volátil do tipo SRAM \[6] durante a inicialização do programa. Volatilidade: refere-se à retenção do conteúdo na memória, sendo voláteis ou não-voláteis. Isto é, a informação é perdida ou mantida na ausência de energia elétrica.
