Arduino Due

El Arduino Due es una placa electrónica basada en la CPU Atmel SAM3X8E ARM Cortex-M3 .Es la primera placa Arduino basada en un microcontrolador de núcleo ARM de 32 bits. Cuenta con 54 pines digitales de entrada / salida (de los cuales 12 se pueden utilizar como salidas PWM), 12 entradas analógicas, 4 UARTs (puertos serie de hardware), un reloj de 84 MHz, una conexión capaz USB OTG, 2 DAC (de digital a analógico) , 2 TWI, un conector de alimentación, un conector de SPI, un conector JTAG, un pulsador de reset y un pulsador de borrado.

Advertencia: A diferencia de la mayoría de las placas Arduino, la placa Arduino Due funciona a 3.3 V. La tensión máxima que los pines de E / S pueden tolerar es 3.3 V. La aplicación de tensiones superiores a 3,3 V a cualquier pin de E / S podría dañar la placa.

La placa contiene todo lo necesario para apoyar el microcontrolador; basta con conectarlo a un ordenador con un cable micro-USB o alimentarlo con un adaptador de CA a CC o una batería para empezar. El Due es compatible con todos los escudos de Arduino que funcionan a 3,3 V y cumplan con el estándar 1.0 Arduino pinout.

La Due sigue el pinout 1.0:
  • TWI pines SDA y SCL que se encuentran cerca al pin AREF:.
  • Instrucción IOREF : permite un escudo conectado con la configuración adecuada adaptarse a la tensión proporcionada por la placa. Esto permite la compatibilidad del escudo con una placa de 3,3 V como las placas basadas en AVR Due y que operan a 5 V.
  • Un pin sin conectar, reservado para uso futuro.
Empezando

En la sección de introducción , se puede encontrar toda la información que necesita para configurar la placa, utilice el software de Arduino (IDE) , y empieze a jugar con la programación y la electrónica.

Inspírate

En busca de ideas? Utilice el Arduino Due con un escudo de motor Arduino en este tutorial , hacer un generador de forma de onda sencilla utilizando el Arduino Due y sus características del CAD, y un sencillo reproductor de audio .

¿Necesitas ayuda?
Especificaciones técnicas
   microcontrolador Arduino AVR

microcontrolador
AT91SAM3X8E
Tensión de funcionamiento
3.3V
Voltaje de entrada (recomendado)
7-12V
Voltaje de entrada (límites)
6-16V
E / S digitales prendedores
54 (de los cuales 12 proporcionan salida PWM)
Pines de entrada analógica
12
Pines de salida analógicas
2 (DAC)
Corriente total de salida de CC en todas las líneas de E / S
130 mA
Corriente CC para Pin 3.3V
800 mA
Corriente DC 5V para el Pin
800 mA
Memoria flash
512 KB todo disponible para las aplicaciones de usuario
SRAM
96 KB (dos bancos: 64KB y 32KB)
Velocidad de reloj
84 MHz
Longitud
101.52 mm
Anchura
53,3 mm
Peso
36 g
Documentación

SST: Esquemas Arduino Due es hardware libre! Usted puede construir su propia placa utilizando los siguientes archivos:

ÁGUILA


ARCHIVO EAGLE 
EN .ZIP
Beneficios de la central de ARM
  • Un núcleo de 32 bits, que permite operaciones en 4 bytes de datos de ancho con un único reloj de la CPU. (para más información, vaya a la página tipo int).
  • Reloj de la CPU a 84Mhz.
  • 96 Kbytes de SRAM.
  • 512 Kbytes de memoria flash para el código.
  • Un controlador de DMA, que puede aliviar la CPU de hacer las tareas intensivas de memoria.
Alimentación eléctrica

El Arduino Due puede ser alimentado a través del conector USB o con una fuente de alimentación externa. La fuente de alimentación se selecciona automáticamente.
La alimentación (no USB) externa puede venir con un adaptador de CA a CC o una batería. El adaptador se puede conectar a un enchufe de 2,1 mm de centro-positivo en la clavija de alimentación de la placa. Los cables desde una batería pueden ser insertados en los conectores GND y Vin del conector de alimentación.

La tarjeta puede funcionar con un suministro externo de 6 a 20 voltios. Si se suministra con menos de 7 V, sin embargo, el pasador de 5 V puede suministrar menos de cinco voltios y la placa puede ser inestable. Si se utiliza más de 12 V, el regulador de voltaje se puede sobrecalentar y dañar la placa. El rango recomendado es de 7 a 12 voltios.
Los pines de alimentación son como sigue:
  • Vin. Tensión de entrada a la placa Arduino cuando se utiliza una fuente de alimentación externa (en contraposición a 5 voltios de la conexión USB o de otra fuente de alimentación regulada). Se puede suministrar tensión a través de este pin, o si el suministro de tensión a través de la toma de alimentación, acceder a él a través de este pin.
  • 5V .Este pin ofrece una salida de 5 V del regulador de la placa. La placa puede ser alimentada ya sea desde el conector de alimentación de CC (7 - 12 V), el conector USB (5V), o por el pin VIN de la placa (7-12V). El suministro de tensión a través de los conectores de 5 V o 3.3 V no pasa por el regulador, y puede dañar la placa. No es aconsejable.
  • 3V3 . Suministro de 3,3 voltios generada por el regulador de la placa. El consumo de corriente máximo es de 800 mA. Este regulador también proporciona el suministro de energía al microcontrolador SAM3X.
  • GND . Conectores de tierra.
  • IOREF . Este conector de la placa Arduino proporciona la referencia de tensión con la que opera el microcontrolador. Un escudo bien configurado puede leer la tensión del pin IOREF y seleccionar la fuente de alimentación adecuada o habilitar traductores de tensión en las salidas para trabajar con 5 V o 3.3 V.
Memoria

El SAM3X tiene 512 KB (2 bloques de 256 KB) de memoria flash para el almacenamiento de código. El cargador de arranque (bootloader) está precargado en la fábrica de Atmel y se almacena en una memoria ROM dedicada. La SRAM disponible es de 96 KB en la segunda caja contigua de 64 KB y 32 KB. Toda la memoria disponible (Flash, RAM y ROM) se puede acceder directamente como un espacio de direccionamiento plano.
Es posible borrar la memoria flash de la SAM3X con el pulsador de borrado de la placa. Esto eliminará el programa cargado actualmente de la MCU. Para borrar, pulse y mantenga pulsado el pulsador de borrado durante unos segundos mientras se alimenta la placa.

Entrada y salida
  • E / S digitales: Contactos de 0 a 53. Cada uno de los 54 pines digitales en la Debido se puede utilizar como una entrada o salida, utilizando pinMode () , digitalWrite () , y digitalRead () funciones. Operan a 3,3 voltios. Cada pin puede proporcionar (fuente) una corriente de 3 mA o 15 mA, dependiendo de la clavija, o recibir (sumidero) una corriente de 6 mA o 9 mA, dependiendo de la clavija. También tienen una resistencia de pull-up (desconectada por defecto) de 100 kOhm. Además, algunos pines tienen funciones especializadas:
  • Serie: 0 (RX) y 1 (TX)
  • Serie 1: 19 (RX) y 18 (TX)
  • Serie 2: 17 (RX) y 16 (TX)
  • Serie 3: 15 (RX) y 14 (TX)
    Se utiliza para recibir (RX) y transmitir datos en serie (TX) TTL (con 3,3 V). Los pines 0 y 1 están conectados a los pines correspondientes del chip serie ATmega16U2 de USB a TTL.
  • PWM: Contactos de 2 a 13
    proporcionan una salida PWM de 8 bits con la función analogWrite () . la resolución de PWM se puede cambiar con la función   analogWriteResolution ().
  • SPI: Conector SPI (conector ICSP en otras placas Arduino) 
    Estos pines admiten la comunicación SPI utilizando la biblioteca SPI . Los pines SPI se desglosan en el conector de 6 pines central, que es físicamente compatible con el Uno, Leonardo y Mega2560. El conector SPI sólo se puede utilizar para comunicarse con otros dispositivos SPI, no para programar el SAM3X con la técnica programación serie en circuito. El SPI dela Due también tiene funciones avanzadas que se pueden utilizar con los métodos SPI extendidos para Due.
  • CAN: CANRX y CANTX
    Estos pines soportan el protocolo de comunicación CAN, pero aún no están soportadas por las API no Arduino.
  • "L" LED: 13
    Hay un LED incorporado conectado al pin digital 13. Cuando el pasador es alta, el LED está encendido, cuando el pasador es bajo, es apagado. También es posible regular el LED debido a que el pin digital 13 es también una salida PWM.
  • TWI 1: 20 (SDA) y 21 (SCL)
  • TWI 2: SDA1 y SCL1.
    Soporte de comunicación TWI utilizando la biblioteca Wire. SDA1 y SCL1 se pueden controlar mediante la clase Wire1 proporcionada por la biblioteca Wire . Mientras SDA y SCL tienen resistencias de pull-up internas, SDA1 y SCL1 no las tienen. La adición de dos resistencias de pull-up en las líneas SDA 1 y SCL1 son necesarias para utilizar Wire1.
  • Entradas analógicas:Pines A0 a A11
    La Due tiene 12 entradas analógicas, cada una de las cuales puede proporcionar 12 bits de resolución (es decir, 4096 valores diferentes). Por defecto, la resolución de las lecturas se fija en 10 bits, por compatibilidad con otras placas Arduino. Es posible cambiar la resolución del ADC con analogReadResolution () . Los pines de las entradas analógicas miden desde masa hasta un valor máximo de 3.3 V. La aplicación de más de 3,3 V en los pines de la Due dañará el chip SAM3X. La función analogReference () se ignora en la Due.
    El pin AREF está conectado al pin de referencia analógica SAM3X a través de un puente de resistencias. Para utilizar el pin AREF, la resistencis BR1 debe desoldarse del PCB.
  • DAC1 y DAC2
    Estos pines proporcionan verdaderas salidas analógicas con una resolución de 12 bits (4096 niveles) con la finción analogWrite (). Estos pines se pueden usar para crear una salida de audio utilizando la biblioteca de audio.
Otros pines de la placa:
  • AREF
    Tensión de referencia para las entradas analógicas. Se utiliza con analogReference () .
  • Reset
    Llevar esta línea baja para reiniciar el microcontrolador. Normalmente se utiliza para añadir un pulsador de reset para escudos que bloquean la placa.
Ver también la correspondencia entre los pines de Arduino y los puertos SAM3X:

 
Comunicación

El Arduino Due tiene una serie de instalaciones para la comunicación con un ordenador, otro Arduino u otros microcontroladores, y diferentes dispositivos, como los teléfonos, tabletas, cámaras y así sucesivamente. El SAM3X proporciona una UART hardware y tres USARTs hardware de comunicación serie para TTL  (3,3 V).
El puerto de programación está conectado a un ATmega16U2, que proporciona un puerto COM virtual de software en un ordenador conectado (Para reconocer el dispositivo, las máquinas de Windows necesitarán un archivo .inf, pero las máquinas OSX y Linux reconocerán la placa como un puerto COM de forma automática ). El 16U2 también está conectado a la UART hardware SAM3X. Los pines RX0 y TX0 proporcionan comunicación serie a USB para la programación de la placa a través del microcontrolador ATmega16U2. El software de Arduino incluye un monitor serie que permite a los datos de texto simples ser enviados hacia y desde la placa. Los LEDs RX y TX de la placa parpadean cuando se están transmitiendo datos a través de la conexión USB y ATmega16U2 al ordenador (pero no para la comunicación  serie en los pines 0 y 1).

El puerto USB nativo está conectado a la SAM3X. Permite la comunicación serie (CDC) a través de USB. Esto proporciona una conexión serie con el Monitor serie u otras aplicaciones del equipo. También le permite a la Due emular un ratón o teclado USB con un ordenador conectado. Para utilizar estas funciones, consulte la página de referencia de la biblioteca ratón y el teclado .

El puerto USB nativo también puede actuar como un host USB para periféricos conectados, tales como ratones, teclados y teléfonos inteligentes. Para utilizar estas funciones, consulte las páginas de referencia usbhost .

El SAM3X también es compatible con la comunicación TWI y SPI. El software de Arduino incluye una biblioteca Wire para simplificar el uso del bus TWI; véase la documentación para más detalles. Para la comunicación SPI, utilice la biblioteca SPI .

Programación

El Due se puede programar con el Software Arduino (IDE). Para más detalles, véase la referencia y tutoriales .

La carga de programas a la SAM3X es diferente a los microcontroladores AVR se encuentran en otras placas Arduino, porque tiene que ser borrado antes de ser re-programada en la memoria flash. La subida al chip es administrada por la ROM en el SAM3X, que se ejecuta sólo cuando la memoria flash del chip está vacía.
Cualquiera de los puertos USB se puede utilizar para la programación de la placa, aunque se recomienda utilizar el puerto de programación debido a la forma en que se gestiona el borrado del chip:
  • puerto de programación: Para utilizar este puerto, seleccione "Arduino Due (Puerto de programación)" de su placa en el IDE de Arduino. Conecte el puerto de programación de la Due (el más cercano a la toma de alimentación de CC) al ordenador. El puerto de programación utiliza el 16U2 como un chip de USB a serie conectado a la primera UART del SAM3X (RX0 y TX0). El 16U2 tiene dos pines conectados al reset y borrar pines del SAM3X. Abrir y cerrar el puerto de programación conectado a 1200 bps desencadena un procedimiento de "borrado duro " de la pastilla SAM3X, activar el borrado y Reset de los pines en el SAM3X antes de comunicarse con la UART. Este es el puerto recomendado para la programación de la Due. Es más fiable que el "borrado suave" que se produce en el puerto nativo, y debería funcionar incluso si el MCU se ha estropeado.
  • puerto nativo: Para utilizar este puerto, seleccione "Arduino Due (puerto USB nativo)" que su tablero en el IDE de Arduino. El puerto USB nativo está conectado directamente a la SAM3X. Conectar el puerto USB nativo de la Due (el más cercana al pulsador de reset) al la ordenador. Abrir y cerrar el puerto nativo a 1200 bps desencadena un procedimiento de 'borrado suave ": la memoria flash se borra y la placa se reiniciará con el gestor de arranque. Si la MCU cayó por alguna razón, es probable que el procedimiento de borrado suave no funcione como este procedimiento ocurre normalmente en software en el SAM3X. La apertura y cierre del puerto nativo a una velocidad de transmisión diferente, no se reiniciará el SAM3X.
A diferencia de otras placas Arduino que utilizan avrdude para cargar, la Due se basa en bossac .El código fuente del firmware ATmega16U2 está disponible en el repositorio Arduino . Se puede utilizar el conector ISP con un programador externo (sobrescribir el gestor de arranque DFU). Ver este tutorial aportado por el usuario para obtener más información. 

Protección multifunción USB
La Arduino Due tiene un polyfsible rearmable que protege a los puertos USB de su ordenador de cortocircuitos y sobrecorriente. Aunque la mayoría de los ordenadores establecen su propia protección interna, el fusible proporciona una capa adicional de protección. Si hay más de 100 mA  aplicados al puerto USB, el fusible interrumpirá automáticamente la conexión hasta que se repara el cortocircuito o se elimina la sobrecarga.

Características físicas y compatibilidad

La longitud y la anchura máxima de la placa Arduino Due es de 4 y 2,1 pulgadas, respectivamente, con los conectores USB y conector de alimentación que se extiende más allá de la dimensión anterior. Tres orificios de los tornillos permiten que la placa pueda montarse en una superficie o caja. Tenga en cuenta que la distancia entre los pines digitales 7 y 8 es de 160 mil (0,16 "), no como la separación de 100 milésimas de pulgada de los otros pines.

La Arduino Due está diseñada para ser compatible con la mayoría de los shield para el Uno, Diecimila o Duemilanove. Los pines digitales 0 a 13 (y el pinAREF y pines GND), las entradas analógicas de 0 a 5, en el conector de alimentación, y el conector (SPI) "ICSP" están todos en puntos equivalentes. Aún más la UART principal (puerto serie) se encuentra en los mismos pines (0 y 1).

Tenga en cuenta que I2C no se encuentra en los mismos pines en la Due (20 y 21) como el Duemilanove / Diecimila (entradas analógicas 4 y 5 ) .

2 comentarios:

  1. buenos dias, gracias por todo el tema, mi pregunta es: estoy experimentando con el uso de "IRFZ44" controlado por el arduino, pero solo encuentro el control por pwm, haciendo pruebas con el osciloscopio veo que arduino maneja frecuencia de 62 Khz 50% ciclo,la cual me vendria muy bien para mis proyectos de fuente conmutada y es tan sencillo como usar "Tone(pin,frecuencia);" pero mi pregunta es, por que nadie lo usa? hay algun inconveniente en ello? no encontre informacion que use el tone, mas que para producir sonido.

    ResponderEliminar
  2. ciclo,la cual me vendria muy bien para mis proyectos de fuente conmutada y es tan sencillo como usar "Tone(pin,frecuencia);" pero mi pregunta es, por que nadie lo usa? hay algun inconveniente en ello? no encontre informacion que use el tone, mas que para producir https://coaching-mastery.com/5-pasos-para-conseguir-un-prestamo-personal/

    ResponderEliminar