

Arduino Due es una placa microcontrolada basada en un chip Atmel SAM3X8E ARM Cortex-M3 CPU(datsheet). el primer Arduino basado en microcontrolador con un núcleo de 32bits. Posee 54 entradas/salidas digitales (12 de ellas pueden ser usadas como salidas PWM) , 12 entradas analógicas. 4 UARTs (puertos hardware seriales), un reloj de 84Mhz, un USB , 2 DAC(conversor digital/analógico), 2 TWI, un jack de alimentación, un conector SPI, un conector JTAG, y un botón de reset y de borrado.
PRECAUCIóN: Al contrario que otros Arduinos, Arduino Due funciona a 3,3V. El voltaje máximo de sus pines de entrada/salida es de 3.3V. Conectarlos a un voltaje mayor, como 5V, puede causar daños en la placa.
La placa contiene todo lo necesario para funcionar, simplemente conéctela al ordenador mediante el cable USB o a una fuente de alimentación cómo un transformador de AC/DC o baterías para comenzar a usarlo.
Due es compatible con todos los Shield para arduino que trabajan a 3.3V y sean compatibless a su vez con el pinout 1.0 de Arduino.
El pinout 1.0:
- TWI: pines SDA y SCL cerca del pin AREF.
- El pin IOREF permite que los Shield se configuren para adaptarse al voltaje de la placa. Esto permite a los shields ser compatibles tanto con 3.3V como con las placas como Due y las basadas en AVR que funcionan a 5V
- Un pin sin conectar reservado para usos futuros.
Beneficios del núcleo ARM
El Due posee un núcleo ARM de 32 bits que superan a los microcontroladores típicos de otras placas que tienen 8bits. Esto implica varias diferencias:
Con un núcleo de 32bits se realizan operaciones de 4 bits en cada ciclo de reloj. (Para más información consulte esta pagina.)
La velocidad de reloj del procesador es de 84Mhz
96Kbytes de SRAM
512 Kb de memoria Flash
El controlador DMA puede aliviar la CPU en tareas que requieran un uso intensivo de la memoria.
Esquemas, diseños y mapeo de pines.
Archivos de EAGLE: arduino-Due-reference-design.zip
Esquemático: arduino-Due-schematic.pdf
Mapa de pines: SAM3X Pin Mapping page
Resumen | |
---|---|
Microcontrolador | AT91SAM3X8E |
Voltaje de operaciones | 3.3V |
Voltaje de entrada recomendado | 7-12V |
Voltaje de entrada máximo | 6 - 20V |
Pines de Entradas/Salidas digitales | 54 (12 de ellas pueden ser usadas como PWM) |
Pines de entrada analógicas | 12 |
Salidas analógicas | 2(DAC) |
Tensión total en todas las entradas/salidas | 130mA |
Tensión máxima en el pin 3.3V | 800mA |
Tensión máxima en el pin 5V | 800mA |
Memoria flash | 512Kb, toda ella disponible. |
SRAM | 96Kb en dos bancos de memoria de 64Kb y 32Kb |
Velocidad de Reloj | 84Mhz |
Alimentación
Arduino Duo puede ser alimentado vía USB o mediante una fuente de alimentación externa. La elección de la alimentación se hace de forma automática
La alimentación externa puede hacerse con un adaptar de corriente continua o una batería. El adaptador puede ser conectado mediante un conector de 2.1mm con el positivo en el centro. Este se puede conectar directamente a jack de la placa. Las baterías pueden conectarse a los pines de Vin(+) y GND(-).
La placa puede funcionar con una alimentación externa de entre 6 y 20V. Sin embargo, si se suministran menos d e7V el pin de 5V podría no alcanzar este valor y la placa puede ser inestable. Si se usan más de 12V el regulador podría sobre calentarse y causar daños a la placa, por lo tanto el rango recomentable seria de entre 7 y 12 V.
Los pines de alimentación son:
- VIN: entrada de voltaje de la placa Arduino.
- 5V: Este pin ofrece una salida regulada de 5V desde el regulador de la placa. Este pin puede ser utilizado cuando la placa esta siendo alimentada desde el jack de alimentación (7 – 12V), el conector USB (5V) o el pin VIN (7 – 12V).
- Alimentar la placa mediante este pin es posible, pero la corriente no pasará por el regulador y podría dañarse Arduino. NO ESTA RECOMENDADO.
- 3V3. Salida regulada a 3,3V mediante el regulador de la placa. Puede entregar un máximo de 50mA.Alimentar la placa mediante este pin es posible, pero la corriente no pasará por el regulador y podría dañarse Arduino. NO ESTA RECOMENDADO.
- GND: pin de tierra.
- IOREF: Este pin en la placa Arduino proporciona la tensión de referencia con el que el microcontrolador opera. Un shield correctamente configurado puede leer el voltaje pin IOREF y seleccione la fuente de alimentación adecuada o habilitar reguladores de tensión en las salidas para trabajar con 5V o 3.3V.
Memoria
El SAM3X cuenta con 512Kb (2 Bloques de 256Kb) de memoria flash para cargar código. El bootloader viene pre-cargado desde la factoría de Atmel y esta en una memoria ROM dedicada a ello. La SRAM disponible es de 96Kb en dos bancos de memoria contiguos, uno de 64Kb y el otro de 32Kb. Toda la memoria disponible (Flash,RAM y ROM) es accesible directamente desde su dirección de memoria
Es posible borrar la memoria Flash del SAM3X con el botón borrar de la placa. Eso eliminará el sketch cargado en la MCU. Para borrar presione y mantenga pulsado el botón de borrar durante algunos segundos.
Entradas y salidas
Entradas/Salidas digitales: pines del 0 al 53. Los 54 pines digitales de Arduino Duo pueden ser usados utilizando las funciones pinMode(), digitalWrite() y digitalRead(). Todos ellos operan a 3.3V. Cada pin puede entregar de 3mA a 15mA dependiendo del pin o recibir entre 6mA y 9mA, dependiendo del pin. Todos ellos cuentan con una resistencia pull-up (desconectada por defecto) de 100KOhm. Además algunos pines tienen alguna funciones especiales:
- Serial: 0 (RX) y 1 (TX)
- Serial 1: 19(RX) y 18 (TX)
- Serial 2:17(RX) y 16 (TX)
- Serial 3: 15(RX) y 14 (TX)
Usadas para recibir (RX) o transmitir (TX) datos seriales TTL de 3.3V.
PWM: pines del 2 al 13. proporcionan salidas PWM de 8 bits con la funcionará analogWrite(). La resolución de los PWM puede ajustarse mediante la función analogWriteResolution()
Conector SPI (Conector ICSP en otras placas de Arduino): Este pin soporta comunicación SPI utilizando la librería SPI. El pin SPI se encuentra en el pin centrar de un conector de 6 pines por lo que es físicamente compatible con Arduino UNO, Leonardo y Mega2560. El conector SPI puede ser usado solo para comunicación con otro dispositivo SPI, no para programar el SAM3X mediante ICSP. Para más información consultar la documentación sobre los métodos SPI para Due.
CAN: CANRX y CANTX. Este pin soporta comunicación mediante el protocolo CAN, pero este no esta soportado por la API de Arduino.
LED: 13. Este pin esta conectado a un LED. Cunado el pin esta en alta el led se enciende, cuando esta en baja se apaga. También es posible variar la intensidad del LED ya que la salida 13 es un PWM.
TWI1: 20 (SDA) y 21 (SCL)
TWI2: SDA1 y SCL1: Soportan comunicación TWI usando la librería Wire
Salidas analógicas de los pines A0 al A11. Due tiene 12 entradas analógicas que proporcionan 12 bits de resolución (4096 valores posibles). Por defecto la resolución de lectura es de 10 bits para ser compatible con el resto de las placas de Arduino. Es posible cambiar la resolución de las entradas con la función analogReadResolutio(). Los pines analógicos de due funcionan como tierra de un máximo de3.3V.Aplicar más de 3.3V pueden dañar el chip SAM3X. La función analogReference() es ignorada por Due.
El pin AREF esta conectado a la referencia analógica del SAM3X y puenteada por una resistencia. Para usar el Pin AREF se debe desoldar la resistencia BR1 de la placa.
DAC1 y DAC2: Estos pines proporcionan salidas analógicas de 12 bits de resolución (4096 valores posibles) con la función analogWrite(). Estos pines pueden ser usados para crear una salida de audio utilizando la librería de Audio.
Otros pines de la placa:
AREF: Voltaje de referencia para las entradas analógicas. Usada con la función analogReference()
Reset: Cuando entra una señal baja el microcontrolador se resetea. Este pin se utiliza normalmente para añadir un botón de reset cuando se utilizan shields que bloquean el boton de la placa.
Comunicación
El Arduino Due numerosas facilidades para comunicarse con un ordenador, otros arduinos, microocontroladores y diferentes aparatos como teléfonos,tablets, cámaras y mucho más. El SAM3X cuenta con un UART y tres UARTS TTL (3.3V) para comunicación serial.
El puerto USB nativo esta conectado al SAM3X. Permite comunicación serial (CDC) mediante el puerto USB. Esto permite utilizar una conexión serial con el monitor serial u otras aplicaciones en el ordenador. Esto también permite a Due emular un teclado o ratón USB. Para más información consultar las paginas de documentación de la librería Mouse and Keyboar.
El puerto USB nativo puede usarse como host USB para conectar periféricos como teclados y smartphones. Para ver sus usos consulte la pagina de documentación USBHost
El SAM3X soporta comunicación TWI y SPI. El softwareee de arduino incluye la librería Wire que simplifica el uso del bus TWI, Para más información consulte ladocumentación. Para comunicación SPI consulte la librería SPI.
Programación
Arduino Due puede ser programado con el software de Arduino. Para más detalles consulte los tutoriales.
Cargar Sketcher en el SAM3X es diferente a hacerlo con los microcontroladores AVR que podemos encontrar en otras placas de Arduino porque la memoria flash necesita ser borrada antes de empezar a cargar el nuevo Sketcher. La carga de nuevos programas solo funciona cuando la memoria Flash esta vacía.
Cualquiera de los puertos USB se pueden utilizar para la programación de la placa, aunque se recomienda utilizar el puerto de programación debido a la forma en la que se gestiona el borrado de la memoria.

Puerto de Programación: Para usar este puerto hay que seleccionar “Arduino Due (Programming Port)” en el IDE de Arduino.
Conecte el puerto de programación (el más cercano a la entrada de alimentación) al ordenador. El puerto de programación utiliza el 16U2 como un chip USB a serie conectado a la primera UART del SAM3X (RX0 y TX0). El 16U2 tiene dos pines conectados a los pines de Reset y Borrado de la SAM3X. Cuando se abre el puerto de programación a 1200bps se produce un borrado completo de la memoria Flash antes de abrir la comunicación por UART para la carga del nuevo programa. Por este procedimiento el puerto de programación es el recomendado para cargar nuevos sktchers.
Puerto nativo: Para utilizarlo seleccione la opción “Arduino Due (native USB port) en el IDE de arduino. El puerto nativo esta directamente conectado al SAM3X. Conecte el Due al ordenador mediante un cable USB y presione el botón de reset. Al iniciarse una conexión a 1200bps se produce un “borrado ligero”, la memoria es borrada y la placa se reinicia desde el gestor de arranque. Si por alguna razón falla el MCU o la velocidad de conexión es diferente el borrado no se producirá y no podrá cargarse un nuevo programa.
A diferencia de otras placas de Arduino que utilizan avrdude para realizar la carga de nuevos programas, Due utiliza bossac.
El código del firmware para el Atmega16U2 esta disponible en el repositorio de Arduino. Puede usar el conector IPS y un programador externo (Sobrescribiendo el gestor de arranque DFU). Consulte los tutoriales para más información.
USB protegido de sobrecargas.
Arduino UNO cuenta con un fusible reseteable que protege el puerto USB del ordenador de cortocircuitos y sobrecargas, algunos ordenadores tienen sus propias protecciones internas, pero este fusible otorga una seguridad extra. Si se aplican más de 500mA al puerto USB el fusible se rompe automáticamente hasta que se retira la carga.
Características físicas y shields compatibles
El tamaño máximo de la placa del Arduino UNO es de 4 x 2.1 pulgadas. El USB y el jack de alimentación extienden ligeramente estas dimensiones. Cuatro agujeros permiten unirla a cualquier superficie mediante tornillos. La distancia entre los pines digitales 7 y 8 es de 160 milésimas de pulgada, no un múltiplo de 100milesimas de pulgada como en el resto de los pines.
El arduino Due esta diseñado para ser compatible con la mayoría de los shields diseñados para UNO,Diecimila or Duemilanove. Los pines digitales del 0 al 13 (y juntos a ellos AREF y pines GND), entradas analógicas de la 0 a la 5, el conector de alimentación y el conector ICSP están en la misma posición en todas ellas. La conexión serial UART principal esta en los mismos pines (0 y 1).
El conector I2C, por el contrario no se encuentra en la misma ubicación en el Due (pines 20 y 21) que en el Duemilanove o el Decima (Entradas analógicas 4 y 5).