+1 500 000 produtos na nossa oferta
7000 encomendas enviadas diariamente
+300 000 clientes de 150 países
Data de publicação: 17-01-2025 Data de atualização: 10-04-2026 🕒 10 min de leitura
Mikrokontroler é mais do que um processador – por definição, é um sistema que contém pelo menos algumas partes. Isso inclui elementos necessários para executar um programa de forma independente, como memória ou fonte de sinal de relógio. Mas em um microcontrolador, também encontramos circuitos adicionais, chamados de periféricos.
Neste artigo, tentaremos explicar de forma acessível o que são os periféricos dos microcontroladores, bem como descrever as funções de seus exemplos mais populares. É importante destacar que este texto é destinado principalmente a amadores que estão apenas começando sua aventura com eletrônica. Não entraremos no princípio de funcionamento de cada periférico, pois alguns deles são muito complexos. Por enquanto, vamos nos concentrar nos conceitos e tecnologias básicas. A maioria deles já encontramos no primeiro contato com um microcontrolador ou módulo Arduino...
Neste artigo, respondemos às seguintes perguntas:
Ao explicar os conceitos gerais de um microcontrolador como componente, muitas vezes se usa a analogia com um computador. Pois, de fato, um microcontrolador é um computador compacto construído na forma de um circuito integrado. No diagrama de blocos abaixo, é apresentada a construção generalizada do ATmega328 – um microcontrolador que encontramos no coração, entre outros, do Arduino Uno. Ele contém, entre outros, elementos com nomes bem conhecidos de um computador de mesa ou laptop (como CPU, FLASH e SRAM). Mas não apenas.
Diagrama de blocos do microcontrolador ATmega328.
No centro, temos, é claro, o processador (CPU, ou melhor, a unidade aritmética e lógica ALU com funcionalidade semelhante), memória operacional (SRAM ou uma pequena, muito rápida memória cache usada para armazenar dados frequentemente usados) e memória de programa (uma espécie de disco rígido, aqui feito como estrutura Flash). Vale a pena notar que esses elementos não seriam encontrados no diagrama de um microprocessador – o que nos indica a diferença básica entre essas soluções. Ao projetar um microcontrolador, os fabricantes tentam alcançar a integração e a universalidade mais abrangentes possíveis – para que um único sistema tenha a funcionalidade de um circuito complexo e prático.
Alguns outros elementos do diagrama podem ser explicados por analogia com um computador: EEPROM também é um tipo de memória, no circuito encontramos também um oscilador que gera o sinal de relógio, usado para cronometrar o processador. As coisas ficam um pouco mais complicadas, pois blocos adicionais foram conectados ao barramento principal: UART, SPI, temporizador/contador (T/C) – assim como um mouse, impressora ou monitor são conectados a um computador. Estes são os periféricos. Antigamente, suas funções eram realizadas usando circuitos integrados separados ou circuitos especializados inteiros. O microcontrolador os contém para facilitar a tarefa dos projetistas e fabricantes de dispositivos eletrônicos, mas eles são equipamentos opcionais.
Como pode ser visto no diagrama, alguns dos periféricos possuem conexões externas. Mas isso é raro: a maioria dos componentes se comunica com o "mundo externo" por meio de portas, que estão conectadas aos pinos físicos do microcontrolador. As portas (geralmente chamadas de GPIO, que significa general-purpose input/output) podem ser configuradas por software (frequentemente automaticamente) para desempenhar diferentes funções (após a configuração do papel do GPIO pelo autor do programa e o armazenamento dessa configuração na memória não volátil, ela é carregada na reinicialização. Dessa forma, as portas GPIO estão preparadas para desempenhar a funcionalidade atribuída a elas). Um único pino pode (por exemplo) ser usado para controlar um LED, pode ser conectado a uma entrada de interface de comunicação ou servir como saída de um gerador PWM.
As diferenças entre os microcontroladores disponíveis no mercado são enormes: alguns deles são capazes de funcionar de forma independente como dispositivos de rede – outros são projetados com foco na miniaturização e possuem apenas alguns periféricos básicos e (literalmente) algumas conexões. Mas quais periféricos são mais comumente encontrados e constituem, na verdade, o equipamento padrão dos microcontroladores?
Conversores analógico-digitais estão entre os periféricos mais populares encontrados em microcontroladores. Eles também podem ser adquiridos em versões autônomas – então geralmente se destacam por maior precisão e resistência a interferências, embora hoje em dia essas diferenças sejam perceptíveis apenas em aplicações profissionais, onde se exige alta precisão. Esses circuitos também são chamados de A/C ou do inglês ADC (analog-digital converter).
A função de um conversor A/C é relativamente simples: ele representa o valor da tensão elétrica em forma digital, ou seja, um número. Em outras palavras, é um voltímetro digital. Como (sabemos pela lei de Ohm) tensão, corrente e resistência são grandezas físicas inter-relacionadas, o circuito ADC também permite coletar dados sobre corrente e resistência. O uso desses conversores inclui, entre outros, leitura de sensores analógicos, termopares etc. Um papel bem conhecido desses circuitos é determinar o nível de carga da bateria em dispositivos alimentados por bateria. As entradas de dispositivos multimídia, que convertem sinais analógicos em suas representações digitais, também são baseadas em ADCs. É assim que funcionam, por exemplo, scanners, câmeras, câmeras fotográficas, gravadores.
O parâmetro básico de um conversor é sua resolução, medida em bits, o que está relacionado ao número de comparadores usados no circuito. Se falamos de um elemento de 8 bits, isso significa que ele indica valores de 0 a 255 (ou seja, 2^8), com 12 bits a precisão aumenta para 4096, com 16 para 65536, e assim por diante. A resolução refere-se à divisão da escala completa do ADC, cujo limite superior é determinado pela tensão de referência. No microcontrolador, ela é fornecida por um periférico separado ou requer a conexão de uma fonte externa (nos circuitos AVR, isso é feito pela conexão marcada como AREF). É um regulador de tensão com capacidades de corrente limitadas, mas alta precisão e estabilidade. O valor medido da tensão não pode exceder o valor fornecido pela fonte de referência – por isso, na prática, um circuito divisor de tensão otimamente calibrado é frequentemente conectado à entrada do conversor A/C.
Do ponto de vista do programa, o manuseio de conversores A/C é simples, em alguns ambientes se limita a obter o valor da entrada analógica. Por exemplo, os módulos Arduino distinguem os pinos aos quais os conversores estão conectados, marcando-os com a letra A, de "analógico".
Em circuitos mais avançados, encontramos conversores de operação inversa, ou seja, C/A, digital-analógicos. Também conhecidos por seu nome em inglês DAC, encontrados não apenas no contexto de componentes eletrônicos, mas também em equipamentos multimídia. Isso ocorre porque esses periféricos servem para converter números abstratos no valor de tensão correspondente. É graças a eles que amostras de som gravadas digitalmente podem ser (literalmente) convertidas em ondas sonoras, movendo a membrana do alto-falante.
O DAC, assim como o ADC, possui resolução expressa em número de bits – o cálculo da precisão é semelhante ao descrito acima. Deve-se notar que a saída do DAC geralmente tem baixa potência, portanto, na prática, as saídas desses tipos de periféricos são frequentemente conectadas a amplificadores.
O DAC é um circuito menos comum em microcontroladores devido ao seu escopo mais restrito de aplicações. As aplicações desses conversores são principalmente soluções na área de multimídia, mas também incluem: criação de potenciômetros digitais, circuitos de calibração, controle de displays. Às vezes, eles são usados para controlar motores, mas apenas em elementos que requerem regulação de tensão. Os conversores C/A também são um elemento importante dos sistemas SDR, ou seja, circuitos de rádio controlados por software.
Contador e temporizador são teoricamente periféricos separados, mas frequentemente usados em conjunto para realizar uma tarefa específica. O temporizador serve para determinar intervalos de tempo iguais, geralmente com base no sinal de clock do microcontrolador. A tarefa do contador – o que é bastante óbvio – é contar pulsos. Pode ser realizado como incremento ou decremento (contagem para cima ou para baixo, começando de um valor determinado). O registro do contador tem capacidade limitada (fornecida em bits na especificação do produto), após seu transbordamento (zeramento) é gerada uma interrupção – assim, é possível escrever um programa que registre um número x de pulsos sem a necessidade de monitorar constantemente o sinal. Isso tem duas vantagens: alivia o núcleo do microcontrolador e também permite que ele trabalhe com sinais de alta frequência. É um método muito flexível, pois o valor de saída do contador é ajustável, permitindo contar de qualquer valor dentro do intervalo de 1 até a capacidade máxima do registro.
Os pulsos somados pelo contador podem ocorrer na forma de borda ascendente ou descendente em um pino físico do circuito, mas também podem vir diretamente do temporizador. Nesse caso, o contador serve para contar períodos de tempo mais longos. Lembre-se de que o microcontrolador é baseado em um sinal cuja frequência é dada em megahertz, portanto, com um período de dezenas ou até alguns nanossegundos.
Usando a especificação do mencionado circuito ATmega328: um contador de 16 bits (valor máx. 65535) contando pulsos de clock (16MHz, ou seja, ocorrendo a cada 62,5 nanossegundos) transbordaria em apenas 4 milissegundos.
Essa frequência de interrupções pode ser desejável, mas não em um número limitado de aplicações – por isso os temporizadores são adicionalmente equipados com um circuito prescaler. O prescaler reduz a velocidade do sinal de entrada do temporizador, dividindo a frequência dos pulsos por um número determinado. Mantendo o exemplo do microcontrolador ATmega328: ele possui um prescaler de 10 bits, permitindo dividir a frequência do sinal de clock por 8, 32, 64, 128, 256 ou 1024. Usando este último, o temporizador registrará um em cada 1024 pulsos. Conectado a um temporizador tão escalado, o contador de 16 bits pode gerar interrupções em intervalos de até 4 segundos (62,5ns 1024 65535 ≈ 4,2s).
Como se pode imaginar, o controle sobre o número de pulsos e períodos de tempo é uma das funcionalidades mais importantes dos componentes eletrônicos:
Em nosso ciclo sobre os fundamentos da eletrônica, dedicamos um artigo separado às interfaces de comunicação dos microcontroladores. Portanto, aqui nos limitaremos à informação mais geral. A comunicação com outros componentes/dispositivos eletrônicos pode ocorrer usando uma interface de hardware, ou seja, um periférico do microcontrolador, ou por software. No segundo caso, o programa, à custa do poder de processamento da CPU, controla todos os aspectos da troca de dados, incluindo a geração de sinais de clock, etc. Para acelerar o trabalho de todo o sistema, a solução mais otimizada é usar um circuito que assuma a responsabilidade de lidar com o barramento e até mesmo (em alguns casos) o protocolo de comunicação. Do ponto de vista do programa, a transmissão é então maximamente simplificada: consiste em inserir dados no buffer de saída e retirá-los do buffer de entrada.
O uso de buffers significa que o núcleo do microcontrolador não precisa se envolver imediatamente no processo de comunicação. No entanto, como em algumas aplicações a reação direta aos dados recebidos é desejável, os circuitos de algumas interfaces podem gerar uma interrupção de hardware quando novos valores aparecem no buffer.
Nos microcontroladores, as interfaces mais frequentemente encontradas são aquelas usadas para comunicação com outros circuitos integrados (drivers, controladores, multiplexadores etc.), embora algumas delas tenham aplicações mais amplas. As soluções mais populares incluem circuitos que suportam barramentos seriais SPI e I2C. São tecnologias com largura de banda relativamente alta, caracterizadas pela facilidade de implementação (exigem apenas algumas linhas, nos ambientes de programação são manuseadas com comandos intuitivos). Sua principal vantagem continua sendo a popularidade: permitem expandir significativamente as capacidades do microcontrolador, conectando a ele inúmeros controladores, sensores, displays, multiplexadores e muitos outros circuitos/módulos. O mesmo acontece com a interface UART, amplamente utilizada na eletrônica há décadas, permitindo fácil conversão para o padrão USB (por exemplo, usando o circuito FT232), o que dá ao circuito a capacidade de se comunicar com um computador. Essa funcionalidade é usada para realizar conexões de diagnóstico, manutenção, atualização do programa do microcontrolador e muitas outras aplicações.
Os circuitos descritos acima são colocados em quase todos os microcontroladores. Pode-se até arriscar a afirmação de que é graças à sua implementação que os microcontroladores são tão populares hoje – deram a esses sistemas capacidades universais e reduziram sistemas complexos a um único "chip". Mas o desenvolvimento dos microcontroladores continua avançando, permitindo que eles permaneçam adaptados às aplicações mais modernas e também sejam convenientes de usar. Portanto, é necessário destacar ainda alguns periféricos populares e também prestar atenção às tendências do mercado, que sugerem quais soluções se tornarão padrões comuns em um futuro próximo.
Na lista de interfaces populares mencionada anteriormente, faltou o USB, ou seja, o barramento bem conhecido da indústria de computadores e dispositivos de áudio e vídeo. De fato, circuitos de suporte de hardware para USB não são frequentemente implementados em microcontroladores mais baratos – principalmente devido à sua complexidade e alta frequência de sinais, o que acarreta custos. No entanto, os fabricantes estão bem cientes de que é nos microcontroladores que se baseia o funcionamento de um número crescente de acessórios eletrônicos, dispositivos IoT, módulos de automação residencial, bem como produtos voltados para o mercado de automação industrial. Essa crescente popularidade resulta, entre outros, da necessidade de atualizar regularmente seu software e segurança (o que seria impossível em construções baseadas em circuitos simples com função estritamente definida). Ao mesmo tempo, os usuários/operadores/técnicos esperam cada vez mais que os dispositivos que utilizam suportem a interface USB (por exemplo, para configuração conveniente usando um laptop). Portanto, o controlador USB é um periférico cada vez mais encontrado em microcontroladores, especialmente os mais complexos. Graças a eles, os circuitos são simplificados, eliminando a necessidade de construir dispositivos baseados em sistemas microprocessados.
Outra escolha prática que os fabricantes estão cada vez mais fazendo é incluir no microcontrolador um relógio de tempo real (RTC, do inglês real-time clock). Graças a ele, o sistema tem acesso contínuo às informações sobre a data e hora atuais. Isso tem, é claro, uma série de aplicações práticas (construção de relógios, controladores de tempo etc.) – mas também está relacionado às crescentes exigências de segurança da informação, baseadas em chaves de acesso, tokens, certificados etc., que expiram.
Embora temporizadores e contadores possam realmente ser usados para gerar sinais PWM, na prática, eles têm uma série de outras aplicações e usá-los para uma função tão trivial é ineficiente. Por esse motivo, muitos microcontroladores possuem geradores de formas de onda retangulares autônomos, que funcionam como periféricos independentes. Isso permite controlar receptores (por exemplo, o brilho de uma fonte de luz) com o uso mínimo do núcleo: os comandos para operar o gerador se limitam a instruções de configuração e ativação.
Os circuitos Watchdog Timer (WDT) não são novidade, mas hoje são praticamente um padrão na indústria de microcontroladores. São circuitos que servem para reiniciar o microcontrolador em caso de falha, por exemplo, ficar preso em um loop infinito do programa ou em erros relacionados a interrupções temporárias de alimentação, sinal de clock etc. O escopo de atuação do WTD é configurável, o que é amplamente considerado nos ambientes de programação.
Para concluir, vamos dar uma olhada em algumas "novidades" que ainda não são elementos padrão dos microcontroladores, mas que, graças às suas vantagens inegáveis, rapidamente ganharam um número crescente de entusiastas.
CIP (Core Independent Peripherals) são periféricos que funcionam completamente independentes do núcleo, podendo operar sem atrasar o programa principal, e também enquanto o restante dos componentes do sistema está em estado de suspensão, o que leva a uma economia significativa de energia. Isso otimiza o sistema para uso em circuitos alimentados por bateria, como sensores remotos IoT ou dispositivos móveis. Comparadores, conversores, geradores e um número crescente de outros periféricos são realizados na forma de CIP.
Há algum tempo, em microcontroladores selecionados da marca Microchip, começou-se a implementar CLB, ou periféricos do tipo Configurable Logic Block. São estruturas compostas de portas lógicas básicas, que podem ser livremente conectadas/configuradas pelo projetista (da mesma forma que ocorre em circuitos do tipo FPGA). Esse periférico pode executar rapidamente instruções condicionais e outras funções simples (por exemplo, alternar entre modos de operação, ligar a iluminação etc.), além de gerar uma interrupção do programa principal do microcontrolador apenas quando necessário.
Há mais de uma década, nos microcontroladores AVR (embora não apenas), é possível encontrar conexões que permitem implementar uma interface de usuário sensível ao toque. Podem ser, por exemplo, botões ou controles deslizantes feitos na forma de campos condutores colocados sob a superfície do painel/habitação. O microcontrolador detecta a interação com eles, usando tecnologia capacitiva, ou seja, a mudança de capacitância causada pela aproximação do corpo ao sensor capacitivo (eletrodo). Essa solução praticamente elimina a necessidade de usar elementos eletromecânicos, e como está contida no sistema de controle principal, permite construir dispositivos com uma construção excepcionalmente compacta.
A Transfer Multisort Elektronik (TME) é um dos maiores distribuidores globais de componentes eletrônicos, peças eletrotécnicas, equipamentos de oficina e automação industrial. O catálogo inclui mais de 1.500.000 de produtos de 1.300 fabricantes líderes. Os modernos centros logísticos da TME em Łódź e Rzgów (Polónia), com uma área total superior a 40.000 m², enviam quase 6.000 pacotes diariamente para clientes em mais de 150 países.
A TME também investe no desenvolvimento do conhecimento e das competências de jovens engenheiros e entusiastas da eletrónica através do projeto TME Education e apoia a comunidade tecnológica organizando a série de eventos TechMasterEvent, promovendo a inovação e a troca de experiências.