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