# Atmel SAMD21-XPRO

Contents

- Atmel SAMD21-XPRO

  - Hardware

  - Configuration

  - Uploading

  - Debugging

  - Frameworks

## Hardware

Platform Atmel SAM: Atmel | SMART offers Flash- based ARM products based on the ARM Cortex-M0+, Cortex-M3 and Cortex-M4 architectures, ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.

Microcontroller | SAMD21J18A
Frequency | 48MHz
Flash | 256KB
RAM | 32KB
Vendor | Atmel

## Configuration

Please use `samd21_xpro` ID for board option in “platformio.ini” (Project Configuration File):

    [env:samd21_xpro]
    platform = atmelsam
    board = samd21_xpro

You can override default Atmel SAMD21-XPRO settings per build environment using `board_***` option, where `***` is a JSON object path from board manifest samd21_xpro.json. For example, `board_build.mcu`, `board_build.f_cpu`, etc.

    [env:samd21_xpro]
    platform = atmelsam
    board = samd21_xpro

    ; change microcontroller
    board_build.mcu = samd21j18a

    ; change MCU frequency
    board_build.f_cpu = 48000000L

## Uploading

Atmel SAMD21-XPRO supports the next uploading protocols:

- `atmel-ice`

- `blackmagic`

- `cmsis-dap`

- `jlink`

Default protocol is `cmsis-dap`

You can change upload protocol using upload_protocol option:

    [env:samd21_xpro]
    platform = atmelsam
    board = samd21_xpro

    upload_protocol = cmsis-dap

## Debugging

PIO Unified Debugger - “1-click” solution for debugging with a zero configuration.

Warning

You will need to install debug tool drivers depending on your system. Please click on compatible debug tool below for the further instructions and configuration information.

You can switch between debugging Tools & Debug Probes using debug_tool option in “platformio.ini” (Project Configuration File).

Atmel SAMD21-XPRO has on-board debug probe and IS READY for debugging. You don’t need to use/buy external debug probe.

Compatible Tools | On-board | Default
--- | --- | ---
Atmel-ICE |  |
Black Magic Probe |  |
CMSIS-DAP | Yes | Yes
J-LINK |  |

## Frameworks

Name | Description
--- | ---

Mbed

The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.

Zephyr | The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with safety and security in mind.