blob: 2808ccbf5d4c1fbaef81dcfb5f8ee26928806dce [file] [log] [blame]
<!--
Documentation/_templates/layout.html
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership. The
ASF licenses this file to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the
License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html class="writer-html5" lang="en">
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Nordic nRF53 &mdash; NuttX latest documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/sphinx_collapse.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css" />
<link rel="shortcut icon" href="../../../_static/favicon.ico"/>
<script src="../../../_static/jquery.js"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
<script src="../../../_static/doctools.js"></script>
<script src="../../../_static/sphinx_highlight.js"></script>
<script src="../../../_static/clipboard.min.js"></script>
<script src="../../../_static/copybutton.js"></script>
<script src="../../../_static/design-tabs.js"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
<link rel="next" title="Nordic nRF5340-Audio-DK" href="boards/nrf5340-audio-dk/index.html" />
<link rel="prev" title="Seeed Studio XIAO nRF52840" href="../nrf52/boards/xiao-nrf52840/index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home"> NuttX
</a>
<!-- this version selector is quite ugly, should be probably replaced by something
more modern -->
<div class="version-selector">
<select onchange="javascript:location.href = this.value;">
<option value="../../../../latest" selected="selected">latest</option>
<option value="../../../../10.0.0" >10.0.0</option>
<option value="../../../../10.0.1" >10.0.1</option>
<option value="../../../../10.1.0" >10.1.0</option>
<option value="../../../../10.2.0" >10.2.0</option>
<option value="../../../../10.3.0" >10.3.0</option>
<option value="../../../../11.0.0" >11.0.0</option>
<option value="../../../../12.0.0" >12.0.0</option>
<option value="../../../../12.1.0" >12.1.0</option>
<option value="../../../../12.2.0" >12.2.0</option>
<option value="../../../../12.2.1" >12.2.1</option>
<option value="../../../../12.3.0" >12.3.0</option>
<option value="../../../../12.4.0" >12.4.0</option>
<option value="../../../../12.5.0" >12.5.0</option>
<option value="../../../../12.5.1" >12.5.1</option>
<option value="../../../../12.6.0" >12.6.0</option>
<option value="../../../../12.7.0" >12.7.0</option>
<option value="../../../../12.8.0" >12.8.0</option>
<option value="../../../../12.9.0" >12.9.0</option>
<option value="../../../../12.10.0" >12.10.0</option>
<option value="../../../../12.11.0" >12.11.0</option>
</select>
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../index.html">Home</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../introduction/index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../contributing/index.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Supported Platforms</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="../index.html">ARM</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../a1x/index.html">Allwinner A10</a></li>
<li class="toctree-l3"><a class="reference internal" href="../am335x/index.html">TI/Sitara AM335x</a></li>
<li class="toctree-l3"><a class="reference internal" href="../at32/index.html">Artery AT32</a></li>
<li class="toctree-l3"><a class="reference internal" href="../bcm2708/index.html">Broadcom BCM2708 (removed)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../c5471/index.html">TI TMS320-C5471</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cxd56xx/index.html">Sony CXD56xx</a></li>
<li class="toctree-l3"><a class="reference internal" href="../dm320/index.html">TI TMS320-DM320</a></li>
<li class="toctree-l3"><a class="reference internal" href="../efm32/index.html">SiLabs EFM32</a></li>
<li class="toctree-l3"><a class="reference internal" href="../eoss3/index.html">EOSS3</a></li>
<li class="toctree-l3"><a class="reference internal" href="../fvp-v8r-aarch32/index.html">FVP ARMv8-R Virt Chip</a></li>
<li class="toctree-l3"><a class="reference internal" href="../gd32f4/index.html">GD32F4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../goldfish/goldfish_timer.html">GOLDFISH TIMER</a></li>
<li class="toctree-l3"><a class="reference internal" href="../goldfish/index.html">GOLDFISH</a></li>
<li class="toctree-l3"><a class="reference internal" href="../imx1/index.html">NXP/Freescale i.MX1</a></li>
<li class="toctree-l3"><a class="reference internal" href="../imx6/index.html">NXP/Freescale i.MX6</a></li>
<li class="toctree-l3"><a class="reference internal" href="../imx9/index.html">NXP i.MX9</a></li>
<li class="toctree-l3"><a class="reference internal" href="../imxrt/index.html">NXP i.MX RT</a></li>
<li class="toctree-l3"><a class="reference internal" href="../kinetis/index.html">NXP/FreeScale Kinetis</a></li>
<li class="toctree-l3"><a class="reference internal" href="../kl/index.html">NXP/FreeScale KLxx</a></li>
<li class="toctree-l3"><a class="reference internal" href="../lc823450/index.html">ON Semiconductor LC823450</a></li>
<li class="toctree-l3"><a class="reference internal" href="../lpc17xx/index.html">NXP LPC17xx</a></li>
<li class="toctree-l3"><a class="reference internal" href="../lpc214x/index.html">NXP LPC214x</a></li>
<li class="toctree-l3"><a class="reference internal" href="../lpc2378/index.html">NXP LPC2378</a></li>
<li class="toctree-l3"><a class="reference internal" href="../lpc31xx/index.html">NXP LPC31xx</a></li>
<li class="toctree-l3"><a class="reference internal" href="../lpc40xx/index.html">NXP LPC40xx</a></li>
<li class="toctree-l3"><a class="reference internal" href="../lpc43xx/index.html">NXP LPC43xx</a></li>
<li class="toctree-l3"><a class="reference internal" href="../lpc54xx/index.html">NXP LPC54xx</a></li>
<li class="toctree-l3"><a class="reference internal" href="../max326xx/index.html">Maxim Integrated MAX32660</a></li>
<li class="toctree-l3"><a class="reference internal" href="../moxart/index.html">Moxa NP51x0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../mps/index.html">MPS</a></li>
<li class="toctree-l3"><a class="reference internal" href="../nrf52/ieee802154.html">Nordic nRF52 IEEE 802.15.4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../nrf52/index.html">Nordic nRF52</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Nordic nRF53</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#peripheral-support">Peripheral Support</a><ul>
<li class="toctree-l5"><a class="reference internal" href="#gpio-gpiote">GPIO/GPIOTE</a></li>
<li class="toctree-l5"><a class="reference internal" href="#adc">ADC</a></li>
<li class="toctree-l5"><a class="reference internal" href="#i2c">I2C</a></li>
<li class="toctree-l5"><a class="reference internal" href="#spi">SPI</a></li>
<li class="toctree-l5"><a class="reference internal" href="#uart">UART</a></li>
<li class="toctree-l5"><a class="reference internal" href="#pwm">PWM</a></li>
<li class="toctree-l5"><a class="reference internal" href="#qspi">QSPI</a></li>
<li class="toctree-l5"><a class="reference internal" href="#timer">TIMER</a></li>
<li class="toctree-l5"><a class="reference internal" href="#rtc">RTC</a></li>
<li class="toctree-l5"><a class="reference internal" href="#usbd">USBD</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#interprocessor-communication">Interprocessor Communication</a></li>
<li class="toctree-l4"><a class="reference internal" href="#ble-support">BLE Support</a></li>
<li class="toctree-l4"><a class="reference internal" href="#tool-issues">Tool Issues</a><ul>
<li class="toctree-l5"><a class="reference internal" href="#openocd">OpenOCD</a></li>
<li class="toctree-l5"><a class="reference internal" href="#segger-j-link">Segger J-Link</a></li>
<li class="toctree-l5"><a class="reference internal" href="#flashing-locked-device">Flashing locked device</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#supported-boards">Supported Boards</a><ul>
<li class="toctree-l5"><a class="reference internal" href="boards/nrf5340-audio-dk/index.html">Nordic nRF5340-Audio-DK</a></li>
<li class="toctree-l5"><a class="reference internal" href="boards/nrf5340-dk/index.html">Nordic nRF5340 DK</a></li>
<li class="toctree-l5"><a class="reference internal" href="boards/thingy53/index.html">Nordic Thingy:53</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../nrf91/index.html">Nordic nRF91</a></li>
<li class="toctree-l3"><a class="reference internal" href="../nuc1xx/index.html">nuvoTon NUC120</a></li>
<li class="toctree-l3"><a class="reference internal" href="../phy62xx/index.html">PHY+ PHY62</a></li>
<li class="toctree-l3"><a class="reference internal" href="../qemu/index.html">QEMU</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ra4m1/index.html">Renesas RA4M1</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rp2040/index.html">Raspberry Pi rp2040</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rp23xx/index.html">Raspberry Pi rp2350</a></li>
<li class="toctree-l3"><a class="reference internal" href="../s32k1xx/index.html">NXP S32K1XX</a></li>
<li class="toctree-l3"><a class="reference internal" href="../s32k3xx/index.html">NXP S32K3XX</a></li>
<li class="toctree-l3"><a class="reference internal" href="../sam34/index.html">Microchip SAM34</a></li>
<li class="toctree-l3"><a class="reference internal" href="../sama5/index.html">Microchip SAMA5</a></li>
<li class="toctree-l3"><a class="reference internal" href="../samd2l2/index.html">Microchip SAMD2x</a></li>
<li class="toctree-l3"><a class="reference internal" href="../samd5e5/index.html">Microchip samd5e5</a></li>
<li class="toctree-l3"><a class="reference internal" href="../samv7/index.html">Microchip SAM V7</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32c0/index.html">ST STM32C0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32f0/index.html">ST STM32F0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32f1/index.html">ST STM32F1</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32f2/index.html">ST STM32F2</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32f3/index.html">ST STM32F3</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32f4/index.html">ST STM32F4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32f7/index.html">ST STM32F7</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32g0/index.html">ST STM32G0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32g4/index.html">ST STM32G4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32h5/index.html">ST STM32H5</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32h7/index.html">ST STM32H7</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32l0/index.html">ST STM32L0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32l1/index.html">ST STM32L1</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32l4/index.html">ST STM32L4</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32l5/index.html">ST STM32L5</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32u5/index.html">ST STM32U5</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32wb/index.html">ST STM32WB</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32wl5/index.html">ST STM32WL5</a></li>
<li class="toctree-l3"><a class="reference internal" href="../str71x/index.html">ST STR71</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tiva/index.html">TI/Stellaris Tiva</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tms570/index.html">TI/Hercules TMS570xxx</a></li>
<li class="toctree-l3"><a class="reference internal" href="../xmc4/index.html">Infineon XMC4000</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../arm64/index.html">ARM64</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../avr/index.html">Microchip AVR</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../ceva/index.html">CEVA</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../hc/index.html">HC</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../mips/index.html">MIPS</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../misco/index.html">Misoc</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../or1k/index.html">OpenRISC</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../renesas/index.html">Renesas</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../risc-v/index.html">RISC-V</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../sim/index.html">Simulators</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../sim/network_linux.html">Network Support on Linux</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../sim/network_vpnkit.html">Network support with VPNKit</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../sparc/index.html">SPARC</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../tricore/index.html">TriCore</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../x86/index.html">Intel 80x86</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../x86_64/index.html">Intel 80x86_64</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../xtensa/index.html">Xtensa</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../z16/index.html">Z16</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../z80/index.html">Z80</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../components/index.html">OS Components</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../applications/index.html">Applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../implementation/index.html">Implementation Details</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../reference/index.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../faq/index.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../debugging/index.html">Debugging</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../guides/index.html">Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../standards/index.html">Standards</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../logos/index.html">NuttX Logos</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../_tags/tagsindex.html">Tags</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">NuttX</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Supported Platforms</a></li>
<li class="breadcrumb-item"><a href="../index.html">ARM</a></li>
<li class="breadcrumb-item active">Nordic nRF53</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/apache/nuttx/blob/master/Documentation/platforms/arm/nrf53/index.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="nordic-nrf53">
<h1>Nordic nRF53<a class="headerlink" href="#nordic-nrf53" title="Permalink to this heading"></a></h1>
<p>The nRF53 series of chips from Nordic Semiconductor are based around an two ARM Cortex-M33 cores
and a multiprotocol 2.4 GHz transceiver.</p>
<section id="peripheral-support">
<h2>Peripheral Support<a class="headerlink" href="#peripheral-support" title="Permalink to this heading"></a></h2>
<p>The following list indicates peripherals supported in NuttX:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Peripheral</p></th>
<th class="head"><p>Support</p></th>
<th class="head"><p>Notes</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>GPIO</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>GPIOTE</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>I2S</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>MWU</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>NFCT</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>PDM</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>DPPI</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>PWM</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>QDEC</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>QSPI</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>RADIO</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>RNG</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>RTC</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>SAADC</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>SPIM</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>SPIS</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>TEMP</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>TIMER</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>TWIM</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>TWIS</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>UART</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>UARTE</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>USBD</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>WDT</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>IPC</p></td>
<td><p>Yes</p></td>
<td><p>RPTUN supported</p></td>
</tr>
</tbody>
</table>
<section id="gpio-gpiote">
<h3>GPIO/GPIOTE<a class="headerlink" href="#gpio-gpiote" title="Permalink to this heading"></a></h3>
<p>Pins can be configured/operated using <code class="docutils literal notranslate"><span class="pre">nrf53_gpio_*</span></code> 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.</p>
<p>Depending on <code class="docutils literal notranslate"><span class="pre">CONFIG_NRF53_PER_PIN_INTERRUPTS</span></code> 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.</p>
<p>Finally, GPIOTE can also be used to configure a channel in <em>task mode</em>, which allows to
control pin state via tasks/events.</p>
</section>
<section id="adc">
<h3>ADC<a class="headerlink" href="#adc" title="Permalink to this heading"></a></h3>
<p>The SAADC peripheral is exposed via standard ADC driver. The lower-half of this driver
is initialized by calling <code class="xref c c-func docutils literal notranslate"><span class="pre">nrf53_adcinitialize()</span></code>.</p>
</section>
<section id="i2c">
<h3>I2C<a class="headerlink" href="#i2c" title="Permalink to this heading"></a></h3>
<p>I2C is supported both in polling and interrupt mode (via EasyDMA).</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>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.</p>
</div>
<p>The lower-half of I2C bus is initialized by <code class="xref c c-func docutils literal notranslate"><span class="pre">nrf53_i2cbus_initialize()</span></code>.</p>
</section>
<section id="spi">
<h3>SPI<a class="headerlink" href="#spi" title="Permalink to this heading"></a></h3>
<p>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).</p>
<p>It is possible to use SPI without either MOSI/MISO pin defined by simply not providing
the relevant <code class="docutils literal notranslate"><span class="pre">BOARD_SPI*_MISO/MOSI_PIN</span></code> definition.</p>
<p>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.</p>
</section>
<section id="uart">
<h3>UART<a class="headerlink" href="#uart" title="Permalink to this heading"></a></h3>
<p>UART is implemented using polling. UARTE EasyDMA feature is not yet supported.
This may introduce a large number of interrupts which may be undesirable.</p>
</section>
<section id="pwm">
<h3>PWM<a class="headerlink" href="#pwm" title="Permalink to this heading"></a></h3>
<p>PWM is supported via standard driver. This means that more advanced features such as
complex sequences or waveform modes are not yet supported.</p>
</section>
<section id="qspi">
<h3>QSPI<a class="headerlink" href="#qspi" title="Permalink to this heading"></a></h3>
<p>QSPI is supported both in interrupt-based (via EasyDMA) mode and is exposed
via standard QSPI interface.</p>
</section>
<section id="timer">
<h3>TIMER<a class="headerlink" href="#timer" title="Permalink to this heading"></a></h3>
<p>The TIMER peripheral is exposed as standard timer.</p>
</section>
<section id="rtc">
<h3>RTC<a class="headerlink" href="#rtc" title="Permalink to this heading"></a></h3>
<p>The RTC peripheral is exposed as a standard timer, since it is really a low-power
timer, without any date handling capabilities.</p>
</section>
<section id="usbd">
<h3>USBD<a class="headerlink" href="#usbd" title="Permalink to this heading"></a></h3>
<p>The USBD peripheral is exposed via standard USBDEV interface.</p>
</section>
</section>
<section id="interprocessor-communication">
<h2>Interprocessor Communication<a class="headerlink" href="#interprocessor-communication" title="Permalink to this heading"></a></h2>
<p>Interprocessor communication between the application core and the network core is realized with
the NuttX RPTUN device based on the OpenAMP framework.</p>
<p>The last 32kB of the application core RAM is used for a shared memory (address = 0x20078000).</p>
</section>
<section id="ble-support">
<h2>BLE Support<a class="headerlink" href="#ble-support" title="Permalink to this heading"></a></h2>
<p>BLE is supported in the nRF53 using Nordic’s <a class="reference external" href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/softdevice_controller/README.html">SoftDevice Controller</a>.</p>
</section>
<section id="tool-issues">
<h2>Tool Issues<a class="headerlink" href="#tool-issues" title="Permalink to this heading"></a></h2>
<section id="openocd">
<h3>OpenOCD<a class="headerlink" href="#openocd" title="Permalink to this heading"></a></h3>
<p>There is no official support for Nordic Cortex M33 chips (nRF9160 or nRF5340).</p>
</section>
<section id="segger-j-link">
<h3>Segger J-Link<a class="headerlink" href="#segger-j-link" title="Permalink to this heading"></a></h3>
<p>To start the GDB servers for the application core and the network core, use these commands:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>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
</pre></div>
</div>
<p>Then you can connect GDB to targets:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>(gdb_app) target remote localhost:2331
(gdb_net) target remote localhost:2334
</pre></div>
</div>
</section>
<section id="flashing-locked-device">
<h3>Flashing locked device<a class="headerlink" href="#flashing-locked-device" title="Permalink to this heading"></a></h3>
<ol class="arabic">
<li><p>Unlock the network core:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>nrfjprog --recover --coprocessor CP_NETWORK
</pre></div>
</div>
</li>
<li><p>Unlock the application core:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>nrfjprog --recover
</pre></div>
</div>
</li>
<li><p>Flash the network core:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>nrfjprog --coprocessor CP_NETWORK --program nuttx_net.hex --verify --chiperase
</pre></div>
</div>
</li>
<li><p>Flash the application core:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>nrfjprog --program nuttx_app.hex --verify --chiperase
</pre></div>
</div>
</li>
</ol>
</section>
</section>
<section id="supported-boards">
<h2>Supported Boards<a class="headerlink" href="#supported-boards" title="Permalink to this heading"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="boards/nrf5340-audio-dk/index.html">Nordic nRF5340-Audio-DK</a></li>
<li class="toctree-l1"><a class="reference internal" href="boards/nrf5340-dk/index.html">Nordic nRF5340 DK</a></li>
<li class="toctree-l1"><a class="reference internal" href="boards/thingy53/index.html">Nordic Thingy:53</a></li>
</ul>
</div>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../nrf52/boards/xiao-nrf52840/index.html" class="btn btn-neutral float-left" title="Seeed Studio XIAO nRF52840" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="boards/nrf5340-audio-dk/index.html" class="btn btn-neutral float-right" title="Nordic nRF5340-Audio-DK" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2023, The Apache Software Foundation.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>