Part 1
요약·해설
EVK/EVKB 기능 26종 비교, 35개 핀, dual-core OCRAM 배치, Bluetooth blob, J-Link·LinkServer·pyOCD 조건과 ENET1G overlay를 설명합니다.
Cortex-M7 1 GHz · Cortex-M4 400 MHz
EVK · EVKB 지원 차이 비교
ENET · ENET1G · M.2 BT HCI
Part 2
접을 수 있는 영어 원문 전체
영어 원문 전체 펼치기
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를 모두 지원합니다.

하드웨어
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 SDRAM | SEMC | DCD(device configuration data) block이 부팅 때 SEMC를 설정해 활성화 |
IS25WP128 QSPI flash (RT1170 EVK) | FLEXSPI | FCB(flash configuration block)가 부팅 때 FLEXSPI를 설정해 활성화 |
W25Q512NWEIQ QSPI flash (RT1170 EVKB) | FLEXSPI | FCB로 활성화하며 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 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; serial port-interrupt; serial port-async | Supported | Supported |
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; rk055hdmipi4m, rk055hdmipi4ma0, g1120b0mipi shield로 시험 | Supported (M7) | Supported (M7) |
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; nxp_btb44_ov5640 shield로 시험 | Supported (M7) | Supported (M7) |
UART | NXP NW61x | M.2 WIFI/BT module | Unsupported | Supported (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개 있습니다.
| 이름 | 기능 | 용도 |
|---|---|---|
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 sample
| 코어 | 부트 주소 | 설명 |
|---|---|---|
Cortex M7 | 0x30000000[630K] | primary core |
Cortex M4 | 0x20020000[96k] | OCRAM에서 부팅 |
| 메모리 | 주소[크기] | 설명 |
|---|---|---|
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 |
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뿐입니다.
- M4 image가 flash에 기록되도록 먼저 flash합니다.
- 그다음 M7 image를 flash합니다.
- 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:
JP2open - MIMXRT1170-EVK:
J31과J32short
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
출처
영어 원문에는 문단, 문서 지시문, 표, 코드, 코드 심벌, 경로를 그대로 보존했습니다.