Stufin
Home Quick Cart Profile

Arduino Due AT91SAM3X8E ARM Cortex-M3 compatible Board

Buy Now

Pin Configuration

  • Arduino Due AT91SAM3X8E ARM Cortex-M3 Compatible Board Pinout Documentation
  • The Arduino Due is a powerful microcontroller board based on the AT91SAM3X8E ARM Cortex-M3 processor. It features 54 digital input/output pins, 12 analog input pins, and various other interfaces for communication and debugging. Here is a detailed explanation of each pin on the board:
  • Digital Pins (54)
  • Digital Pins 0-13:
  • + These pins can be used as digital input/output pins.
  • + They can be configured as input or output using the pinMode() function.
  • + Each pin can source or sink up to 15mA of current.
  • Digital Pins 14-21:
  • + These pins are connected to the SPI interface (SPI0) and can be used as:
  • - MOSI (Master Out Slave In): Pin 14
  • - MISO (Master In Slave Out): Pin 15
  • - SCK (Clock): Pin 16
  • - SS (Slave Select): Pin 17
  • + They can also be used as digital input/output pins.
  • Digital Pins 22-29:
  • + These pins are connected to the I2C interface (TWI0) and can be used as:
  • - SDA (Serial Data): Pin 22
  • - SCL (Serial Clock): Pin 23
  • + They can also be used as digital input/output pins.
  • Digital Pins 30-37:
  • + These pins are connected to the UART interface (UART0) and can be used as:
  • - RX (Receive): Pin 30
  • - TX (Transmit): Pin 31
  • + They can also be used as digital input/output pins.
  • Digital Pins 38-43:
  • + These pins can be used as digital input/output pins.
  • Digital Pins 44-53:
  • + These pins are connected to the SPI interface (SPI1) and can be used as:
  • - MOSI (Master Out Slave In): Pin 44
  • - MISO (Master In Slave Out): Pin 45
  • - SCK (Clock): Pin 46
  • - SS (Slave Select): Pin 47
  • + They can also be used as digital input/output pins.
  • Analog Input Pins (12)
  • Analog Input Pins A0-A11:
  • + These pins can be used to read analog voltage levels using the analogRead() function.
  • + They have a resolution of 12 bits (0-4095).
  • + Each pin can be used to read analog signals from 0 to 3.3V.
  • Power Pins
  • VIN:
  • + This pin is the input voltage to the board.
  • + It should be connected to a power source between 7V and 12V.
  • 3V3:
  • + This pin provides a regulated 3.3V output.
  • + It can be used to power external components.
  • GND:
  • + These pins are connected to the ground of the board.
  • + They should be connected to the ground of the power source.
  • Communication and Debugging Interfaces
  • UART Interface (UART0):
  • + This interface is connected to digital pins 30 and 31.
  • + It can be used for serial communication with a computer or other devices.
  • SPI Interfaces (SPI0 and SPI1):
  • + SPI0 is connected to digital pins 14-17.
  • + SPI1 is connected to digital pins 44-47.
  • + These interfaces can be used for communication with external devices such as sensors, displays, and memory modules.
  • I2C Interface (TWI0):
  • + This interface is connected to digital pins 22 and 23.
  • + It can be used for communication with external devices such as sensors, displays, and memory modules.
  • JTAG Interface:
  • + This interface is connected to pins 27-34.
  • + It can be used for debugging and programming the board using a JTAG adapter.
  • USB Interface:
  • + This interface is connected to the USB connector on the board.
  • + It can be used for communication with a computer and for programming the board.
  • Other Pins
  • Reset:
  • + This pin is connected to the reset button on the board.
  • + It can be used to reset the board programmatically or manually.
  • Erase:
  • + This pin is connected to the erase button on the board.
  • + It can be used to erase the Flash memory of the microcontroller.
  • Pinout Diagram
  • Here is a diagram of the Arduino Due pinout:
  • ```
  • +---------------+
  • | USB |
  • +---------------+
  • |
  • |
  • v
  • +---------------+
  • | VIN | 3V3 | GND |
  • +---------------+
  • |
  • |
  • v
  • +---------------+
  • | Digital | Analog |
  • | Pins 0-13 | Pins A0-A11 |
  • +---------------+
  • |
  • |
  • v
  • +---------------+
  • | SPI0 | I2C | UART0 |
  • | Pins 14-17 | Pins 22-23 | Pins 30-31 |
  • +---------------+
  • |
  • |
  • v
  • +---------------+
  • | Digital | SPI1 | JTAG |
  • | Pins 32-43 | Pins 44-47 | Pins 27-34 |
  • +---------------+
  • |
  • |
  • v
  • +---------------+
  • | Reset | Erase |
  • +---------------+
  • ```
  • Note: This pinout diagram is a simplified representation of the Arduino Due board. It shows the main pin categories and interfaces, but does not include all the individual pins.

Code Examples

Arduino Due AT91SAM3X8E ARM Cortex-M3 Compatible Board Documentation
Overview
The Arduino Due is a microcontroller board based on the AT91SAM3X8E ARM Cortex-M3 processor. It is a high-performance board that offers advanced features such as a USB OTG interface, a 10-bit analog-to-digital converter (ADC), and multiple digital communication interfaces (e.g., SPI, I2C, I2S, UART). This documentation provides a comprehensive overview of the board's features, technical specifications, and code examples to help users get started with their projects.
Technical Specifications
Microcontroller: AT91SAM3X8E ARM Cortex-M3 processor
 Clock Speed: 84 MHz
 Memory:
	+ Flash: 512 KB
	+ SRAM: 96 KB
	+ EEPROM: 16 KB
 Analog-to-Digital Converter (ADC): 10-bit, 12 channels
 Digital Communication Interfaces:
	+ SPI
	+ I2C
	+ I2S
	+ UART
 USB Interface: USB OTG (On-The-Go) interface
 Power Supply: 3.3V ( Vin pin), 5V (USB connector)
 Operating Temperature: -40C to +85C
Code Examples
### Example 1: Blinking an LED using Digital Output
In this example, we will use the Arduino Due board to blink an LED connected to digital pin 13.
```c++
const int ledPin = 13;  // Pin 13 for the LED
void setup() {
  pinMode(ledPin, OUTPUT);  // Set pin 13 as an output
}
void loop() {
  digitalWrite(ledPin, HIGH);  // Turn the LED on
  delay(1000);              // Wait for 1 second
  digitalWrite(ledPin, LOW);  // Turn the LED off
  delay(1000);              // Wait for 1 second
}
```
### Example 2: Reading Analog Input from a Potentiometer
In this example, we will use the Arduino Due board to read the analog value from a potentiometer connected to analog pin A0.
```c++
const int potPin = A0;  // Pin A0 for the potentiometer
void setup() {
  Serial.begin(9600);  // Initialize serial communication
}
void loop() {
  int sensorValue = analogRead(potPin);  // Read the analog value from the potentiometer
  Serial.print("Sensor value: ");
  Serial.println(sensorValue);  // Print the sensor value to the serial monitor
  delay(100);  // Wait for 100 milliseconds before taking the next reading
}
```
### Example 3: Communicating with an I2C Slave Device (Optional)
In this example, we will use the Arduino Due board to communicate with an I2C slave device, such as an LCD display or a temperature sensor.
```c++
#include <Wire.h>  // Include the Wire library for I2C communication
#define SLAVE_ADDRESS 0x20  // Address of the I2C slave device
void setup() {
  Wire.begin();  // Initialize the I2C interface
}
void loop() {
  Wire.beginTransmission(SLAVE_ADDRESS);  // Start transmission to the I2C slave device
  Wire.write(0x01);  // Send data byte (e.g., command or data)
  Wire.endTransmission();  // End transmission
  delay(100);  // Wait for 100 milliseconds before sending the next command
}
```
Note: The above examples are just a few demonstrations of the Arduino Due board's capabilities. The board offers many more features and interfaces that can be used in various projects. For more information, please refer to the official Arduino documentation and the AT91SAM3X8E datasheet.