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