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

Zephyr 3.7.0 · Boards · NXP · i.MX RT1020

NXP MIMXRT1020-EVK

500 MHz Cortex-M7과 SDRAM·QSPI, Ethernet·SD card·USB·CAN·audio를 갖춘 i.MX RT crossover 평가 보드입니다.

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

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

Part 1

요약·해설

SEMC·FLEXSPI 부팅, 지원 장치 14종과 32개 핀, Ethernet/SPI 공유 핀, BT HCI UART, 3종 probe와 flash·debug 흐름을 설명합니다.

CPU

Cortex-M7 · 500 MHz

Memory

256 Mbit SDRAM · 64 Mbit QSPI

I/O

Ethernet · SDHC · BT HCI

Part 2

접을 수 있는 영어 원문 전체

영어 원문 전체 펼치기
원문 SHA-256 75C22FF1DEB377B0CFE5A9080000BC44BB8C9B817C8697B9721EDDA01C44DF58
.. _mimxrt1020_evk:

NXP MIMXRT1020-EVK
##################

Overview
********

The i.MX RT1020 expands the i.MX RT crossover processor families by providing
high-performance feature set in low-cost LQFP packages, further simplifying
board design and layout for customers. The i.MX RT1020 runs on the Arm®
Cortex®-M7 core at 500 MHz.

.. image:: ../../../../../../../boards/nxp/mimxrt1020_evk/doc/mimxrt1020_evk.jpg
   :align: center
   :alt: MIMXRT1020-EVK

Hardware
********

- MIMXRT1021DAG5A MCU

- Memory

  - 256 Mbit SDRAM
  - 64 Mbit QSPI Flash
  - TF socket for SD card

- Connectivity

  - 10/100 Mbit/s Ethernet PHY
  - Micro USB host and OTG connectors
  - CAN transceivers
  - Arduino interface

- Audio

  - Audio Codec
  - 4-pole audio headphone jack
  - Microphone
  - External speaker connection

- Power

  - 5 V DC jack

- Debug

  - JTAG 20-pin connector
  - OpenSDA with DAPLink

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

- `i.MX RT1020 Website`_
- `i.MX RT1020 Datasheet`_
- `i.MX RT1020 Reference Manual`_
- `MIMXRT1020-EVK Website`_
- `MIMXRT1020-EVK User Guide`_
- `MIMXRT1020-EVK Design Files`_

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

This platform has the following external memories:

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

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

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

+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component                    |
+===========+============+=====================================+
| NVIC      | on-chip    | nested vector interrupt controller  |
+-----------+------------+-------------------------------------+
| SYSTICK   | on-chip    | systick                             |
+-----------+------------+-------------------------------------+
| FLASH     | on-chip    | QSPI flash                          |
+-----------+------------+-------------------------------------+
| GPIO      | on-chip    | gpio                                |
+-----------+------------+-------------------------------------+
| SPI       | on-chip    | spi                                 |
+-----------+------------+-------------------------------------+
| I2C       | on-chip    | i2c                                 |
+-----------+------------+-------------------------------------+
| SDHC      | on-chip    | disk access                         |
+-----------+------------+-------------------------------------+
| UART      | on-chip    | serial port-polling;                |
|           |            | serial port-interrupt               |
+-----------+------------+-------------------------------------+
| ENET      | on-chip    | ethernet                            |
+-----------+------------+-------------------------------------+
| USB       | on-chip    | USB device                          |
+-----------+------------+-------------------------------------+
| ADC       | on-chip    | adc                                 |
+-----------+------------+-------------------------------------+
| GPT       | on-chip    | gpt                                 |
+-----------+------------+-------------------------------------+
| TRNG      | on-chip    | entropy                             |
+-----------+------------+-------------------------------------+
| FLEXSPI   | on-chip    | flash programming                   |
+-----------+------------+-------------------------------------+

The default configuration can be found in
:zephyr_file:`boards/nxp/mimxrt1020_evk/mimxrt1020_evk_defconfig`

Other hardware features are not currently supported by the port.

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

The MIMXRT1020 SoC has five pairs of pinmux/gpio controllers.

+---------------+-----------------+---------------------------+
| Name          | Function        | Usage                     |
+===============+=================+===========================+
| GPIO_AD_B0_05 | GPIO            | LED                       |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_06 | LPUART1_TX      | UART Console              |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_07 | LPUART1_RX      | UART Console              |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_08 | LPUART2_TX      | UART BT HCI               |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_09 | LPUART2_RX      | UART BT HCI               |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_14 | LPI2C1_SCL      | I2C                       |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_15 | LPI2C1_SDA      | I2C                       |
+---------------+-----------------+---------------------------+
| GPIO_SD_B1_02 | LPI2C4_SCL      | I2C                       |
+---------------+-----------------+---------------------------+
| GPIO_SD_B1_03 | LPI2C4_SDA      | I2C                       |
+---------------+-----------------+---------------------------+
| WAKEUP        | GPIO            | SW0                       |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_04 | ENET_RST        | Ethernet                  |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_08 | ENET_REF_CLK    | Ethernet                  |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_09 | ENET_RX_DATA01  | Ethernet                  |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_10 | ENET_RX_DATA00/LPSPI1_SCK | Ethernet/SPI    |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_11 | ENET_RX_EN/LPSPI1_PCS0 | Ethernet/SPI       |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_12 | ENET_RX_ER/LPSPI1_SDO | Ethernet/SPI        |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_13 | ENET_TX_EN/LPSPI1_SDI | Ethernet/SPI        |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_14 | ENET_TX_DATA00  | Ethernet                  |
+---------------+-----------------+---------------------------+
| GPIO_AD_B0_15 | ENET_TX_DATA01  | Ethernet                  |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_06 | ENET_INT        | Ethernet                  |
+---------------+-----------------+---------------------------+
| GPIO_EMC_41   | ENET_MDC        | Ethernet                  |
+---------------+-----------------+---------------------------+
| GPIO_EMC_40   | ENET_MDIO       | Ethernet                  |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_07 | USDHC1_VSELECT  | SD Card                   |
+---------------+-----------------+---------------------------+
| GPIO_SD_B0_02 | USDHC1_CMD      | SD Card                   |
+---------------+-----------------+---------------------------+
| GPIO_SD_B0_03 | USDHC1_CLK      | SD Card                   |
+---------------+-----------------+---------------------------+
| GPIO_SD_B0_04 | USDHC1_DATA0    | SD Card                   |
+---------------+-----------------+---------------------------+
| GPIO_SD_B0_05 | USDHC1_DATA1    | SD Card                   |
+---------------+-----------------+---------------------------+
| GPIO_SD_B0_00 | USDHC1_DATA2    | SD Card                   |
+---------------+-----------------+---------------------------+
| GPIO_SD_B0_01 | USDHC1_DATA3    | SD Card                   |
+---------------+-----------------+---------------------------+
| GPIO_SD_B0_06 | USDHC1_CD_B     | SD Card                   |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_10 | ADC             | ADC1 Channel 10           |
+---------------+-----------------+---------------------------+
| GPIO_AD_B1_11 | ADC             | ADC1 Channel 11           |
+---------------+-----------------+---------------------------+

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

The MIMXRT1020 SoC is configured to use SysTick as the system clock source,
running at 500MHz.

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 MIMXRT1020 SoC has eight UARTs. ``LPUART1`` is configured for the console,
``LPUART2`` for the Bluetooth Host Controller Interface (BT HCI), and the
remaining are not used.

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

This board supports 3 debug host tools. Please install your preferred host
tool, then follow the instructions in `Configuring a Debug Probe`_ to
configure the board appropriately.

* :ref:`linkserver-debug-host-tools` (Default, Supported by NXP)
* :ref:`jlink-debug-host-tools` (Supported by NXP)
* :ref:`pyocd-debug-host-tools` (Not supported by NXP)

Once the host tool and board are configured, build and flash applications
as usual (see :ref:`build_an_application` and :ref:`application_run` for more
details).

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

For the RT1020, J47/J48 are the SWD isolation jumpers, J42 is the DFU
mode jumper, and J16 is the 20 pin JTAG/SWD header.

.. include:: ../../../../../../../boards/nxp/common/rt1xxx-lpclink2-debug.rst
   :start-after: rt1xxx-lpclink2-probes

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 J25 and J26 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 J23.

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.

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: mimxrt1020_evk
   :goals: flash

Open a serial terminal, reset the board (press the SW5 button), and you should
see the following message in the terminal:

.. code-block:: console

   ***** Booting Zephyr OS v1.14.0-rc1 *****
   Hello World! mimxrt1020_evk

Debugging
=========

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

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: mimxrt1020_evk
   :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 v1.14.0-rc1 *****
   Hello World! mimxrt1020_evk

.. _MIMXRT1020-EVK Website:
   https://www.nxp.com/support/developer-resources/run-time-software/i.mx-developer-resources/i.mx-rt1020-evaluation-kit:MIMXRT1020-EVK

.. _MIMXRT1020-EVK User Guide:
   https://www.nxp.com/webapp/Download?colCode=MIMXRT1020EVKHUG

.. _MIMXRT1020-EVK Design Files:
   https://www.nxp.com/webapp/Download?colCode=MIMXRT1020-EVK-Design-Files

.. _i.MX RT1020 Website:
   https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/i.mx-applications-processors/i.mx-rt-series/i.mx-rt1020-crossover-processor-with-arm-cortex-m7-core:i.MX-RT1020

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

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

.. _OpenSDA J-Link MIMXRT1020-EVK Firmware:
   https://www.segger.com/downloads/jlink/OpenSDA_MIMXRT1020-EVK

Part 3

한국어 전문 번역

개요

i.MX RT1020은 저비용 LQFP package에 고성능 기능 집합을 제공해 i.MX RT crossover processor 제품군을 확장합니다. 고객의 보드 설계와 layout도 한층 단순해집니다. i.MX RT1020은 500 MHz Arm Cortex-M7 core에서 동작합니다.

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

하드웨어

  • MIMXRT1021DAG5A MCU
  • 메모리: 256 Mbit SDRAM, 64 Mbit QSPI Flash, SD card용 TF socket
  • 연결: 10/100 Mbit/s Ethernet PHY, Micro USB host·OTG, CAN transceiver, Arduino interface
  • 오디오: Audio Codec, 4-pole headphone jack, microphone, 외부 speaker 연결
  • 전원: 5 V DC jack
  • 디버그: JTAG 20-pin connector, DAPLink가 탑재된 OpenSDA

MIMXRT1020 SoC와 EVK의 자세한 정보는 아래 웹사이트, 데이터시트, Reference Manual, User Guide와 설계 파일을 참고하십시오.

외부 메모리

SDRAM은 SEMC 초기화 데이터로, QSPI flash는 FLEXSPI configuration block으로 부팅 시 활성화됩니다.

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

지원 기능

mimxrt1020_evk 구성은 아래 기능을 지원합니다. 아직 지원되지 않은 추가 기능은 NXP i.MX RT10xx 계열의 상위 집합 보드 mimxrt1064_evk도 참고하십시오. NXP는 Zephyr Full Platform Support를 이 상위 집합 보드에 우선 활성화하므로 이미 구현된 기능을 RT1020에서도 재사용할 수 있습니다.

인터페이스컨트롤러드라이버/컴포넌트
NVICon-chipnested vector interrupt controller
SYSTICKon-chipsystick
FLASHon-chipQSPI flash
GPIOon-chipgpio
SPIon-chipspi
I2Con-chipi2c
SDHCon-chipdisk access
UARTon-chipserial port-polling; serial port-interrupt
ENETon-chipethernet
USBon-chipUSB device
ADCon-chipadc
GPTon-chipgpt
TRNGon-chipentropy
FLEXSPIon-chipflash programming

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

연결과 I/O

MIMXRT1020 SoC에는 pinmux/GPIO controller 쌍이 5개 있습니다. Ethernet과 SPI가 일부 핀을 공유하므로 선택한 pinmux에 맞게 사용해야 합니다.

이름기능용도
GPIO_AD_B0_05GPIOLED
GPIO_AD_B0_06LPUART1_TXUART Console
GPIO_AD_B0_07LPUART1_RXUART Console
GPIO_AD_B1_08LPUART2_TXUART BT HCI
GPIO_AD_B1_09LPUART2_RXUART BT HCI
GPIO_AD_B1_14LPI2C1_SCLI2C
GPIO_AD_B1_15LPI2C1_SDAI2C
GPIO_SD_B1_02LPI2C4_SCLI2C
GPIO_SD_B1_03LPI2C4_SDAI2C
WAKEUPGPIOSW0
GPIO_AD_B0_04ENET_RSTEthernet
GPIO_AD_B0_08ENET_REF_CLKEthernet
GPIO_AD_B0_09ENET_RX_DATA01Ethernet
GPIO_AD_B0_10ENET_RX_DATA00/LPSPI1_SCKEthernet/SPI
GPIO_AD_B0_11ENET_RX_EN/LPSPI1_PCS0Ethernet/SPI
GPIO_AD_B0_12ENET_RX_ER/LPSPI1_SDOEthernet/SPI
GPIO_AD_B0_13ENET_TX_EN/LPSPI1_SDIEthernet/SPI
GPIO_AD_B0_14ENET_TX_DATA00Ethernet
GPIO_AD_B0_15ENET_TX_DATA01Ethernet
GPIO_AD_B1_06ENET_INTEthernet
GPIO_EMC_41ENET_MDCEthernet
GPIO_EMC_40ENET_MDIOEthernet
GPIO_AD_B1_07USDHC1_VSELECTSD Card
GPIO_SD_B0_02USDHC1_CMDSD Card
GPIO_SD_B0_03USDHC1_CLKSD Card
GPIO_SD_B0_04USDHC1_DATA0SD Card
GPIO_SD_B0_05USDHC1_DATA1SD Card
GPIO_SD_B0_00USDHC1_DATA2SD Card
GPIO_SD_B0_01USDHC1_DATA3SD Card
GPIO_SD_B0_06USDHC1_CD_BSD Card
GPIO_AD_B1_10ADCADC1 Channel 10
GPIO_AD_B1_11ADCADC1 Channel 11

시스템 클록

SoC는 500 MHz SysTick을 시스템 클록 소스로 사용합니다. 전원 관리가 활성화되면 32 KHz 저주파 oscillator를 GPT timer의 소스로 사용해 시스템 클록을 만들며, 해상도가 낮아지는 대신 저전력 상태를 지원합니다.

직렬 포트

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

프로그래밍과 디버깅

지원하는 host tool은 기본·NXP 지원 LinkServer, NXP 지원 J-Link, NXP가 지원하지 않는 pyOCD의 3종입니다. 도구와 보드를 구성한 다음 일반 Zephyr 절차로 빌드·플래시합니다.

디버그 프로브 구성

RT1020에서 J47/J48은 SWD isolation jumper, J42는 DFU mode jumper, J16은 20-pin JTAG/SWD header입니다. LPC-Link2 on-board debug probe의 기본 firmware는 DAPLink입니다. 공통 절차는 NXP RT1xxx LPC-Link2 Debug Probe 설정에도 보존되어 있습니다.

CMSIS-DAP

  1. LinkServer 또는 pyOCD를 쓸 때 LPC-Link2 CMSIS-DAP 안내에 따라 기본 firmware를 다시 program합니다.
  2. J47/J48을 장착합니다.

J-Link

온보드 circuit을 SEGGER J-Link firmware로 바꾸거나 외부 J-Link를 연결할 수 있습니다. 온보드 J-Link는 debug USB로 EVK에 전원을 공급하지 않으므로 별도 전원을 선택하고 firmware를 program한 뒤 J47/J48을 장착합니다. 외부 J-Link를 쓸 때는 J47/J48을 제거하고 J16에 연결합니다.

콘솔 구성

Debug probe 선택과 관계없이 OpenSDA를 USB-to-serial adapter로 사용합니다. UART 신호 연결용 J25/J26이 장착되어 있는지 확인하고 PC를 J23에 USB로 연결합니다. Terminal은 115200 baud, data 8 bits, parity None, stop bit 1로 설정합니다.

플래시

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

SW5로 reset하면 다음 메시지가 표시됩니다.

***** Booting Zephyr OS v1.14.0-rc1 *****
Hello World! mimxrt1020_evk

디버깅

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

Debugger에서 애플리케이션을 단계 실행하면 terminal에 다음 메시지가 표시됩니다.

***** Booting Zephyr OS v1.14.0-rc1 *****
Hello World! mimxrt1020_evk

참고 자료

Source

출처

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