blob: 3d2ddb0d978ea3c7fa21c6b0a2ff0c53f7c080e5 [file] [log] [blame]
.. zephyr:board:: mimxrt700_evk
Overview
********
The new i.MX RT700 CPU architecture is composed of a high-performance main-compute subsystem,
a secondary “always-on” sense-compute subsystem and specialized coprocessors.
The main-compute subsystem has a primary Arm® Cortex®-M33 running at 325 MHz, with an integrated
Cadence® Tensilica® HiFi 4 DSP for more demanding DSP and audio processing tasks.
The sense-compute subsystem has a second Arm® Cortex®-M33 and an integrated Cadence® Tensilica®
HiFi 1 DSP. This removes the need for an external sensor hub, reducing system design complexity,
footprint and BOM costs.
The HiFi4 is a high performance DSP core based upon a Very Long Instruction Word (VLIW) architecture,
which is capable of processing up to eight 32x16 MACs per instruction cycle. It can be used for offloading
high-performance numerical tasks such as audio and image processing and supports both fixed-point and
floating-point operations.
The i.MX RT700 also features NXP’s eIQ Neutron NPU, enabled with the eIQ machine learning software
development environment.
Hardware
********
- Main Compute Subsystem:
- Arm Cortex-M33 up to 325 MHz
- HiFi 4 DSP up to 325 MHz
- eIQ Neutron NPU up to 325 MHz
- Sense Compute Subsystem:
- Arm Cortex-M33 up to 250 MHz
- HiFi 1 DSP up to 250 MHz
- 7.5 MB on-chip SRAM
- Three xSPI interfaces for off-chip memory expansion, supporting up to 16b wide external memories up to 250 MHz DDR
- eUSB support with integrated PHY
- Two SD/eMMC memory card interfaces—one supporting eMMC 5.0 with HS400/DDR operation
- USB high-speed host/device controller with on-chip PHY
- A digital microphone interface supporting up to 8 channels
- Serial peripherals (UART/I²C/I3C/SPI/HSPI/SAI)
- 2.5D GPU with vector graphics acceleration and frame buffer compression
- EZH-V using RISC-V core with additional SIMD/DSP instructions
- Full openVG 1.1 support
- Up to 720p@60FPS from on-chip SRAM
- LCD Interface + MIPI DSI
- Integrated JPEG and PNG support
- CSI 8/10/16-bit parallel (via FlexIO)
For more information about the MIMXRT798 SoC and MIMXRT700-EVK board, see
these references:
- `i.MX RT700 Website`_
Supported Features
==================
NXP considers the MIMXRT700-EVK as a superset board for the i.MX RT7xx
family of MCUs. This board is a focus for NXP's Full Platform Support for
Zephyr, to better enable the entire RT7xx family. NXP prioritizes enabling
this board with new support for Zephyr features.
.. zephyr:board-supported-hw::
Connections and IOs
===================
The MIMXRT798 SoC has IOCON registers, which can be used to configure the
functionality of a pin.
+---------+-----------------+----------------------------+
| Name | Function | Usage |
+=========+=================+============================+
| PIO0_6 | I2C | I2C SDA |
+---------+-----------------+----------------------------+
| PIO0_7 | I2C | I2C SCL |
+---------+-----------------+----------------------------+
| PIO0_31 | UART0 | UART RX |
+---------+-----------------+----------------------------+
| PIO1_0 | UART0 | UART TX |
+---------+-----------------+----------------------------+
| PIO0_18 | GPIO | GREEN LED |
+---------+-----------------+----------------------------+
| PIO0_9 | GPIO | SW5 |
+---------+-----------------+----------------------------+
| PIO8_14 | UART19 | UART TX |
+---------+-----------------+----------------------------+
| PIO8_15 | UART19 | UART RX |
+---------+-----------------+----------------------------+
| PIO3_0 | SPI | SPI MOSI |
+---------+-----------------+----------------------------+
| PIO3_1 | SPI | SPI SCK |
+---------+-----------------+----------------------------+
| PIO3_2 | SPI | SPI MISO |
+---------+-----------------+----------------------------+
| PIO3_3 | SPI | SPI SSEL |
+---------+-----------------+----------------------------+
System Clock
============
The MIMXRT700 EVK is configured to use the Systick
as a source for the system clock.
HiFi1 DSP Core
==================
One can build a Zephyr application for the i.MX RT700 HiFi 1 DSP core by targeting the HiFi 1
SOC. Xtensa toolchain supporting RT700 DSP cores is included in Zephyr SDK.
To build the hello_world sample for the i.MX RT700 HiFi 1 DSP core:
.. zephyr-app-commands::
:tool: west
:zephyr-app: samples/hello_world
:board: mimxrt700_evk/mimxrt798s/hifi1
:goals: build
HiFi4 DSP Core
==================
One can build a Zephyr application for the i.MX RT700 HiFi 4 DSP core by targeting the HiFi 4
SOC. Xtensa toolchain supporting RT700 DSP cores is included in Zephyr SDK.
To build the hello_world sample for the i.MX RT700 HiFi 4 DSP core:
.. zephyr-app-commands::
:tool: west
:zephyr-app: samples/hello_world
:board: mimxrt700_evk/mimxrt798s/hifi4
:goals: build
Programming and Debugging
*************************
.. zephyr:board-supported-runners::
Build and flash applications as usual (see :ref:`build_an_application` and
:ref:`application_run` for more details).
Configuring a Debug Probe
=========================
A debug probe is used for both flashing and debugging the board. This board is
configured by default to use the MCU-Link CMSIS-DAP Onboard Debug Probe.
.. tabs::
.. group-tab:: LinkServer
1. Install the :ref:`linkserver-debug-host-tools` and make sure they are in your search path.
2. To put the board in ``DFU mode`` to program the firmware, short jumper J20.
3. To update the debug firmware, please follow the instructions on `MIMXRT700-EVK Debug Firmware`
.. group-tab:: JLink External
1. Install the :ref:`jlink-debug-host-tools` and make sure they are in your search path.
2. To disconnect the SWD signals from onboard debug circuit, **short** jumpers JP18.
3. Connect the J-Link probe to J18 20-pin header.
See :ref:`jlink-external-debug-probe` for more information.
Configuring a Console
=====================
Connect a USB cable from your PC to J54, and use the serial terminal of your choice
(minicom, putty, etc.) with the following settings:
- Speed: 115200
- Data: 8 bits
- Parity: None
- Stop bits: 1
Flashing
========
The DIP switch SW10 selects the boot options. Set SW10 to Off-On (01) to boot from the default
external flash on XSPI0.
Here is an example for the :zephyr:code-sample:`hello_world` application. This example uses the
:ref:`jlink-debug-host-tools` as default.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt700_evk/mimxrt798s/cm33_cpu0
:goals: flash
Open a serial terminal, reset the board (press the RESET button), and you should
see the following message in the terminal:
.. code-block:: console
*** Booting Zephyr OS v3.7.0 ***
Hello World! mimxrt700_evk/mimxrt798s/cm33_cpu0
Debugging
=========
Here is an example for the :zephyr:code-sample:`hello_world` application. This example uses the
:ref:`jlink-debug-host-tools` as default.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: mimxrt700_evk/mimxrt798s/cm33_cpu0
:goals: debug
Open a serial terminal, step through the application in your debugger, and you
should see the following message in the terminal:
.. code-block:: console
*** Booting Zephyr OS v3.7.0 ***
Hello World! mimxrt700_evk/mimxrt798s/cm33_cpu0
.. include:: ../../common/board-footer.rst
:start-after: nxp-board-footer
.. _i.MX RT700 Website:
https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt700-crossover-mcu-with-arm-cortex-m33-npu-dsp-and-gpu-cores:i.MX-RT700
.. _MIMXRT700-EVK Debug Firmware:
https://www.nxp.com/docs/en/application-note/AN13206.pdf
Display Support
***************
The mimxrt700_evk board supports following in-tree display module(s). Setup for
each module is described below:
NXP G1120B0MIPI MIPI Display
============================
The :ref:`g1120b0mipi` connects to the board's MIPI connector J52
directly, but some modifications are required (see
:zephyr_file:`boards/shields/g1120b0mipi/boards/mimxrt700_evk_mimxrt798s_cm33_cpu0.overlay`
for a list). The display sample can be built for this module like so:
.. zephyr-app-commands::
:board: mimxrt700_evk
:shield: g1120b0mipi
:zephyr-app: samples/drivers/display
:goals: build
:compact: