boards/nxp/mimxrt1170_evk/doc/index.html · boards/nxp/mimxrt1170_evk/doc/index.rst 공식 원문 ↗

Zephyr 3.7.0 · Boards · NXP · i.MX RT1170

NXP MIMXRT1170-EVK/EVKB

1 GHz Cortex-M7과 400 MHz Cortex-M4를 결합하고 EVK와 EVKB의 주변장치 차이를 함께 지원하는 i.MX RT1170 평가 보드입니다.

Official pathboards/nxp/mimxrt1170_evk/doc/index.html
Source fileboards/nxp/mimxrt1170_evk/doc/index.rst
Source versionZephyr 3.7.0
TranslationFull · reviewed

본문 기준: Zephyr 3.7.0 LTS3 · 이후 유지보수 패치는 별도입니다.

Part 1

요약·해설

EVK/EVKB 기능 26종 비교, 35개 핀, dual-core OCRAM 배치, Bluetooth blob, J-Link·LinkServer·pyOCD 조건과 ENET1G overlay를 설명합니다.

Dual core

Cortex-M7 1 GHz · Cortex-M4 400 MHz

Revisions

EVK · EVKB 지원 차이 비교

Networking

ENET · ENET1G · M.2 BT HCI

Part 2

접을 수 있는 영어 원문 전체

영어 원문 전체 펼치기
원문 SHA-256 5341E398BA4A1A05D05DF5C95396136AE59646B9EA7E1261C7759E1ED7ED4EAC
.. _mimxrt1170_evk:

NXP MIMXRT1170-EVK/EVKB
#######################

Overview
********

The dual core i.MX RT1170 runs on the Cortex-M7 core at 1 GHz and on the Cortex-M4
at 400 MHz. The i.MX RT1170 MCU offers support over a wide temperature range
and is qualified for consumer, industrial and automotive markets. Zephyr
supports the initial revision of this EVK, as well as rev EVKB.

.. image:: ../../../../../../../boards/nxp/mimxrt1170_evk/doc/mimxrt1170_evk.jpg
   :align: center
   :alt: MIMXRT1170-EVK

Hardware
********

- MIMXRT1176DVMAA MCU

  - 1GHz Cortex-M7 & 400Mhz Cortex-M4
  - 2MB SRAM with 512KB of TCM for Cortex-M7 and 256KB of TCM for Cortex-M4

- Memory

  - 512 Mbit SDRAM
  - 128 Mbit QSPI Flash
  - 512 Mbit Octal Flash
  - 2 Gbit raw NAND flash
  - 64 Mbit LPSPI flash
  - TF socket for SD card

- Display

  - MIPI LCD connector

- Ethernet

  - 10/100 Mbit/s Ethernet PHY
  - 10/100/1000 Mbit/s Ethernet PHY

- USB

  - USB 2.0 OTG connector
  - USB 2.0 host connector

- Audio

  - 3.5 mm audio stereo headphone jack
  - Board-mounted microphone
  - Left and right speaker out connectors

- Power

  - 5 V DC jack

- Debug

  - JTAG 20-pin connector
  - on-board debugger

- Sensor

  - FXOS8700CQ 6-axis e-compass
  - MIPI camera sensor connector

- Expansion port

  - Arduino interface
  - M.2 WIFI/BT interface

- CAN bus connector

For more information about the MIMXRT1170 SoC and MIMXRT1170-EVK board, see
these references:

- `i.MX RT1170 Website`_
- `i.MX RT1170 Datasheet`_
- `i.MX RT1170 Reference Manual`_
- `MIMXRT1170-EVK Website`_
- `MIMXRT1170-EVK Board Hardware User's Guide`_

External Memory
===============

This platform has the following external memories:

+--------------------+------------+-------------------------------------+
| Device             | Controller | Status                              |
+====================+============+=====================================+
| W9825G6KH          | SEMC       | Enabled via device configuration    |
| SDRAM              |            | data (DCD) block, which sets up     |
|                    |            | the SEMC at boot time               |
+--------------------+------------+-------------------------------------+
| IS25WP128          | FLEXSPI    | Enabled via flash configuration     |
| QSPI flash         |            | block (FCB), which sets up the      |
| (RT1170 EVK)       |            | FLEXSPI at boot time.               |
+--------------------+------------+-------------------------------------+
| W25Q512NWEIQ       | FLEXSPI    | Enabled via flash configuration     |
| QSPI flash         |            | block (FCB), which sets up the      |
| (RT1170 EVKB)      |            | FLEXSPI at boot time. Supported for |
|                    |            | XIP only.                           |
+--------------------+------------+-------------------------------------+

Supported Features
==================

NXP considers the MIMXRT1170-EVK as the superset board for the i.MX RT11xx
family of MCUs.  This board is a focus for NXP's Full Platform Support for
Zephyr, to better enable the entire RT11xx family.  NXP prioritizes enabling
this board with new support for Zephyr features. Note that this table
covers two boards: the RT1170 EVK (`mimxrt1170_evk//cm7/cm4`), and
RT1170 EVKB (`mimxrt1170_evk@B//cm7/cm4`)

+-----------+------------+-------------------------------------+-----------------+-----------------+
| Interface | Controller | Driver/Component                    | RT1170 EVK      | RT1170 EVKB     |
+===========+============+=====================================+=================+=================+
| NVIC      | on-chip    | nested vector interrupt controller  | Supported       | Supported       |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| SYSTICK   | on-chip    | systick                             | Supported       | Supported       |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| GPIO      | on-chip    | gpio                                | Supported       | Supported       |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| COUNTER   | on-chip    | gpt                                 | Supported       | Supported       |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| TIMER     | on-chip    | gpt                                 | Supported       | Supported       |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| CAN       | on-chip    | flexcan                             | Supported (M7)  | Supported (M7)  |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| SPI       | on-chip    | spi                                 | Supported (M7)  | Supported       |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| I2C       | on-chip    | i2c                                 | Supported       | Supported       |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| PWM       | on-chip    | pwm                                 | Supported       | Supported       |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| ADC       | on-chip    | adc                                 | Supported (M7)  | Supported (M7)  |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| UART      | on-chip    | serial port-polling;                | Supported       | Supported       |
|           |            | serial port-interrupt;              |                 |                 |
|           |            | serial port-async                   |                 |                 |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| DMA       | on-chip    | dma                                 | Supported       | Supported       |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| WATCHDOG  | on-chip    | watchdog                            | Supported (M7)  | Supported (M7)  |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| ENET      | on-chip    | ethernet - 10/100M                  | Supported (M7)  | No support      |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| ENET1G    | on-chip    | ethernet - 10/100/1000M             | Supported (M7)  | No support      |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| SAI       | on-chip    | i2s                                 | Supported       | No support      |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| USB       | on-chip    | USB Device                          | Supported (M7)  | Supported (M7)  |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| HWINFO    | on-chip    | Unique device serial number         | Supported (M7)  | Supported (M7)  |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| DISPLAY   | on-chip    | eLCDIF; MIPI-DSI. Tested with       | Supported (M7)  | Supported (M7)  |
|           |            | :ref:`rk055hdmipi4m`,               |                 |                 |
|           |            | :ref:`rk055hdmipi4ma0`,             |                 |                 |
|           |            | and :ref:`g1120b0mipi` shields      |                 |                 |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| ACMP      | on-chip    | analog comparator                   | Supported       | No support      |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| CAAM RNG  | on-chip    | entropy                             | Supported (M7)  | No support      |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| FLEXSPI   | on-chip    | flash programming                   | Supported (M7)  | No support      |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| SDHC      | on-chip    | SD host controller                  | Supported (M7)  | Supported (M7)  |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| PIT       | on-chip    | pit                                 | Supported (M7)  | Supported (M7)  |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| VIDEO     | on-chip    | CSI; MIPI CSI-2 Rx. Tested with     | Supported (M7)  | Supported (M7)  |
|           |            | :ref:`nxp_btb44_ov5640` shield      |                 |                 |
+-----------+------------+-------------------------------------+-----------------+-----------------+
| UART      | NXP NW61x  | M.2 WIFI/BT module                  | Unsupported     | Supported (M7)  |
+-----------+------------+-------------------------------------+-----------------+-----------------+

The default configuration can be found in the defconfig files:
:zephyr_file:`boards/nxp/mimxrt1170_evk/mimxrt1170_evk_mimxrt1176_cm7_defconfig`
:zephyr_file:`boards/nxp/mimxrt1170_evk/mimxrt1170_evk_mimxrt1176_cm4_defconfig`

Connections and I/Os
====================

The MIMXRT1170 SoC has six pairs of pinmux/gpio controllers.

+---------------------------+----------------+------------------+
| Name                      | Function       | Usage            |
+---------------------------+----------------+------------------+
| WAKEUP                    | GPIO           | SW7              |
+---------------------------+----------------+------------------+
| GPIO_AD_04                | GPIO           | LED              |
+---------------------------+----------------+------------------+
| GPIO_AD_24                | LPUART1_TX     | UART Console     |
+---------------------------+----------------+------------------+
| GPIO_AD_25                | LPUART1_RX     | UART Console     |
+---------------------------+----------------+------------------+
| GPIO_LPSR_00              | CAN3_TX        | flexcan          |
+---------------------------+----------------+------------------+
| GPIO_LPSR_01              | CAN3_RX        | flexcan          |
+---------------------------+----------------+------------------+
| GPIO_AD_29                | SPI1_CS0       | spi              |
+---------------------------+----------------+------------------+
| GPIO_AD_28                | SPI1_CLK       | spi              |
+---------------------------+----------------+------------------+
| GPIO_AD_30                | SPI1_SDO       | spi              |
+---------------------------+----------------+------------------+
| GPIO_AD_31                | SPI1_SDI       | spi              |
+---------------------------+----------------+------------------+
| GPIO_AD_08                | LPI2C1_SCL     | i2c              |
+---------------------------+----------------+------------------+
| GPIO_AD_09                | LPI2C1_SDA     | i2c              |
+---------------------------+----------------+------------------+
| GPIO_LPSR_05              | LPI2C5_SCL     | i2c              |
+---------------------------+----------------+------------------+
| GPIO_LPSR_04              | LPI2C5_SDA     | i2c              |
+---------------------------+----------------+------------------+
| GPIO_AD_04                | FLEXPWM1_PWM2  | pwm              |
+---------------------------+----------------+------------------+
| GPIO_AD_32                | ENET_MDC       | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_AD_33                | ENET_MDIO      | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_02           | ENET_TX_DATA00 | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_03           | ENET_TX_DATA01 | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_04           | ENET_TX_EN     | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_05           | ENET_REF_CLK   | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_06           | ENET_RX_DATA00 | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_07           | ENET_RX_DATA01 | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_08           | ENET_RX_EN     | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_09           | ENET_RX_ER     | Ethernet         |
+---------------------------+----------------+------------------+
| GPIO_AD_17_SAI1_MCLK      | SAI_MCLK       | SAI              |
+---------------------------+----------------+------------------+
| GPIO_AD_21_SAI1_TX_DATA00 | SAI1_TX_DATA   | SAI              |
+---------------------------+----------------+------------------+
| GPIO_AD_22_SAI1_TX_BCLK   | SAI1_TX_BCLK   | SAI              |
+---------------------------+----------------+------------------+
| GPIO_AD_23_SAI1_TX_SYNC   | SAI1_TX_SYNC   | SAI              |
+---------------------------+----------------+------------------+
| GPIO_AD_17_SAI1_MCLK      | SAI1_MCLK      | SAI              |
+---------------------------+----------------+------------------+
| GPIO_AD_20_SAI1_RX_DATA00 | SAI1_RX_DATA00 | SAI              |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_10           | LPUART2_TX     | M.2 BT HCI       |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_11           | LPUART2_RX     | M.2 BT HCI       |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_12           | LPUART2_CTS_B  | M.2 BT HCI       |
+---------------------------+----------------+------------------+
| GPIO_DISP_B2_13           | LPUART1_RTS_B  | M.2 BT HCI       |
+---------------------------+----------------+------------------+

Dual Core samples
*****************

+-----------+------------------+----------------------------+
| Core      | Boot Address     | Comment                    |
+===========+==================+============================+
| Cortex M7 | 0x30000000[630K] | primary core               |
+-----------+------------------+----------------------------+
| Cortex M4 | 0x20020000[96k]  | boots from OCRAM           |
+-----------+------------------+----------------------------+

+----------+------------------+-----------------------+
| Memory   | Address[Size]    | Comment               |
+==========+==================+=======================+
| flexspi1 | 0x30000000[16M]  | Cortex M7 flash       |
+----------+------------------+-----------------------+
| sdram0   | 0x80030000[64M]  | Cortex M7 ram         |
+----------+------------------+-----------------------+
| ocram    | 0x20020000[512K] | Cortex M4 "flash"     |
+----------+------------------+-----------------------+
| sram1    | 0x20000000[128K] | Cortex M4 ram         |
+----------+------------------+-----------------------+
| ocram2   | 0x200C0000[512K] | Mailbox/shared memory |
+----------+------------------+-----------------------+

Only the first 16K of ocram2 has the correct MPU region attributes set to be
used as shared memory

System Clock
============

The MIMXRT1170 SoC is configured to use SysTick as the system clock source,
running at 996MHz. When targeting the M4 core, SysTick will also be used,
running at 400MHz

When power management is enabled, the 32 KHz low frequency
oscillator on the board will be used as a source for the GPT timer to
generate a system clock. This clock enables lower power states, at the
cost of reduced resolution

Serial Port
===========

The MIMXRT1170 SoC has 12 UARTs. ``LPUART1`` is configured for the console,
``LPUART2`` for the Bluetooth Host Controller Interface (BT HCI), and the
remaining are not used.

Fetch Binary Blobs
==================

The board Bluetooth/WiFi module requires fetching some binary blob files, to do
that run the command:

.. code-block:: console

   west blobs fetch hal_nxp

.. note:: Only Bluetooth functionality is currently supported.

Programming and Debugging
*************************

Build and flash applications as usual (see :ref:`build_an_application` and
:ref:`application_run` for more details).

Building a Dual-Core Image
==========================
Dual core samples load the M4 core image from flash into the shared ``ocram``
region. The M7 core then sets the M4 boot address to this region. The only
sample currently enabled for dual core builds is the ``openamp`` sample.
To flash a dual core sample, the M4 image must be flashed first, so that it is
written to flash. Then, the M7 image must be flashed. The openamp sysbuild
sample will do this automatically by setting the image order.

The secondary core can be debugged normally in single core builds
(where the target is ``mimxrt1170_evk/mimxrt1176/cm4``). For dual core builds, the
secondary core should be placed into a loop, then a debugger can be attached
(see `AN13264`_, section 4.2.3 for more information)

Configuring a Debug Probe
=========================

A debug probe is used for both flashing and debugging the board. The on-board
debugger listed below works with the LinkServer runner by default, or can be
reprogrammed with JLink firmware.

- MIMXRT1170-EVKB: :ref:`mcu-link-cmsis-onboard-debug-probe`
- MIMXRT1170-EVK:  :ref:`opensda-daplink-onboard-debug-probe`

Using J-Link
------------

JLink is the default runner for this board.  Install the
:ref:`jlink-debug-host-tools` and make sure they are in your search path.

There are two options: the onboard debug circuit can be updated with Segger
J-Link firmware, or :ref:`jlink-external-debug-probe` can be attached to the
EVK. See `Using J-Link with MIMXRT1170-EVKB`_ or
`Using J-Link with MIMXRT1160-EVK or MIMXRT1170-EVK`_ for more details.

Using LinkServer
----------------

Known limitations with LinkServer and these boards include:
- ``west flash`` will not write images to non-flash locations. The flash
command only works when all data in the image is written to flash memory
regions.

Install the :ref:`linkserver-debug-host-tools` and make sure they are in your
search path.  LinkServer works with the default CMSIS-DAP firmware included in
the on-board debugger.

Use the ``-r linkserver`` option with West to use the LinkServer runner.

.. code-block:: console

   west flash -r linkserver

Alternatively, pyOCD can be used to flash and debug the board by using the
``-r pyocd`` option with West. pyOCD is installed when you complete the
:ref:`gs_python_deps` step in the Getting Started Guide. The runners supported
by NXP are LinkServer and JLink. pyOCD is another potential option, but NXP
does not test or support the pyOCD runner.

Configuring a Console
=====================

We will use the on-board debugger
microcontroller as a usb-to-serial adapter for the serial console. The following
jumper settings are default on these boards, and are required to connect the
UART signals to the USB bridge circuit:

- MIMXRT1170-EVKB: JP2 open (default)
- MIMXRT1170-EVK:  J31 and J32 shorted (default)

Connect a USB cable from your PC to the on-board debugger USB port:

- MIMXRT1170-EVKB: J86
- MIMXRT1170-EVK:  J11

Use the following settings with your serial terminal of choice (minicom, putty,
etc.):

- Speed: 115200
- Data: 8 bits
- Parity: None
- Stop bits: 1

Flashing
========

Here is an example for the :ref:`hello_world` application.

Before powering the board, make sure SW1 is set to 0001b

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: mimxrt1170_evk/mimxrt1176/cm7
   :goals: flash

Power off the board, and change SW1 to 0010b. Then power on the board and
open a serial terminal, reset the board (press the SW4 button), and you should
see the following message in the terminal:

.. code-block:: console

   ***** Booting Zephyr OS v3.4.0-xxxx-xxxxxxxxxxxxx *****
   Hello World! mimxrt1170_evk

Debugging
=========

Here is an example for the :ref:`hello_world` application.

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: mimxrt1170_evk/mimxrt1176/cm7
   :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.4.0-xxxx-xxxxxxxxxxxxx *****
   Hello World! mimxrt1170_evk

.. _MIMXRT1170-EVK Website:
   https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1170-evaluation-kit:MIMXRT1170-EVK

.. _MIMXRT1170-EVK Board Hardware User's Guide:
   https://www.nxp.com/webapp/Download?colCode=MIMXRT1170EVKHUG

.. _i.MX RT1170 Website:
   https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1170-crossover-mcu-family-first-ghz-mcu-with-arm-cortex-m7-and-cortex-m4-cores:i.MX-RT1170

.. _i.MX RT1170 Datasheet:
   https://www.nxp.com/docs/en/data-sheet/IMXRT1170CEC.pdf

.. _i.MX RT1170 Reference Manual:
   https://www.nxp.com/webapp/Download?colCode=IMXRT1170RM

.. _Using J-Link with MIMXRT1160-EVK or MIMXRT1170-EVK:
   https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/Using-J-Link-with-MIMXRT1160-EVK-or-MIMXRT1170-EVK/ta-p/1529760

.. _Using J-Link with MIMXRT1170-EVKB:
   https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/Using-J-Link-with-MIMXRT1170-EVKB/ta-p/1715138

.. _AN13264:
   https://www.nxp.com/docs/en/application-note/AN13264.pdf

.. _NXP MCUXpresso for Visual Studio Code:
	https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-for-visual-studio-code:MCUXPRESSO-VSC

ENET1G Driver
=============

Current default of ethernet driver is to use 100M Ethernet instance ENET.
To use the 1G Ethernet instance ENET1G, include the overlay to west build with
the option `-DEXTRA_DTC_OVERLAY_FILE=nxp,enet1g.overlay` instead.

Part 3

한국어 전문 번역

개요

Dual-core i.MX RT1170은 Cortex-M7을 1 GHz, Cortex-M4를 400 MHz로 실행합니다. 넓은 온도 범위를 지원하고 consumer, industrial, automotive 시장용으로 인증되었습니다. Zephyr는 초기 MIMXRT1170-EVK와 개정판 EVKB를 모두 지원합니다.

NXP MIMXRT1170-EVK 보드
NXP MIMXRT1170-EVK. 이미지 출처: NXP, Zephyr v3.7.0 공식 문서.

하드웨어

  • MIMXRT1176DVMAA: 1 GHz Cortex-M7, 400 MHz Cortex-M4
  • 2 MB SRAM: M7용 512 KB TCM, M4용 256 KB TCM
  • 512 Mbit SDRAM, 128 Mbit QSPI Flash, 512 Mbit Octal Flash, 2 Gbit raw NAND, 64 Mbit LPSPI flash, SD 카드용 TF socket
  • MIPI LCD connector, 10/100 및 10/100/1000 Mbit/s Ethernet PHY
  • USB 2.0 OTG·host, stereo headphone, board microphone, 좌우 speaker output
  • 5 V DC, JTAG 20-pin, on-board debugger
  • FXOS8700CQ 6-axis e-compass, MIPI camera sensor connector
  • Arduino와 M.2 WIFI/BT 확장, CAN bus connector

외부 메모리

장치컨트롤러상태
W9825G6KH SDRAMSEMCDCD(device configuration data) block이 부팅 때 SEMC를 설정해 활성화
IS25WP128 QSPI flash (RT1170 EVK)FLEXSPIFCB(flash configuration block)가 부팅 때 FLEXSPI를 설정해 활성화
W25Q512NWEIQ QSPI flash (RT1170 EVKB)FLEXSPIFCB로 활성화하며 XIP만 지원

지원 기능

NXP는 MIMXRT1170-EVK를 i.MX RT11xx MCU 계열의 상위 집합 보드로 보고 Zephyr Full Platform Support의 우선 대상으로 삼습니다. 아래 표는 RT1170 EVK mimxrt1170_evk//cm7/cm4와 RT1170 EVKB mimxrt1170_evk@B//cm7/cm4의 차이를 함께 보여 줍니다.

인터페이스컨트롤러드라이버/컴포넌트RT1170 EVKRT1170 EVKB
NVICon-chipnested vector interrupt controllerSupportedSupported
SYSTICKon-chipsystickSupportedSupported
GPIOon-chipgpioSupportedSupported
COUNTERon-chipgptSupportedSupported
TIMERon-chipgptSupportedSupported
CANon-chipflexcanSupported (M7)Supported (M7)
SPIon-chipspiSupported (M7)Supported
I2Con-chipi2cSupportedSupported
PWMon-chippwmSupportedSupported
ADCon-chipadcSupported (M7)Supported (M7)
UARTon-chipserial port-polling; serial port-interrupt; serial port-asyncSupportedSupported
DMAon-chipdmaSupportedSupported
WATCHDOGon-chipwatchdogSupported (M7)Supported (M7)
ENETon-chipethernet - 10/100MSupported (M7)No support
ENET1Gon-chipethernet - 10/100/1000MSupported (M7)No support
SAIon-chipi2sSupportedNo support
USBon-chipUSB DeviceSupported (M7)Supported (M7)
HWINFOon-chipUnique device serial numberSupported (M7)Supported (M7)
DISPLAYon-chipeLCDIF; MIPI-DSI; rk055hdmipi4m, rk055hdmipi4ma0, g1120b0mipi shield로 시험Supported (M7)Supported (M7)
ACMPon-chipanalog comparatorSupportedNo support
CAAM RNGon-chipentropySupported (M7)No support
FLEXSPIon-chipflash programmingSupported (M7)No support
SDHCon-chipSD host controllerSupported (M7)Supported (M7)
PITon-chippitSupported (M7)Supported (M7)
VIDEOon-chipCSI; MIPI CSI-2 Rx; nxp_btb44_ov5640 shield로 시험Supported (M7)Supported (M7)
UARTNXP NW61xM.2 WIFI/BT moduleUnsupportedSupported (M7)

기본 구성은 boards/nxp/mimxrt1170_evk/mimxrt1170_evk_mimxrt1176_cm7_defconfig와 boards/nxp/mimxrt1170_evk/mimxrt1170_evk_mimxrt1176_cm4_defconfig에 있습니다.

연결과 I/O

MIMXRT1170 SoC에는 pinmux/GPIO controller 쌍이 6개 있습니다.

이름기능용도
WAKEUPGPIOSW7
GPIO_AD_04GPIOLED
GPIO_AD_24LPUART1_TXUART Console
GPIO_AD_25LPUART1_RXUART Console
GPIO_LPSR_00CAN3_TXflexcan
GPIO_LPSR_01CAN3_RXflexcan
GPIO_AD_29SPI1_CS0spi
GPIO_AD_28SPI1_CLKspi
GPIO_AD_30SPI1_SDOspi
GPIO_AD_31SPI1_SDIspi
GPIO_AD_08LPI2C1_SCLi2c
GPIO_AD_09LPI2C1_SDAi2c
GPIO_LPSR_05LPI2C5_SCLi2c
GPIO_LPSR_04LPI2C5_SDAi2c
GPIO_AD_04FLEXPWM1_PWM2pwm
GPIO_AD_32ENET_MDCEthernet
GPIO_AD_33ENET_MDIOEthernet
GPIO_DISP_B2_02ENET_TX_DATA00Ethernet
GPIO_DISP_B2_03ENET_TX_DATA01Ethernet
GPIO_DISP_B2_04ENET_TX_ENEthernet
GPIO_DISP_B2_05ENET_REF_CLKEthernet
GPIO_DISP_B2_06ENET_RX_DATA00Ethernet
GPIO_DISP_B2_07ENET_RX_DATA01Ethernet
GPIO_DISP_B2_08ENET_RX_ENEthernet
GPIO_DISP_B2_09ENET_RX_EREthernet
GPIO_AD_17_SAI1_MCLKSAI_MCLKSAI
GPIO_AD_21_SAI1_TX_DATA00SAI1_TX_DATASAI
GPIO_AD_22_SAI1_TX_BCLKSAI1_TX_BCLKSAI
GPIO_AD_23_SAI1_TX_SYNCSAI1_TX_SYNCSAI
GPIO_AD_17_SAI1_MCLKSAI1_MCLKSAI
GPIO_AD_20_SAI1_RX_DATA00SAI1_RX_DATA00SAI
GPIO_DISP_B2_10LPUART2_TXM.2 BT HCI
GPIO_DISP_B2_11LPUART2_RXM.2 BT HCI
GPIO_DISP_B2_12LPUART2_CTS_BM.2 BT HCI
GPIO_DISP_B2_13LPUART1_RTS_BM.2 BT HCI

Dual-core sample

코어부트 주소설명
Cortex M70x30000000[630K]primary core
Cortex M40x20020000[96k]OCRAM에서 부팅
메모리주소[크기]설명
flexspi10x30000000[16M]Cortex M7 flash
sdram00x80030000[64M]Cortex M7 RAM
ocram0x20020000[512K]Cortex M4 "flash"
sram10x20000000[128K]Cortex M4 RAM
ocram20x200C0000[512K]mailbox/shared memory

ocram2 중 shared memory로 쓸 수 있도록 올바른 MPU region attribute가 설정된 영역은 앞 16 KB뿐입니다.

시스템 클록

M7 target의 SysTick은 996 MHz, M4 target은 400 MHz로 동작합니다. 전원 관리가 활성화되면 보드의 32 KHz 저주파 oscillator를 GPT timer source로 사용합니다. 해상도는 낮아지지만 더 낮은 전력 상태를 사용할 수 있습니다.

직렬 포트

UART 12개 중 LPUART1은 console, LPUART2는 Bluetooth Host Controller Interface(BT HCI)로 구성하며 나머지는 사용하지 않습니다.

바이너리 blob 받기

보드의 Bluetooth/Wi-Fi module에 필요한 binary blob은 다음 명령으로 받습니다.

west blobs fetch hal_nxp

프로그래밍과 디버깅

일반 application과 같은 방식으로 build하고 flash합니다.

Dual-core image 빌드

Dual-core sample은 M4 image를 flash에서 shared ocram 영역으로 load하고 M7 core가 M4 boot address를 이 영역으로 설정합니다. 현재 dual-core build가 활성화된 sample은 openamp뿐입니다.

  1. M4 image가 flash에 기록되도록 먼저 flash합니다.
  2. 그다음 M7 image를 flash합니다.
  3. OpenAMP sysbuild sample은 image 순서를 설정해 이 작업을 자동으로 수행합니다.

Single-core build의 secondary target mimxrt1170_evk/mimxrt1176/cm4는 일반 방식으로 debug할 수 있습니다. Dual-core build에서는 secondary core를 loop에 둔 뒤 debugger를 attach합니다. 자세한 절차는 AN13264 4.2.3절을 참고하십시오.

디버그 프로브 구성

Debug probe는 flash와 debug에 모두 사용합니다. On-board debugger는 기본 firmware에서 LinkServer runner와 동작하며 J-Link firmware로 다시 programming할 수도 있습니다.

  • MIMXRT1170-EVKB: MCU-Link CMSIS on-board debug probe
  • MIMXRT1170-EVK: OpenSDA DAPLink on-board debug probe

J-Link

이 보드의 기본 runner는 J-Link입니다. J-Link host tool을 설치하고 검색 경로에 넣습니다. On-board debug circuit을 SEGGER J-Link firmware로 갱신하거나 외부 J-Link probe를 EVK에 연결할 수 있습니다. 보드 revision에 맞는 아래 J-Link 안내를 따르십시오.

LinkServer와 pyOCD

LinkServer에는 west flash가 non-flash location에 image를 쓰지 못한다는 제약이 있습니다. Image의 모든 data가 flash memory region에 기록될 때만 flash 명령이 동작합니다. LinkServer host tool을 설치하고 검색 경로에 넣으면 on-board debugger의 기본 CMSIS-DAP firmware를 사용할 수 있습니다.

west flash -r linkserver

pyOCD도 West의 -r pyocd로 flash와 debug에 사용할 수 있습니다. Getting Started Guide의 Python dependency 단계를 마치면 설치됩니다. NXP가 공식 지원하는 runner는 LinkServer와 J-Link이며, pyOCD는 가능한 선택지이지만 NXP가 시험하거나 지원하지 않습니다.

콘솔 구성

On-board debugger MCU를 USB-to-serial adapter로 사용합니다. UART signal을 USB bridge에 연결하려면 다음 기본 jumper 상태를 유지합니다.

  • MIMXRT1170-EVKB: JP2 open
  • MIMXRT1170-EVK: J31과 J32 short

PC의 USB cable은 EVKB의 J86 또는 EVK의 J11 on-board debugger port에 연결합니다. Terminal 설정은 115200 baud, data 8 bits, parity None, stop bit 1입니다.

플래시

보드 전원을 켜기 전에 SW1을 0001b로 설정합니다.

# Zephyr 저장소 루트에서
west build -b mimxrt1170_evk/mimxrt1176/cm7 samples/hello_world
west flash

보드 전원을 끄고 SW1을 0010b로 바꾼 뒤 다시 켭니다. Serial terminal을 열고 SW4를 눌러 reset하면 다음 메시지가 표시됩니다.

***** Booting Zephyr OS v3.4.0-xxxx-xxxxxxxxxxxxx *****
Hello World! mimxrt1170_evk

디버깅

# Zephyr 저장소 루트에서
west build -b mimxrt1170_evk/mimxrt1176/cm7 samples/hello_world
west debug

Debugger에서 application을 단계 실행하면 terminal에 다음 메시지가 표시됩니다.

***** Booting Zephyr OS v3.4.0-xxxx-xxxxxxxxxxxxx *****
Hello World! mimxrt1170_evk

ENET1G driver

Ethernet driver의 기본값은 100 Mbit/s ENET instance입니다. 1 Gbit/s ENET1G instance를 사용하려면 West build에 -DEXTRA_DTC_OVERLAY_FILE=nxp,enet1g.overlay를 추가하십시오.

참고 자료

Source

출처

영어 원문에는 문단, 문서 지시문, 표, 코드, 코드 심벌, 경로를 그대로 보존했습니다.