131 lines
3.4 KiB
ReStructuredText
131 lines
3.4 KiB
ReStructuredText
.. _adafruit_kb2040:
|
|
|
|
Adafruit KB2040
|
|
###############
|
|
|
|
Overview
|
|
********
|
|
|
|
The Adafruit KB2040 is a small, low-cost, versatile board from
|
|
Adafruit. It is equipped with an RP2040 SoC, an on-board RGB Neopixel,
|
|
a USB connector, and a STEMMA QT connector. The USB bootloader allows
|
|
it to be flashed without any adapter, in a drag-and-drop manner.
|
|
|
|
Hardware
|
|
********
|
|
- Dual core Arm Cortex-M0+ processor running up to 133MHz
|
|
- 264KB on-chip SRAM
|
|
- 8MB on-board QSPI flash with XIP capabilities
|
|
- 18 GPIO pins
|
|
- 4 Analog inputs
|
|
- 1 UART peripherals
|
|
- 1 SPI controllers
|
|
- 2 I2C controllers (one via STEMMA QT connector)
|
|
- 16 PWM channels
|
|
- USB 1.1 controller (host/device)
|
|
- 8 Programmable I/O (PIO) for custom peripherals
|
|
- On-board RGB LED
|
|
- 1 Watchdog timer peripheral
|
|
|
|
|
|
.. figure:: img/kb2040.jpg
|
|
:align: center
|
|
:alt: Adafruit KB2040
|
|
|
|
Adafruit KB2040 (Image courtesy of Adafruit)
|
|
|
|
Supported Features
|
|
==================
|
|
|
|
The adafruit_kb2040 board configuration 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`
|
|
* - 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 : P2
|
|
- I2C1_SCL : P3
|
|
- SPI0_RX : P20
|
|
- SPI0_SCK : P18
|
|
- SPI0_TX : P19
|
|
|
|
Programming and Debugging
|
|
*************************
|
|
|
|
Flashing
|
|
========
|
|
|
|
Using UF2
|
|
---------
|
|
|
|
Since it doesn't expose the SWD pins, you must flash the Adafruit KB2040 with
|
|
a UF2 file. By default, building an app for this board will generate a
|
|
`build/zephyr/zephyr.uf2` file. If the KB2040 is powered on with the `BOOTSEL`
|
|
button pressed, it will appear on the host as a mass storage device. The
|
|
UF2 file should be drag-and-dropped to the device, which will flash the KB2040.
|
|
|
|
.. target-notes::
|
|
|
|
.. _Getting Started with Raspberry Pi Pico:
|
|
https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf
|
|
|
|
.. _Primary Guide\: Adafruit KB2040:
|
|
https://learn.adafruit.com/adafruit-kb2040
|