ARDUINO DUE

El tablero de Arduino Due está basado en el procesador Atmel SAM3X8E ARM Cortex-M3. Es la primera placa Arduino basada en un microcontrolador ARM de 32 bits.

Posee 54 entradas/salidas digitales (de las cuales 12 pueden ser usadas como salidas PWM), 12 entradas analógicas, 4 UART (puertos seriales de hardware), frecuencia de referencia de 84 MHz, conexión USB con capacidad de OTG, 2 DAC (convertidores digitales-analógicos), 2 TWI, conector de alimentación, conector SPI, conector JTAG, botón de reset y botón de borrado.

La placa Due, contiene todo lo necesario para trabajar con el microcontrolador.Para empezar a trabajar con él, simplemente debes conectarlo a un ordenador mediante un cable microUSB o aliméntalo con una fuente de alimentación AC/DC o una batería.

La Arduino Due es compatible con todas las tarjetas de expansión de Arduino que funcionan con 3.3V y es compatible con el pinout de la versión 1.0 de Arduino.

Arduino DUE.

CARACTERÍSTICAS Y ESPECIFICACIONES DE LA ARDUINO DUE

Microcontrolador AT91SAM3X8E
Tensión de funcionamiento 3,3V
Voltaje de entrada (recomendado) 7-12V
Voltaje de entrada (límite) 6-16V
Pines de E/S digitales 54 (12 de las cuales pueden ser usadas como salidas PWM)
Pines de entrada analógica 12
Salidas analógicas 2 (DAC)
Corriente continua a través de los terminales de entrada/salida 130 mA
Corriente continua a través de una salida 3,3 V 800 mA
Corriente continua a través de una salida 5V  800 mA
Memoria flash memoria flash (todos disponibles para aplicaciones personalizadas)
RAM SRAM 96 KB (dos bancos: 64 KB y 32 KB)
Frecuencia del reloj 84 MHz
Longitud 101.52 mm
Anchura 53.3 mm
Peso 36 g

Ventajas de la arquitectura del ARM

La placa Arduino Due, tienen algunos beneficios, basados en su arquitectura ARM.

  • núcleo de 32 bits, que permite realizar operaciones con datos de 4 bytes en un solo reloj de la CPU
  • La frecuencia del reloj de la CPU es de 84 MHz
  • 96 kilobytes de SRAM
  • 512 kilobytes de memoria flash para el código de programa
  • Controlador DMA, que puede liberar a la CPU de tareas intensivas de memoria.

ALIMENTACIÓN DE LA ARDUINO DUE

El Arduino Due puede ser alimentado por una conexión USB o una fuente de alimentación externa. La fuente de alimentación se selecciona automáticamente.

La alimentación externa (no USB) puede ser suministrada por un adaptador AC/DC o por una batería. El adaptador puede conectarse mediante un conector de alimentación de 2,1 mm con un contacto positivo en el centro. La energía de la batería puede suministrarse a los pines Vin y GND del conector de alimentación.

La placa puede funcionar con energía externa de 6 a 20 voltios. Si la fuente de alimentación es inferior a 7 voltios, la salida de 5 voltios puede ser inferior a 5 voltios y la placa puede volverse inestable. Si la fuente de alimentación es superior a 12V, el regulador de voltaje puede sobrecalentarse y dañar la placa. Recomendamos utilizar una fuente de alimentación de entre 7 y 12 voltios.

Te puede interesar  Proyecto Arduino Nano: Mini estación meteorológica

Salidas de potencia de la Arduino Due:

Vin: La entrada de alimentación de la tarjeta cuando se utiliza una fuente de alimentación externa (se utiliza cuando no se dispone de 5 voltios de conexión USB u otra fuente de alimentación regulada). Puede suministrar energía a través de esta salida, o si el voltaje de la fuente de alimentación se suministra a través del conector de alimentación, este voltaje de 5 voltios estará disponible en esta salida también.

5V: Puede tomar el voltaje ajustable de 5V de esta clavija de la salida del regulador en la placa. La placa puede ser alimentada a través del conector de alimentación (7-12V), el conector USB (5V) o la salida Vin de la placa (7-12V). El suministro de voltaje a través de los pines de 5V y 3.3V evita el regulador y puede dañar la placa. Por lo tanto, no se recomienda alimentar la placa a través de estos pines.

3V3: La alimentación de 3,3V proporcionada por el regulador a la placa. La corriente máxima es de 800 mA. Este regulador también suministra energía al microcontrolador SAM3X.

GND: Salidas a tierra.

IOREF: Este cable proporciona el voltaje de referencia con el que opera el microcontrolador. Una tarjeta de expansión correctamente configurada puede leer el voltaje en la salida IOREF y seleccionar la fuente de alimentación o los buffers de transferencia de salida apropiados para operar con 5V o 3.3V.

Atención
A diferencia de otros tableros de Arduino, el tablero de Arduino Due funciona con un voltaje de 3.3V. El máximo voltaje que puede ser suministrado a los terminales de entrada/salida es de 3.3V. Suministrar voltajes superiores a 3,3V a los terminales de E/S puede hacer que la placa falle.
Entradas y salidas de la Arduino DUE. Imagen Vía.

MEMORIA DE LA ARDUINO DUE

La placa Arduino due, posee una memoria SAM3X, la cual contiene 512 kilobytes (2 bloques de 256 KB) de memoria flash para almacenar el código del programa. El cargador es pre-flasheado en la fábrica de Atmel y almacenado en una memoria ROM dedicada.

La memoria SRAM disponible se encuentra en dos frascos adyacentes de 64 KB y 32 KB. Se puede acceder a toda la memoria disponible (Flash, RAM y ROM) directamente desde el espacio de direcciones planas.

También es posible borrar la memoria flash SAM3X utilizando el botón de borrado situado en la placa. Esto eliminará el código de programa descargado de la MCU. Para borrar el código, mantenga pulsado el botón Erase durante unos segundos mientras la alimentación está en la placa.

ENTRADAS/SALIDAS DE LA ARDUINO DUE

Cada una de las 54 salidas digitales de Arduino Due, puede ser usada como entrada y salida usando las funciones pinMode(), digitalWrite() y digitalRead. Funcionan con un voltaje de 3,3 voltios. Cada salida puede proporcionar una corriente (como fuente) de 3 a 15 mA dependiendo de la salida, y consume una corriente de 6 a 9 mA dependiendo de la salida.

Te puede interesar  Arduino Mega 2560

También tienen una resistencia interna de pull-up (desconectada por defecto) de 100 kOhm.

Algunos pines tienen funciones propias:

Serial: Pines (RX) y 1 (TX); puerto serie 1: 19 (RX) y 18 (TX); puerto serie 2: 17 (RX) y 16 (TX); puerto serie 3: 15 (RX) y 14 (TX). Las salidas se utilizan para recibir (RX) y transmitir (TX) datos en serie con niveles de 3,3 voltios TTL. Los pines 0 y 1 también se conectan a las salidas correspondientes del convertidor USB-TTL del ATmega16U2

PWM: Los pines 2 a 13 proporcionan una salida PWM de 8 bits utilizando el servicio analogWrite(). La resolución de PWM se puede cambiar usando el servicio analogWriteResolution();

SPI: Conector SPI (conector ICSP en otras placas Arduino). Estos pines se comunican vía SPI con la biblioteca correspondiente. Los pines SPI se conectan a un conector de 6 pines en el centro que es físicamente compatible con las tarjetas Arduino Uno, Leonardo y Mega2560.

El conector SPI sólo puede ser usado para la comunicación con otros dispositivos SPI, no para la programación en circuito del SAM3X. SPI en Arduino Due, posee características avanzadas que pueden ser usadas con métodos avanzados de SPI para Due.

CAN: CANRX y CANTX. Estas salidas admiten la comunicación CAN, pero todavía no está soportada por la API de Arduino;

LED: 13. Un LED incorporado está conectado al pin digital 13. El LED se enciende cuando la salida es alta; cuando es baja, el LED se apaga. También es posible cambiar el LED, ya que la salida digital 15 es también una salida PWM;

TWI 1: 20 (SDA) y 21 (SCL), TWI 2: SDA1 y SCL1: Soporta la comunicación a través de TWI utilizando la biblioteca de cables. SDA1 y SCL1 pueden ser administrados usando la clase Wire1 proporcionada por la biblioteca Wire.

A diferencia de SDA y SCL que tienen resistencias internas de pullup, SDA1 y SCL1 no tienen tales resistencias. Por lo tanto, para usar el Wire1 es necesario añadir dos resistencias de pull-down en las líneas SDA1 y SCL1.

Entradas analógicas: Salidas de A0 a A11. Arduino Due tiene 16 entradas analógicas, cada una de las cuales proporciona una resolución de 12 bits (es decir, 4096 valores diferentes). Por defecto, para la compatibilidad con otras placas Arduino, la resolución de lectura se establece en 10 bits.Puede cambiar la resolución de ADC mediante la función analogReadResolution().

Las entradas analógicas de Arduino Due miden un voltaje de 0 a un máximo de 3,3 voltios. Suministrando más de 3,3V a las entradas de Arduino Due se puede desactivar el chip SAM3X. La función analogReference() es ignorada por la placa Arduino Due. La clavija AREF se conecta al voltaje analógico de referencia de SAM3X a través de un puente de resistencia.

Te puede interesar  Sensor de temperatura y luz con pantalla Arduino y LCD

Para usar la clavija AREF, debe desoldar la resistencia BR1 de la placa.

DAC1 y DAC2: Estas salidas proporcionan salidas analógicas reales con una resolución de 12 bits (4096 niveles) utilizando la función analogWrite(). Estos pines pueden ser usados para crear una salida de audio usando la biblioteca de audio.

Existen un par de pines más:

AREF: Voltaje de referencia para las entradas analógicas. Se utiliza junto con analogReference();

Reset: Un nivel bajo en esta clavija lleva a un reinicio del microcontrolador. Normalmente se usa para añadir un botón de reinicio a una tarjeta de expansión que cierra el acceso al botón de reinicio en la propia tarjeta Arduino.

PROGRAMACIÓN DE LA ARDUINO DUE

Arduino Due puede ser flasheado con el IDE de Arduino.

Descargar los bocetos al SAM3X es diferente a subirlos a los microcontroladores AVR instalados en otras placas Arduino, ya que la memoria flash debe ser borrada antes de reprogramar. La carga de códigos es controlada por la ROM del SAM3X, que sólo se iniciará cuando la memoria flash del controlador esté vacía.

La placa puede ser programada a través de cualquiera de los puertos USB, aunque se recomienda utilizar un puerto de programación ya que admite el borrado del chip:

Puerto de programación: Para utilizar este puerto, seleccione «Arduino Due (Programming Port)» en el IDE de Arduino. Conecte el Arduino Due a su computadora a través del puerto de programación (el más cercano al puerto de alimentación).

El puerto de programación utiliza el ATmega16U2 como un convertidor «USB a puerto serie» conectado al primer puerto UART SAM3X (RX0 y TX0). El ATmega16U2 tiene dos pines conectados a los pines de Reinicio y Borrado de SAM3X.

Abrir y cerrar un puerto de programación conectado a 1200 bps hace que el SAM3X se «borre por hardware» al activar los pines de Borrar y Resetear SAM3X antes de establecer una conexión UART.

Se recomienda usar este puerto para la programación de Arduino Due. Este método es más confiable que el «hardware erase» usado con su propio puerto y funcionará incluso si el microprocesador principal está dañado.

Puerto propio: Para usar este puerto, seleccione «Arduino Due (Native USB Port)» del IDE de Arduino. Su propio puerto USB se conecta directamente al SAM3X. Conecte el Arduino Due a su computadora a través de su propio puerto USB (el más cercano al botón de reinicio).

Abrir y cerrar su propio puerto, conectado a 1200 bps, provoca un «borrado de software»: la memoria flash se borra y la placa se reinicia con el cargador. Si la MCU se daña por alguna razón, el «software erase» probablemente no funcionará, ya que este procedimiento en el SAM3X está totalmente basado en software. Abrir y cerrar su propio puerto a otras velocidades de transferencia no resulta en un reinicio del SAM3X.

A diferencia de otras placas Arduino que usan avrdude para el firmware, Arduino Due usa bossac.

El firmware ATmega16U2 está disponible en el repositorio de Arduino. Puede utilizar un conector ISP con un programador externo (reescribiendo el cargador de arranque DFU).