Skip to content

Atmel SAM D21 Xplained Pro

Support for the Atmel SAM D21 Xplained Pro board.

Overview

The SAMD21 Xplained Pro is an ultra-low power evaluation board by Atmel featuring an ATSAMD21J18A SoC. The SoC includes a SAMD21 ARM Cortex-M0+ micro- controller. For programming the MCU comes with 32Kb of RAM and 256Kb of flash memory.

The samd21-xpro is available from various hardware vendors for ~30USD (as of 2017 May).

Hardware

samd21-xpro image

MCU

MCUATSAMD21J18A
FamilyARM Cortex-M0+
VendorAtmel
RAM32Kb
Flash256Kb
Frequencyup to 48MHz
FPUno
Timers5 (16-bit)
ADCs1x 12-bit (20 channels)
UARTsmax 6 (shared with SPI and I2C)
SPIsmax 6 (see UART)
I2Csmax 6 (see UART)
Vcc1.62V - 3.63V
DatasheetDatasheet
Board ManualBoard Manual

User Interface

1 User button and 1 LED:

DevicePIN
LED0PB30
SW0 (button)PA15

Implementation Status

DeviceIDSupportedComments
MCUsamd21yes
Low-level driverGPIOyes
ADCyes
PWMyes
UARTyes
I2Cyes
SPIyes
USByes
RTTyes
RTCyes
Timeryes

Flashing the device

Connect the device to your Micro-USB cable using the port labeled as DEBUG USB.

The standard method for flashing RIOT to the samd21-xpro is using edbg. by calling: make BOARD=samd21-xpro -C tests/leds flash

Note that on Linux, you will need libudev-dev package to be installed.

Users can also use openOCD to flash and/or debug the board using: PROGRAMMER=openocd make BOARD=samd21-xpro -C tests/leds flash

On Linux you will have to add a udev rule for hidraw, like

bash
echo 'KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev"' \
| sudo tee -a /etc/udev/rules.d/99-usb.rules
sudo service udev restart

Arch Linux

With yaourt:

yaourt -S libudev0
yaourt -S hidapi-git
yaourt -S openocd-git
# edit PKGBUILD, add "cmsis-dap hidapi-libusb" to "_features"

Ubuntu

Although this refers to setting up the SAMR21, this guide is still very helpful to understanding how to set up a solid RIOT development environment for the SAMD21: http://watr.li/samr21-dev-setup-ubuntu.html

Known Issues / Problems