Código: ARD0010735
R$ 299,00

O Arduino Due é uma placa de microcontrolador baseado no Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). É a primeira placa Arduino baseada em um microcontrolador ARM de 32 bits. Tem 54 pinos de entrada e saída digital, dos quais 12 podem ser utilizados como saídas PWM, 12 entradas analógicas, 4 UARTs (Universal asynchronous receiver/transmitter), clock de 84MHz, uma conexão USB OTG (on the go), 2 DAC (digital to analog converter), 2 TWI (two wire interface), uma entrada de alimentação, um barramento SPI, um barramento JTAG, um botão de reset, e um botão de erase.

Arduino Due

Arduino Due

 Nota: Diferente de outras placas Arduino, o Due funciona com 3,3V. A voltagem máxima que um um pino de entrada e saída pode tolerar é 3,3V. Fornecer voltagens mais altas, como 5V, pode causar danos permanentes à placa.

A placa contém tudo o que necessário para dar suporte ao microcontrolador, simplesmente conecte a um computador com um cabo micro USB ou alimente com uma fonte ou bateria para dar os primeiros passos. O Due é compatível com todos os shields que trabalham com 3,3V e tem a pinagem compatível com o Arduino Uno:

  • TWI: pinos SDA e SCL próximos ao AREF.
  • O pino IOREF que permite a um shield encaixado, com a configuração necessária, se adaptar à voltagem fornecida pela placa. Isto habilita a compatibilidade de uma placa de 3,3V como o Due e outras placas que operam a 5V.
  • Um pino não conectado, reservado para o futuro.

O Due tem um fórum específico para discussões referentes a esta placa.

Benefícios do núcleo ARM

O Due tem um núcleo ARM de 32 bits que pode ter performance melhor que placas típicas de microcontrolador de 8 bits. As diferenças mais significantes são:

  • Núcleo de 32 bits, que permite operações em 4 bites em um único ciclo da CPU (para mais informações veja a página do tipo int)
  • clock de CPU de 84MHz.
  • 96 KBytes de SRAM.
  • 512 KBytes de memória Flash para código.
  • controlador DMA (direct memory access) que pode substituir a CPU em tarefas com uso intensivo de memória.

Esquema, Referência de design e pinagem

arquivos EAGLE: arduino-Due-reference-design.zip

Esquema: arduino-Due-schematic.pdf

Pinagem: Pinagem SAM3X Arduino

Sumário

Microcontrolador AT91SAM3X8E
Voltagem operacional 3,3V
Voltagem de alimentação (recomendada) 7 a 12V
Voltagem de alimentação (limites) 6 a 20V
Pinos E/S Digital
 54 (12 dos quais podem ser saídas PWM)
Pinos de entrada analógica 12
Pinos de saída analógica 2 (DAC)
Corrente contínua total em todas as linhas de E/S 130 mA
Corrente contínua para o pino 3.3V
 800 mA
Corrente contínua para o pino for 5V
 800 mA
Memória Flash
 512 KB totalmente disponíveis para aplicações do usuário
SRAM 96 KB (dois bancos: 64KB e 32KB)
velocidade de Clock
 84 MHz

Alimentação

O Arduino Due pode ser alimentado pelo conector USB ou com uma fonte externa. A origem da alimentação é selecionada automaticamente.

Alimentação externa (não USB) pode ser tanto de uma fonte quanto de uma bateria. Há um conector para alimentação de 2,1mm com o positivo no centro. Cabos vindos de uma bateria podem ser inseridos diretamente nos pinos Gnd e Vin do conector de alimentação.

A placa pode funcionar com uma alimentação externa entre 6 e 20V. Entretanto, se for fornecido menos de 7V o pino de 5V não alcançará este potencial e a placa pode se tornar instável. Se for utilizado mais de 12V o regulador de voltagem pode superaquecer e causar danos à placa. A faixa recomendada é de 7 a 20 volts.

Os pinos de alimentação são os seguintes:

  • VIN. A voltagem de entrada do Due quando se está utilizando uma fonte de alimentação externa (em oposição aos 5V da conexão USB ou de outra entrada regulada). Você pode fornecer alimentação através deste pino, ou se estiver fornecendo energia pelo conector de alimentação acessar esta voltagem através deste pino.
  • 5V. Este pino fornece uma saída regulada de 5V a partir do regulador embarcado. A placa pode ser alimentada pelo conector de alimentação (7 a20V), pelo conector USB (5V), ou pelo pino VIN (7 a 12V). Fornecer alimentação pelos pinos 5V ou 3.3V desviam a voltagem do regulador e pode causar danos permanentes. Isto deve ser evitado.
  • 3.3V. Uma alimentação de 3,3 volts gerada pelo regulador embarcado. A corrente máxima que pode ser fornecida é de 800mA. Este regulador também fornece alimentação para o microcontrolador SAM3X.
  • GND. Pinos de aterramento..
  • IOREF. Este pino nas placas Arduino fornecem a voltagem de referência com a qual o microcontrolador opera. Um shield corretamente configurado pode ler a voltagem neste pino e selecionar a fonte de alimentação adequada ou habilitar transístores nas saídas para trabalhar com 5V ou 3,3V.

Memória

O SAM3X tem 512KB (2 blocos de 256KB) de memória flash para armazenamento de código. O bootloader é pregravado de fábrica pela Atmel e armazenado em memória ROM dedicada. Os 96KB de SRAM estão disponíveis em dois bancos de 64KB e 32KB. Toda a memória disponível (Flash, RAM e ROM) pode ser acessada diretamente como um espaço plano de endereçamento.

É possível apagar a memória Flash do SAM3X com o botão de "erase" embarcado. Isto removerá a scketch atualmente gravada na placa. Para apagar precione este botão por alguns segundos enquanto a placa estiver alimentada.

Entrada e saída

  • Digital E/S: pinos de 0 a 53
    Cada uma das 54 linhas digitais no Due pode ser utilizada como uma entrada ou uma saída, utilzando as funções pinMode(), digitalWrite(), e  digitalRead(). Eles operam a 3,3V. Cada pino pode fornecer (fonte) uma corrente de 3mA ou 15mA, dependendo do pino, ou receber (drenar) uma corrente de 6mA ou 9mA, dependendo do pino. Eles também têm um resistor de elevação (desconectado por padrão) de 100kΩ. Em adição alguns pinos têm funções especializadas:
  • Serial: 0 (RX) e 1 (TX)
  • Serial 1: 19 (RX) e 18 (TX)
  • Serial 2: 17 (RX) e 16 (TX)
  • Serial 3: 15 (RX) e 14 (TX)
    Utilzados para receber (RX) e transmitir (TX) dados seriais TTL (com nível de 3,3V). Os pinos 0 e 1 estão conectados aos pinos correspondentes do chip  ATmega16U2 USB-to-TTL Serial (o que faz a conversão da comunicação serial para USB).
  • PWM: Pinos 2 a 13
    Fornecem saida PWM de 8 bits com a função analogWrite(). A resolução do PWM pode ser alterada com a função analogWriteResolution().
  • SPI: barramento SPI (barramento ICSP em outras placas Arduino)
    Estes pinos dão suporte à comunicação SPI utilizando a biblioteca SPI. Os pinos SPI estão disponíveis no barramento central de 6 pinos, o que é fisicamente compátivel com os Uno, Leonardo e Mega2560. O barramento SPI pode ser utilizado apenas para se comunicar com outros dispositivos SPI, e não para programar o SAM3X com o técnica de programação serial em circuito. O SPI do Due também características avançadas que podem ser utilizadas com os métodos SPI extendidos para Due.
  • CAN: CANRX and CANTX
    Estes pinos dão suporte ao protocolo de comunicação CAN mas ainda não é suportado pelas APIs do Arduino.
  • "L" LED: 13
    Há um LED embarcado conectado ao pino 13. Quando o pino está em HIGH, o LED está aceso, quando o está em LOW, está apagado. Também é possível dimerizar este LED porque o pino 13 é também uma saída PWM.
  • TWI 1: 20 (SDA) e 21 (SCL)
  • TWI 2: SDA1 e SCL1.
    Suporte à comunicação TWI utilizando a  Biblioteca Wire.
  • Entradas Analógicas: pinos A0 a A11
    O Due tem 12 entradas analógicas, cada uma das quais podem fornecer 12bits de resolução (i.e 4096 valores diferentes). Por padrão a resolução destas leituras é de 10 bits para compatibilidade com outras placas Arduino. É possível alterar a resolução do ADC com analogReadResolution(). As entradas analógicas do Due medem de terra ao máximo de 3,3V. Aplicar mais de 3,3V aos pinos do Due causa danos permanentes ao chip SAM3X. A função analogReference() é ignorada no Due.

O pino AREF é conectado à referência analógica do SAM3X através de uma ponte de resistiva. Para utilizar o pino AREF o resistor BR1 deve ser desconectado (dessoldado) da placa.

  • DAC1 e DAC2
    Estes pinos forncem saídas analógicas reais com 12 bits de resolução (4090 níveis) com a função analogWrite(). Estes pinos podem ser utilizados para gerar saídas de áudio utilizando a biblioteca de áudio.

Outros pinos na placa:

  • AREF
    Voltagem de referência para as entradas analógicas. Utilizada com analogReference().
  • Reset
    Rebaixe esta linha (LOW) para resetar o microcontrolador. Tipicamente usada para adicionar um botão de reset a shields que bloqueiam o que está na placa.

Comunicação

O Arduino Due tem uma série de facilidades para se comunicar com um computador, com outro Arduino, outros microcontroladores, e diferentes dispositivos como telefones celulares tablets, câmeras entre outros. O SAM3X fornece um UART de hardware e três USARTs para comunicação serial TTL de 3,3V.

A porta de programação está conectada a um ATmega16U2, que fornece uma porta COM virtual para softwares em um computador conectado à placa (para receonhecer o dispositivo, máquinas Windows necessitam de um arquivo .inf, mas máquinas com OSX e Linux reconhecem a placa como uma porta COM automaticamente). O 16U2 também está conectado ao hardware UART do SAM3X. Serial nos pinos RX0 e TX0 fornecem comunicação Serial-USB para programar a placa através do ATmega16U2. O software do Arduino inclui um monitor serial que permite dados textuais simples ser enviados de e para a placa. Os LEDs RX e TX na placa piscarão quando dados estiverem sendo transmitidos via o ATmega16U2 e pela conexão serial do computador (mas não para comunicação serial nos pinos 0 e 1).

A porta USB nativa está conectada ao SAM3X. Isso permite comunicação serial (CDC) pela USB e fornece uma conexão serial para o monitor ou outras aplicações em seu computador. Também permite ao Due emular uma mouse USB ou um teclado em um computador a que esteja conectado. Para utilizar estas características veja as páginas de referência de mouse e teclado.

A porta nativa USB também pode atuar como um host USB para periféricos conectados como mouses, teclados e smartphones. Para usar estas características veja as páginas de referência USBHost.

O SAM3X tabém suporta comunicação TWI e SPI. O software Arduino inclui uma biblioteca Wire para simplificar o uso da conexão TWI. Veja a documentação para detalhes. Para comunicação SPI utilize a biblioteca SPI.

Programação

O Arduino Due pode ser programado com o software Arduino (download). Para mais detalhes veja a referência e tutoriais.

Enviar scketches para o SAM3X é diferente do que para os microcontroladores AVR encontrados em outras placas Arduino por que a memória flash necessita ser apagada antes de ser re-programada. O envio para o chip é gerenciado pela ROM no SAM3X que só roda quando a memória flash do chip está vazio.

Arduino Due

Qualquer das portas USB podem ser usadas para programar a placa, embora seja recomendado o uso da porta de programação devido ao modo como o apagamento do chip é feito:

  • Porta de programação: para usar esta porta selecione "Arduino Due (Programming port)" como sua placa na IDE do Arduino. Conecte a porta de programação do Due ao seu computador. A porta de programação utiliza o 16U2 como chip USB-Serial conectado ao primeiro UART do SAM3X (RX0 e TX0). O 16U2 tem dois pinos conectados aos pinos de reset e de erase do SAM3X. Abrindo e fechando a porta de programação conectada a 1200bps dispara um procedimento de "hard erase" do chip SAM3X, ativando os pinos de Erase e Reset antes de se comunicar com a UART. Esta é a porta recomendada para programação do Due. É mais confiavel do que o "soft erase" que ocorre na porta nativa, e deve funcionar mesmo se o microcontrolador tiver travado.
  • Porta nativa: Para usar esta porta selecione "ARduino Due (Native USB Port)" como sua placa na IDE do Arduino. A porta nativa é conectada diretamente ao SAM3X. Conecte esta porta ao seu computador. Abrir e fechar a porta Nativa a 1200bps dispara um procedimento de "soft erase": a memória flash é apagada e a placa é reiniciada com o bootloader. Se o microcontrolador tiver travado por algum motivo é provável que o procedimento não funcione. Abrir e fechar a porta a uma diferente baudrate não resetará o SAM3X.

Diferente de outras placas Arduino que utilizam o AVRdude para upload, o Due se valo do bossac.

O código fonte do firmware do ATmega16U2 está disponíevl no repositório Arduino. Você pode utilizar o barramento ISP com um programador externo de hardware (sobrescrevendo o bootloader DFU). Veja este tutorial para mais informações.

Proteção de sobrecorrente USB

O Arduino Due tem um fusível resetável que protege a porta USB de seu computador de curtos e de sobrecorrente. Embora muitos computadores disponham de sua própria proteção interna este fusível fornece uma camada a mais de proteção. Se mais de 500mA forem aplicados à porta USB o fusível automaticamente interrompe a comunicação até que o curto ou a sobrecarga seja removida.

Características físicas e compatibilidade com shields

O comprimento e largura máximos da placa Arduino Due são 10,16 e 5,34cm respectivamente, com os conectores USB e de alimentação se projetando pouco além desta dimensão. Três orifícios para parafusos permitem que a placa seja conectada a uma superfície ou a um case. Note que a distância entre os pinos digitais 7 e 8 é de 0,16" que não obedece ao padrão convencional de 0,1".

O Arduino Due foi desenvolvido para ser compatível com a maioria dos shields do Arduino Uno, Diecimila ou Duemilanove. Os pinos digitais de 0 a 13 (e os adjacentes AREF e GND), entradas analógicas de 0 a 5, os barramento de alimentação  e ICSP estão todos em localizações equivalentes. Além disso o UART principal (porta serial) está localizado nos mesmos pinos (0 e 1). Note que o I2C não está localizado nos mesmos pinos no Due (20 e 21) que nos anteriores Duemilanove e Diecimila (entradas analógicas 4 e 5).

 

Oferta válida por tempo limitado ou enquanto durarem os estoques.
Preço anterior: R$ 329,00