Documentation: move boards/nrf53 readmes to Documentation

This commit is contained in:
raiden00pl 2023-05-30 14:00:47 +02:00 committed by Brennan Ashton
parent 045b9ffd54
commit da4c7703db
6 changed files with 533 additions and 65 deletions

View File

@ -0,0 +1,101 @@
=======================
Nordic nRF5340-Audio-DK
=======================
The `nRF5340-Audio-DK <https://www.nordicsemi.com/Products/Development-hardware/nRF5340-Audio-DK>`_
is a development kit dedicated for Bluetooth LE Audio application based on the nRF5340 from Nordic.
Peripheral Support
==================
======================== ======= =====
Peripheral Support NOTES
======================== ======= =====
UART Yes
QSPI No
Buttons No
LEDs No
USB No
SD Card No
NFC No
PDM Microphone (VM3011) No
Audio DSP (CS47L63) No
======================== ======= =====
Serial Console
==============
Serial console for the application core:
===== ============ =============
Pin Signal Notes
===== ============ =============
P1.05 APP UART0 TX virtual COM 0
P1.04 APP UART0 RX virtual COM 0
===== ============ =============
Serial console for the network core:
===== ============ =============
Pin Signal Notes
===== ============ =============
P1.09 NET UART0 TX virtual COM 1
P1.08 NET UART0 RX virtual COM 1
===== ============ =============
LEDs and Buttons
================
LEDs
----
The nRF5340-Audio-DK has 4 user-controllable LEDs:
==== =======
LED MCU
==== =======
LED1 P0.31
LED2 P1.01
LED3 P1.02
==== =======
A low output illuminates the LED.
CONFIG_ARCH_LEDS
----------------
If CONFIG_ARCH_LEDS is not defined, then the LEDs are completely under
control of the application. The following interfaces are then available
for application control of the LEDs::
uint32_t board_userled_initialize(void);
void board_userled(int led, bool ledon);
void board_userled_all(uint32_t ledset);
Pushbuttons
-----------
======= =======
BUTTON MCU
======= =======
BUTTON1 P0.02
BUTTON2 P0.03
BUTTON3 P0.04
BUTTON4 P0.05
BUTTON5 P0.06
======= =======
Configurations
==============
Each configuration is maintained in a sub-directory and can be selected as
follow::
tools/configure.sh nrf5340-audio-dk:<subdir>
Where <subdir> is one of the following:
nsh_cpuapp
----------
Basic NuttShell configuration for the application core (console enabled in UART0,
exposed via J-Link VCOM0, at 115200 bps).

View File

@ -0,0 +1,164 @@
=================
Nordic nRF5340 DK
=================
The `nRF5340-DK (PCA10092) <https://www.nordicsemi.com/Products/Development-hardware/nrf5340-dk>`_
is a development board based on the nRF5340 from Nordic.
Serial Console
==============
Serial console for the application core:
===== ============ =============
Pin Signal Notes
===== ============ =============
P1.01 APP UART0 TX virtual COM 0
P1.00 APP UART0 RX virtual COM 0
===== ============ =============
Serial console for the network core:
===== ============ =============
Pin Signal Notes
===== ============ =============
P0.20 NET UART0 TX virtual COM 1
P0.22 NET UART0 RX virtual COM 1
===== ============ =============
LEDs and Buttons
================
LEDs
----
The PCA10092 has 4 user-controllable LEDs:
==== =======
LED MCU
==== =======
LED1 P0.28
LED2 P0.29
LED3 P0.30
LED4 P0.31
==== =======
A low output illuminates the LED.
CONFIG_ARCH_LEDS
----------------
If CONFIG_ARCH_LEDS is not defined, then the LEDs are completely under
control of the application. The following interfaces are then available
for application control of the LEDs::
uint32_t board_userled_initialize(void);
void board_userled(int led, bool ledon);
void board_userled_all(uint32_t ledset);
Pushbuttons
-----------
======= =======
BUTTON MCU
======= =======
BUTTON1 P0.23
BUTTON2 P0.24
BUTTON3 P0.08
BUTTON4 P0.09
======= =======
Configurations
==============
Each configuration is maintained in a sub-directory and can be selected as
follow::
tools/configure.sh nrf5340-dk:<subdir>
Where <subdir> is one of the following:
adc_cpuapp
----------
This configuration shows the use of the ADC peripheral.
composite_cpuapp
----------------
NuttShell configuration for the application core with support for CDC/ACM with
RNDIS composite driver.
nsh_cpuapp
----------
Basic NuttShell configuration for the application core (console enabled in UART0,
exposed via J-Link VCOM0, at 115200 bps).
nsh_cpunet
----------
Basic NuttShell configuration for the network core (console enabled in UART0,
exposed via J-Link VCOM1, at 115200 bps).
ostest_tickless_cpuapp
----------------------
This is a NSH configuration that includes ``apps/testing/ostest`` as a builtin
and enable support for the tick-less OS.
pwm_cpuapp
----------
This configuration shows the use of the PWM peripheral.
qspi_cpuapp
-----------
NuttShell configuration with enabled support for on-board MX25R QSPI memory.
rpmsghci_bt_cpuapp
------------------
This configuration enables RPMSG Bluetooth HCI client on the application core
and uses NuttX BLE stack for the host-layer
rpmsghci_nimble_cpuapp
----------------------
This configuration enables RPMSG Bluetooth HCI client on the application core
and uses nimBLE for the host-layer
rpmsghci_sdc_cpunet
-------------------
This configuration enables RPMSG Bluetooth HCI server on the network core which
can be accessed using RPMSG Bluetooth HCI client on the application core.
rptun_cpuapp
------------
This configuration enables basic RPTUN support on the application core.
The ``rptun`` command will be available from NSH.
rptun_cpunet
------------
This configuration enables basic RPTUN support on the network core.
The ``rptun`` command will be available from NSH.
sdc_cpunet
----------
Enables Nordic's SoftDevice controller on the network core and uses NuttX BLE stack for the host-layer.
The ``btsak`` application is included as a builtin.
sdc_nimble_cpunet
-----------------
Enables Nordic's SoftDevice controller on the network core and uses nimBLE for the host-layer.
The ``nimble`` test application can be used to enable a simple GATT server.
timer_cpuapp
------------
This configuration shows the use of the TIMER peripheral.

View File

@ -0,0 +1,82 @@
================
Nordic Thingy:53
================
The `Thingy:53 (PCA20053) <https://www.nordicsemi.com/Products/Development-hardware/Nordic-Thingy-53>`_
is a prototyping platform build around the nRF5340 from Nordic.
Peripheral Support
==================
================================== ======= =============
Peripheral Support NOTES
================================== ======= =============
UART Yes
USB Yes
Buttons Yes
LEDs No
NFC No
MX25R6435F No Dual line SPI
PMIC No
Battery monitoring No
Buzzer No
PDM microphone (VM3011) No
Front End Module (nRF21540) No
Low power accelerometer (ADXL362) No
IMU (BMI270) No
Magnetometer (BMM150) No
Air quality sensor (HBME688) No
Color sensor (VM3011) No
================================== ======= =============
Serial Console
==============
Serial console for the application core:
===== ============ =============
Pin Signal Notes
===== ============ =============
P0.11 APP UART0 TX virtual COM 0
P0.12 APP UART0 RX virtual COM 0
===== ============ =============
Serial console for the network core:
===== ============ =============
Pin Signal Notes
===== ============ =============
P0.09 NET UART0 TX virtual COM 1
P0.10 NET UART0 RX virtual COM 1
===== ============ =============
Configurations
==============
Each configuration is maintained in a sub-directory and can be selected as
follow::
tools/configure.sh thingy53:<subdir>
Where <subdir> is one of the following:
composite_cpuapp
----------------
NuttShell configuration with support for CDC/ACM with RNDIS composite driver.
nsh_cpuapp
----------
Basic NuttShell configuration for the application core (console enabled in UART0,
exposed via J-Link VCOM0, at 115200 bps).
nsh_cpunet
----------
Basic NuttShell configuration for the network core (console enabled in UART0,
exposed via J-Link VCOM1, at 115200 bps).
Flash & Debug
=============
Both flashing and debuing is possible only with an external debug proble.

View File

@ -0,0 +1,186 @@
============
Nordic nRF53
============
The nRF53 series of chips from Nordic Semiconductor are based around an two ARM Cortex-M33 cores
and a multiprotocol 2.4 GHz transceiver.
Peripheral Support
==================
The following list indicates peripherals supported in NuttX:
========== ======= ===============
Peripheral Support Notes
========== ======= ===============
GPIO Yes
GPIOTE Yes
I2S No
MWU No
NFCT No
PDM No
DPPI No
PWM Yes
QDEC No
QSPI Yes
RADIO No
RNG No
RTC Yes
SAADC Yes
SPIM Yes
SPIS No
TEMP No
TIMER Yes
TWIM Yes
TWIS No
UART Yes
UARTE No
USBD Yes
WDT No
IPC Yes RPTUN supported
========== ======= ===============
GPIO/GPIOTE
-----------
Pins can be configured/operated using ``nrf53_gpio_*`` functions. Interrupts are
handled via the GPIOTE peripheral in one of two ways: via a GPIOTE channel or via
PORT events. The former allows for simultaneous rising/falling edge-sensitive interrupts
per-pin. However, as there are a limited number of channels (and sometimes these
are used by some drivers for specific tasks), it may not always be possible to use
this mechanism. The latter approach for pin interrupts is via the PORT event, determined
by pin state on a their corresponding GPIO port. This is related to the SENSE capability
of pins, which can only be set to either rising or falling edge sensing.
Depending on ``CONFIG_NRF53_PER_PIN_INTERRUPTS`` option, you can set a callback for
the PORT event itself or you can set a callback for a given pin. In the latter case
the driver scans for pins with DETECT bit high and calls the configured callback
automatically.
Finally, GPIOTE can also be used to configure a channel in *task mode*, which allows to
control pin state via tasks/events.
ADC
---
The SAADC peripheral is exposed via standard ADC driver. The lower-half of this driver
is initialized by calling :c:func:`nrf53_adcinitialize`.
I2C
---
I2C is supported both in polling and interrupt mode (via EasyDMA).
.. note:: The I2C peripheral does not support sending two transfers without sending
a START nor RSTART. For this reason, this is supported via an internal buffer where
messages will be first copied to and sent together.
The lower-half of I2C bus is initialized by :c:func:`nrf53_i2cbus_initialize`.
SPI
---
SPI is supported both in polling and interrupt-based (via EasyDMA) mode. The latter
supports arbitrarily long transfers using Nordic's list-mode EasyDMA (intermediate
transfers are currently still manually started).
It is possible to use SPI without either MOSI/MISO pin defined by simply not providing
the relevant ``BOARD_SPI*_MISO/MOSI_PIN`` definition.
This implementation support power management hooks, which will disable SPI peripheral when
entering either SLEEP or STANDBY modes and reconfigure it when going back to NORMAL mode.
UART
----
UART is implemented using polling. UARTE EasyDMA feature is not yet supported.
This may introduce a large number of interrupts which may be undesirable.
PWM
---
PWM is supported via standard driver. This means that more advanced features such as
complex sequences or waveform modes are not yet supported.
QSPI
----
QSPI is supported both in interrupt-based (via EasyDMA) mode and is exposed
via standard QSPI interface.
TIMER
-----
The TIMER peripheral is exposed as standard timer.
RTC
---
The RTC peripheral is exposed as a standard timer, since it is really a low-power
timer, without any date handling capabilities.
USBD
----
The USBD peripheral is exposed via standard USBDEV interface.
Interprocessor Communication
============================
Interprocessor communication between the application core and the network core is realized with
the NuttX RPTUN device based on the OpenAMP framework.
The last 32kB of the application core RAM is used for a shared memory (address = 0x20078000).
BLE Support
===========
BLE is supported in the nRF53 using Nordic's `SoftDevice Controller <https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/softdevice_controller/README.html>`_.
Tool Issues
===========
OpenOCD
-------------
There is no official support for Nordic Cortex M33 chips (nRF9160 or nRF5340).
Segger J-Link
-------------
To start the GDB servers for the application core and the network core, use these commands::
JLinkGDBServer -device nRF5340_xxAA_APP -autoconnect 1 -if SWD -speed 4000 -port 2331 -swoport 2332 -telnetport 2333
JLinkGDBServer -device nRF5340_xxAA_NET -autoconnect 1 -if SWD -speed 4000 -port 2334 -swoport 2335 -telnetport 2336
Then you can connect GDB to targets::
(gdb_app) target remote localhost:2331
(gdb_net) target remote localhost:2334
Flashing locked device
----------------------
1. Unlock the network core::
nrfjprog --recover --coprocessor CP_NETWORK
2. Unlock the application core::
nrfjprog --recover
3. Flash the network core::
nrfjprog --coprocessor CP_NETWORK --program nuttx_net.hex --verify --chiperase
4. Flash the application core::
nrfjprog --program nuttx_app.hex --verify --chiperase
Supported Boards
================
.. toctree::
:glob:
:maxdepth: 1
boards/*/*

View File

@ -1,23 +0,0 @@
nRF5340-AUDIO-DK
================
README for NuttX port to NRF5340 Audio DK (PCA10121) boards.
Tool Issues
===========
OpenOCD
-------------
There is no support official support for Nordic Cortex M33 chips (nRF9160 or nRF5340).
Segger J-Link
-------------
To start the GDB servers for the application core and the network core, use these commands:
JLinkGDBServer -device nRF5340_xxAA_APP -autoconnect 1 -if SWD -speed 4000 -port 2331 -swoport 2332 -telnetport 2333
JLinkGDBServer -device nRF5340_xxAA_NET -autoconnect 1 -if SWD -speed 4000 -port 2334 -swoport 2335 -telnetport 2336
Then you can connect GDB to targets:
(gdb_app) target remote localhost:2331
(gdb_net) target remote localhost:2334

View File

@ -1,42 +0,0 @@
nRF5340-DK
==========
README for NuttX port to NRF5340 DK (PCA10095) boards.
Tool Issues
===========
OpenOCD
-------------
There is no support official support for Nordic Cortex M33 chips (nRF9160 or nRF5340).
Segger J-Link
-------------
To start the GDB servers for the application core and the network core, use these commands:
JLinkGDBServer -device nRF5340_xxAA_APP -autoconnect 1 -if SWD -speed 4000 -port 2331 -swoport 2332 -telnetport 2333
JLinkGDBServer -device nRF5340_xxAA_NET -autoconnect 1 -if SWD -speed 4000 -port 2334 -swoport 2335 -telnetport 2336
Then you can connect GDB to targets:
(gdb_app) target remote localhost:2331
(gdb_net) target remote localhost:2334
Flashing locked device
----------------------
1. Unlock the Net core:
nrfjprog --recover --coprocessor CP_NETWORK
2. Unlock the App core:
nrfjprog --recover
3. Flash the Net core:
nrfjprog --coprocessor CP_NETWORK --program nuttx_net.hex --verify --chiperase
4. Flash the App core:
nrfjprog --program nuttx_app.hex --verify --chiperase