1.. zephyr:board:: mimxrt1024_evk
2
3Overview
4********
5
6The i.MX RT1024 expands the i.MX RT crossover processor families by providing
7high-performance feature set in low-cost LQFP packages, further simplifying
8board design and layout for customers. The i.MX RT1024 runs on the Arm®
9Cortex®-M7 core at 500 MHz.
10
11Hardware
12********
13
14- MIMXRT1024DAG5A MCU (600 MHz, 256 KB on-chip memory, 4096KB on-chip QSPI
15  flash)
16
17- Memory
18
19  - 256 Mbit SDRAM
20  - 32 Mbit QSPI Flash
21  - TF socket for SD card
22
23- Connectivity
24
25  - 10/100 Mbit/s Ethernet PHY
26  - Micro USB host and OTG connectors
27  - CAN transceivers
28  - Arduino interface
29
30- Audio
31
32  - Audio Codec
33  - 4-pole audio headphone jack
34  - Microphone
35  - External speaker connection
36
37- Power
38
39  - 5 V DC jack
40
41- Debug
42
43  - JTAG 10-pin connector
44  - OpenSDA with DAPLink
45
46- Sensor
47
48  - 6-axis FXOS8700CQ digital accelerometer and magnetometer
49
50For more information about the MIMXRT1024 SoC and MIMXRT1024-EVK board, see
51these references:
52
53- `i.MX RT1024 Website`_
54- `i.MX RT1024 Datasheet`_
55- `i.MX RT1024 Reference Manual`_
56- `MIMXRT1024-EVK Website`_
57- `MIMXRT1024-EVK User Guide`_
58- `MIMXRT1024-EVK Design Files`_
59
60External Memory
61===============
62
63This platform has the following external memories:
64
65+----------------+------------+-------------------------------------+
66| Device         | Controller | Status                              |
67+================+============+=====================================+
68| MT48LC16M16A2P | SEMC       | Enabled via device configuration    |
69|                |            | data block, which sets up SEMC at   |
70|                |            | boot time                           |
71+----------------+------------+-------------------------------------+
72
73Supported Features
74==================
75
76The mimxrt1024_evk board configuration supports the hardware features listed
77below.  For additional features not yet supported, please also refer to the
78:zephyr:board:`mimxrt1064_evk` , which is the superset board in NXP's i.MX RT10xx family.
79NXP prioritizes enabling the superset board with NXP's Full Platform Support for
80Zephyr.  Therefore, the mimxrt1064_evk board may have additional features
81already supported, which can also be re-used on this mimxrt1024_evk board:
82
83+-----------+------------+-------------------------------------+
84| Interface | Controller | Driver/Component                    |
85+===========+============+=====================================+
86| NVIC      | on-chip    | nested vector interrupt controller  |
87+-----------+------------+-------------------------------------+
88| SYSTICK   | on-chip    | systick                             |
89+-----------+------------+-------------------------------------+
90| FLASH     | on-chip    | QSPI flash                          |
91+-----------+------------+-------------------------------------+
92| GPIO      | on-chip    | gpio                                |
93+-----------+------------+-------------------------------------+
94| UART      | on-chip    | serial port-polling;                |
95|           |            | serial port-interrupt               |
96+-----------+------------+-------------------------------------+
97| SPI       | on-chip    | spi                                 |
98+-----------+------------+-------------------------------------+
99| ENET      | on-chip    | ethernet                            |
100+-----------+------------+-------------------------------------+
101| CAN       | on-chip    | can                                 |
102+-----------+------------+-------------------------------------+
103| WATCHDOG  | on-chip    | watchdog                            |
104+-----------+------------+-------------------------------------+
105| HWINFO    | on-chip    | reset cause                         |
106+-----------+------------+-------------------------------------+
107| DMA       | on-chip    | dma                                 |
108+-----------+------------+-------------------------------------+
109| ADC       | on-chip    | adc                                 |
110+-----------+------------+-------------------------------------+
111| GPT       | on-chip    | gpt                                 |
112+-----------+------------+-------------------------------------+
113| USB       | on-chip    | USB                                 |
114+-----------+------------+-------------------------------------+
115| TRNG      | on-chip    | entropy                             |
116+-----------+------------+-------------------------------------+
117| FLEXSPI   | on-chip    | flash programming                   |
118+-----------+------------+-------------------------------------+
119
120The default configuration can be found in
121:zephyr_file:`boards/nxp/mimxrt1024_evk/mimxrt1024_evk_defconfig`
122
123Other hardware features are not currently supported by the port.
124
125Connections and I/Os
126====================
127
128The MIMXRT1024 SoC has five pairs of pinmux/gpio controllers.
129
130+---------------+-----------------+---------------------------+
131| Name          | Function        | Usage                     |
132+===============+=================+===========================+
133| GPIO_AD_B1_08 | GPIO            | LED                       |
134+---------------+-----------------+---------------------------+
135| GPIO_AD_B0_06 | LPUART1_TX      | UART Console              |
136+---------------+-----------------+---------------------------+
137| GPIO_AD_B0_07 | LPUART1_RX      | UART Console              |
138+---------------+-----------------+---------------------------+
139| WAKEUP        | GPIO            | SW4                       |
140+---------------+-----------------+---------------------------+
141| GPIO_AD_B0_04 | ENET_RST        | Ethernet                  |
142+---------------+-----------------+---------------------------+
143| GPIO_AD_B0_08 | ENET_REF_CLK    | Ethernet                  |
144+---------------+-----------------+---------------------------+
145| GPIO_AD_B0_09 | ENET_RX_DATA01  | Ethernet                  |
146+---------------+-----------------+---------------------------+
147| GPIO_AD_B0_10 | ENET_RX_DATA00/LPSPI1_SCK | Ethernet/SPI    |
148+---------------+-----------------+---------------------------+
149| GPIO_AD_B0_11 | ENET_RX_EN/LPSPI1_PCS0 | Ethernet/SPI       |
150+---------------+-----------------+---------------------------+
151| GPIO_AD_B0_12 | ENET_RX_ER/LPSPI1_SDO | Ethernet/SPI        |
152+---------------+-----------------+---------------------------+
153| GPIO_AD_B0_13 | ENET_TX_EN/LPSPI1_SDI | Ethernet/SPI        |
154+---------------+-----------------+---------------------------+
155| GPIO_AD_B0_14 | ENET_TX_DATA00  | Ethernet                  |
156+---------------+-----------------+---------------------------+
157| GPIO_AD_B0_15 | ENET_TX_DATA01  | Ethernet                  |
158+---------------+-----------------+---------------------------+
159| GPIO_AD_B1_06 | ENET_INT        | Ethernet                  |
160+---------------+-----------------+---------------------------+
161| GPIO_EMC_41   | ENET_MDC        | Ethernet                  |
162+---------------+-----------------+---------------------------+
163| GPIO_EMC_40   | ENET_MDIO       | Ethernet                  |
164+---------------+-----------------+---------------------------+
165| GPIO_SD_B1_00 | FLEXCAN1_TX     | CAN TX                    |
166+---------------+-----------------+---------------------------+
167| GPIO_SD_B1_01 | FLEXCAN1_RX     | CAN RX                    |
168+---------------+-----------------+---------------------------+
169| GPIO_SD_B1_02 | LPI2C4_SCL      | I2C SCL                   |
170+---------------+-----------------+---------------------------+
171| GPIO_SD_B1_03 | LPI2C4_SDA      | I2C SDA                   |
172+---------------+-----------------+---------------------------+
173| GPIO_SD_B1_05 | DQS             | QSPI flash                |
174+---------------+-----------------+---------------------------+
175| GPIO_AD_B1_11 | ADC1            | ADC1 Channel 11           |
176+---------------+-----------------+---------------------------+
177| GPIO_AD_B1_10 | ADC1            | ADC1 Channel 10           |
178+---------------+-----------------+---------------------------+
179| GPIO_AD_B1_10 | FLEXPWM1        | FLEXPWM1 Channel A2       |
180+---------------+-----------------+---------------------------+
181
182System Clock
183============
184
185The MIMXRT1024 SoC is configured to use SysTick as the system clock source,
186running at 500MHz.
187
188When power management is enabled, the 32 KHz low frequency
189oscillator on the board will be used as a source for the GPT timer to
190generate a system clock. This clock enables lower power states, at the
191cost of reduced resolution
192
193Serial Port
194===========
195
196The MIMXRT1024 SoC has eight UARTs. One is configured for the console and the
197remaining are not used.
198
199Programming and Debugging
200*************************
201
202This board supports 3 debug host tools. Please install your preferred host
203tool, then follow the instructions in `Configuring a Debug Probe`_ to
204configure the board appropriately.
205
206* :ref:`linkserver-debug-host-tools` (Default, Supported by NXP)
207* :ref:`jlink-debug-host-tools` (Supported by NXP)
208* :ref:`pyocd-debug-host-tools` (Not supported by NXP)
209
210Configuring a Debug Probe
211=========================
212
213For the RT1024, J47/J48 are the SWD isolation jumpers, J42 is the DFU
214mode jumper, and J55 is the 10 pin JTAG/SWD header.
215
216.. include:: ../../common/rt1xxx-lpclink2-debug.rst
217   :start-after: rt1xxx-lpclink2-probes
218
219Configuring a Console
220=====================
221
222Regardless of your choice in debug probe, we will use the OpenSDA
223microcontroller as a usb-to-serial adapter for the serial console. Check that
224jumpers J50 and J46 are **on** (they are on by default when boards ship from
225the factory) to connect UART signals to the OpenSDA microcontroller.
226
227Connect a USB cable from your PC to J23.
228
229Use the following settings with your serial terminal of choice (minicom, putty,
230etc.):
231
232- Speed: 115200
233- Data: 8 bits
234- Parity: None
235- Stop bits: 1
236
237Flashing
238========
239
240Here is an example for the :zephyr:code-sample:`hello_world` application.
241
242.. zephyr-app-commands::
243   :zephyr-app: samples/hello_world
244   :board: mimxrt1024_evk
245   :goals: flash
246
247Open a serial terminal, reset the board (press the SW9 button), and you should
248see the following message in the terminal:
249
250.. code-block:: console
251
252   ***** Booting Zephyr OS v2.4.0-rc1 *****
253   Hello World! mimxrt1024_evk
254
255Debugging
256=========
257
258Here is an example for the :zephyr:code-sample:`hello_world` application.
259
260.. zephyr-app-commands::
261   :zephyr-app: samples/hello_world
262   :board: mimxrt1024_evk
263   :goals: debug
264
265Open a serial terminal, step through the application in your debugger, and you
266should see the following message in the terminal:
267
268.. code-block:: console
269
270   ***** Booting Zephyr OS v2.4.0-rc1 *****
271   Hello World! mimxrt1024_evk
272
273.. _MIMXRT1024-EVK Website:
274   https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1024-evaluation-kit:MIMXRT1024-EVK
275
276.. _MIMXRT1024-EVK User Guide:
277   https://www.nxp.com/webapp/Download?colCode=MIMXRT1024EVKHUG
278
279.. _MIMXRT1024-EVK Design Files:
280   https://www.nxp.com/webapp/Download?colCode=MIMXRT1024-EVK-Design-Files
281
282.. _i.MX RT1024 Website:
283   https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1024-crossover-processor-with-arm-cortex-m7-core:i.MX-RT1024
284
285.. _i.MX RT1024 Datasheet:
286   https://www.nxp.com.cn/docs/en/data-sheet/IMXRT1024CEC.pdf
287
288.. _i.MX RT1024 Reference Manual:
289   https://www.nxp.com/webapp/Download?colCode=IMXRT1024RM
290