1.. zephyr:board:: mimxrt1062_fmurt6
2
3Overview
4********
5
6The MIMXRT1062_FMURT6 adds to the industry's crossover
7processor series and expands the i.MX RT series to three scalable families.
8
9The i.MX RT1062 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 RT1062 runs on the
13Arm® Cortex-M7® core up to 600 MHz.
14
15Hardware
16********
17
18- MIMXRT1062DVL6B MCU (600 MHz, 1024 KB on-chip memory)
19
20- Memory
21
22  - 256 Mbit SDRAM
23  - 512 Mbit Hyper Flash
24  - TF socket for SD card
25
26- Ethernet
27
28  - 10/100 Mbit/s Ethernet PHY
29
30- USB
31
32  - USB 2.0 OTG connector
33  - USB 2.0 host connector
34
35- Audio
36
37  - 3.5 mm audio stereo headphone jack
38  - Board-mounted microphone
39  - Left and right speaker out connectors
40
41- Power
42
43  - 5 V DC jack
44
45- Debug
46
47  - JTAG 20-pin connector
48  - OpenSDA with DAPLink
49
50- Sensor
51
52  - BMI088 6-axis e-compass
53
54- Expansion port
55
56  - Arduino interface
57
58- CAN bus connector
59
60For more information about the MIMXRT1062 SoC and MIMXRT1062-FMURT6 board, see
61these references:
62
63- `i.MX RT1060 Website`_
64- `i.MX RT1060 Reference Manual`_
65- `MIMXRT1062-FMURT6 User Guide`_
66- `MIMXRT1062-FMURT6 Schematics`_
67
68Supported Features
69==================
70
71The mimxrt1062_fmurt6 board configuration supports the hardware features listed
72below.  For additional features not yet supported, please also refer to the
73:zephyr:board:`mimxrt1064_evk` , which is the superset board in NXP's i.MX RT10xx family.
74NXP prioritizes enabling the superset board with NXP's Full Platform Support for
75Zephyr.  Therefore, the mimxrt1064_evk board may have additional features
76already supported, which can also be re-used on this mimxrt1060_evk board:
77
78+-----------+------------+-------------------------------------+
79| Interface | Controller | Driver/Component                    |
80+===========+============+=====================================+
81| NVIC      | on-chip    | nested vector interrupt controller  |
82+-----------+------------+-------------------------------------+
83| SYSTICK   | on-chip    | systick                             |
84+-----------+------------+-------------------------------------+
85| DISPLAY   | on-chip    | display                             |
86+-----------+------------+-------------------------------------+
87| FLASH     | on-chip    | QSPI hyper flash                    |
88+-----------+------------+-------------------------------------+
89| GPIO      | on-chip    | gpio                                |
90+-----------+------------+-------------------------------------+
91| SPI       | on-chip    | spi                                 |
92+-----------+------------+-------------------------------------+
93| I2C       | on-chip    | i2c                                 |
94+-----------+------------+-------------------------------------+
95| ADC       | on-chip    | adc                                 |
96+-----------+------------+-------------------------------------+
97| WATCHDOG  | on-chip    | watchdog                            |
98+-----------+------------+-------------------------------------+
99| PWM       | on-chip    | pwm                                 |
100+-----------+------------+-------------------------------------+
101| UART      | on-chip    | serial port-polling;                |
102|           |            | serial port-interrupt               |
103+-----------+------------+-------------------------------------+
104| ENET      | on-chip    | ethernet                            |
105+-----------+------------+-------------------------------------+
106| USB       | on-chip    | USB device                          |
107+-----------+------------+-------------------------------------+
108| CAN       | on-chip    | can                                 |
109+-----------+------------+-------------------------------------+
110| DMA       | on-chip    | dma                                 |
111+-----------+------------+-------------------------------------+
112| GPT       | on-chip    | gpt                                 |
113+-----------+------------+-------------------------------------+
114| FLEXSPI   | on-chip    | flash programming                   |
115+-----------+------------+-------------------------------------+
116
117The default configuration can be found in
118:zephyr_file:`boards/nxp/mimxrt1062_fmurt6/mimxrt1062_fmurt6_defconfig`
119
120Other hardware features are not currently supported by the port.
121
122Connections and I/Os
123====================
124
125The MIMXRT1062 SoC has five pairs of pinmux/gpio controllers.
126
127+---------------+-----------------+---------------------------+
128| Name          | Function        | Usage                     |
129+===============+=================+===========================+
130| GPIO_AD_B1_08 | FLEXCAN1 TX     | CAN                       |
131+---------------+-----------------+---------------------------+
132| GPIO_B0_03    | FLEXCAN1 RX     | CAN                       |
133+---------------+-----------------+---------------------------+
134| GPIO_AD_B0_06 | PWM2A0          | PWM                       |
135+---------------+-----------------+---------------------------+
136| GPIO_EMC_08   | PWM2A1          | PWM                       |
137+---------------+-----------------+---------------------------+
138| GPIO_EMC_10   | PWM2A2          | PWM                       |
139+---------------+-----------------+---------------------------+
140| GPIO_AD_B0_09 | PWM2A3          | PWM                       |
141+---------------+-----------------+---------------------------+
142| GPIO_EMC_31   | LPUART7_TX      | UART Console              |
143+---------------+-----------------+---------------------------+
144| GPIO_EMC_32   | LPUART7_RX      | UART Console              |
145+---------------+-----------------+---------------------------+
146| GPIO_B0_04    | LPI2C2_SCL      | I2C                       |
147+---------------+-----------------+---------------------------+
148| GPIO_B0_05    | LPI2C2_SDA      | I2C                       |
149+---------------+-----------------+---------------------------+
150| GPIO_AD_B1_00 | LPI2C1_SCL      | I2C                       |
151+---------------+-----------------+---------------------------+
152| GPIO_AD_B1_01 | LPI2C1_SDA      | I2C                       |
153+---------------+-----------------+---------------------------+
154| GPIO_AD_B0_12 | LPI2C4_SCL      | I2C                       |
155+---------------+-----------------+---------------------------+
156| GPIO_AD_B0_13 | LPI2C4_SDA      | I2C                       |
157+---------------+-----------------+---------------------------+
158| WAKEUP        | GPIO            | SW0                       |
159+---------------+-----------------+---------------------------+
160| GPIO_B1_01    | ENET_RX_DATA00  | Ethernet                  |
161+---------------+-----------------+---------------------------+
162| GPIO_B1_02    | ENET_RX_DATA01  | Ethernet                  |
163+---------------+-----------------+---------------------------+
164| GPIO_B1_03    | ENET_RX_EN      | Ethernet                  |
165+---------------+-----------------+---------------------------+
166| GPIO_B0_12    | ENET_TX_DATA00  | Ethernet                  |
167+---------------+-----------------+---------------------------+
168| GPIO_B0_13    | ENET_TX_DATA01  | Ethernet                  |
169+---------------+-----------------+---------------------------+
170| GPIO_B0_14    | ENET_TX_EN      | Ethernet                  |
171+---------------+-----------------+---------------------------+
172| GPIO_B0_15    | ENET_REF_CLK    | Ethernet                  |
173+---------------+-----------------+---------------------------+
174| GPIO_B1_00    | ENET_RX_ER      | Ethernet                  |
175+---------------+-----------------+---------------------------+
176| GPIO_B1_12    | GPIO            | SD Card                   |
177+---------------+-----------------+---------------------------+
178| GPIO_B1_14    | USDHC1_VSELECT  | SD Card                   |
179+---------------+-----------------+---------------------------+
180| GPIO_EMC_40   | ENET_MDC        | Ethernet                  |
181+---------------+-----------------+---------------------------+
182| GPIO_B0_01    | ENET_MDIO       | Ethernet                  |
183+---------------+-----------------+---------------------------+
184| GPIO_SD_B0_00 | USDHC1_CMD      | SD Card                   |
185+---------------+-----------------+---------------------------+
186| GPIO_SD_B0_01 | USDHC1_CLK      | SD Card                   |
187+---------------+-----------------+---------------------------+
188| GPIO_SD_B0_02 | USDHC1_DATA0    | SD Card                   |
189+---------------+-----------------+---------------------------+
190| GPIO_SD_B0_03 | USDHC1_DATA1    | SD Card                   |
191+---------------+-----------------+---------------------------+
192| GPIO_SD_B0_04 | USDHC1_DATA2    | SD Card                   |
193+---------------+-----------------+---------------------------+
194| GPIO_SD_B0_05 | USDHC1_DATA3    | SD Card                   |
195+---------------+-----------------+---------------------------+
196| GPIO_EMC_27   | LPSPI1_SCK      | SPI                       |
197+---------------+-----------------+---------------------------+
198| GPIO_EMC_28   | LPSPI1_SDO      | SPI                       |
199+---------------+-----------------+---------------------------+
200| GPIO_EMC_29   | LPSPI1_SDI      | SPI                       |
201+---------------+-----------------+---------------------------+
202| GPIO_EMC_00   | LPSPI2_SCK      | SPI                       |
203+---------------+-----------------+---------------------------+
204| GPIO_EMC_02   | LPSPI2_SDO      | SPI                       |
205+---------------+-----------------+---------------------------+
206| GPIO_EMC_03   | LPSPI2_SDI      | SPI                       |
207+---------------+-----------------+---------------------------+
208| GPIO_AD_B1_15 | LPSPI3_SCK      | SPI                       |
209+---------------+-----------------+---------------------------+
210| GPIO_AD_B1_14 | LPSPI3_SDO      | SPI                       |
211+---------------+-----------------+---------------------------+
212| GPIO_AD_B1_13 | LPSPI3_SDI      | SPI                       |
213+---------------+-----------------+---------------------------+
214| GPIO_AD_B1_11 | ADC             | ADC1 Channel 0            |
215+---------------+-----------------+---------------------------+
216| GPIO_AD_B1_09 | ADC             | ADC1 Channel 14           |
217+---------------+-----------------+---------------------------+
218| GPIO_AD_B0_15 | ADC             | ADC1 Channel 4            |
219+---------------+-----------------+---------------------------+
220| GPIO_AD_B1_02 | UART2_TX_GPS1   | UART GPS                  |
221+---------------+-----------------+---------------------------+
222| GPIO_AD_B1_03 | UART2_RX_GPS1   | UART GPS                  |
223+---------------+-----------------+---------------------------+
224
225
226System Clock
227============
228
229The MIMXRT1062 SoC is configured to use SysTick as the system clock source,
230running at 600MHz.
231
232When power management is enabled, the 32 KHz low frequency
233oscillator on the board will be used as a source for the GPT timer to
234generate a system clock. This clock enables lower power states, at the
235cost of reduced resolution
236
237
238Serial Port
239===========
240
241The MIMXRT1062 SoC has eight UARTs. ``LPUART7`` is configured for the console,
242``LPUART8 and 2`` for GPS/MAG, ``LPUART3 and 4`` for Telemetry and the remaining are not used.
243
244Programming and Debugging
245*************************
246
247Build and flash applications as usual (see :ref:`build_an_application` and
248:ref:`application_run` for more details).
249
250Configuring a Debug Probe
251=========================
252
253A debug probe is used for both flashing and debugging the board. This board is
254configured by default to use the :ref:`opensda-daplink-onboard-debug-probe`,
255however the :ref:`pyocd-debug-host-tools` do not yet support programming the
256external flashes on this board so you must reconfigure the board for one of the
257following debug probes instead.
258
259.. _Using J-Link RT1062:
260
261Using J-Link
262---------------------------------
263
264Install the :ref:`jlink-debug-host-tools` and make sure they are in your search
265path.
266
267For Hyperflash support on i.MxRT106x use JLink_V780 or above.
268
269There are two options: the onboard debug circuit can be updated with Segger
270J-Link firmware, or :ref:`jlink-external-debug-probe` can be attached to the
271FMURT6 on J23 FMU Debug Port.
272Run JLink.exe and choose device / core as MIMXRT106A-ALEXA.
273
274Configuring a Console
275=====================
276
277Regardless of your choice in debug probe, we will use the OpenSDA
278microcontroller as a usb-to-serial adapter for the serial console.
279
280Connect a USB cable from your PC to PixHawk debug adapter.
281
282Use the following settings with your serial terminal of choice (minicom, putty,
283etc.):
284
285- Speed: 115200
286- Data: 8 bits
287- Parity: None
288- Stop bits: 1
289
290Using SWO
291---------
292SWO can be used as a logging backend, by setting ``CONFIG_LOG_BACKEND_SWO=y``.
293Your SWO viewer should be configured with a CPU frequency of 132MHz, and
294SWO frequency of 7500KHz.
295
296Flashing
297========
298
299Here is an example for the :zephyr:code-sample:`hello_world` application.
300
301.. zephyr-app-commands::
302   :zephyr-app: samples/hello_world
303   :board: mimxrt1062_fmurt6
304   :goals: flash
305
306Open a serial terminal, reset the board (press the SW9 button), and you should
307see the following message in the terminal:
308
309.. code-block:: console
310
311   ***** Booting Zephyr OS v3.20.0 *****
312   Hello World! mimxrt1062_fmurt6
313
314Debugging
315=========
316
317Here is an example for the :zephyr:code-sample:`hello_world` application.
318
319.. zephyr-app-commands::
320   :zephyr-app: samples/hello_world
321   :board: mimxrt1062_fmurt6
322   :goals: debug
323
324Open a serial terminal, step through the application in your debugger, and you
325should see the following message in the terminal:
326
327.. code-block:: console
328
329   ***** Booting Zephyr OS v3.20.0 *****
330   Hello World! mimxrt1062_fmurt6
331
332Troubleshooting
333===============
334
335If the west flash or debug commands fail, and the command hangs while executing
336runners.jlink, confirm the J-Link debug probe is configured, powered, and
337connected to the FMURT6 properly.
338
339.. _MIMXRT1062-FMURT6 Website:
340   https://www.nxp.com/part/RDDRONE-FMURT6#
341
342.. _MIMXRT1062-FMURT6 User Guide:
343   https://docs.px4.io/master/en/
344
345.. _MIMXRT1062-FMURT6 Schematics:
346   https://github.com/NXPHoverGames/NXP-FMUMRT6
347
348.. _i.MX RT1060 Website:
349   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
350
351.. _i.MX RT1060 Datasheet:
352   https://www.nxp.com/docs/en/nxp/data-sheets/IMXRT1060CEC.pdf
353
354.. _i.MX RT1060 Reference Manual:
355   https://www.nxp.com/webapp/Download?colCode=IMXRT1060RM
356