blob: 93df4d580303243e082d103cbf2239e6b59600f3 [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.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>NXP S32K1XX &mdash; NuttX latest documentation</title>
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
<link rel="shortcut icon" href="../../../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
<script src="../../../_static/jquery.js"></script>
<script src="../../../_static/underscore.js"></script>
<script src="../../../_static/doctools.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="NXP RDDRONE-BMS772" href="boards/rddrone-bms772/index.html" />
<link rel="prev" title="Waveshare RP2040 LCD 1.28" href="../rp2040/boards/waveshare-rp2040-lcd-1.28/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
<img src="../../../_static/NuttX.png" class="logo" alt="Logo"/>
</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" />
<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="../a64/index.html">Allwinner A64</a></li>
<li class="toctree-l3"><a class="reference internal" href="../imxrt/index.html">i.MX RT</a></li>
<li class="toctree-l3"><a class="reference internal" href="../nrf52/index.html">Nordic nRF52</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rp2040/index.html">rp2040</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">NXP S32K1XX</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#supported-mcus">Supported MCUs</a></li>
<li class="toctree-l4"><a class="reference internal" href="#supported-modules-peripherals">Supported Modules &amp; Peripherals</a><ul>
<li class="toctree-l5"><a class="reference internal" href="#adc">ADC</a></li>
<li class="toctree-l5"><a class="reference internal" href="#cmp">CMP</a></li>
<li class="toctree-l5"><a class="reference internal" href="#edma">eDMA</a></li>
<li class="toctree-l5"><a class="reference internal" href="#eeeprom">EEEPROM</a></li>
<li class="toctree-l5"><a class="reference internal" href="#enet">ENET</a></li>
<li class="toctree-l5"><a class="reference internal" href="#flexcan">FlexCAN</a></li>
<li class="toctree-l5"><a class="reference internal" href="#flexio">FlexIO</a></li>
<li class="toctree-l5"><a class="reference internal" href="#ftm">FTM</a></li>
<li class="toctree-l5"><a class="reference internal" href="#gpio">GPIO</a></li>
<li class="toctree-l5"><a class="reference internal" href="#lpi2c">LPI2C</a></li>
<li class="toctree-l5"><a class="reference internal" href="#lpspi">LPSPI</a></li>
<li class="toctree-l5"><a class="reference internal" href="#lpuart">LPUART</a></li>
<li class="toctree-l5"><a class="reference internal" href="#qspi">QSPI</a></li>
<li class="toctree-l5"><a class="reference internal" href="#rtc">RTC</a></li>
<li class="toctree-l5"><a class="reference internal" href="#sai">SAI</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/rddrone-bms772/index.html">NXP RDDRONE-BMS772</a></li>
<li class="toctree-l5"><a class="reference internal" href="boards/s32k118evb/index.html">NXP S32K118EVB</a></li>
<li class="toctree-l5"><a class="reference internal" href="boards/s32k144evb/index.html">NXP S32K144EVB</a></li>
<li class="toctree-l5"><a class="reference internal" href="boards/s32k146evb/index.html">NXP S32K146EVB</a></li>
<li class="toctree-l5"><a class="reference internal" href="boards/s32k148evb/index.html">NXP S32K148EVB</a></li>
<li class="toctree-l5"><a class="reference internal" href="boards/ucans32k146/index.html">NXP UCANS32K146</a></li>
</ul>
</li>
</ul>
</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="../samv7/index.html">SAM V7</a></li>
<li class="toctree-l3"><a class="reference internal" href="../stm32wl5/index.html">STM32WL5</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../avr/index.html">AVR8</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="../../xtensa/index.html">Xtensa</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="../../../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="../../../guides/index.html">Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</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"></a> &raquo;</li>
<li><a href="../../index.html">Supported Platforms</a> &raquo;</li>
<li><a href="../index.html">ARM</a> &raquo;</li>
<li>NXP S32K1XX</li>
<li class="wy-breadcrumbs-aside">
<a href="../../../_sources/platforms/arm/s32k1xx/index.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="nxp-s32k1xx">
<h1>NXP S32K1XX<a class="headerlink" href="#nxp-s32k1xx" title="Permalink to this headline"></a></h1>
<p>The <a class="reference external" href="https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32k-general-purpose-mcus/s32k1-microcontrollers-for-general-purpose:S32K1">S32K1XX series</a> is a family of automotive-grade general-purpose microcontrollers from NXP Semiconductors. The lower end of the family is based on an Arm Cortex-M0+ core and can run at clockspeeds up to 48 MHz. The higher end chips are based on the Arm Cortex-M4F core which runs at up to 80 or 112 MHz.</p>
<section id="supported-mcus">
<h2>Supported MCUs<a class="headerlink" href="#supported-mcus" title="Permalink to this headline"></a></h2>
<p>The following list includes MCUs from the S32K1XX series and indicates whether they are supported in NuttX:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 24%" />
<col style="width: 21%" />
<col style="width: 29%" />
<col style="width: 26%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>MCU</p></th>
<th class="head"><p>Support</p></th>
<th class="head"><p>Core</p></th>
<th class="head"><p>Frequency</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>S32K116</p></td>
<td><p>Yes*</p></td>
<td><p>Cortex-M0+</p></td>
<td><p>48 MHz</p></td>
</tr>
<tr class="row-odd"><td><p>S32K118</p></td>
<td><p>Yes*</p></td>
<td><p>Cortex-M0+</p></td>
<td><p>48 MHz</p></td>
</tr>
<tr class="row-even"><td><p>S32K142</p></td>
<td><p>Yes*</p></td>
<td><p>Cortex-M4F</p></td>
<td><p>112 MHz</p></td>
</tr>
<tr class="row-odd"><td><p>S32K144</p></td>
<td><p>Yes</p></td>
<td><p>Cortex-M4F</p></td>
<td><p>112 MHz</p></td>
</tr>
<tr class="row-even"><td><p>S32K146</p></td>
<td><p>Yes</p></td>
<td><p>Cortex-M4F</p></td>
<td><p>112 MHz</p></td>
</tr>
<tr class="row-odd"><td><p>S32K148</p></td>
<td><p>Yes</p></td>
<td><p>Cortex-M4F</p></td>
<td><p>112 MHz</p></td>
</tr>
<tr class="row-even"><td><p>S32K142W</p></td>
<td><p>No**</p></td>
<td><p>Cortex-M4F</p></td>
<td><p>80 MHz</p></td>
</tr>
<tr class="row-odd"><td><p>S32K144W</p></td>
<td><p>No**</p></td>
<td><p>Cortex-M4F</p></td>
<td><p>80 MHz</p></td>
</tr>
</tbody>
</table>
<div class="line-block">
<div class="line">* Supported but (mostly) untested.</div>
<div class="line">** Not supported (yet), but it is expected that existing code can be adapted with limited effort.</div>
</div>
</section>
<section id="supported-modules-peripherals">
<h2>Supported Modules &amp; Peripherals<a class="headerlink" href="#supported-modules-peripherals" title="Permalink to this headline"></a></h2>
<p>The following list indicates modules and peripherals supported in NuttX. Note that this list does not include all MCU modules. Please refer to the S32K1XX Reference Manual for a complete overview of its features.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 23%" />
<col style="width: 16%" />
<col style="width: 60%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Peripheral</p></th>
<th class="head"><p>Support</p></th>
<th class="head"><p>Comments</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>ADC</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>CMP</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>eDMA</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>EEEPROM</p></td>
<td><p>Yes</p></td>
<td><p>EEPROM emulated by FlexRAM</p></td>
</tr>
<tr class="row-even"><td><p>ENET</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>FlexCAN</p></td>
<td><p>Yes</p></td>
<td><p>SocketCAN-compatible</p></td>
</tr>
<tr class="row-even"><td><p>FlexIO</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>FTM</p></td>
<td><p>Yes</p></td>
<td><p>PWM driver only</p></td>
</tr>
<tr class="row-even"><td><p>GPIO</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>LPI2C</p></td>
<td><p>Yes</p></td>
<td><p>I2C Master and Slave</p></td>
</tr>
<tr class="row-even"><td><p>LPSPI</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>LPUART</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>QSPI</p></td>
<td><p>No</p></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>RTC</p></td>
<td><p>Yes</p></td>
<td></td>
</tr>
<tr class="row-even"><td><p>SAI</p></td>
<td><p>No</p></td>
<td></td>
</tr>
</tbody>
</table>
<section id="adc">
<h3>ADC<a class="headerlink" href="#adc" title="Permalink to this headline"></a></h3>
<p>12-Bit Successive Approximation (SAR) Analog-to-Digital Converter (ADC). No driver support (yet).</p>
</section>
<section id="cmp">
<h3>CMP<a class="headerlink" href="#cmp" title="Permalink to this headline"></a></h3>
<p>Analog Comparator. No driver support (yet).</p>
</section>
<section id="edma">
<h3>eDMA<a class="headerlink" href="#edma" title="Permalink to this headline"></a></h3>
<p>Enhanced Direct Memory Access module. There is a driver that was copied from the i.MX RT port, but this was not tested on S32K1XX.</p>
</section>
<section id="eeeprom">
<h3>EEEPROM<a class="headerlink" href="#eeeprom" title="Permalink to this headline"></a></h3>
<p>Emulated EEPROM (implemented by FlexRAM module). A basic block driver is available to read and write data.</p>
</section>
<section id="enet">
<h3>ENET<a class="headerlink" href="#enet" title="Permalink to this headline"></a></h3>
<p>10/100 Mbit/s Ethernet MAC. Only available on S32K148. Driver is available.</p>
</section>
<section id="flexcan">
<h3>FlexCAN<a class="headerlink" href="#flexcan" title="Permalink to this headline"></a></h3>
<p>The S32K1XX family has up to 3x FlexCAN modules (which may not all have CAN FD support). A SocketCAN-compatible driver is available.</p>
</section>
<section id="flexio">
<h3>FlexIO<a class="headerlink" href="#flexio" title="Permalink to this headline"></a></h3>
<p>A configurable module providing a range of functionality like emulation of a variety of serial/parallel communication protocols, flexible 16-bit timers or programmable logic blocks. No driver available.</p>
</section>
<section id="ftm">
<h3>FTM<a class="headerlink" href="#ftm" title="Permalink to this headline"></a></h3>
<p>A PWM driver based on FlexTimer (FTM) is available.</p>
</section>
<section id="gpio">
<h3>GPIO<a class="headerlink" href="#gpio" title="Permalink to this headline"></a></h3>
<p>Pins can be configured using <code class="xref c c-func docutils literal notranslate"><span class="pre">s32k1xx_pinconfig()</span></code> function. Writing to pins is done by <code class="xref c c-func docutils literal notranslate"><span class="pre">s32k1xx_gpiowrite()</span></code> function and reading is done by <code class="xref c c-func docutils literal notranslate"><span class="pre">s32k1xx_gpioread()</span></code>.</p>
</section>
<section id="lpi2c">
<h3>LPI2C<a class="headerlink" href="#lpi2c" title="Permalink to this headline"></a></h3>
<p>Low-Power Inter-Integrated Circuit (I2C) module supporting an interface to an I2C bus as master and/or
as a slave. The lower-half of this driver is initialize by calling <code class="xref c c-func docutils literal notranslate"><span class="pre">s32k1xx_i2cbus_initialize()</span></code>.</p>
</section>
<section id="lpspi">
<h3>LPSPI<a class="headerlink" href="#lpspi" title="Permalink to this headline"></a></h3>
<p>Low-Power Serial Peripheral Interface (SPI) module that supports an interface to an SPI bus as a master
and/or a slave. The lower-half of this driver is initialize by calling <code class="xref c c-func docutils literal notranslate"><span class="pre">s32k1xx_lpspibus_initialize()</span></code>.</p>
</section>
<section id="lpuart">
<h3>LPUART<a class="headerlink" href="#lpuart" title="Permalink to this headline"></a></h3>
<p>Low-Power Universal Asynchronous Receiver/Transmitter (UART) module. UART is initialized automatically during
MCU boot.</p>
</section>
<section id="qspi">
<h3>QSPI<a class="headerlink" href="#qspi" title="Permalink to this headline"></a></h3>
<p>QuadSPI memory interface for external serial flash devices. No driver implemented.</p>
</section>
<section id="rtc">
<h3>RTC<a class="headerlink" href="#rtc" title="Permalink to this headline"></a></h3>
<p>Real-Time Clock module. A basic driver has been implemented.</p>
</section>
<section id="sai">
<h3>SAI<a class="headerlink" href="#sai" title="Permalink to this headline"></a></h3>
<p>The Synchronous Audio Interface for digital audio over I2S (Inter-IC Sound) is only available on S32K148. No driver implemented.</p>
</section>
</section>
<section id="supported-boards">
<h2>Supported Boards<a class="headerlink" href="#supported-boards" title="Permalink to this headline"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="boards/rddrone-bms772/index.html">NXP RDDRONE-BMS772</a></li>
<li class="toctree-l1"><a class="reference internal" href="boards/s32k118evb/index.html">NXP S32K118EVB</a></li>
<li class="toctree-l1"><a class="reference internal" href="boards/s32k144evb/index.html">NXP S32K144EVB</a></li>
<li class="toctree-l1"><a class="reference internal" href="boards/s32k146evb/index.html">NXP S32K146EVB</a></li>
<li class="toctree-l1"><a class="reference internal" href="boards/s32k148evb/index.html">NXP S32K148EVB</a></li>
<li class="toctree-l1"><a class="reference internal" href="boards/ucans32k146/index.html">NXP UCANS32K146</a></li>
</ul>
</div>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../rp2040/boards/waveshare-rp2040-lcd-1.28/index.html" class="btn btn-neutral float-left" title="Waveshare RP2040 LCD 1.28" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="boards/rddrone-bms772/index.html" class="btn btn-neutral float-right" title="NXP RDDRONE-BMS772" 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 2020, The Apache Software Foundation.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>