Entendiendo el diagrama esquematico del Arduino UNO – Esquema del Arduino




Este artículo como indica su titulo «Entendiendo el diagrama esquematico del Arduino UNO – Esquema del Arduino» explica cómo funciona Arduino desde una perspectiva de diseño electrónico.

La mayoría de las publicaciones explican el funcionamiento de Arduino a nivel software. Sin embargo, entender el diseño de hardware le ayudara a continuar con conocimientos mas solidos sobre el  Arduino esquematico.

Una buena comprensión del diseño electrónico del hardware de Arduino le ayudará a aprender cómo insertar  un Arduino en el diseño de un producto final, incluyendo lo que debe conservar y qué omitir en su diseño original.

Componentes del Hardware de Arduino Esquematico Uno

El diseño del PCB de Arduino UNO utiliza componentes SMD (Surface Mount Device).

Los circuitos integrados SMD usan empaques  estandarizados, y hay familias para los empaques.




Las dimensiones de muchos resistores SMD, condensadores y LEDs se indican mediante códigos de empaques como los siguientes:

Código de dimensiones de packs SMD para componentes discretos como resistencias, condensadores e inductores.

La mayoría de los empaques son genéricos y se pueden utilizar para diferentes partes con diferentes funcionalidades. El empaque SOT-223, por ejemplo, puede contener un transistor o un regulador.

En la siguiente tabla, puede ver una lista de algunos componentes en el Arduino Esquematico UNO con su empaque respectivo:

 Componente    Tipo de empaque
   Regulador NCP1117ST50T3G 5V    SOT223
   Regulador LP2985-33DBVR 3.3V    SOT753/SOT23-5
   Diodo M7    SMB
   Amplificador doble canal LMV358IDGKR    MSOP08
   Transistor MOSFET Canal P FDN340P    SOT23
   ATmega16U2-MU    MLF32

Descripción general del sistema de Arduino UNO

Antes de poder entender el hardware del sistema de Arduino UNO, primero debemos tener una visión general del sistema.

Después de que su código se compila con el IDE de Arduino, debe cargarse al microcontrolador principal del Arduino UNO mediante una conexión USB. Debido a que el microcontrolador principal no tiene un transceptor USB, necesita un puente para convertir señales entre la interfaz serie (interfaz UART) del microcontrolador y las señales USB del host.

El puente en la última revisión es el ATmega16U2, que tiene un transceptor USB y también una interfaz serie (interfaz UART).





Para alimentar la tarjeta Arduino, puede utilizar el USB como fuente de alimentación. Otra opción es utilizar un conector de CC. Podrias preguntar, «y, si conecto un adaptador de CC y el USB, ¿cuál será la fuente de energía?» La respuesta será discutida en la sección «Poder» de este artículo.

Para reiniciar su placa, debera utilizar un botón en la placa. Otro origen de reinicio sería cada vez que abra el monitor en serie del IDE de Arduino.

Aqui el esquema original Arduino UNO. Aconsejamos descargarlo en el siguiente enlace y abrir el PCB y el esquema con Eagle CAD.

ENLACE EN GOOGLE DRIVE

Esquema de Arduino UNO- Diagrama esquematico de Arduino UNO

Esquema de Arduino UNO
Diagrama esquematico de Arduino UNO

El microcontrolador

Es importante entender que la placa Arduino incluye un microcontrolador, y este microcontrolador es lo que ejecuta las instrucciones en su programa. Sabiendo esto, la frase  «Arduino es un microcontrolador» es un sin sentido.

El microcontrolador ATmega328 es el microcontrolador utilizado en Arduino UNO R3 como controlador principal. ATmega328 es un microcontrolador  de la familia AVR; Es un dispositivo de 8 bits, lo que significa que su arquitectura de bus de datos y registros internos están diseñados para manejar 8 señales de datos paralelas.

ATmega328 tiene tres tipos de memoria:

Memoria Flash: 32KB de memoria no volátil. Esto se utiliza para almacenar la aplicación, lo que explica por qué no necesita cargar su aplicación cada vez que desenchufe arduino de su fuente de alimentación.

Memoria SRAM: Memoria volátil de 2KB. Esto se utiliza para almacenar las variables utilizadas por la aplicación mientras se está ejecutando.

Memoria EEPROM: 1KB de memoria no volátil. Esto se puede usar para almacenar datos que deben estar disponibles incluso después de que la placa se apaga y luego se enciende de nuevo.




Veamos brevemente algunas de las especificaciones de este Microcontrolador:

Tipo de Empaque del ATmega328

Este MCU tiene empaque  DIP-28, lo que significa que tiene 28 pines en el paquete en línea dual. Estas clavijas incluyen clavijas de alimentación y de E / S.

La mayoría de los pines son multifuncionales, lo que significa que el mismo pin se puede utilizar en diferentes modos basándose en cómo se configura en el software. Esto reduce el número de pines necesario, porque el microcontrolador no requiere un pin separado para cada función.

También puede hacer que su diseño sea más flexible, ya que una conexión de E / S puede proporcionar múltiples tipos de funcionalidad.

Otros empaques del ATmega328 están disponibles como el empaque TQFP-32 SMD (en castellano dispositivos de montaje superficial).

Dos diferentes tipos de empaques para el ATmega328

Alimentacion de Poder

Este MCU acepta tensiones de alimentación de 1,8 a 5,5 V. Sin embargo, existen restricciones en la frecuencia de funcionamiento; Por ejemplo, si desea utilizar la frecuencia de reloj máxima (20 MHz), necesita una tensión de alimentación de al menos 4,5 V.

E / S digital

Este MCU tiene tres puertos: PORTC, PORTB y PORTD. Todos los pines de estos puertos pueden utilizarse para E/S  digitales de uso general o para las funciones alternativas indicadas en el pinout a continuación. Por ejemplo, PORTC pin0 a pin5 puede ser entradas ADC en lugar de E/S digital.

También hay algunos pines que se pueden configurar como salida PWM. Estos pines están marcados con «~» en la tarjeta Arduino.

Nota: El ATmega168 es casi idéntico al ATmega328 y es compatible en el pinout. La diferencia es que el ATmega328 tiene más flash de 32KB de memoria, EEPROM de 1KB y 2KB de RAM en comparación con el flash 16KB del ATmega168, EEPROM de 512 bytes y 1KB de RAM.

atmega168-pinout

Pines ATmega168. El ATmega168 y el ATmega328 son compatibles en pin.



Arduino_UNO_R3_Pinout

Entradas ADC

Este MCU tiene seis canales-PORTC0 a PORTC5-con convertidor A/D de 10 bits de resolución. Estas clavijas están conectadas a la cabecera analógica de la tarjeta Arduino.

Un error común es pensar en la entrada analógica como entrada dedicada para la función A/D solamente, ya que el encabezado en la placa indica «Analog». La realidad es que puede utilizarlos como E/S digital o A/D.

Diagrama de bloques del Atmega328_ADC

Como se muestra en el diagrama anterior (a través de los trazos rojos), los pines relacionados con la unidad A / D son:

AVCC: El pin de alimentación de la unidad A / D.
AREF: El pin de entrada utilizado opcionalmente si se desea utilizar una referencia de tensión externa para ADC en lugar de la Vref interna. Puede configurarlo utilizando un registro interno.

 

Periférico UART

Un UART (Receptor / Transmisor Asíncrono Universal) es una interfaz serie. El ATmega328 tiene sólo un módulo UART.

Los pines (RX, TX) del UART están conectados a un circuito convertidor USB-a-UART y también están conectados a pin0 y pin1 en el encabezado digital. Debe evitar el uso del UART si ya lo está utilizando para enviar / recibir datos a través de USB.

SPI Periférico:

El SPI (Serial Peripheral Interface) es otra interfaz serie. El ATmega328 tiene sólo un módulo SPI.

Además de utilizarlo como una interfaz serie, también puede usarse para programar la MCU usando un programador autónomo. Puede acceder a los pines del SPI desde la cabecera junto a la MCU en la placa UNO de Arduino o desde el encabezado digital como se indica a continuación:

11 <-> MOSI

12 <-> MISO

13 <-> SCK




TWI

El I2C o interfaz de dos cables es una interfaz que consta de sólo dos cables, datos en serie y un reloj en serie: SDA, SCL.

Puede llegar a  estos pines de los últimos dos pines en el encabezado digital o pin4 y pin5 en el encabezado analógico.

Otras funcionalidades

Se incluye otra funcionalidad en la MCU, tal como la ofrecida por los módulos temporizador / contador. Es posible que no tenga en cuenta las funciones que no utiliza en su código. Puede consultar la hoja de datos para obtener más información.

Arduino UNO R3 MCU

Arduino UNO R3 MCU

Volviendo al diseño electrónico, la sección del microcontrolador tiene lo siguiente:

  • ATmega328-PU: El MCU del que acabamos de hablar.
  • Cabeceras IOL e IOH (Digital): Estas cabeceras son la cabecera digital para los pines 0 a 13 además de GND, AREF, SDA y SCL. Tenga en cuenta que RX y TX desde el puenPueste Ute USB están conectados con pin0 y pin1.
  • AD Header: El encabezado de pines analógicos.
  • Resonador cerámico de 16 MHz (CSTCE16M0V53-R0): Conectado con XTAL2 y XTAL1 de la MCU.
  • Pin de reinicio: Se arranca con una resistencia de 10 K para ayudar a evitar reajustes espurios en entornos ruidosos; El pin tiene una resistencia de pull-up interna, pero de acuerdo a las Consideraciones sobre el diseño de hardware de AVR (AVR042), «si el entorno es ruidoso, puede ser insuficiente y el restablecimiento puede ocurrir esporádicamente.» El restablecimiento se produce si el usuario presiona el reset O si se emite un restablecimiento desde el puente USB. También puede ver el diodo D2. El papel de este diodo se describe en la misma nota de la aplicación: «Si no se utiliza la programación de alta tensión, se recomienda añadir un diodo de protección ESD de RESET a Vcc, ya que no se proporciona internamente debido a la programación de alta tensión».
  • Condensadores C4 y C6 100nF: Estos se añaden al filtro de ruido de fuente. La impedancia de un condensador disminuye con la frecuencia:

    Los condensadores proporcionan a las señales de ruido de alta frecuencia una trayectoria de baja impedancia a tierra. 100nF es el valor más común.
  • PIN13: Está conectado al pin SCK de la MCU y también está conectado a un LED. La placa Arduino utiliza un búfer (el LMV358) para controlar el LED.
  • ICSP (In-Circuit Serial Programming) Encabezado: Se utiliza para programar el ATmega328 utilizando un programador externo. Está conectado a la interfaz de programación en el sistema (ISP) (que utiliza los pines SPI). Por lo general, no es necesario utilizar esta forma de programación porque bootloader maneja la programación de la MCU desde la interfaz UART que se conecta mediante un puente a la USB. Este encabezado se utiliza cuando se necesita flashear la MCU, por ejemplo, con un gestor de arranque por primera vez en la producción.




El puente USB-to-UART

Puente Usb a Uart

Puente Usb a Uart

Como se comentó en la sección «Descripción general del sistema de Arduino UNO», el papel de la parte del puente USB-to-UART es convertir las señales del interfaz USB a la interfaz UART, que el ATmega328 entiende, utilizando un ATmega16U2 con un transceptor USB interno . Esto se hace utilizando un firmware especial cargado en el ATmega16U2.

Desde una perspectiva de diseño electrónico, esta sección es similar a la sección de microcontrolador. Este MCU tiene una cabecera ICSP, un cristal externo con condensadores de carga (CL) y un condensador de filtro Vcc.

Observe que hay resistencias en serie en las líneas D + y D-USB. Estos proporcionan la impedancia de terminación adecuada para las señales USB.

Z1 y Z2 son resistencias dependientes de la tensión (VDR), también llamadas varistores. Se utilizan para proteger las líneas USB contra los transitorios ESD.

El condensador 100nF conectado en serie con la línea de reset permite que el Atmega16U2 envíe un pulso de reinicio al Atmega328.

El poder

Para una fuente de alimentación, tiene la opción de usar el conector USB o DC. Ahora es el momento de responder a la siguiente pregunta: «Si conecto un adaptador de CC y el USB, cual será la fuente de alimentación?»

El regulador 5V es el NCP1117ST50T3G y el Vin de este regulador se conecta a través del conector DC a través del diodo M7, la versión SMD del famoso diodo 1N4007 . Este diodo proporciona protección de polaridad inversa.

La salida del regulador 5V está conectada al resto de la red 5V en el circuito y también a la entrada del regulador 3.3V, LP2985-33DBVR. Puede acceder a 5V directamente desde el conector de alimentación 5V pin.

Otra fuente de 5V es USB VCC que se conecta al drenador de un FDN340P, un MOSFET de canal P, y la fuente está conectada a la red de 5V.

La puerta del transistor está conectada a la salida de un amplificador operacional LMV358 utilizado como comparador. La comparación es entre 3V3 y Vin/2. Cuando Vin/2 es más grande, esto producirá una alta salida del comparador y el MOSFET de canal P estara apagado. Si no se aplica Vin, el V + del comparador es llevado a GND y Vout es bajo, de modo que el transistor está encendido y el USBVCC conectado a 5V.

Mecanismo de conmutación de la fuente de alimentación




El LP2985-33DBVR es el regulador 3V3. Ambos reguladores 3V3 y 5V son LDO (Low Dropout), lo que significa que pueden regular el voltaje incluso si la tensión de entrada está cerca de la tensión de salida. Esto es una mejora sobre los reguladores lineales más antiguos, como el 7805.

Por uñtimo explicare sobre  la protección de energía que se proporciona en Arduino UNO.

Como se mencionó anteriormente, el VIN de una toma de CC está protegido contra polaridad inversa usando un diodo M7 en serie en la entrada. Tenga en cuenta que el pin VIN en la cabecera de alimentación no está protegido. Esto se debe a que está conectado después del diodo M7.

No sé por qué decidieron hacer eso cuando pudieron conectarlo antes del diodo para proporcionar la misma protección.

Cuando se utilice USB como fuente de alimentación  para proporcionar protección a su puerto USB, hay un fusible PTC (coeficiente de temperatura positivo) (MF-MSMF050-2) en serie con el USBVCC. Esto proporciona protección contra sobrecorriente, 500mA.

Cuando se alcanza un límite de sobrecorriente, la resistencia PTC aumenta mucho. La resistencia disminuye después de retirar la sobrecorriente.

En este punto deberías estar más familiarizado con el diseño electrónico de el Arduino UNO  y tener una mejor comprensión de su hardware.




3 comentarios en “Entendiendo el diagrama esquematico del Arduino UNO – Esquema del Arduino

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *