Entender el diseño de hardware Arduino UNO

JD

En este artículo se explica cómo funciona Arduino desde una perspectiva de diseño electrónico .


La mayoría de los artículos explican el software de Arduino . Sin embargo , la comprensión de diseño de hardware le ayuda a tomar el siguiente paso en el viaje de Arduino . Una buena comprensión del diseño electrónico de su hardware Arduino le ayudarå a aprender cómo incrustar un Arduino en el diseño de un producto final , incluyendo qué conservar y qué omitir de su diseño original .

componentes DescripciĂłn general

El diseño de PCB de la placa Arduino UNO utiliza componentes SMD (Surface Mount Device ) . Entré hace años los SMD mundo cuando se hundieron en el diseño de PCB Arduino , mientras que yo era parte de un equipo de rediseño de un clon de bricolaje para Arduino UNO .

Los circuitos integrados utilizan paquetes estandarizados , y hay familias de paquetes .

Las dimensiones de muchas resistencias SMD , condensadores, y los LED se indican mediante cĂłdigos de embalajes, tales como los siguientes :



cĂłdigo de paquete SMD para componentes discretos tales como resistencias , condensadores, e inductores. Imagen cortesĂ­a de Wikimedia .





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


En la siguiente tabla , se puede ver una lista de algunos de los componentes de la Arduino UNO con su respectivo paquete :

art   Package

   NCP1117ST50T3G 5V regulator   SOT223
   LP2985-33DBVR 3.3V regulator   SOT753/SOT23-5
   M7 diode   SMB
   LMV358IDGKR dual channel amplifier   MSOP08
   FDN340P P-channel MOSFET transistor   SOT23
   ATmega16U2-MU   MLF32


Arduino UNO DescripciĂłn general del sistema

Antes de que podamos comprender el hardware de la ONU, hay que tener una visiĂłn general del sistema por primera vez.

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

El puente en la Ășltima revisiĂłn es la ATmega16U2, que tiene un transceptor USB y tambiĂ©n una interfaz en serie (interfaz UART).

Para alimentar tu placa Arduino, se puede utilizar el USB como fuente de energĂ­a. Otra opciĂłn es utilizar un conector de CC. Usted puede preguntar, "si conecto tanto un adaptador de CC y el USB, que serĂĄ la fuente de energĂ­a?" La respuesta serĂĄ discutido en la secciĂłn "Parte Power" de este artĂ­culo.

Para restablecer la tabla, se debe utilizar un pulsador en el tablero. Otra fuente de restablecimiento debe ser cada vez que abra el monitor serie de Arduino IDE.

Me redistribuye el esquema original de la placa Arduino UNO para ser mås legibles a continuación. Aconsejo que lo descargue y abra el PCB y esquemåtico usando Águila CAD mientras que usted estå leyendo este artículo.



El microcontrolador

Es importante entender que la placa Arduino incluye un microcontrolador, y esto es lo microcontrolador ejecuta las instrucciones en su programa. Si usted sabe esto, no va a usar la frase sin sentido comĂșn "Arduino es un microcontrolador" nunca mĂĄs.

El microcontrolador ATmega328 MCU es el utilizado en la placa Arduino UNO R3 como controlador principal. ATmega328 es una MCU 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 en paralelo.

ATmega328 tiene tres tipos de memoria:

Memoria Flash: 32 KB memoria no volåtil. Esto se utiliza para almacenar la aplicación, lo que explica por qué no es necesario cargar la aplicación cada vez que desenchufa Arduino de su fuente de alimentación.

memoria SRAM: 2 KB de memoria volĂĄtil. Esto se utiliza para almacenar las variables utilizadas por la aplicaciĂłn mientras se estĂĄ ejecutando.

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



Vayamos brevemente algunas de las caracterĂ­sticas de este MCU:


paquetes:

Este MCU es un paquete DIP -28 , lo que significa que tiene 28 pines en el dual in-line package . Estos pines incluyen la energĂ­a y los pins de I / O . La mayorĂ­a de los pasadores son multifuncionales , lo que significa que el mismo pin puede ser utilizado en diferentes modos en funciĂłn de cĂłmo se configura en el software. Esto reduce el nĂșmero de pines necesario, porque el microcontrolador no requiere un pasador separado para cada funciĂłn . TambiĂ©n puede hacer su diseño mĂĄs flexible , debido a la conexiĂłn de E / S puede proporcionar mĂșltiples tipos de funcionalidad .

Otros paquetes de ATmega328 estĂĄn disponibles como TQFP -32 el paquete de SMD ( Surface Mount Device ) .


Dos paquetes diferentes del ATmega328 . ImĂĄgenes cortesĂ­a de Sparkfun y Wikimedia .


Poder:

El 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) , se 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 se pueden utilizar para fines generales de E / S digital o de las funciones alternativas indicadas en el pinout a continuaciĂłn. Por ejemplo , PORTC pin0 al pin 5 puede ser entradas ADC en lugar de E / S digital .

También hay algunos pasadores que se pueden configurar como salida PWM. Estos pines estån marcados con " ~ " de la placa Arduino .

Nota : El ATmega168 es casi idéntica a la ATmega328 y son compatibles pin . La diferencia es que el ATmega328 tiene mås memoria flash - 32KB , 1 KB EEPROM y la RAM de 2 KB en comparación con el flash de la ATmega168 16KB , 512 bytes de EEPROM y la RAM de 1 KB.









Entradas ADC :

Este MCU tiene seis canales PORTC0 - a - PORTC5 con resoluciĂłn de 10 bits convertidor A / D . Estos pines estĂĄn conectados a la cabecera analĂłgica en la placa Arduino .

Un error comĂșn es pensar en la entrada analĂłgica como entrada dedicada por sĂłlo una funciĂłn / D , como el encabezado en los estados de mesa " Analog " . La realidad es que se puede utilizar como E / S digitales o A / D .


diagrama de bloques ATmega328 .
Como se muestra en el diagrama de arriba (a través de las huellas rojos), los pasadores relacionados con la unidad de A / D son:


  • AVCC : El pin de alimentaciĂłn para la unidad de A / D .
  • AREF : El pin de entrada usa opcionalmente si desea utilizar una referencia de tensiĂłn externa de ADC en lugar de la Vref interna. Puede configurar que el uso de un registro interno .


registros internos para la selecciĂłn de la fuente Vref .

UART periférica:

Un UART (Asynchronous Receiver universal / transmisor ) es una interfaz serie . El ATmega328 tiene sĂłlo un mĂłdulo UART .

Los pasadores (RX , TX) de la UART se conectan a un circuito convertidor de USB a UART y también conectados a pin0 y pin1 en la cabecera digital. Usted debe evitar el uso de la UART si ya lo estå utilizando para enviar / recibir datos a través de USB .


SPI periférica:

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

Ademås de usarlo como una interfaz en serie , sino que también se puede utilizar para programar el MCU utilizando un programador independiente. Se puede llegar a los pines del SPI de la cabecera junto a la MCU en la placa Arduino UNO o desde la cabecera digital de la siguiente manera :
11 < - > MOSI
12 < - > MISO
13 < - > SCK


TWI :

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

Se puede llegar a estos pines de los Ășltimos dos pasadores en la cabecera digital o pin4 y pin 5 en la cabecera analĂłgica.


Otra funcionalidad :

Otra funcionalidad se incluye en la MCU, tal como la ofrecida por los mĂłdulos de temporizador / contador. Puede que no sea consciente de las funciones que no se utiliza en su cĂłdigo. Se puede hacer referencia a la hoja de datos para obtener mĂĄs informaciĂłn .

Arduino parte del UNO R3 de MCU .


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

ATmega328-PU: La MCU que acabamos de hablar.
LIO y IOH (Digital) Cabeceras: Estas son las cabeceras de 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 puente USB estĂĄn conectados con pin0 y el pin 1.
AD Cabecera: La cabecera de pines analĂłgicos.
16 MHz resonador cerĂĄmico (CSTCE16M0V53-R0): Conectado con XTAL2 y XTAL1 de la MCU.
Restablecer PIN: Este es sorprendido con una resistencia de 10K para ayudar a prevenir restablece espurias en ambientes ruidosos; el pasador tiene una resistencia interna de pull-up, pero de acuerdo con la nota AVR Hardware aplicación Consideraciones de diseño (AVR042), "si el entorno es ruidoso, puede ser insuficiente y restablecer pueden ocurrir esporådicamente." reset se produce cuando el usuario presiona el reinicio botón 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 app: "Si no se utiliza la programación de alto voltaje, se recomienda añadir un diodo de protección ESD de RESET para Vcc, ya que esto no es interna, debido a la programación de alto voltaje".
C4 y C6 100nF Condensadores: Estos se añaden para filtrar el ruido de suministro. La impedancia de un condensador disminuye con frecuencia:
xc
xc
 = 12πfC
12πfC

Los condensadores dan ruido de alta frecuencia las señales de un camino de baja impedancia a tierra. 100nF es el valor mĂĄs comĂșn. Leer mĂĄs acerca de condensadores en el libro de texto AAC.
PIN13: Este estå conectado al pin SCK desde la MCU y también estå conectado a un LED. La placa Arduino utiliza una memoria intermedia (la LMV358) para conducir el LED.
ICSP (In-Circuit Serial Programming) Cabecera: Se utiliza para programar los ATmega328 utilizando un programador externo. EstĂĄ conectado a la interfaz In-System Programming (ISP) (que utiliza los pines SPI). Por lo general, no es necesario utilizar esta forma de programaciĂłn porque gestor de arranque se encarga de la programaciĂłn de la MCU de la interfaz UART que estĂĄ conectada mediante un puente al USB. Esta cabecera se utiliza cuando se necesita el flash de la MCU, por ejemplo, con un cargador de arranque por primera vez en la producciĂłn.



Como ya comentamos en la sección "Sistema de Arduino UNO general", la función de la parte de puente de USB a UART es convertir las señales de interfaz USB a la interfaz UART, que comprende el ATmega328, utilizando un ATmega16U2 con un transceptor USB interno . Esto se hace usando un firmware especial cargado en el ATmega16U2.Como ya comentamos en la sección "Sistema de Arduino UNO general", la función de la parte de puente de USB a UART es convertir las señales de interfaz USB a la interfaz UART, que comprende el ATmega328, utilizando un ATmega16U2 con un transceptor USB interno . Esto se hace usando un firmware especial cargado en el ATmega16U2.

Desde una perspectiva de diseño electrónico, esta sección es similar a la sección 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 la líneas D + y D- de USB. Estos proporcionan la impedancia de terminación adecuada para las señales de USB. Aquí es un poco de lectura adicional acerca de estas resistencias:

¿Por quĂ© resistencias en serie de datos USB
Los desarrolladores FAQ USB
Z1 y Z2 son resistencias dependientes de voltaje (RDT), también llamados varistores. Se utilizan para proteger las líneas USB contra los transitorios de ESD.

El condensador de 100nF conectada en serie con la lĂ­nea de reset permite que los Atmega16U2 para enviar un impulso de reposiciĂłn a la Atmega328. Puede leer mĂĄs sobre este condensador aquĂ­.


El poder

Para una fuente de energĂ­a, usted tiene la opciĂłn de utilizar el USB o una toma de CC. Ahora es el momento de responder a la siguiente pregunta: "¿Si conecto tanto un adaptador de CC y el USB, que serĂĄ la fuente de energĂ­a"

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

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

Otra fuente de 5V es USBVCC que estĂĄ conectado al drenaje de un FDN340P, un MOSFET de canal P, y la fuente estĂĄ conectada a la red de 5V. La puerta del transistor estĂĄ conectado a la salida de un op-amp 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 estĂĄ apagado. Si no hay Vin aplicada, la V + del comparador se tira hacia abajo a GND y Vout es baja, de manera que el transistor estĂĄ encendido y el USBVCC estĂĄ conectado a 5V.

Desde una perspectiva de diseño electrónico, esta sección es similar a la sección 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 la líneas D + y D- de USB. Estos proporcionan la impedancia de terminación adecuada para las señales de USB. Aquí es un poco de lectura adicional acerca de estas resistencias:

¿Por quĂ© resistencias en serie de datos USB
Los desarrolladores FAQ USB
Z1 y Z2 son resistencias dependientes de voltaje (RDT), también llamados varistores. Se utilizan para proteger las líneas USB contra los transitorios de ESD.

El condensador de 100nF conectada en serie con la lĂ­nea de reset permite que los Atmega16U2 para enviar un impulso de reposiciĂłn a la Atmega328. Puede leer mĂĄs sobre este condensador aquĂ­.






mecanismo de conmutaciĂłn de fuente de alimentaciĂłn



El LP2985-33DBVR es el regulador 3V3 . Tanto los reguladores 3V3 y 5V son LDO ( caĂ­da baja) , lo que significa que pueden regular la tensiĂłn incluso si el voltaje de entrada estĂĄ cerca de la tensiĂłn de salida . Esta es una mejora sobre los reguladores lineales mĂĄs antiguos, como el 7805 .

Lo Ășltimo que voy a hablar es la protecciĂłn de la energĂ­a que se proporciona en la placa Arduino UNO .

Como se mencionó anteriormente , VIN de un jack DC estå protegido de polaridad inversa mediante el uso de un diodo M7 en serie en la entrada. Tenga en cuenta que el pin VIN en el cabezal de alimentación no estå protegida. Esto se debe a que estå conectado después de que el diodo M7 . En lo personal , no sé por qué decidieron hacer eso cuando podrían conectarlo antes de que el diodo para proporcionar la misma protección .




pin VIN del cabezal de alimentaciĂłn



Cuando se utiliza USB como fuente de energía , y para proporcionar protección a su puerto USB , hay un PTC ( coeficiente de temperatura positivo) fusible ( 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 se retira la sobrecorriente.

La lectura de los circuitos robustos post sobre la protecciĂłn de Arduino es muy Ăștil .



Ahora debería estar mås familiarizado con el diseño electrónico de la Arduino UNO y tener una mejor comprensión de su hardware. Espero que esto ayuda a que sus proyectos de diseño en el futuro!

Publicar un comentario

0Comentarios
Publicar un comentario (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Learn More
Accept !