Migrated existing driver samples to use the new code-sample directive and role. Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
192 lines
6.2 KiB
ReStructuredText
192 lines
6.2 KiB
ReStructuredText
.. _adafruit_itsybitsy_nrf52840:
|
|
|
|
Adafruit ItsyBitsy nRF52840
|
|
###########################
|
|
|
|
Overview
|
|
********
|
|
|
|
The Adafruit ItsyBitsy nRF52840 Express is a small (36 mm x 18 mm) ARM
|
|
development board with an onboard RGB LED, USB port, 2 MB of QSPI flash,
|
|
and range of I/O broken out onto 21 GPIO pins.
|
|
|
|
This development kit has the following features:
|
|
|
|
* :abbr:`ADC (Analog to Digital Converter)`
|
|
* CLOCK
|
|
* FLASH
|
|
* :abbr:`GPIO (General Purpose Input Output)`
|
|
* :abbr:`I2C (Inter-Integrated Circuit)`
|
|
* :abbr:`I2S (Inter-Integrated Sound)`
|
|
* :abbr:`MPU (Memory Protection Unit)`
|
|
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
|
|
* :abbr:`PWM (Pulse Width Modulation)`
|
|
* :abbr:`QSPI (Quad Serial Peripheral Interface)`
|
|
* RADIO (Bluetooth Low Energy and 802.15.4)
|
|
* :abbr:`RTC (nRF RTC System Clock)`
|
|
* :abbr:`SPI (Serial Peripheral Interface)`
|
|
* :abbr:`UARTE (Universal asynchronous receiver-transmitter)`
|
|
* :abbr:`USB (Universal Serial Bus)`
|
|
* :abbr:`WDT (Watchdog Timer)`
|
|
|
|
.. image:: img/adafruit_itsybitsy_nrf52840.jpeg
|
|
:align: center
|
|
:alt: Adafruit ItsyBitsy nRF52840 Express
|
|
|
|
Hardware
|
|
********
|
|
- nRF52840 ARM Cortex-M4F CPU at 64MHz
|
|
- 1 MB of flash memory and 256 KB of SRAM
|
|
- 2 MB of QSPI flash
|
|
- A user LED
|
|
- A user switch
|
|
- An RGB DotStar LED
|
|
- Native USB port
|
|
- One reset button
|
|
|
|
Supported Features
|
|
==================
|
|
|
|
The Adafruit ItsyBitsy nRF52840 board configuration supports the
|
|
following hardware features:
|
|
|
|
+-----------+------------+----------------------+
|
|
| Interface | Controller | Driver/Component |
|
|
+===========+============+======================+
|
|
| ADC | on-chip | adc |
|
|
+-----------+------------+----------------------+
|
|
| CLOCK | on-chip | clock_control |
|
|
+-----------+------------+----------------------+
|
|
| FLASH | on-chip | flash |
|
|
+-----------+------------+----------------------+
|
|
| GPIO | on-chip | gpio |
|
|
+-----------+------------+----------------------+
|
|
| I2C | on-chip | i2c |
|
|
+-----------+------------+----------------------+
|
|
| MPU | on-chip | arch/arm |
|
|
+-----------+------------+----------------------+
|
|
| NVIC | on-chip | arch/arm |
|
|
+-----------+------------+----------------------+
|
|
| PWM | on-chip | pwm |
|
|
+-----------+------------+----------------------+
|
|
| QSPI(M) | on-chip | nor |
|
|
+-----------+------------+----------------------+
|
|
| RADIO | on-chip | Bluetooth, |
|
|
| | | ieee802154 |
|
|
+-----------+------------+----------------------+
|
|
| RTC | on-chip | system clock |
|
|
+-----------+------------+----------------------+
|
|
| SPI | on-chip | spi |
|
|
+-----------+------------+----------------------+
|
|
| UARTE | on-chip | serial |
|
|
+-----------+------------+----------------------+
|
|
| USB | on-chip | usb |
|
|
+-----------+------------+----------------------+
|
|
| WDT | on-chip | watchdog |
|
|
+-----------+------------+----------------------+
|
|
|
|
Other hardware features have not been enabled yet for this board.
|
|
|
|
Connections and IOs
|
|
===================
|
|
|
|
The `Adafruit ItsyBitsy nRF52840 Express Learn site`_ has detailed
|
|
information about the board including `pinouts`_ and the `schematic`_.
|
|
|
|
LED
|
|
---
|
|
|
|
* LED0 (red) = P0.06
|
|
|
|
* LED1 (Adafruit DotStar)
|
|
|
|
* DATA = P0.08
|
|
|
|
* CLK = P1.09
|
|
|
|
Push buttons
|
|
------------
|
|
|
|
* SWITCH = P0.29
|
|
|
|
* RESET = P0.18
|
|
|
|
Logging
|
|
-------
|
|
|
|
Logging is done using the USB-CDC port. See the :zephyr:code-sample:`logging` sample
|
|
or the :zephyr:code-sample:`usb-cdc-acm-console` sample applications to see how this works.
|
|
|
|
Testing LEDs and buttons on the Adafruit ItsyBitsy nRF52840 Express
|
|
*******************************************************************
|
|
The :zephyr:code-sample:`button` sample lets you test the buttons (switches) and the red LED.
|
|
The :zephyr:code-sample:`blinky` sample lets you test the red LED.
|
|
|
|
The DotStar LED has been implemented as a SPI device and can be tested
|
|
with the :zephyr:code-sample:`led-apa102` sample application.
|
|
|
|
You can build and flash the examples to make sure Zephyr is running correctly on
|
|
your board. The button and LED definitions can be found in
|
|
:zephyr_file:`boards/arm/adafruit_itsybitsy_nrf52840/adafruit_itsybitsy_nrf52840.dts`.
|
|
|
|
Programming and Debugging
|
|
*************************
|
|
The ItsyBitsy ships with the BOSSA compatible UF2 bootloader. The
|
|
bootloader can be entered by quickly tapping the reset button twice.
|
|
|
|
First time setup
|
|
================
|
|
Some versions of this board were shipped with a buggy bootloader.
|
|
Ensure that the bootloader is up to date by following the
|
|
`Adafruit UF2 Bootloader update`_ tutorial. Note that this tutorial
|
|
was made for the Adafruit Feather nRF52840, but the steps to update
|
|
the bootloader are the same for the ItsyBitsy. The files for the
|
|
ItsyBitsy bootloader can be found in the `Adafruit nRF52 Bootloader repo`_.
|
|
|
|
The building and flashing of Zephyr applications have been tested with
|
|
release 0.7.0 of the UF2 bootloader.
|
|
|
|
Flashing
|
|
========
|
|
Flashing is done by dragging and dropping the built Zephyr UF2-file
|
|
into the :code:`ITSY840BOOT` drive.
|
|
|
|
#. Build the Zephyr kernel and the :zephyr:code-sample:`blinky`
|
|
sample application:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/basic/blinky
|
|
:board: adafruit_itsybitsy_nrf52840
|
|
:goals: build
|
|
:compact:
|
|
|
|
#. Connect the ItsyBitsy to your host computer using USB
|
|
|
|
#. Tap the reset button twice quickly to enter bootloader mode
|
|
|
|
#. Flash the image:
|
|
|
|
Drag and drop the file :code:`samples/basic/blinky/build/zephyr/zephyr.uf2`
|
|
into :code:`ITSY840BOOT`
|
|
|
|
The device will disconnect and you should see the red LED blink.
|
|
|
|
References
|
|
**********
|
|
|
|
.. target-notes::
|
|
|
|
.. _Adafruit ItsyBitsy nRF52840 Express Learn site:
|
|
https://learn.adafruit.com/adafruit-itsybitsy-nrf52840-express
|
|
|
|
.. _pinouts:
|
|
https://learn.adafruit.com/adafruit-itsybitsy-nrf52840-express/pinouts
|
|
|
|
.. _schematic:
|
|
https://learn.adafruit.com/adafruit-itsybitsy-nrf52840-express/downloads
|
|
|
|
.. _Adafruit UF2 Bootloader update:
|
|
https://learn.adafruit.com/introducing-the-adafruit-nrf52840-feather/update-bootloader
|
|
|
|
.. _Adafruit nRF52 Bootloader repo:
|
|
https://github.com/adafruit/Adafruit_nRF52_Bootloader/releases
|