1.. _mimxrt1050_evk: 2 3NXP MIMXRT1050-EVK 4################## 5 6Overview 7******** 8 9The i.MX RT1050 is a new processor family featuring NXP's advanced 10implementation of the ARM Cortex-M7 Core. It provides high CPU performance and 11real-time response. 12 13The i.MX RT1050 provides various memory interfaces, including SDRAM, Raw NAND 14FLASH, NOR FLASH, SD/eMMC, Quad SPI, HyperBus and a wide range of other 15interfaces for connecting peripherals, such as WLAN, Bluetooth™, GPS, displays, 16and camera sensors. As with other i.MX processors, i.MX RT1050 also has rich 17audio and video features, including LCD display, basic 2D graphics, camera 18interface, SPDIF, and I2S audio interface. 19 20.. image:: mimxrt1050_evk.jpg 21 :align: center 22 :alt: MIMXRT1050-EVK 23 24Hardware 25******** 26 27- MIMXRT1052DVL6A MCU (600 MHz, 512 KB TCM) 28 29- Memory 30 31 - 256 KB SDRAM 32 - 64 Mbit QSPI Flash 33 - 512 Mbit Hyper Flash 34 35- Display 36 37 - LCD connector 38 - Touch connector 39 40- Ethernet 41 42 - 10/100 Mbit/s Ethernet PHY 43 44- USB 45 46 - USB 2.0 OTG connector 47 - USB 2.0 host connector 48 49- Audio 50 51 - 3.5 mm audio stereo headphone jack 52 - Board-mounted microphone 53 - Left and right speaker out connectors 54 55- Power 56 57 - 5 V DC jack 58 59- Debug 60 61 - JTAG 20-pin connector 62 - OpenSDA with DAPLink 63 64- Sensor 65 66 - FXOS8700CQ 6-axis e-compass 67 - CMOS camera sensor interface 68 69- Expansion port 70 71 - Arduino interface 72 73- CAN bus connector 74 75For more information about the MIMXRT1050 SoC and MIMXRT1050-EVK board, see 76these references: 77 78- `i.MX RT1050 Website`_ 79- `i.MX RT1050 Datasheet`_ 80- `i.MX RT1050 Reference Manual`_ 81- `MIMXRT1050-EVK Website`_ 82- `MIMXRT1050-EVK User Guide`_ 83- `MIMXRT1050-EVK Schematics`_ 84 85External Memory 86=============== 87 88This platform has the following external memories: 89 90+--------------------+------------+-------------------------------------+ 91| Device | Controller | Status | 92+====================+============+=====================================+ 93| IS42S16160J | SEMC | Enabled via device configuration | 94| | | data block, which sets up SEMC at | 95| | | boot time | 96+--------------------+------------+-------------------------------------+ 97| S26KS512SDPBHI020 | FLEXSPI | Enabled via flash configurationn | 98| | | block, which sets up FLEXSPI at | 99| | | boot time. | 100+--------------------+------------+-------------------------------------+ 101 102Supported Features 103================== 104 105The mimxrt1050_evk board configuration supports the hardware features listed 106below. For additional features not yet supported, please also refer to the 107:ref:`mimxrt1064_evk` , which is the superset board in NXP's i.MX RT10xx family. 108NXP prioritizes enabling the superset board with NXP's Full Platform Support for 109Zephyr. Therefore, the mimxrt1064_evk board may have additional features 110already supported, which can also be re-used on this mimxrt1050_evk board: 111 112+-----------+------------+-------------------------------------+ 113| Interface | Controller | Driver/Component | 114+===========+============+=====================================+ 115| NVIC | on-chip | nested vector interrupt controller | 116+-----------+------------+-------------------------------------+ 117| SYSTICK | on-chip | systick | 118+-----------+------------+-------------------------------------+ 119| DISPLAY | on-chip | eLCDIF. Tested with | 120| | | :ref:`rk043fn02h_ct`, and | 121| | | :ref:`rk043fn66hs_ctg` shields | 122+-----------+------------+-------------------------------------+ 123| GPIO | on-chip | gpio | 124+-----------+------------+-------------------------------------+ 125| I2C | on-chip | i2c | 126+-----------+------------+-------------------------------------+ 127| SDHC | on-chip | disk access | 128+-----------+------------+-------------------------------------+ 129| SPI | on-chip | spi | 130+-----------+------------+-------------------------------------+ 131| UART | on-chip | serial port-polling; | 132| | | serial port-interrupt | 133+-----------+------------+-------------------------------------+ 134| ENET | on-chip | ethernet | 135+-----------+------------+-------------------------------------+ 136| USB | on-chip | USB device | 137+-----------+------------+-------------------------------------+ 138| ADC | on-chip | adc | 139+-----------+------------+-------------------------------------+ 140| GPT | on-chip | gpt | 141+-----------+------------+-------------------------------------+ 142| TRNG | on-chip | entropy | 143+-----------+------------+-------------------------------------+ 144| FLEXSPI | on-chip | flash programming | 145+-----------+------------+-------------------------------------+ 146 147The default configuration can be found in 148:zephyr_file:`boards/nxp/mimxrt1050_evk/mimxrt1050_evk_defconfig` 149 150Other hardware features are not currently supported by the port. 151 152Connections and IOs 153=================== 154 155The MIMXRT1050 SoC has five pairs of pinmux/gpio controllers. 156 157+---------------+-----------------+---------------------------+ 158| Name | Function | Usage | 159+===============+=================+===========================+ 160| GPIO_AD_B0_00 | LPSPI1_SCK | SPI | 161+---------------+-----------------+---------------------------+ 162| GPIO_AD_B0_01 | LPSPI1_SDO | SPI | 163+---------------+-----------------+---------------------------+ 164| GPIO_AD_B0_02 | LPSPI3_SDI/LCD_RST| SPI/LCD Display | 165+---------------+-----------------+---------------------------+ 166| GPIO_AD_B0_03 | LPSPI3_PCS0 | SPI | 167+---------------+-----------------+---------------------------+ 168| GPIO_AD_B0_05 | GPIO | SD Card | 169+---------------+-----------------+---------------------------+ 170| GPIO_AD_B0_09 | GPIO/ENET_RST | LED | 171+---------------+-----------------+---------------------------+ 172| GPIO_AD_B0_10 | GPIO/ENET_INT | GPIO/Ethernet | 173+---------------+-----------------+---------------------------+ 174| GPIO_AD_B0_11 | GPIO | Touch Interrupt | 175+---------------+-----------------+---------------------------+ 176| GPIO_AD_B0_12 | LPUART1_TX | UART Console | 177+---------------+-----------------+---------------------------+ 178| GPIO_AD_B0_13 | LPUART1_RX | UART Console | 179+---------------+-----------------+---------------------------+ 180| GPIO_AD_B1_00 | LPI2C1_SCL | I2C | 181+---------------+-----------------+---------------------------+ 182| GPIO_AD_B1_01 | LPI2C1_SDA | I2C | 183+---------------+-----------------+---------------------------+ 184| GPIO_AD_B1_06 | LPUART3_TX | UART BT HCI | 185+---------------+-----------------+---------------------------+ 186| GPIO_AD_B1_07 | LPUART3_RX | UART BT HCI | 187+---------------+-----------------+---------------------------+ 188| GPIO_AD_B1_11 | ADC | ADC1 channel 0 | 189+---------------+-----------------+---------------------------+ 190| WAKEUP | GPIO | SW0 | 191+---------------+-----------------+---------------------------+ 192| GPIO_B0_00 | LCD_CLK | LCD Display | 193+---------------+-----------------+---------------------------+ 194| GPIO_B0_01 | LCD_ENABLE | LCD Display | 195+---------------+-----------------+---------------------------+ 196| GPIO_B0_02 | LCD_HSYNC | LCD Display | 197+---------------+-----------------+---------------------------+ 198| GPIO_B0_03 | LCD_VSYNC | LCD Display | 199+---------------+-----------------+---------------------------+ 200| GPIO_B0_04 | LCD_DATA00 | LCD Display | 201+---------------+-----------------+---------------------------+ 202| GPIO_B0_05 | LCD_DATA01 | LCD Display | 203+---------------+-----------------+---------------------------+ 204| GPIO_B0_06 | LCD_DATA02 | LCD Display | 205+---------------+-----------------+---------------------------+ 206| GPIO_B0_07 | LCD_DATA03 | LCD Display | 207+---------------+-----------------+---------------------------+ 208| GPIO_B0_08 | LCD_DATA04 | LCD Display | 209+---------------+-----------------+---------------------------+ 210| GPIO_B0_09 | LCD_DATA05 | LCD Display | 211+---------------+-----------------+---------------------------+ 212| GPIO_B0_10 | LCD_DATA06 | LCD Display | 213+---------------+-----------------+---------------------------+ 214| GPIO_B0_11 | LCD_DATA07 | LCD Display | 215+---------------+-----------------+---------------------------+ 216| GPIO_B0_12 | LCD_DATA08 | LCD Display | 217+---------------+-----------------+---------------------------+ 218| GPIO_B0_13 | LCD_DATA09 | LCD Display | 219+---------------+-----------------+---------------------------+ 220| GPIO_B0_14 | LCD_DATA10 | LCD Display | 221+---------------+-----------------+---------------------------+ 222| GPIO_B0_15 | LCD_DATA11 | LCD Display | 223+---------------+-----------------+---------------------------+ 224| GPIO_B1_00 | LCD_DATA12 | LCD Display | 225+---------------+-----------------+---------------------------+ 226| GPIO_B1_01 | LCD_DATA13 | LCD Display | 227+---------------+-----------------+---------------------------+ 228| GPIO_B1_02 | LCD_DATA14 | LCD Display | 229+---------------+-----------------+---------------------------+ 230| GPIO_B1_03 | LCD_DATA15 | LCD Display | 231+---------------+-----------------+---------------------------+ 232| GPIO_B1_04 | ENET_RX_DATA00 | Ethernet | 233+---------------+-----------------+---------------------------+ 234| GPIO_B1_05 | ENET_RX_DATA01 | Ethernet | 235+---------------+-----------------+---------------------------+ 236| GPIO_B1_06 | ENET_RX_EN | Ethernet | 237+---------------+-----------------+---------------------------+ 238| GPIO_B1_07 | ENET_TX_DATA00 | Ethernet | 239+---------------+-----------------+---------------------------+ 240| GPIO_B1_08 | ENET_TX_DATA01 | Ethernet | 241+---------------+-----------------+---------------------------+ 242| GPIO_B1_09 | ENET_TX_EN | Ethernet | 243+---------------+-----------------+---------------------------+ 244| GPIO_B1_10 | ENET_REF_CLK | Ethernet | 245+---------------+-----------------+---------------------------+ 246| GPIO_B1_11 | ENET_RX_ER | Ethernet | 247+---------------+-----------------+---------------------------+ 248| GPIO_B1_12 | GPIO | SD Card | 249+---------------+-----------------+---------------------------+ 250| GPIO_B1_14 | USDHC1_VSELECT | SD Card | 251+---------------+-----------------+---------------------------+ 252| GPIO_B1_15 | BACKLIGHT_CTL | LCD Display | 253+---------------+-----------------+---------------------------+ 254| GPIO_EMC_40 | ENET_MDC | Ethernet | 255+---------------+-----------------+---------------------------+ 256| GPIO_EMC_41 | ENET_MDIO | Ethernet | 257+---------------+-----------------+---------------------------+ 258| GPIO_AD_B0_09 | ENET_RST | Ethernet | 259+---------------+-----------------+---------------------------+ 260| GPIO_AD_B0_10 | ENET_INT | Ethernet | 261+---------------+-----------------+---------------------------+ 262| GPIO_SD_B0_00 | USDHC1_CMD/LPSPI1_SCK | SD Card/SPI | 263+---------------+-----------------+---------------------------+ 264| GPIO_SD_B0_01 | USDHC1_CLK/LPSPI1_PCS0 | SD Card/SPI | 265+---------------+-----------------+---------------------------+ 266| GPIO_SD_B0_02 | USDHC1_DATA0/LPSPI1_SDO | SD Card/SPI | 267+---------------+-----------------+---------------------------+ 268| GPIO_SD_B0_03 | USDHC1_DATA1/LPSPI1_SDI | SD Card/SPI | 269+---------------+-----------------+---------------------------+ 270| GPIO_SD_B0_04 | USDHC1_DATA2 | SD Card | 271+---------------+-----------------+---------------------------+ 272| GPIO_SD_B0_05 | USDHC1_DATA3 | SD Card | 273+---------------+-----------------+---------------------------+ 274| GPIO_AD_B1_02 | 1588_EVENT2_OUT | 1588 | 275+---------------+-----------------+---------------------------+ 276| GPIO_AD_B1_03 | 1588_EVENT2_IN | 1588 | 277+---------------+-----------------+---------------------------+ 278 279.. note:: 280 In order to use the SPI peripheral on this board, resistors R278, 281 R279, R280, and R281 must be populated with zero ohm resistors 282 283System Clock 284============ 285 286The MIMXRT1050 SoC is configured to use SysTick as the system clock source, 287running at 600MHz. 288 289When power management is enabled, the 32 KHz low frequency 290oscillator on the board will be used as a source for the GPT timer to 291generate a system clock. This clock enables lower power states, at the 292cost of reduced resolution 293 294Serial Port 295=========== 296 297The MIMXRT1050 SoC has eight UARTs. ``LPUART1`` is configured for the console, 298``LPUART3`` for the Bluetooth Host Controller Interface (BT HCI), and the 299remaining are not used. 300 301USB 302=== 303 304The RT1050 SoC has two USB OTG (USBOTG) controllers that supports both 305device and host functions through its micro USB connectors. 306Only USB device function is supported in Zephyr at the moment. 307 308Programming and Debugging 309************************* 310 311.. note:: 312 Newer revisions of this board use :ref:`lpc-link2-onboard-debug-probe`, 313 while older revisions use the :ref:`opensda-onboard-debug-probe`. 314 Schematic revisions A/A1 use the K20 OpenSDA probe, and B/B1 use the 315 LPC-Link2 LPC4322 probe. 316 317This board supports 3 debug host tools. Please install your preferred host 318tool, then follow the instructions in `Configuring a Debug Probe 319(Schematic A/A1)`_ or `Configuring a Debug Probe (Schematic B/B1)`_, 320depending on board schematic revision to configure the board appropriately. 321 322* :ref:`linkserver-debug-host-tools` (Default, NXP Supported) 323* :ref:`jlink-debug-host-tools` (NXP Supported) 324* :ref:`pyocd-debug-host-tools` (Not supported by NXP) 325 326Once the host tool and board are configured, build and flash applications 327as usual (see :ref:`build_an_application` and :ref:`application_run` for more 328details). 329 330Configuring a Debug Probe (Schematic A/A1) 331========================================== 332 333For the RT1050 Schematic Rev A, J32/J33 are the SWD isolation jumpers, SW4 is 334the reset button, and J21 is the 20 pin JTAG/SWD header. 335 336.. include:: ../../common/opensda-debug.rst 337 :start-after: nxp-opensda-probes 338 339 340Configuring a Debug Probe (Schematic B/B1) 341========================================== 342 343For the RT1050 Schematic Rev B, J47/J48 are the SWD isolation jumpers, J42 is 344the DFU mode jumper, and J21 is the 20 pin JTAG/SWD header. 345 346.. include:: ../../common/rt1xxx-lpclink2-debug.rst 347 :start-after: rt1xxx-lpclink2-probes 348 349Configuring a Console 350===================== 351 352Regardless of your choice in debug probe, we will use the OpenSDA 353microcontroller as a usb-to-serial adapter for the serial console. Check that 354jumpers J30 and J31 are **on** (they are on by default when boards ship from 355the factory) to connect UART signals to the OpenSDA microcontroller. 356 357Connect a USB cable from your PC to J28. 358 359Use the following settings with your serial terminal of choice (minicom, putty, 360etc.): 361 362- Speed: 115200 363- Data: 8 bits 364- Parity: None 365- Stop bits: 1 366 367Flashing 368======== 369 370Here is an example for the :ref:`hello_world` application. 371 372.. zephyr-app-commands:: 373 :zephyr-app: samples/hello_world 374 :board: mimxrt1050_evk 375 :goals: flash 376 377Open a serial terminal, reset the board (press the SW4 button), and you should 378see the following message in the terminal: 379 380.. code-block:: console 381 382 ***** Booting Zephyr OS v1.14.0-rc1 ***** 383 Hello World! mimxrt1050_evk 384 385Debugging 386========= 387 388Here is an example for the :ref:`hello_world` application. 389 390.. zephyr-app-commands:: 391 :zephyr-app: samples/hello_world 392 :board: mimxrt1050_evk 393 :goals: debug 394 395Open a serial terminal, step through the application in your debugger, and you 396should see the following message in the terminal: 397 398.. code-block:: console 399 400 ***** Booting Zephyr OS v1.14.0-rc1 ***** 401 Hello World! mimxrt1050_evk 402 403Troubleshooting 404=============== 405 406If the debug probe fails to connect with the following error, it's possible 407that the boot header in HyperFlash is invalid or corrupted. The boot header is 408configured by :kconfig:option:`CONFIG_NXP_IMXRT_BOOT_HEADER`. 409 410.. code-block:: console 411 412 Remote debugging using :2331 413 Remote communication error. Target disconnected.: Connection reset by peer. 414 "monitor" command not supported by this target. 415 "monitor" command not supported by this target. 416 You can't do that when your target is `exec' 417 (gdb) Could not connect to target. 418 Please check power, connection and settings. 419 420You can fix it by erasing and reprogramming the HyperFlash with the following 421steps: 422 423#. Set the SW7 DIP switches to ON-ON-ON-OFF to prevent booting from HyperFlash. 424 425#. Reset by pressing SW4 426 427#. Run ``west debug`` or ``west flash`` again with a known working Zephyr 428 application. 429 430#. Set the SW7 DIP switches to OFF-ON-ON-OFF to boot from HyperFlash. 431 432#. Reset by pressing SW4 433 434Board Revisions 435*************** 436 437The original MIMXRT1050-EVK (rev A0) board was updated with a newer 438MIMXRT1050-EVKB (rev A1) board, with these major hardware differences: 439 440- SoC changed from MIMXRT1052DVL6\ **A** to MIMXRT1052DVL6\ **B** 441- Hardware bug fixes for: power, interfaces, and memory 442- Arduino headers included 443 444For more details, please see the following `NXP i.MXRT1050 A0 to A1 Migration Guide`_. 445 446Current Zephyr build supports the new MIMXRT1050-EVKB 447 448.. _MIMXRT1050-EVK Website: 449 https://www.nxp.com/products/microcontrollers-and-processors/arm-based-processors-and-mcus/i.mx-applications-processors/i.mx-rt-series/i.mx-rt1050-evaluation-kit:MIMXRT1050-EVK 450 451.. _MIMXRT1050-EVK User Guide: 452 https://www.nxp.com/webapp/Download?colCode=IMXRT1050EVKBHUG 453 454.. _MIMXRT1050-EVK Schematics: 455 https://www.nxp.com/webapp/Download?colCode=MIMXRT1050-EVK-DESIGNFILES 456 457.. _i.MX RT1050 Website: 458 https://www.nxp.com/products/microcontrollers-and-processors/arm-based-processors-and-mcus/i.mx-applications-processors/i.mx-rt-series/i.mx-rt1050-crossover-processor-with-arm-cortex-m7-core:i.MX-RT1050 459 460.. _i.MX RT1050 Datasheet: 461 https://www.nxp.com/docs/en/data-sheet/IMXRT1050CEC.pdf 462 463.. _i.MX RT1050 Reference Manual: 464 https://www.nxp.com/docs/en/reference-manual/IMXRT1050RM.pdf 465 466.. _OpenSDA J-Link MIMXRT1050-EVK-Hyperflash Firmware: 467 https://www.segger.com/downloads/jlink/OpenSDA_MIMXRT1050-EVK-Hyperflash 468 469.. _NXP i.MXRT1050 A0 to A1 Migration Guide: 470 https://www.nxp.com/docs/en/nxp/application-notes/AN12146.pdf 471 472.. _Enable QSPI flash support in SEGGER JLink: 473 https://wiki.segger.com/i.MXRT1050#QSPI_flash 474