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

Zephyr 3.7.0 · Boards · NXP · i.MX RT1160

NXP MIMXRT1160-EVK

600 MHz Cortex-M7과 240 MHz Cortex-M4, 2 MB SRAM, SDRAM·QSPI·Octal Flash와 Gigabit Ethernet을 결합한 dual-core 평가 보드입니다.

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

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

Part 1

요약·해설

기능 18종·핀 15행, core별 boot/memory map, OCRAM2 16 KB 제약, M4→M7 flash 순서, probe와 boot switch 절차를 설명합니다.

Dual core

Cortex-M7 600 MHz · Cortex-M4 240 MHz

Shared memory

OCRAM2 512 KB · usable 16 KB

Build

OpenAMP sysbuild · M4 first

Part 2

접을 수 있는 영어 원문 전체

영어 원문 전체 펼치기
원문 SHA-256 C6BFC32F185B7DFEEA5A55EFDF0266FFCF957FF2B1DACC13617A74BBE50581CB
.. _mimxrt1160_evk:

NXP MIMXRT1160-EVK
##################

Overview
********

The dual core i.MX RT1160 runs on the Cortex-M7 core at 600 MHz and on the
Cortex-M4 at 240 MHz. The i.MX RT1160 MCU offers support over a wide
temperature range and is qualified for consumer, industrial and automotive
markets.

.. image:: ../../../../../../../boards/nxp/mimxrt1160_evk/doc/mimxrt1160_evk.jpg
   :align: center
   :alt: MIMXRT1160-EVK

Hardware
********

- MIMXRT1166DVM6A MCU

  - 600MHz Cortex-M7 & 240Mhz 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
  - 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
  - OpenSDA with DAPLink

- Sensor

  - MIPI camera sensor connector

- Expansion port

  - Arduino interface

- CAN bus connector

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

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

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

This platform has the following external memories:

+--------------------+------------+-------------------------------------+
| Device             | Controller | Status                              |
+====================+============+=====================================+
| W9825G6KH          | SEMC       | Enabled via device configuration    |
|                    |            | data block, which sets up SEMC at   |
|                    |            | boot time                           |
+--------------------+------------+-------------------------------------+
| IS25WP128          | FLEXSPI    | Enabled via flash configurationn    |
|                    |            | block, which sets up FLEXSPI at     |
|                    |            | boot time.                          |
+--------------------+------------+-------------------------------------+

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

The mimxrt1160_evk board configuration supports the hardware features listed
below.  For additional features not yet supported, please also refer to the
:ref:`mimxrt1170_evk` , which is the superset board in NXP's i.MX RT11xx family.
NXP prioritizes enabling the superset board with NXP's Full Platform Support for
Zephyr.  Therefore, the mimxrt1170_evk board may have additional features
already supported, which can also be re-used on this mimxrt1160_evk board:

+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component                    |
+===========+============+=====================================+
| NVIC      | on-chip    | nested vector interrupt controller  |
+-----------+------------+-------------------------------------+
| SYSTICK   | on-chip    | systick                             |
+-----------+------------+-------------------------------------+
| GPIO      | on-chip    | gpio                                |
+-----------+------------+-------------------------------------+
| COUNTER   | on-chip    | counter                             |
+-----------+------------+-------------------------------------+
| UART      | on-chip    | serial port-polling;                |
|           |            | serial port-interrupt               |
+-----------+------------+-------------------------------------+
| SPI       | on-chip    | spi                                 |
+-----------+------------+-------------------------------------+
| I2C       | on-chip    | i2c                                 |
+-----------+------------+-------------------------------------+
| ADC       | on-chip    | adc                                 |
+-----------+------------+-------------------------------------+
| CAN       | on-chip    | flexcan                             |
+-----------+------------+-------------------------------------+
| WATCHDOG  | on-chip    | watchdog                            |
+-----------+------------+-------------------------------------+
| PWM       | on-chip    | pwm                                 |
+-----------+------------+-------------------------------------+
| DMA       | on-chip    | dma                                 |
+-----------+------------+-------------------------------------+
| GPT       | on-chip    | gpt                                 |
+-----------+------------+-------------------------------------+
| USB       | on-chip    | USB Device                          |
+-----------+------------+-------------------------------------+
| HWINFO    | on-chip    | Unique device serial number         |
+-----------+------------+-------------------------------------+
| CAAM RNG  | on-chip    | entropy                             |
+-----------+------------+-------------------------------------+
| FLEXSPI   | on-chip    | flash programming                   |
+-----------+------------+-------------------------------------+
| PIT       | on-chip    | pit                                 |
+-----------+------------+-------------------------------------+

The default configuration can be found in the defconfig file:
:zephyr_file:`boards/nxp/mimxrt1160_evk/mimxrt1160_evk_mimxrt1166_cm7_defconfig`

Other hardware features are not currently supported by the port.


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

The MIMXRT1160 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                       |
+---------------+-----------------+---------------------------+


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 MIMXRT1160 SoC is configured to use SysTick as the system clock source,
running at 600MHz. When targeting the M4 core, SysTick will also be used,
running at 240MHz

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 MIMXRT1160 SoC has 12 UARTs. One is configured for the console and the
remaining are not used.

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 ``mimxrt1160_evk/mimxrt1166/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. This board is
configured by default to use the :ref:`opensda-daplink-onboard-debug-probe`,
however the :ref:`pyocd-debug-host-tools` do not yet support programming the
external flashes on this board so you must reconfigure the board for one of the
following debug probes instead.

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

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 MIMXRT1160-EVK or MIMXRT1170-EVK`_ for more details.

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

Install the :ref:`linkserver-debug-host-tools` and make sure they are in your
search path.  LinkServer works with the CMSIS-DAP firmware include in LinkServer
install. Please follow the ``LPCScrypt\docs\Debug_Probe_Firmware_Programming.pdf``
for more details.

Linkserver is the default runner. You may also se the ``-r linkserver`` option
with West to use the LinkServer runner.

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

Regardless of your choice in debug probe, we will use the OpenSDA
microcontroller as a usb-to-serial adapter for the serial console. Check that
jumpers J5 and J8 are **on** (they are on by default when boards ship from
the factory) to connect UART signals to the OpenSDA microcontroller.

Connect a USB cable from your PC to 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 power on the board, make sure SW1 is set to 0001b

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: mimxrt1160_evk/mimxrt1166/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 v2.6.0-xxxx-xxxxxxxxxxxxx *****
   Hello World! mimxrt1160_evk

Debugging
=========

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

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

.. _MIMXRT1160-EVK Website:
   https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1160-evaluation-kit:MIMXRT1160-EVK

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

.. _i.MX RT1160 Website:
   https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1160-crossover-mcu-family-high-performance-mcu-with-arm-cortex-m7-and-cortex-m4-cores:i.MX-RT1160

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

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

.. _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

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

Part 3

한국어 전문 번역

개요

Dual-core i.MX RT1160은 Cortex-M7을 600 MHz, Cortex-M4를 240 MHz로 실행합니다. 넓은 온도 범위를 지원하고 consumer, industrial, automotive 시장용으로 인증되었습니다.

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

하드웨어

  • MIMXRT1166DVM6A: 600 MHz Cortex-M7, 240 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, SD용 TF socket
  • MIPI LCD와 MIPI camera sensor connector
  • 10/100 및 10/100/1000 Mbit/s Ethernet PHY
  • USB 2.0 OTG·host, stereo audio와 speaker output
  • 5 V DC, JTAG 20-pin, DAPLink OpenSDA
  • Arduino expansion과 CAN bus connector

외부 메모리

장치컨트롤러상태
W9825G6KHSEMC부팅 시 SEMC를 설정하는 device configuration data block으로 활성화
IS25WP128FLEXSPI부팅 시 FLEXSPI를 설정하는 flash configuration block으로 활성화

지원 기능

mimxrt1160_evk 구성은 다음 기능을 지원합니다. 추가 기능은 i.MX RT11xx 상위 집합 보드 mimxrt1170_evk에 우선 활성화된 NXP Full Platform Support에서 재사용할 수 있습니다.

인터페이스컨트롤러드라이버/컴포넌트
NVICon-chipnested vector interrupt controller
SYSTICKon-chipsystick
GPIOon-chipgpio
COUNTERon-chipcounter
UARTon-chipserial port-polling; serial port-interrupt
SPIon-chipspi
I2Con-chipi2c
ADCon-chipadc
CANon-chipflexcan
WATCHDOGon-chipwatchdog
PWMon-chippwm
DMAon-chipdma
GPTon-chipgpt
USBon-chipUSB Device
HWINFOon-chipUnique device serial number
CAAM RNGon-chipentropy
FLEXSPIon-chipflash programming
PITon-chippit

기본 CM7 구성은 boards/nxp/mimxrt1160_evk/mimxrt1160_evk_mimxrt1166_cm7_defconfig에 있습니다. 표 밖의 기능은 현재 port에서 지원하지 않습니다.

연결과 I/O

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

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 중 올바른 MPU region attribute가 설정되어 shared memory로 사용할 수 있는 영역은 앞 16 KB뿐입니다.

시스템 클록과 직렬 포트

M7 target에서는 SysTick이 600 MHz, M4 target에서는 240 MHz로 동작합니다. 전원 관리 시 32 KHz oscillator를 GPT timer source로 사용해 해상도를 낮추는 대신 저전력 상태를 지원합니다. UART 12개 중 하나만 console로 구성합니다.

프로그래밍과 디버깅

Dual-core image 빌드

Dual-core sample은 M4 image를 flash에서 shared ocram 영역으로 load하고, M7이 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 mimxrt1160_evk/mimxrt1166/cm4는 일반 방식으로 debug할 수 있습니다. Dual-core build에서는 secondary core를 loop에 둔 뒤 debugger를 attach합니다. 자세한 내용은 AN13264 4.2.3절을 참고하십시오.

디버그 프로브

기본 probe는 OpenSDA DAPLink지만 pyOCD는 이 보드의 external flash programming을 지원하지 않으므로 J-Link 또는 LinkServer로 재구성해야 합니다.

J-Link

J-Link host tool을 설치한 뒤 온보드 circuit을 SEGGER J-Link firmware로 갱신하거나 외부 J-Link를 EVK에 연결합니다.

LinkServer

LinkServer를 설치하고 검색 경로에 넣습니다. 설치본에 포함된 CMSIS-DAP firmware를 사용하며 LPCScrypt/docs/Debug_Probe_Firmware_Programming.pdf 절차를 따릅니다. LinkServer가 기본 runner이며 명시하려면 West에 -r linkserver를 사용합니다.

콘솔

OpenSDA를 USB-to-serial adapter로 사용합니다. J5/J8이 장착되어 있는지 확인하고 PC를 J11에 연결합니다. Terminal은 115200 baud, 8 bits, parity None, stop bit 1입니다.

플래시

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

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

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

***** Booting Zephyr OS v2.6.0-xxxx-xxxxxxxxxxxxx *****
Hello World! mimxrt1160_evk

디버깅

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

단계 실행 중 terminal 출력은 다음과 같습니다.

***** Booting Zephyr OS v2.4.0-xxxx-xxxxxxxxxxxxx *****
Hello World! mimxrt1160_evk

참고 자료

Source

출처

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