Arduino Due
Arduino Due
Arduino Due è una scheda microcontrollore basata sulla CPU Atmel SAM3X8E ARM Cortex-M3 . È la prima scheda Arduino basata su un microcontrollore ARM core a 32 bit. Ha 54 pin di input/output digitali (di cui 12 possono essere utilizzati come output PWM), 12 input analogici, 4 UART (porte seriali hardware), un clock da 84 MHz, una connessione USB OTG, 2 DAC (digitale-analogico), 2 TWI, un jack di alimentazione, un header SPI, un header JTAG, un pulsante di reset e un pulsante di cancellazione.
Attenzione: a differenza della maggior parte delle schede Arduino, la scheda Arduino Due funziona a 3,3 V. La tensione massima che i pin I/O possono tollerare è 3,3 V. L'applicazione di tensioni superiori a 3,3 V a qualsiasi pin I/O potrebbe danneggiare la scheda.
La scheda contiene tutto il necessario per supportare il microcontrollore; basta collegarla a un computer con un cavo micro-USB o alimentarla con un adattatore AC-DC o una batteria per iniziare. La Due è compatibile con tutti gli shield Arduino che funzionano a 3,3 V e sono conformi al pinout Arduino 1.0.
Il Due segue il pinout 1.0:
- TWI : pin SDA e SCL che si trovano vicino al pin AREF.
- IOREF : consente a uno shield collegato con la configurazione corretta di adattarsi alla tensione fornita dalla scheda. Ciò consente la compatibilità dello shield con una scheda da 3,3 V come le schede basate su Due e AVR che funzionano a 5 V.
- Un pin non collegato, riservato per un uso futuro.
Iniziare
Nella sezione Introduzione puoi trovare tutte le informazioni necessarie per configurare la tua scheda, utilizzare il software Arduino (IDE) e iniziare a sperimentare con la codifica e l'elettronica.
Specifiche tecniche
| Microcontrollore | AT91SAM3X8E |
| Tensione di esercizio | 3,3 V |
| Tensione di ingresso (consigliata) | 7-12V |
| Tensione di ingresso (limiti) | 6-16 V |
| Pin I/O digitali | 54 (di cui 12 forniscono uscita PWM) |
| Pin di ingresso analogici | 12 |
| Pin di uscita analogici | 2 (DAC) |
| Corrente di uscita CC totale su tutte le linee I/O | 130mA |
| Corrente CC per pin da 3,3 V | 800mA |
| Corrente CC per pin 5V | 800mA |
| Memoria Flash | 512 KB tutti disponibili per le applicazioni utente |
| SRAM | 96 KB (due banche: 64 KB e 32 KB) |
| Velocità di clock | 84MHz |
| Lunghezza | 101,52 millimetri |
| Larghezza | 53,3 millimetri |
| Peso | 36 grammi |
Documentazione
OSH: Schemi
Arduino Due è hardware open source! Puoi costruire la tua scheda usando i seguenti file:
DIMENSIONE DELLA SCHEDA IN .PDF
Diagramma dei pinout

Scarica qui lo schema completo dei pinout in formato PDF .
Energia
L'Arduino Due può essere alimentato tramite il connettore USB o con un alimentatore esterno. La fonte di alimentazione viene selezionata automaticamente.
L'alimentazione esterna (non USB) può provenire da un adattatore AC-DC (presa a muro) o da una batteria. L'adattatore può essere collegato inserendo una spina centrale positiva da 2,1 mm nel jack di alimentazione della scheda. I cavi di una batteria possono essere inseriti nei pin header Gnd e Vin del connettore POWER.
La scheda può funzionare con un'alimentazione esterna da 6 a 20 volt. Se alimentata con meno di 7 V, tuttavia, il pin da 5 V potrebbe fornire meno di cinque volt e la scheda potrebbe essere instabile. Se si utilizzano più di 12 V, il regolatore di tensione potrebbe surriscaldarsi e danneggiare la scheda. L'intervallo consigliato è da 7 a 12 volt.
I pin di alimentazione sono i seguenti:
- Vin. La tensione di ingresso alla scheda Arduino quando utilizza una fonte di alimentazione esterna (in contrapposizione ai 5 volt della connessione USB o di un'altra fonte di alimentazione regolata). Puoi fornire tensione tramite questo pin oppure, se fornisci tensione tramite il jack di alimentazione, accedervi tramite questo pin.
- 5V . Questo pin emette 5V regolati dal regolatore sulla scheda. La scheda può essere alimentata tramite il jack di alimentazione CC (7 - 12V), il connettore USB (5V) o il pin VIN della scheda (7-12V). L'alimentazione tramite i pin 5V o 3,3V bypassa il regolatore e può danneggiare la scheda. Lo sconsigliamo.
- 3V3 . Un'alimentazione da 3,3 volt generata dal regolatore di bordo. L'assorbimento di corrente massimo è di 800 mA. Questo regolatore fornisce anche l'alimentazione al microcontrollore SAM3X.
- GND . Pin di terra.
- IOREF . Questo pin sulla scheda Arduino fornisce il riferimento di tensione con cui funziona il microcontrollore. Uno shield configurato correttamente può leggere la tensione del pin IOREF e selezionare la fonte di alimentazione appropriata o abilitare i traduttori di tensione sulle uscite per lavorare con 5 V o 3,3 V.
Memoria
Il SAM3X ha 512 KB (2 blocchi da 256 KB) di memoria flash per l'archiviazione del codice. Il bootloader è pre-masterizzato in fabbrica da Atmel ed è archiviato in una memoria ROM dedicata. La SRAM disponibile è di 96 KB in due banchi contigui da 64 KB e 32 KB. Tutta la memoria disponibile (Flash, RAM e ROM) è accessibile direttamente come uno spazio di indirizzamento piatto.
È possibile cancellare la memoria Flash del SAM3X con il pulsante di cancellazione integrato. Ciò rimuoverà lo sketch attualmente caricato dalla MCU. Per cancellare, premere e tenere premuto il pulsante di cancellazione per alcuni secondi mentre la scheda è alimentata.
Ingresso e uscita
- I/O digitale: pin da 0 a 53
- Ognuno dei 54 pin digitali sul Due può essere utilizzato come input o output, utilizzando le funzioni pinMode() , digitalWrite() e digitalRead() . Funzionano a 3,3 volt. Ogni pin può fornire (source) una corrente di 3 mA o 15 mA, a seconda del pin, o ricevere (sink) una corrente di 6 mA o 9 mA, a seconda del pin. Hanno anche una resistenza pull-up interna (scollegata per impostazione predefinita) di 100 KOhm. Inoltre, alcuni pin hanno funzioni specializzate:
- Seriale: 0 (RX) e 1 (TX)
- Seriale 1: 19 (RX) e 18 (TX)
- Seriale 2: 17 (RX) e 16 (TX)
- Seriale 3: 15 (RX) e 14 (TX) Utilizzati per ricevere (RX) e trasmettere (TX) dati seriali TTL (con livello 3,3 V). I pin 0 e 1 sono collegati ai pin corrispondenti del chip seriale USB-TTL ATmega16U2.
- PWM: i pin da 2 a 13 forniscono un'uscita PWM a 8 bit con la funzione analogWrite() . La risoluzione del PWM può essere modificata con la funzione analogWriteResolution().
- SPI: header SPI (header ICSP su altre schede Arduino) Questi pin supportano la comunicazione SPI tramite la libreria SPI . I pin SPI sono suddivisi nell'header centrale a 6 pin, che è fisicamente compatibile con Uno, Leonardo e Mega2560. L'header SPI può essere utilizzato solo per comunicare con altri dispositivi SPI, non per programmare SAM3X con la tecnica In-Circuit-Serial-Programming. L'SPI di Due ha anche funzionalità avanzate che possono essere utilizzate con i metodi Extended SPI per Due.
- CAN: CANRX e CANTX Questi pin supportano il protocollo di comunicazione CAN ma non sono ancora supportati dalle API Arduino.
- LED "L": 13 C'è un LED incorporato collegato al pin digitale 13. Quando il pin è HIGH, il LED è acceso, quando il pin è LOW, è spento. È anche possibile attenuare il LED perché il pin digitale 13 è anche un'uscita PWM.
- TWI 1: 20 (SDA) e 21 (SCL)
- TWI 2: SDA1 e SCL1. Supporta la comunicazione TWI tramite la libreria Wire. SDA1 e SCL1 possono essere controllati tramite la classe Wire1 fornita dalla libreria Wire . Mentre SDA e SCL hanno resistori pullup interni, SDA1 e SCL1 non ne hanno. Per utilizzare Wire1 è necessario aggiungere due resistori pullup sulle linee SDA1 e SCL1.
- Ingressi analogici: pin da A0 a A11 La Due ha 12 ingressi analogici, ognuno dei quali può fornire 12 bit di risoluzione (ovvero 4096 valori diversi). Di default, la risoluzione delle letture è impostata a 10 bit, per compatibilità con altre schede Arduino. È possibile modificare la risoluzione dell'ADC con analogReadResolution() . I pin degli ingressi analogici della Due misurano da terra a un valore massimo di 3,3 V. Applicare più di 3,3 V sui pin della Due danneggerà il chip SAM3X. La funzione analogReference() viene ignorata sulla Due.
Il pin AREF è collegato al pin di riferimento analogico SAM3X tramite un ponte di resistori. Per utilizzare il pin AREF, il resistore BR1 deve essere dissaldato dal PCB.
- DAC1 e DAC2 Questi pin forniscono vere uscite analogiche con risoluzione a 12 bit (4096 livelli) con la funzione analogWrite() . Questi pin possono essere utilizzati per creare un'uscita audio utilizzando la libreria Audio.
Si prega di notare che l'intervallo di uscita del DAC è in realtà solo da 0,55 V a 2,75 V.
Altri pin sulla bacheca:
- AREF Tensione di riferimento per gli ingressi analogici. Utilizzato con analogReference() .
- Reset Porta questa linea a LOW per resettare il microcontrollore. Solitamente utilizzato per aggiungere un pulsante di reset agli shield che bloccano quello sulla scheda.
Vedere anche la mappatura tra i pin Arduino e le porte SAM3X:
Comunicazione
L'Arduino Due ha una serie di funzionalità per comunicare con un computer, un altro Arduino o altri microcontrollori e diversi dispositivi come telefoni, tablet, fotocamere e così via. Il SAM3X fornisce un UART hardware e tre USART hardware per la comunicazione seriale TTL (3,3 V).
La porta di programmazione è collegata a un ATmega16U2, che fornisce una porta COM virtuale al software su un computer collegato (per riconoscere il dispositivo, le macchine Windows avranno bisogno di un file .inf, ma le macchine OSX e Linux riconosceranno automaticamente la scheda come una porta COM). Il 16U2 è anche collegato all'hardware UART SAM3X. La seriale sui pin RX0 e TX0 fornisce la comunicazione seriale-USB per la programmazione della scheda tramite il microcontrollore ATmega16U2. Il software Arduino include un monitor seriale che consente di inviare semplici dati testuali da e verso la scheda. I LED RX e TX sulla scheda lampeggeranno quando i dati vengono trasmessi tramite il chip ATmega16U2 e la connessione USB al computer (ma non per la comunicazione seriale sui pin 0 e 1).
La porta USB nativa è collegata al SAM3X. Consente la comunicazione seriale (CDC) tramite USB. Ciò fornisce una connessione seriale al Serial Monitor o ad altre applicazioni sul computer. Consente inoltre al Due di emulare un mouse o una tastiera USB su un computer collegato. Per utilizzare queste funzionalità, vedere le pagine di riferimento della libreria Mouse e tastiera .
La porta USB nativa può anche fungere da host USB per periferiche connesse come mouse, tastiere e smartphone. Per utilizzare queste funzionalità, vedere le pagine di riferimento USBHost .
Il SAM3X supporta anche la comunicazione TWI e SPI. Il software Arduino include una libreria Wire per semplificare l'uso del bus TWI; vedere la documentazione per i dettagli. Per la comunicazione SPI, utilizzare la libreria SPI .
Programmazione
Il Due può essere programmato con l'Arduino Arduino Software (IDE). Per i dettagli, vedere il riferimento e i tutorial .
Il caricamento degli sketch sul SAM3X è diverso rispetto ai microcontrollori AVR presenti in altre schede Arduino perché la memoria flash deve essere cancellata prima di essere riprogrammata. Il caricamento sul chip è gestito dalla ROM sul SAM3X, che viene eseguita solo quando la memoria flash del chip è vuota.

Entrambe le porte USB possono essere utilizzate per programmare la scheda, anche se si consiglia di utilizzare la porta di programmazione a causa del modo in cui viene gestita la cancellazione del chip:
- Porta di programmazione: per utilizzare questa porta, seleziona "Arduino Due (ProgrammingPort)" come scheda nell'IDE Arduino. Collega la porta di programmazione del Due (quella più vicina al jack di alimentazione CC) al tuo computer. La porta di programmazione utilizza il 16U2 come chip USB-seriale collegato al primo UART del SAM3X (RX0 e TX0). Il 16U2 ha due pin collegati ai pin Reset e Erase del SAM3X. L'apertura e la chiusura della porta di programmazione collegata a 1200 bps innesca una procedura di "hard erase" del chip SAM3X, attivando i pin Erase e Reset sul SAM3X prima di comunicare con l'UART. Questa è la porta consigliata per la programmazione del Due. È più affidabile della "soft erase" che si verifica sulla porta nativa e dovrebbe funzionare anche se l'MCU principale si è bloccata.
- Porta nativa: per usare questa porta, seleziona "Arduino Due (NativeUSBPort)" come scheda nell'IDE Arduino. La porta USB nativa è collegata direttamente al SAM3X. Collega la porta USB nativa del Due (quella più vicina al pulsante di reset) al tuo computer. L'apertura e la chiusura della porta nativa a 1200 bps innesca una procedura di "soft erase": la memoria flash viene cancellata e la scheda viene riavviata con il bootloader. Se l'MCU si è bloccato per qualche motivo, è probabile che la procedura di soft erase non funzioni poiché questa procedura avviene interamente nel software sul SAM3X. L'apertura e la chiusura della porta nativa a una velocità in baud diversa non resetterà il SAM3X.
A differenza di altre schede Arduino che usano avrdude per l'upload, la Due si basa su bossac . Il codice sorgente del firmware ATmega16U2 è disponibile nel repository Arduino . Puoi usare l'intestazione ISP con un programmatore esterno (sovrascrivendo il bootloader DFU). Per maggiori informazioni, vedi questo tutorial fornito dagli utenti .
Protezione da sovracorrente USB
Arduino Due ha un polifusibile ripristinabile che protegge le porte USB del computer da cortocircuiti e sovracorrenti. Sebbene la maggior parte dei computer fornisca la propria protezione interna, il fusibile fornisce un ulteriore livello di protezione. Se vengono applicati più di 500 mA alla porta USB, il fusibile interromperà automaticamente la connessione finché il cortocircuito o il sovraccarico non vengono rimossi.
Caratteristiche fisiche e compatibilità dello scudo
La lunghezza e la larghezza massime del PCB Arduino Due sono rispettivamente 4 e 2,1 pollici, con i connettori USB e il jack di alimentazione che si estendono oltre la dimensione precedente. Tre fori per viti consentono di fissare la scheda a una superficie o a un case. Si noti che la distanza tra i pin digitali 7 e 8 è di 160 mil (0,16"), non un multiplo pari della spaziatura di 100 mil degli altri pin.
Arduino Due è progettato per essere compatibile con la maggior parte degli shield progettati per Uno, Diecimila o Duemilanove. I pin digitali da 0 a 13 (e i pin adiacenti AREF e GND), gli ingressi analogici da 0 a 5, l'intestazione di alimentazione e l'intestazione "ICSP" (SPI) sono tutti in posizioni equivalenti. Inoltre, l'UART principale (porta seriale) si trova sugli stessi pin (0 e 1). Si noti che I2C non si trova sugli stessi pin sulla Due (20 e 21) della Duemilanove / Diecimila (ingressi analogici 4 e 5) .


