| <!-- |
| 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>NXP i.MX RT — 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="ARCX Socket Grid" href="boards/arcx-socket-grid/index.html" /> |
| <link rel="prev" title="IMX95LPD5EVK-19" href="../imx9/boards/imx95-evk/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 current"><a class="current reference internal" href="#">NXP i.MX RT</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="#data-and-instruction-cache">Data and Instruction Cache</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#tickless-os">Tickless OS</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#peripheral-support">Peripheral Support</a><ul> |
| <li class="toctree-l5"><a class="reference internal" href="#acmp">ACMP</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#adc">ADC</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#can">CAN</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#csi">CSI</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#dac">DAC</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#elcdif">eLCDIF</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#enc">ENC</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#enet">ENET</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#flexio">FlexIO</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#gpio">GPIO</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#i2c">I2C</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#pwm">PWM</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#sai">SAI</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#spdif">SPDIF</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="#usb">USB</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/arcx-socket-grid/index.html">ARCX Socket Grid</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="boards/imxrt1020-evk/index.html">i.MX RT1020 EVK</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="boards/imxrt1050-evk/index.html">i.MX RT1050 EVK</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="boards/imxrt1060-evk/index.html">i.MX RT1060 EVK</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="boards/imxrt1064-evk/index.html">i.MX RT1064 EVK</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="boards/imxrt1170-evk/index.html">i.MX RT1170 EVK</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="boards/teensy-4.x/index.html">Teensy-4.x</a></li> |
| </ul> |
| </li> |
| </ul> |
| </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"><a class="reference internal" href="../nrf53/index.html">Nordic nRF53</a></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">NXP i.MX RT</li> |
| <li class="wy-breadcrumbs-aside"> |
| <a href="https://github.com/apache/nuttx/blob/master/Documentation/platforms/arm/imxrt/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="nxp-i-mx-rt"> |
| <h1>NXP i.MX RT<a class="headerlink" href="#nxp-i-mx-rt" title="Permalink to this heading"></a></h1> |
| <p>The i.MX RT series of chips from NXP Semiconductors is based around an ARM Cortex-M7 core running |
| at 500 MHz, 600 MHz or 1 GHz based on particular MCUs</p> |
| <section id="supported-mcus"> |
| <h2>Supported MCUs<a class="headerlink" href="#supported-mcus" title="Permalink to this heading"></a></h2> |
| <p>The following list includes MCUs from i.MX RT series and indicates whether they are supported in NuttX</p> |
| <table class="docutils align-default"> |
| <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>RT500</p></td> |
| <td><p>No</p></td> |
| <td><p>Cortex-M33</p></td> |
| <td><p>200 MHz</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>RT600</p></td> |
| <td><p>No</p></td> |
| <td><p>Cortex-M33</p></td> |
| <td><p>300 MHz</p></td> |
| </tr> |
| <tr class="row-even"><td><p>RT1010</p></td> |
| <td><p>No</p></td> |
| <td><p>Cortex-M7</p></td> |
| <td><p>500 MHz</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>RT1015</p></td> |
| <td><p>No</p></td> |
| <td><p>Cortex-M7</p></td> |
| <td><p>500 MHz</p></td> |
| </tr> |
| <tr class="row-even"><td><p>RT1020</p></td> |
| <td><p>Yes</p></td> |
| <td><p>Cortex-M7</p></td> |
| <td><p>500 MHz</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>RT1024</p></td> |
| <td><p>No</p></td> |
| <td><p>Cortex-M7</p></td> |
| <td><p>500 MHz</p></td> |
| </tr> |
| <tr class="row-even"><td><p>RT1050</p></td> |
| <td><p>Yes</p></td> |
| <td><p>Cortex-M7</p></td> |
| <td><p>600 MHz</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>RT1060</p></td> |
| <td><p>Yes</p></td> |
| <td><p>Cortex-M7</p></td> |
| <td><p>600 MHz</p></td> |
| </tr> |
| <tr class="row-even"><td><p>RT1064</p></td> |
| <td><p>Yes</p></td> |
| <td><p>Cortex-M7</p></td> |
| <td><p>600 MHz</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>RT1170</p></td> |
| <td><p>No</p></td> |
| <td><p>Cortex-M7 + M4</p></td> |
| <td><p>1 GHz + 400 MHz</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </section> |
| <section id="data-and-instruction-cache"> |
| <h2>Data and Instruction Cache<a class="headerlink" href="#data-and-instruction-cache" title="Permalink to this heading"></a></h2> |
| <p>MCUs i.MX RT1010 and higher have separated caches for instructions and data. Data cache is initially |
| set as write-through but can be changed to write-back via Kconfig. While write-back gives better |
| performance than write-through, it is not supported for all peripherals in NuttX yet. Write-back data |
| cache can not be selected while running Ethernet or serial port over USB.</p> |
| </section> |
| <section id="tickless-os"> |
| <h2>Tickless OS<a class="headerlink" href="#tickless-os" title="Permalink to this heading"></a></h2> |
| <p>With Tickless OS, the periodic, timer interrupt is eliminated and replaced with a one-shot, |
| interval timer, that becomes event driven instead of polled. This allows to run the MCU with |
| higher resolution without using more of the CPU bandwidth processing useless interrupts.</p> |
| <p>Only tickless via an alarm is currently supported for i.MX RT MCU, which can be selected by |
| CONFIG_SCHED_TICKLESS_ALARM option. CONFIG_USEC_PER_TICK option determines the resolution |
| of time reported by <code class="xref c c-func docutils literal notranslate"><span class="pre">clock_systime_ticks()</span></code> and the resolution of times that can be set |
| for certain delays including watchdog timers and delayed work. It is important that value set in |
| CONFIG_USEC_PER_TICK represents the frequency of GPT timer that runs the tickless mode. Clock |
| source of the timer is 16.6 MHz, which is then divided by the prescaler value from 1 to 4096. |
| Possible values for CONFIG_USEC_PER_TICK are 10 or 100 for example.</p> |
| </section> |
| <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> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="row-even"><td><p>ACMP</p></td> |
| <td><p>No</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>ADC</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-even"><td><p>CAN</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>CSI</p></td> |
| <td><p>No</p></td> |
| </tr> |
| <tr class="row-even"><td><p>DAC</p></td> |
| <td><p>No</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>eLCDIF</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-even"><td><p>ENC</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>ENET</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-even"><td><p>FlexIO</p></td> |
| <td><p>No</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>GPIO</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-even"><td><p>I2S</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>PWM</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-even"><td><p>SAI</p></td> |
| <td><p>No</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>SPDIF</p></td> |
| <td><p>No</p></td> |
| </tr> |
| <tr class="row-even"><td><p>SPI</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>UART</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| <tr class="row-even"><td><p>USB</p></td> |
| <td><p>Yes</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <section id="acmp"> |
| <h3>ACMP<a class="headerlink" href="#acmp" title="Permalink to this heading"></a></h3> |
| <p>The circout for comparing two analog input voltages designed to operate across the full |
| range of supply voltage (rail-to-rail operation).</p> |
| </section> |
| <section id="adc"> |
| <h3>ADC<a class="headerlink" href="#adc" title="Permalink to this heading"></a></h3> |
| <p>ADC driver with the successive approximation analog/digital converter. The lower-half of |
| this driver is initialize by calling <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_adcinitialize()</span></code>.</p> |
| <p>ADC module can use either continuous trigger (next conversion is started as soon as the |
| previous is finished) or hardware trigger. This option is selected by IMXRT_ADCx_ETC |
| (x = 1, 2) config option. If IMXRT_ADCx_ETC = -1 then continuous trigger is used. If |
| corresponding XBAR number is put in IMXRT_ADCx_ETC then that signal is used to trigger |
| the ADC conversion (for example PWM signal can be used as a source). For PWM XBAR options |
| please refer to PWM chapter of this documentation.</p> |
| <p>Hardware triggering is currently limited to maximum of 8 channels. HW trigger is automatically |
| disabled if there are more than 8 channels.</p> |
| <p>DMA is currently not supported for ADC modules.</p> |
| </section> |
| <section id="can"> |
| <h3>CAN<a class="headerlink" href="#can" title="Permalink to this heading"></a></h3> |
| <p>FlexCAN driver is supported in MCUs i.MX RT1020 and higher. i.MX RT106x have both classical |
| CAN and also one CAN FD while i.MX RT1170 have 3 CAN FD peripherals. FlexCAN driver in imxrt |
| works beyond SocketCAN driver layout. The lower-half of this driver is initialize by |
| calling <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_cannitialize()</span></code>.</p> |
| <p>There is an booting option that automatically provides initialization of network interface |
| in the early stages of booting and therefore calling <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_cannitialize()</span></code> via |
| board specific logic is not necessary. This however works only when there is only one |
| interface in the chip. For running more interfaces (like CAN and Ethernet), network late |
| initialization must be turn on by CONFIG_NETDEV_LATEINIT and board specific logic must call |
| lower-half part of drivers.</p> |
| </section> |
| <section id="csi"> |
| <h3>CSI<a class="headerlink" href="#csi" title="Permalink to this heading"></a></h3> |
| <p>CMOS Sensor interface which enables the chip to connect directly to external CMOS image sensors.</p> |
| </section> |
| <section id="dac"> |
| <h3>DAC<a class="headerlink" href="#dac" title="Permalink to this heading"></a></h3> |
| <p>Digital/analog converter for external signal is only supported in i.MX RT1170 MCU. It is 12 bit |
| lower power, general purpose DAC.</p> |
| </section> |
| <section id="elcdif"> |
| <h3>eLCDIF<a class="headerlink" href="#elcdif" title="Permalink to this heading"></a></h3> |
| <p>The enhanced Liquid Crystal Display interface (LCDIF) is a general purpose display controller.</p> |
| </section> |
| <section id="enc"> |
| <h3>ENC<a class="headerlink" href="#enc" title="Permalink to this heading"></a></h3> |
| <p>The enhanced quadrature encoder/decoder module supported in i.MX RT1015 and higher. The lower-half |
| of this driver is initialize by calling <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_qeinitialize()</span></code>.</p> |
| </section> |
| <section id="enet"> |
| <h3>ENET<a class="headerlink" href="#enet" title="Permalink to this heading"></a></h3> |
| <p>Ethernet driver supported in i.MX RT1020 and higher. The lower-half of this driver is initialize |
| by calling <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_netnitialize()</span></code>.</p> |
| <p>There is an booting option that automatically provides initialization of network interface |
| in the early stages of booting and therefore calling <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_cannitialize()</span></code> via |
| board specific logic is not necessary. This however works only when there is only one |
| interface in the chip. For running more interfaces (like CAN and Ethernet), network late |
| initialization must be turn on by CONFIG_NETDEV_LATEINIT and board specific logic must call |
| lower-half part of drivers.</p> |
| </section> |
| <section id="flexio"> |
| <h3>FlexIO<a class="headerlink" href="#flexio" title="Permalink to this heading"></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. |
| This module is supported in i.MX RT1010 and higher.</p> |
| </section> |
| <section id="gpio"> |
| <h3>GPIO<a class="headerlink" href="#gpio" title="Permalink to this heading"></a></h3> |
| <p>Pins can be configured using <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_config_gpio()</span></code> function. Writing to pins is |
| done by <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_gpio_write()</span></code> function and reading is done by <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_gpio_read()</span></code>.</p> |
| <p>MCUs i.MX RT1060 and higher includes both standard speed GPIOs (1-5) and high speed |
| GPIOS (6-9). Regular and high speed GPIO share the same pins (GPIO1 is with GPIO6 etc), |
| therefore IOMUXC_GPR_GPR26-29 registers are used to determine what module is used for the |
| GPIO pins.</p> |
| </section> |
| <section id="i2c"> |
| <h3>I2C<a class="headerlink" href="#i2c" title="Permalink to this heading"></a></h3> |
| <p>Inter-Integrated Circout 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">imxrt_i2cbus_initialize()</span></code>.</p> |
| </section> |
| <section id="pwm"> |
| <h3>PWM<a class="headerlink" href="#pwm" title="Permalink to this heading"></a></h3> |
| <p>Pulse width modulator supported in i.MX RT1010 and higher. Multiple channels option is available. |
| Output on pin B is currently supported only as a complementary option to pin A. |
| The lower-half of this driver is initialize by calling <code class="xref c c-func docutils literal notranslate"><span class="pre">imxrt_pwminitialize()</span></code>.</p> |
| <p>PWM module can be synchronized by an external signal. The external signal used for synchronization |
| is selected by IMXRT_FLEXPWMx_MODx_SYNC_SRC config option. The number in IMXRT_FLEXPWMx_MODx_SYNC_SRC |
| corresponds with the XBAR number. Following numbers can be used for synchronization of PWMs with other |
| PWM module when using iMXRT1020, iMXRT1050 or iMXRT1060.</p> |
| <ul class="simple"> |
| <li><p>PWM1 Module 1 = 40</p></li> |
| <li><p>PWM1 Module 2 = 41</p></li> |
| <li><p>PWM1 Module 3 = 42</p></li> |
| <li><p>PWM1 Module 4 = 43</p></li> |
| <li><p>PWM2 Module 1 = 44</p></li> |
| <li><p>PWM2 Module 2 = 45</p></li> |
| <li><p>PWM2 Module 3 = 46</p></li> |
| <li><p>PWM2 Module 4 = 47</p></li> |
| <li><p>PWM3 Module 1 = 48</p></li> |
| <li><p>PWM3 Module 2 = 49</p></li> |
| <li><p>PWM3 Module 3 = 50</p></li> |
| <li><p>PWM3 Module 4 = 51</p></li> |
| <li><p>PWM4 Module 1 = 52</p></li> |
| <li><p>PWM4 Module 2 = 53</p></li> |
| <li><p>PWM4 Module 3 = 54</p></li> |
| <li><p>PWM4 Module 4 = 55</p></li> |
| </ul> |
| <p>iMXRT1170 has different XBAR connections:</p> |
| <ul class="simple"> |
| <li><p>PWM1 Module 1 = 74</p></li> |
| <li><p>PWM1 Module 2 = 75</p></li> |
| <li><p>PWM1 Module 3 = 76</p></li> |
| <li><p>PWM1 Module 4 = 77</p></li> |
| <li><p>PWM2 Module 1 = 78</p></li> |
| <li><p>PWM2 Module 2 = 79</p></li> |
| <li><p>PWM2 Module 3 = 80</p></li> |
| <li><p>PWM2 Module 4 = 81</p></li> |
| <li><p>PWM3 Module 1 = 82</p></li> |
| <li><p>PWM3 Module 2 = 83</p></li> |
| <li><p>PWM3 Module 3 = 84</p></li> |
| <li><p>PWM3 Module 4 = 85</p></li> |
| <li><p>PWM4 Module 1 = 86</p></li> |
| <li><p>PWM4 Module 2 = 87</p></li> |
| <li><p>PWM4 Module 3 = 88</p></li> |
| <li><p>PWM4 Module 4 = 89</p></li> |
| </ul> |
| <p>Option IMXRT_FLEXPWMx_MODx_TRIG allows the module to generate a trigger signal. The trigger is generated on |
| timer capture of either period or duty cycle value based on the configuration.</p> |
| </section> |
| <section id="sai"> |
| <h3>SAI<a class="headerlink" href="#sai" title="Permalink to this heading"></a></h3> |
| <p>Synchronous audio interface provided by I2C module. Supported in i.MX RT1015 and higher.</p> |
| </section> |
| <section id="spdif"> |
| <h3>SPDIF<a class="headerlink" href="#spdif" title="Permalink to this heading"></a></h3> |
| <p>Sony/Philips digital interface audio block. It is a stereo transceiver that allows the |
| processor to receive and transmit digital audio. Supported in i.MX RT1010 and higher.</p> |
| </section> |
| <section id="spi"> |
| <h3>SPI<a class="headerlink" href="#spi" title="Permalink to this heading"></a></h3> |
| <p>Serial Peripheral interface 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">imxrt_lpsibus_initialize()</span></code>.</p> |
| </section> |
| <section id="uart"> |
| <h3>UART<a class="headerlink" href="#uart" title="Permalink to this heading"></a></h3> |
| <p>Universal Asynchronous Receiver/Transmitter module. UART is initialized automatically during |
| MCU boot.</p> |
| </section> |
| <section id="usb"> |
| <h3>USB<a class="headerlink" href="#usb" title="Permalink to this heading"></a></h3> |
| <p>Console communication over USB is supported via CDC-ACM. Only USB Device is currently supported |
| for i.MX RT in NuttX</p> |
| </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/arcx-socket-grid/index.html">ARCX Socket Grid</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="boards/imxrt1020-evk/index.html">i.MX RT1020 EVK</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="boards/imxrt1050-evk/index.html">i.MX RT1050 EVK</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="boards/imxrt1060-evk/index.html">i.MX RT1060 EVK</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="boards/imxrt1064-evk/index.html">i.MX RT1064 EVK</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="boards/imxrt1170-evk/index.html">i.MX RT1170 EVK</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="boards/teensy-4.x/index.html">Teensy-4.x</a></li> |
| </ul> |
| </div> |
| </section> |
| </section> |
| |
| |
| </div> |
| </div> |
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> |
| <a href="../imx9/boards/imx95-evk/index.html" class="btn btn-neutral float-left" title="IMX95LPD5EVK-19" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> |
| <a href="boards/arcx-socket-grid/index.html" class="btn btn-neutral float-right" title="ARCX Socket Grid" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> |
| </div> |
| |
| <hr/> |
| |
| <div role="contentinfo"> |
| <p>© Copyright 2023, The Apache Software Foundation.</p> |
| </div> |
| |
| |
| |
| </footer> |
| </div> |
| </div> |
| </section> |
| </div> |
| <script> |
| jQuery(function () { |
| SphinxRtdTheme.Navigation.enable(true); |
| }); |
| </script> |
| |
| </body> |
| </html> |