Dando continuidade com série de posts sobre o esquemático do Arduino Uno, vamos falar sobre o bloco Comunicação USB.
No último post nos falamos sobre o bloco Fonte de Alimentação e vimos quais opções nos temos para alimentar a placa Arduino Uno por meio deste bloco.
O diagrama em blocos do Arduino Uno pode ser visto na Figura 2.1, onde temos os três grandes blocos do projeto: a Fonte de Alimentação, Comunicação USB e Processamento e Periféricos.
Antes de partir para a Comunicação USB vou adicionar novamente alguns artefatos para ajudar você a acompanhar o conteúdo.
O primeiro é o esquemático completo, apresentado na Figura 2.2. Para uma visão mais detalhada acesse o PDF neste link.
Outro artefato que pode ajudar você bastante a analisar o projeto do Arduino Uno é o visualizador da Altium com todo o projeto em diversas vistas, apresentado a seguir.
Por fim deixo o diagrama de pinos e suas nomenclaturas na Figura 2.3 e o link para acesso completo aqui.
Comunicação USB
O bloco de comunicação USB é a parte do circuito que possibilita que o Arduino Uno se conecte com o computador.
O propósito mais comum desta comunicação é a gravação do nosso código no Arduino Uno. Apesar disto, não é limitado apenas a este propósito. É possível realizar comunicações com outros softwares do computador por meio deste bloco.
O fato é que o microcontrolador ATmega328P do Arduino Uno não tem a implementação da comunicação USB, por isso é necessário um meio de realizar esta comunicação, uma interface que faça a ponte entre o computador e o bloco de Processamento e Periféricos. Este é o propósito deste bloco.
A Figura 2.4 mostra mostra o esquemático do bloco em questão. No lado esquerdo da Figura 2.4 temos o USB-B_TH X2, que é o conector USB da placa. É nele que conectamos o cabo USB no Arduino Uno.
Entrada USB
Se observarmos atentamente, o conector USB tem seu pino 1 ligado ao F1 (MF-MSMF050-2). Este componente é um PTC Resettable Fuse, um componente similar ao PTC (Positive Temperature Coefficient) que funciona como um fusível de se regenera.
Então caso ocorra um curto na linha de alimentação do conector USB, nos pinos 1 e 4, este componente abre (fica com resistência infinita), desconectando o Arduino do computador. É uma proteção importante para evitar danos ao Arduino.
Após o F1 temos o rótulo USBVCC, que é a linha positiva da alimentação que chega pela USB. Vimos no bloco da Fonte de Alimentação que o comparador U5A controla se o Arduino Uno será ou não alimentado pela USBVCC.
Outros componentes necessários para o melhor funcionamento desta etapa podem ser observados. Z1 e Z2 (CG0603MLC-05E) são protetores ESD (electrostatic discharge, do inglês, descarga eletrostática). Enquanto L1 é um ferrite que protege contra EMI (electromagnetic interference, do inglês, interferência eletromagnética).
Controlador USB
O componente principal deste bloco é o microcontrolador U3 (ATMEGA16U2-MU). Este microcontrolador tem a implementação do controlador USB. É ele que é reconhecido pelo computador quando conectamos o cabo USB.
O conector USB, X2, é interligado a este microcontrolador por meio dos resistores RN3A e RN3D, de 22 Ω. Estes resistores são necessários de acordo com a especificação no datasheet do ATMEGA16U2. Eles conectam os pinos D- e D+ do microcontrolador U3 aos pinos do conector USB com a mesma designação.
Para oscilação do U3 é utilizado um cristal de 16 MHz (Y1) juntamente com os capacitores C9 e C11, ambos de 22 pF, e o resistor R1, de 1 MΩ.
O U3 também é alimentado com a linha +5V, que pode vir tanto da USBVCC quanto das opções de alimentação externa.
Algumas outras conexões necessárias para o funcionamento do microcontrolador U3 juntamente com seu módulo USB são necessários, mas não entraremos em mais detalhes.
Outros Conectores
Um detalhe que muitos podem se perguntar a utilidade é o ICSP1. Apresentado na Figura 2.5 ele é um conjunto de 6 pinos presente na placa, próximo ao conector USB.
ICSP significa in-circuit serial programming (programação serial no circuito), que é basicamente uma forma de gravar um microcontrolador sem a necessidade de removê-lo do circuito para tal.
Os pinos presentes no ICSP1 estão ligados aos pinos do módulo SPI (MISO2, MOSI2 e SCK2) do microcontrolador U3 e também aos pinos de alimentação e reset.
O JP2, apesar de estar sendo representado como jumper, não está fisicamente presente na placa do Arduino Uno. As vias estão na placa mas os pinos não existem. Eles expõem os pinos PB4, PB5, PB6 e PB7, mas sua função não está clara na documentação.
Por fim, perceba que este bloco não é isolado dos outros. As setas no canto inferior direito da Figura 2.4 indicam que aquelas linhas se ligam ao bloco de Processamento e Periféricos pelos pinos TXD e RXD.
Conclusão
Neste pos vimos o bloco Comunicação USB, que habilita o Arduino Uno a se comunicar com o computador.
Vimos também que o microcontrolador principal do Arduino Uno, o ATmega328, não é dotado do módulo USB. Por isto existe a necessidade de uma interface.
No próximo post vamos ver o último bloco, Processamento e Periféricos.
Referências
ARDUINO. Arduino UNO REV3. [S. l.], 2010. Disponível em: https://store.arduino.cc/usa/arduino-uno-rev3/. Acesso em: 29 mai. 2021.