1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/boards/arduino-zero/doc.txt
2020-06-04 11:24:26 +02:00

92 lines
3.3 KiB
Plaintext

/**
@defgroup boards_arduino-zero Arduino Zero
@ingroup boards
@brief Support for the Arduino Zero board.
## Overview
The `Arduino Zero` is a board by Arduino/Genuino featuring a ATSAMD21G18A.
The SAMD21 is a ARM Cortex-M0+ micro-controller. It has 256KiB of flash memory
and 32KiB of RAM.
This board is available [here](https://store.arduino.cc/product/GBX00003).
## Hardware
![arduino-zero](https://www.arduino.cc/en/uploads/Main/ABX0003_iso_both.jpg)
### MCU
| MCU | ATSAMD21G18A |
|:------------- |:------------------------------------- |
| Family | ARM Cortex-M0+ |
| Vendor | Atmel |
| RAM | 32KiB |
| Flash | 256KiB |
| Frequency | up to 48MHz |
| FPU | no |
| Timers | 6 (1x 16-bit, 2x 24-bit, 3x 32-bit) |
| ADCs | 6x 12-bit channels) |
| UARTs | 2 |
| SPIs | max 6 (see UART) |
| I2Cs | max 6 (see UART) |
| Vcc | 1.8V - 3.6V |
| Datasheet | [Datasheet](http://ww1.microchip.com/downloads/en/DeviceDoc/SAM_D21_DA1_Family_Data%20Sheet_DS40001882E.pdf) |
### User Interface
1 LED:
| Device | PIN |
|:------ |:---- |
| LED0 | PA17 |
## Implementation Status
Notice that the initial support for the Arduino Zero was based on samr21-xpro
and Sodaq Autonomo.
| Device | ID | Supported | Comments |
|:------------- |:------------- |:------------- |:------------- |
| MCU | samd21 | partly | Energy saving modes not fully utilized |
| Low-level driver | GPIO | yes | |
| | PWM | to be tested | |
| | UART | yes | two UARTs|
| | I2C | yes | |
| | SPI | yes | |
| | ADC | not implemented | |
| | USB | no | |
| | RTT | yes | |
| | RTC | yes | |
| | RNG | no | no HW module |
| | Timer | yes | |
Detailed information on the board can be found on [the official web page](https://www.arduino.cc/en/Main/ArduinoBoardZero).
## Flashing the device
The standard method for flashing RIOT to the Arduino Zero is using OpenOCD.
For this to work properly, **you have to make sure to use a very recent version
of OpenOCD**. Arduino-IDE comes with openocd v0.9.0 which is known to work.
Also Ubuntu 16.04 has openocd v0.9.0.
Refer to https://github.com/RIOT-OS/RIOT/wiki/OpenOCD for building OpenOCD
and make sure "cmsis-dap" and "hidapi-libusb" are enabled.
## Supported Toolchains
To build software for the Arduino Zero board we strongly recommend the usage
of the [GNU Tools for ARM Embedded Processors](https://launchpad.net/gcc-arm-embedded) toolchain.
## Known Issues / Problems
### Stack sizes
The default stack sizes have not been tuned properly yet. If in doubt why
your application crashes try increasing the default stack sizes and use `ps` to
find out how much stack is being used.
Tracked in https://github.com/RIOT-OS/RIOT/issues/2228
*/