Original Arduino Due

Original Arduino Due

Product Info

Der Arduino Due ist ein Mikrocontroller Board, basierend auf der Atmel SAM3X8E ARM Cortex-M3 CPU. Er ist der erste Arduino, der auf einem 32-Bit ARM Core Mikrocontroller basiert. Er verfügt über 54 digitale Input/Output Pins (von denen 12 als PWM Output nutzbar), 12 analoge Inputs, 4 UARTs (Hardware Serial Ports), eine 84 MHz Taktung, eine USB OTG fähige Verbindung, 2 DAC (Digital zu Analog), 2 TWI, eine Strombuchse, einen SPI Header, einen JTAG Header, einen Reset- und einen Lösch-Button.

Warnung: Im Unterschied zu anderen Arduino Boards, arbeitet der Arduino Due mit 3.3V. Die maximale Spannung welche die I/O Pins aushalten beträgt 3.3V. Wird eine höhere Spannung, wie zum Beispiel 5V an den I/O Pins angelegt kann dies das Board beschädigen.
Das Board besitzt alles Notwendige um den Mikrocontroller zu betreiben. Um loszulegen müssen Sie den Arduino Due lediglich per USB Kabel mit einem Computer verbinden oder an ein AC-to-DC Netzteil oder eine Batterie anschließen. Der Due ist mit allen Arduino Shields kompatibel, die mit 3.3V arbeiten und mit dem Arduino 1.0 Pinout konform sind.
Der Due folgt dem 1.0 Pinout:
  • TWI: SDA und SCL Pins die sich in der Nähe des AREF Pins befinden.
  • Der IOREF Pin erlaubt es angeschlossenen Shields die Spannung des Boards zu übernehmen, sofern diese richtig konfiguriert sind. Das ermöglicht Shield Kompatibilität sowohl mit einem auf 3.3V basierendem Board wie dem Due als auch mit den AVR-Boards, welche mit 5V arbeiten.
  • Ein Pin, der noch keine Funktion besitzt und für zukünftige Anwendung reserviert ist.
Für den Due existiert ein dediziertes Forum.
ARM Core Vorteile
Der Due besitzt einen 32-Bit ARM Kern, welcher deutlich leistungsstärker als die typischen 8-Bit Mikrocontroller Boards ist. Die deutlichsten Unterschiede sind:
  • Ein 32-Bit Kern erlaubt Operationen mit 4 Byte breiten Daten in einem einzigen CPU Takt.
  • CPU Taktung mit 84Mhz.
  • 96 KBytes SRAM.
  • 512 KBytes Flash Speicher für Code.
  • einem DMA Controller, der die CPU bei speicherintensiven Anwendungen entlasten kann.
Zusammenfassung
Microcontroller   AT91SAM3X8E
Operating Voltage   3.3V
Input Voltage (recommended)   7-12V
Input Voltage (limits)   6-20V
Digital I/O Pins   54 (of which 12 provide PWM output)
Analog Input Pins   12
Analog Outputs Pins   2 (DAC)
Total DC Output Current on all I/O lines   130 mA
DC Current for 3.3V Pin   800 mA
DC Current for 5V Pin   800 mA
Flash Memory   512 KB all available for the user applications
SRAM   96 KB (two banks: 64KB and 32KB)
Clock Speed   84 MHz
Stromversorgung
Der Arduino Due kann entweder über eine USB Verbindung oder über ein externes Netzteil mit Strom versorgt werden. Die Stromquelle wird automatisch ausgewählt.
Für eine externe Versorgung kann entweder ein AC-to-DC Netzteil oder eine Batterie genutzt werden. Für die Versorgung mit einem Netzteil muss dieses einen 2,1mm center-positiv Stecker besitzten, der mit der Strombuchse auf dem Board verbunden wird. Anschlüsse einer Batterie werden mit dem Gnd und dem Vin Pin des Power Connectors verbunden.
Das Board kann mit einer externen Spannung von 6 bis 20 Volt versorgt werden. Bei weniger als 7V Versorgungsspannung, kann es jedoch sein dass der 5V Pin weniger als fünf Volt bereitstellt und das Board instabil wird. Wenn mehr als 12V angelegt werden, kann der Spannungsregler überhitzen und das Board beschädigen. Der empfohlene Spannungsbereich liegt daher bei 7-12V.
Speicher
Der SAM3X verfügt über 512 KB (2 Blöcke mit je 256 KB) Flash Speicher um Code zu speichern. Der Bootloader ist bereits ab Werk enthalten und wird in einem dedizierten ROM Speicher gespeichert. Der verfügbare SRAM beträgt 96 KB in zwei aufeinander folgenden Bänken von 64 KB und 32 KB. Es kann auf den gesamten verfügbaren Speicher (Flash, RAM und ROM) über einen flachen Adressraum zugegriffen werden.
Der Flash Speicher des SAM3X kann mit dem Lösch Button auf dem Board gelöscht werden. Das entfernt den aktuell geladenen Sketch vom MCU. Um zu löschen, drücken und halten sie den Lösch-Button für ein paar Sekunden. Das Board muss für diesen Vorgang an eine Stromversorgung angeschlossen sein.
Input und Output
  • Digitale I/O: Pins von 0 bis 53
Jeder der 54 digitalen Pins des Arduino kann entweder als Input oder Output genutzt werden. Dafür stehen die Funktionen pinMode(), digitalWrite() und digitalRead() zur Verfügung. Sie arbeiten mit einer Spannung von 3.3 Volt. Jeder Pin kann einen maximalen Strom von 3mA oder 15mA bereitstellen (Source) oder einen Strom von 6mA oder 9 mA aufnehmen (Sink). Dies ist abhängig vom jeweiligen Pin. Jeder Pin besitzt einen Pull-Up Widerstand von 100 kOhm, welcher 'by default' nicht verbunden ist. Zusätzlich gibt es Pins für spezielle Funktionen:
  • Serial: 0 (RX) und 1 (TX)
  • Serial 1: 19 (RX) und 18 (TX)
  • Serial 2: 17 (RX) und 16 (TX)
  • Serial 3: 15 (RX) und 14 (TX) 
    Mit diesen Pins können TTL serielle Daten empfangen (RX) oder übertragen (TX) werden (bei 3.3V). Die Pins 0 und 1 sind mit den zugehörigen Pins des ATmega16U2 USB-to-TTL Serial Chip verbunden.
  • PWM: Pin 2 bis 13 
    Diese Pins verfügen über einen 8-Bit PWM Output, welcher über die Funktion analogWrite() gesteuert werden kann. Die Auflösung der PWM kann mit der Funktion analogWriteResolution() geändert werden.
  • SPI: SPI header (ICSP Header auf anderen Arduino Boards) 
    Diese Pins unterstützen SPI Kommunikation unter Verwendung der [Reference/SPI | SPI Library]]. Die SPI Pins wurden am zentralen 6-Pin Header herausgeführt, welcher mit dem Uno, Leonardo und Mega2569 kompatibel ist. Der SPI Header kann nur für die Kommunikation mit anderen SPI Geräten genutzt werden, nicht zur Programmierung des SAM3X über die In-Circuit-Serial-Programming Technik. Das SPI des Due besitzt über weitere Fähigkeiten, welche mit den erweiterten SPI Methoden des Due genutzt werden können.
  • CAN: CANRX and CANTX 
    Diese Pins unterstützen das CAN Kommunikations Protokoll, werden aber noch nicht von den Arduino APIsunterstützt.
  • "L" LED: 13 
    Auf dem Board befindet sich eine LED, welche mit dem Pin 13 verbunden ist. Wird der Pin HIGH geschaltet, geht die LED an und wird er LOW geschaltet, geht sie aus. Es ist außerdem möglich die LED zu dimmen, da Pin 13 ein PWM Output Pin ist.
  • TWI 1: 20 (SDA) und 21 (SCL)
  • TWI 2: SDA1 und SCL1. 
    Unterstützen TWI Kommunikation unter Verwendung der Wire Library.
  • Analoge Inputs: Pins von A0 bis A11
Der Due verfügt über 12 Analog Inputs. Sie tragen die Namen A0 bis A11 und besitzen jeweils eine Auflösung von 12 Bit (also 4096 Abstufungen). Für die Kompatibilität mit anderen Arduino Boards ist die Auflösung standardmäßig auf 10 Bit gesetzt. Die Auflösung kann mit der Methode analogReadResolution() geändert werden. Die analogen Input Pins des Due messen von der Erdung bis zu einem maximalen Wert von 3.3V. Wird an diese Pins eine höhere Spannung als 3.3V angelegt, beschädigt dies den SAM3X Chip. Die analogReference() Funktion ist auf dem Due nicht verfügbar.
Der AREF Pin ist über eine Widerstandsbrücke mit dem analogen Referenz Pin des SAM3X verbunden. Um den AREF Pin zu nutzen muss der Widerstand BR1 von der Platine entfernt werden.
  • DAC1 und DAC2 
    Diese Pins ermöglichen echten analogen Output über die Funktion analogWrite() mit einer Auflösung von 12-Bits (4096 Abstufungen). Diese Pins können unter Verwendung der Audio Library genutzt werden um einen Audio Ausgang zu erstellen.
Andere Pins des Boards:
  • AREF 
    Referenz Spannung für die analogen Inputs. Wird mit der Funktion analogReference() genutzt.
  • Reset 
    Wird diese Leitung LOW gesetzt, wird der Mikrocontroller zurückgesetzt. Meistens wird dies für Reset Buttons auf Shields genutzt, wegen welchen man den Reset Button des Boards nicht mehr erreichen kann.
Kommunikation
Der Arduino Due verfügt über eine Vielzahl von Möglichkeiten um mit einem Computer, einem anderen Arduino oder Mikrcontroller und anderen Geräten wie Handys, Tablets, Kameras und Ähnlichem zu kommunizieren. Der SAM3X besitzt einen Hardware UART, sowie drei Hardware USARTs für TTL(3.3V) serielle Kommunikation.
Der Programmier Port ist mit einem ATmega16U2 verbunden, welcher einen virtuellen COM Port für einen verbundenen Computer bereitstellt. Damit der Due erkannt wird benötigen Windows Computer eine .inf Datei. OSX und Linux Computer erkennen das Board automatisch als COM Port. Der 16U2 ist außerdem mit dem SAM3X Hardware UART verbunden. Die Pins RX0 und TX0 ermöglichen Serial-to-USB Kommunikation um das Board über den ATmega16U2 Mikrocontroller zu programmieren. Die Arduino Software enthält einen Serial Monitor mit welchem man einfache Text Daten an das Arduino Board senden und von diesem empfangen kann. Die RX und TX LEDs des Boards blinken wenn Daten über den USB-to-Serial Chip und die USB Verbindung übertragen werden (jedoch nicht bei serieller Kommunikation über die Pins 0 und 1).
Der native USB Port ist mit dem SAM3X verbunden. Er erlaubt serielle (CDC) Kommunikation über USB. Das ermöglicht eine serielle Verbindung zum Serial Monitor oder einer anderen Anwendung auf dem Computer. Es ermöglicht dem Due außerdem eine USB Maus oder Tastatur am verbundenen Computer zu emulieren. Um diese Funktionen zu nutzen besuchen Sie die Mouse und Keyboard Library Referenz Seiten.
Der native USB Port kann sich außerdem als USB Host für verbundene Geräten wie z.B. Mäusen, Tastaturen und Smartphone verhalten. Um diese Funktion zu nutzen beachten Sie die USBHost Referenz Seiten.
Der SAM3X unterstützt TWI und SPI Kommunikation. Die Arduino Software beinhaltet eine Wire Library um den Gebrauch des TWI Bus zu vereinfachen. Siehe die Dokumentation für mehr Informationen. Für die SPI Kommunikation existiert die SPI Library.
Programmierung
Der Arduino Due kann mit der Arduino Software programmiert werden.
Das Hochladen von Sketches in den SAM3X funktioniert anders als bei den AVR Mikrocontrollern, die man auf anderen Arduino Boards findet. Der Flash Speicher muss gelöscht werden bevor er neu programmiert werden kann. Der Upload zum Chip wird vom ROM des SAM3X gesteuert, welcher nur läuft wenn der Flash Speicher leer ist.
Beide USB Ports können für die Programmierung des Boards genutzt werden. Es wird aber aufgrund der Art und Weise wie das Löschen des Chips funktioniert empfohlen dem Programming Port zu nutzen:
  • Programming port: Um diesen Port zu nutzen, wählen sie "Arduino Due (Programming Port)" als Board in der Arduino Entwicklungsumgebung aus. Verbinden sie den Programmmier Port des Due (der Port in der Nähe der Strombuchse) mit ihrem Computer. Der Programmier Port nutzt den 16U2 als einen USB-to-Serial Chip, der mit dem ersten UART des SAM3X (RX0 und TX0) verbunden ist. Der 16U2 hat zwei Pins, welche mit dem Reset und Lösch Pins des SAM3X verbunden ist. Das Öffnen und Schließen des Programmier Ports bei einer Baudrate von 1200 bps löst die "hard erase" Prozedur des SAM3X aus, indem es den Reset und Lösch Pin des SAM3X aktiviert bevor er mit dem UART kommuniziert. Das ist der empfohlene Port für die Programmierung des Due. Es ist zuverlässiger als die "soft erase" Methode, die am Native Port genutzt wird. Außerdem sollte sie auch dann funktionieren wenn die MCU abgestürzt ist.
  • Native port: Um diesen Port zu nutzen, wählen sie "Arduino Due (Native Port)" als Board in der Arduino Entwicklungsumgebung aus. Der Native USB Port ist direkt mit dem SAM3X verbunden. Verbinden sie den Native USB des Due (der Port, welcher dem Reset Button am Nähsten ist) mit Ihrem Computer. Das Öffnen und Schließen des Native Port bei einer Baudrate von 1200 bps löst die "soft erase" Prozedure des SAM3X aus. Der Flash Speicher wird gelöscht und das Board mit dem Bootloader neugestartet. Falls der MCU aus irgend einem Grund abstürzen sollte ist es wahrscheinlich das die "soft erase" Prozedur nicht funktionieren wird, da diese vollständig softwareseitig abläuft. Das Öffnen und Schließen des Native Port mit einer anderen Baudrate setzt den SAM3X nicht zurück.
Im Gegensatz zu anderen Arduino Boards, welche avrdude für das Hochladen von neuem Code nutzen, basiert dies beim Due auf bossac.
USB-Überstrom Schutz
Der Arduino Due besitzt eine zurücksetzbare Mehrfachsicherung, welche den USB Port ihres Computers vor Kurzschlüssen und Überstrom schützt. Auch wenn die meisten Computer einen internen Schutz für solche Fälle besitzen bietet diese Sicherung einen zusätzlichen Schutz. Wenn mehr als 500 mA über die USB Verbindung fließen durchtrennt die Sicherung die Verbindung bis der Kurzschluss bzw. die Überlastung entfernt wurde.
Physikalische Eigenschaften und Shield Kompatibilität
Die maximale Länge und Breite der Arduino Due Platine sind 10.16cm (4 inch) und 5.3cm (2.1 inch). Der USB Port und die Strombuchse ragen etwas über diese Maße hinaus. Sechs Löcher erlauben das Festschrauben des Boards auf Oberflächen und in Gehäuse. Bitte beachten sie, dass der Abstand zwischen den Digitalen Pins 7 und 8 0.16 Inch beträgt, also kein gerades Vielfaches des 0.1 Inch Abstands der anderen Pins.
Der Arduino Due wurde so entworfen, dass er mit den meisten für den Uno, Diecimila oder Duemilanove entworfenen Shields kompatibel ist. Die digitalen Pins 0 bis 13 (und die dazugehörigen AREF und GND Pins), die analogen Inputs 0 bis 5, der Power Header und der "ICSP" (SPI) Header befinden sich Alle in der gleichen Position, wie bei diesen Boards. Darüberhinaus ist der Haupt UART (serielle Port) an die gleichen Pins (0 und 1) angeschlossen.