nuttx/Documentation/platforms/arm/nrf91/index.rst

135 lines
3.4 KiB
ReStructuredText
Raw Normal View History

2023-07-01 11:11:38 +02:00
==============
Nordic nRF91
==============
The nRF91 series of chips from Nordic Semiconductor are based around an ARM Cortex-M33 core
with integrated LTE-M/NB-IoT modem and GNSS.
Modem Support
=============
Modem is supported in the nRF91 using Nordic's `Modem library <https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/nrf_modem/README.html>`_.
2023-11-16 18:51:42 +01:00
Supported modem features:
============= ========= ===============
Modem feature Support Notes
============= ========= ===============
AT Yes ``/dev/modem``
Socket Yes via ``usrsock``
SIOCLTECMD Partial
GNSS Yes
AGPS No
Bootloader No
Delta DFU No
Modem Trace No
============= ========= ===============
At this point there is no application that would configure and enable the modem
automatically at the boot, so it has to be done manually via AT commands on ``/dev/modem``.
IMPORTANT: modem firmware works only in TZ non-secure environment.
2023-11-16 18:51:42 +01:00
Peripheral Support
==================
The following list indicates peripherals supported in NuttX:
========== ======= =================
Peripheral Support Notes
========== ======= =================
CRUPTOCELL No
DPPI No
EGU No
GPIO Yes
GPIOTE Yes
IPC Yes nrfx compatible
I2S No
KMU No
PDM No
PWM Yes
RTC Yes
SPIM Yes
SPIS No
SPU Yes
TIMER Yes
TWIM Yes
TWIS No
UART Yes
UARTE No
WDT No
========== ======= =================
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:`nrf91_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.
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.
2023-07-01 11:11:38 +02:00
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, use these commands::
JLinkGDBServer -device nRF9160 -if SWD -speed 4000 -port 2331
Then you can connect GDB to targets::
(gdb) target remote localhost:2331
Supported Boards
================
.. toctree::
:glob:
:maxdepth: 1
boards/*/*