Conhecendo o Esquemático do Arduino Uno – Parte 3

Até agora falamos sobre dois blocos do projeto do Arduino Uno, o da Fonte de Alimentação e o Comunicação USB. O diagrama em blocos do Arduino Uno é apresentado na Figura 3.1.

Neste último post da série sobre o esquemático do Arduino Uno vamos ao último bloco, o de Processamento e Periféricos.

Figura 3.1 – Diagrama em blocos do Arduino Uno. Fonte: o autor.

Este é possivelmente o bloco mais importante, o que caracteriza o hardware como um Arduino.

Vamos falar um pouco mais sobre isso a seguir, mas antes, para proporcionar um acesso rápido a alguns artefatos dos posts anteriores, vou adicioná-los a seguir.

O esquemático completo para referência é mostrado na Figura 3.2 e para uma visão mais detalhada acesse o PDF neste link.

Figura 3.2 – Esquemático do Arduino Uno. Fonte: Arduino (2010).

O visualizador da Altium com todo o projeto também pode ser acesso abaixo.


O diagrama de pinos pode ser visto na Figura 3.3 e o link para acesso completo está aqui.

Figura 3.3 – Diagrama de pinos do Arduino Uno Rev3. Fonte: Arduino (2010).

Processamento

O nome dado ao bloco faz referência às duas responsabilidades que este bloco tem: o processamento e a agregação de periféricos. Vamos iniciar falando sobre o processamento.

A Figura 3.4 apresenta o bloco isoladamente. Podemos observar que o bloco é praticamente composto pelo microcontrolador ZU4 e alguns componente necessários para o funcionamento deste microcontrolador de forma adequada.

Figura 3.4 – Circuito do bloco de Processamento e Periféricos. Fonte: adaptado de Arduino (2010).

Este bloco tem como principal componente o ATMEGA328P-PU (ZU4), um microcontrolador de 8-bits responsável pelo processamento do programa que criamos e gravamos no Arduino Uno.

Como mencionei anteriormente, este microcontrolador é o que de fato caracteriza esta placa como um hardware que faz parte da família Arduino. Isto porque o microcontrolador presente neste bloco é o que recebe o firmware responsável pela inicialização e execução do código que programamos. Podemos dizer então que sem este microcontrolador a placa não seria um Arduino.

O ATMEGA328P-PU é o microcontrolador que recebe o bootloader do Arduino Uno, que é um código que permite que o chip se autoprograme, dispensando a necessidade de outro dispositivo eletrônica para realizar a gravação do nosso programa na memória do microcontrolador.

Parece obvio que seja desta forma, mas até hoje temos microcontroladores que não tem esta capacidade de autoprogramação por bootloader, e depende de gravadores para tal. Cada placa Arduino possui seu bootloader próprio. Apesar disto você pode criar sua própria placa e usar o bootloader do Arduino Uno por exemplo.

Como foi visto no post anterior, a gravação ocorre por meio do bloco de Comunicação USB que utiliza outro microcontrolador para ser a interface entre o ATMEGA328P e o computador.

Esta comunicação entre os blocos se dá pelo módulo USART (Universal Synchronous Asynchronous Receiver Transmitter, do inglês, Transmissor/Receptor Universal Síncrono e Assíncrono). Com uso deste protocolo a placa interconecta o ATMEGA16U2, do bloco Comunicação USB, ao ATMEGA328P-PU, do bloco Processamento e Periféricos. As setas na Figura 3.4 destacam as linhas de comunicação.

Outro destaque importante na Figura 3.4 é o circuito de oscilação demarcado pelo retângulo vermelho tracejado. O ATMEGA328P-PU, assim como diversos outros microcontroladores inclusive o ATMEGA16U2, utiliza um circuito de oscilação externo ao microcontrolador, que determina a velocidade de execução do nosso programa.

A oscilação do circuito, neste caso, é composto pelo ressonador cerâmico CSTCE16M0V53-R0 de 16 MHz e pelo resistor R2 de 1 MΩ. O ressonador já contém internamente os capacitores e o cristal necessários para gerar a frequência de funcionamento do chip. Geralmente o datasheet do microcontrolador sugere as opções para projetar esta etapa do circuito, podendo ou não incluir o resistor.

Podemos então observar que este bloco é algo simples, que depende quase exclusivamente do microcontrolador ATMEGA328P-PU. Se você possui um microcontrolador deste já com bootloader você pode, com alguns componentes para o oscilador, criar seu próprio Arduino Uno Compatível em uma protoboard e fazer seu projeto funcionar mesmo sem a placa do Arduino Uno. Claro que você precisa de uma forma de enviar seu código para o chip já que não teria o bloco de Comunicação USB. Mas vamos deixar para falar desta possibilidade em outro post.

Periféricos

Periféricos podem ser considerados componentes internos ou externos a um dispositivo. No nosso caso vamos observar o microcontrolador ATMEGA328U-PU. Apensar disso temos acesso a alguns destes periféricos através da placa.

Internos

Os periféricos de um microcontrolador, como o nosso ATMEGA328U-PU, são geralmente descritos no datasheet do componente. Eles não são algo que vemos como componentes no esquemático do Arduino Uno.

Como periférico interno podemos citar os temporizadores, ou timers. No caso do ATMEGA328U-PU existem 3 timers, um de 8-bits e dois de 16-bits. Eles são módulos internos que estão dentro do chip do microcontrolador e são utilizados por várias bibliotecas do Arduino.

Outro periférico interno é o conversor AD (analógico-digital), que permite a leitura de sinais analógicos nos pino de A0 à A5.

Para saber quais outros periféricos internos existem acesse o datasheet do ATMEGA328P-PU.

Externos

Periféricos externos podem ser considerado qualquer dispositivo, módulo ou sensor, que conectamos ao nosso Arduino Uno para ampliar suas funcionalidades.

Em computadores pessoais, por exemplo, temos a impressora, teclado e mouse como exemplos mais comuns de periféricos.

No caso do Arduino um sensor de presença ou módulo para tocar MP3 podem ser considerados periféricos. Estes dispositivos se conectam ao Arduino Uno por meio dos conectores digitais e analógicos do ATMEGA328P-PU.

Os conectores fêmea que temos na placa do Arduino Uno, onde conectamos nossos jumpers ou outros componentes, podem ser vistas na Figura 3.4 destacadas como (A), (B), (C) e (D).

A primeira barra (A) é nomeada como IOH, que contém os pinos digitais de 8 à 13 além de outros como GND, AREF, SCL e SDA. A segunda barra de pinos (B) é a AD, que contém os pinos A0 até A5, para conversão analógico-digital. A barra (C) é a IOL, que contém os pinos digitais de 0 à 7. Por fim temos a barra de pinos (D) nomeada como POWER, que contém os pinos +5V, +3V3, RESET, VIN e GND.

Além dos conectores fêmea também temos o ICSP neste bloco como um conector macho de 6 pinos . Ele basicamente agrupa alguns pinos digitais que estão dispostos nas barras apresentadas e outros da barra de alimentação. São os pinos MOSI (11), MISO (12), SCK (13), RESET, +5V e GND.

O botão RESET pode ser visto à esquerda do ICSP. Ao pressionar este botão ele liga o GND ao pino RESET do microcontrolador. Se você seguir a linha que sai do pino RESET do microcontrolador verá o resistor RN1D de 10 kΩ, que mantém este pino em nível alto até que o botão de reset seja pressionado.

Considerações Finais

Nesta série de posts nos vimos o esquemático do Arduino Uno e os aspectos relacionados à sua construção. O Arduino Uno foi dividido em três grandes blocos, onde cada um foi comentado em um post.

Nas bancas dos trabalhos de conclusão de curso (TCC) que tenho o prazer de participar, e nos TCCs que oriento, é comum encontrar a menção ao Arduino como microcontrolador. Sempre reforço aos alunos que isto é um equívoco, como podemos perceber na análise que realizamos nesta série de posts.

Compreender como funciona o esquemático proporciona um conhecimento rico para dar segurança ao projetista na hora de criar suas soluções.

Os aspectos sobre alimentação, apresentado no primeiro post, são essenciais para um uso adequado do Arduino Uno quanto às limitações da placa quando agregamos mais módulos ou shields.

Saber como a comunicação USB funciona permite entender um pouco porque outras placas similares do Arduino Uno utilizam outro chip, como CH340, e ainda assim são o Arduino Uno.

Por fim, conhecer um pouco mais sobre a unidade de processamento do Arduino Uno, o ATMEGA328P-PU, proporciona ao projetista um melhor aproveitamento da placa e de seus recursos.

Espero que este conteúdo tenha agregado conhecimento a cada um que dispôs de seu tempo para leitura.

Obrigado e até a próxima.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.