139 lines
3.5 KiB
ReStructuredText
139 lines
3.5 KiB
ReStructuredText
.. _xiao_rp2040:
|
|
|
|
XIAO RP2040
|
|
###########
|
|
|
|
Overview
|
|
********
|
|
|
|
The XIAO RP2040 is an IoT mini development board from Seeed Studio.
|
|
It is equipped with an RP2040 SoC, an on-board WS2812 addressable
|
|
LED, and USB connector. The USB bootloader allows it
|
|
to be flashed without any adapter, in a drag-and-drop manner.
|
|
|
|
For more details see the `Seeed Studio XIAO RP2040`_ wiki page.
|
|
|
|
.. figure:: img/xiao_rp2040.webp
|
|
:align: center
|
|
:alt: XIAO RP2040
|
|
|
|
XIAO RP2040
|
|
|
|
Hardware
|
|
********
|
|
|
|
The Seeed Studio XIAO RP2040 is a low-power microcontroller that
|
|
carries the powerful Dual-core RP2040 processor with a flexible
|
|
clock running up to 133 MHz. There is also 264KB of SRAM, and 2MB of
|
|
on-board Flash memory.
|
|
|
|
There are 14 GPIO PINs on Seeed Studio XIAO RP2040, on which there
|
|
are 11 digital pins, 4 analog pins, 11 PWM Pins,1 I2C interface,
|
|
1 UART interface, 1 SPI interface, 1 SWD Bonding pad interface.
|
|
|
|
Supported Features
|
|
==================
|
|
|
|
The ``xiao_rp2040`` board target supports the following hardware
|
|
features:
|
|
|
|
.. list-table::
|
|
:header-rows: 1
|
|
|
|
* - Peripheral
|
|
- Kconfig option
|
|
- Devicetree compatible
|
|
* - NVIC
|
|
- N/A
|
|
- :dtcompatible:`arm,v6m-nvic`
|
|
* - UART
|
|
- :kconfig:option:`CONFIG_SERIAL`
|
|
- :dtcompatible:`raspberrypi,pico-uart`
|
|
* - GPIO
|
|
- :kconfig:option:`CONFIG_GPIO`
|
|
- :dtcompatible:`raspberrypi,pico-gpio`
|
|
* - ADC
|
|
- :kconfig:option:`CONFIG_ADC`
|
|
- :dtcompatible:`raspberrypi,pico-adc`
|
|
* - I2C
|
|
- :kconfig:option:`CONFIG_I2C`
|
|
- :dtcompatible:`snps,designware-i2c`
|
|
* - SPI
|
|
- :kconfig:option:`CONFIG_SPI`
|
|
- :dtcompatible:`raspberrypi,pico-spi`
|
|
* - USB Device
|
|
- :kconfig:option:`CONFIG_USB_DEVICE_STACK`
|
|
- :dtcompatible:`raspberrypi,pico-usbd`
|
|
* - HWINFO
|
|
- :kconfig:option:`CONFIG_HWINFO`
|
|
- N/A
|
|
* - Watchdog Timer (WDT)
|
|
- :kconfig:option:`CONFIG_WATCHDOG`
|
|
- :dtcompatible:`raspberrypi,pico-watchdog`
|
|
* - PWM
|
|
- :kconfig:option:`CONFIG_PWM`
|
|
- :dtcompatible:`raspberrypi,pico-pwm`
|
|
* - Flash
|
|
- :kconfig:option:`CONFIG_FLASH`
|
|
- :dtcompatible:`raspberrypi,pico-flash-controller`
|
|
* - Clock controller
|
|
- :kconfig:option:`CONFIG_CLOCK_CONTROL`
|
|
- :dtcompatible:`raspberrypi,pico-clock-controller`
|
|
* - UART (PIO)
|
|
- :kconfig:option:`CONFIG_SERIAL`
|
|
- :dtcompatible:`raspberrypi,pico-uart-pio`
|
|
|
|
Pin Mapping
|
|
===========
|
|
|
|
The peripherals of the RP2040 SoC can be routed to various pins on the board.
|
|
The configuration of these routes can be modified through DTS. Please refer to
|
|
the datasheet to see the possible routings for each peripheral.
|
|
|
|
Default Zephyr Peripheral Mapping:
|
|
----------------------------------
|
|
|
|
.. rst-class:: rst-columns
|
|
|
|
- UART0_TX : P0
|
|
- UART0_RX : P1
|
|
- I2C1_SDA : P6
|
|
- I2C1_SCL : P7
|
|
- SPI0_RX : P4
|
|
- SPI0_SCK : P2
|
|
- SPI0_TX : P3
|
|
|
|
Connections and IOs
|
|
===================
|
|
|
|
The board uses a standard XIAO pinout, the default pin mapping is the following:
|
|
|
|
.. figure:: img/xiao_rp2040_pinout.webp
|
|
:align: center
|
|
:alt: XIAO RP2040 Pinout
|
|
|
|
XIAO RP2040 Pinout
|
|
|
|
Programming and Debugging
|
|
*************************
|
|
|
|
Flashing
|
|
========
|
|
|
|
Using UF2
|
|
---------
|
|
|
|
You can flash the Xiao RP2040 with a UF2 file.
|
|
By default, building an app for this board will generate a
|
|
:file:`build/zephyr/zephyr.uf2` file. If the Xiao RP2040 is powered on with
|
|
the ``BOOTSEL`` button pressed, it will appear on the host as a mass storage
|
|
device. The UF2 file should be copied to the device, which will
|
|
flash the Xiao RP2040.
|
|
|
|
References
|
|
**********
|
|
|
|
.. target-notes::
|
|
|
|
.. _`Seeed Studio XIAO RP2040`: https://wiki.seeedstudio.com/XIAO-RP2040/
|