1.. _mimxrt1010_evk:
2
3NXP MIMXRT1010-EVK
4##################
5
6Overview
7********
8
9The i.MX RT1010 offer a new entry-point into the i.MX RT crossover processor
10series by providing the lowest-cost LQFP package option, combined with the
11high performance and ease-of-use known throughout the entire i.MX RT series.
12This device is fully supported by NXP’s MCUXpresso Software and Tools.
13
14.. image:: mimxrt1010_evk.jpg
15   :align: center
16   :alt: MIMXRT1010-EVK
17
18Hardware
19********
20
21- MIMXRT1011DAE5A MCU
22
23- Memory
24
25  - 128 Mbit QSPI Flash
26
27- Connectivity
28
29  - Micro USB host and OTG connectors
30  - Arduino interface
31
32- Audio
33
34  - Audio Codec
35  - 4-pole audio headphone jack
36  - External speaker connection
37  - Microphone
38
39- Debug
40
41  - JTAG 10-pin connector
42  - OpenSDA with DAPLink
43
44For more information about the MIMXRT1010 SoC and MIMXRT1010-EVK board, see
45these references:
46
47- `i.MX RT1010 Website`_
48- `i.MX RT1010 Datasheet`_
49- `i.MX RT1010 Reference Manual`_
50- `MIMXRT1010-EVK Website`_
51- `MIMXRT1010-EVK User Guide`_
52- `MIMXRT1010-EVK Design Files`_
53
54External Memory
55===============
56
57This platform has the following external memories:
58
59+--------------------+------------+-------------------------------------+
60| Device             | Controller | Status                              |
61+====================+============+=====================================+
62| AT25SF128A         | FLEXSPI    | Enabled via flash configurationn    |
63|                    |            | block, which sets up FLEXSPI at     |
64|                    |            | boot time.                          |
65+--------------------+------------+-------------------------------------+
66
67Supported Features
68==================
69
70The mimxrt1010_evk board configuration supports the hardware features listed
71below.  For additional features not yet supported, please also refer to the
72:ref:`mimxrt1064_evk` , which is the superset board in NXP's i.MX RT10xx family.
73NXP prioritizes enabling the superset board with NXP's Full Platform Support for
74Zephyr.  Therefore, the mimxrt1064_evk board may have additional features
75already supported, which can also be re-used on this mimxrt1010_evk board:
76
77+-----------+------------+-------------------------------------+
78| Interface | Controller | Driver/Component                    |
79+===========+============+=====================================+
80| NVIC      | on-chip    | nested vector interrupt controller  |
81+-----------+------------+-------------------------------------+
82| SYSTICK   | on-chip    | systick                             |
83+-----------+------------+-------------------------------------+
84| GPIO      | on-chip    | gpio                                |
85+-----------+------------+-------------------------------------+
86| SPI       | on-chip    | spi                                 |
87+-----------+------------+-------------------------------------+
88| I2C       | on-chip    | i2c                                 |
89+-----------+------------+-------------------------------------+
90| UART      | on-chip    | serial port-polling;                |
91|           |            | serial port-interrupt               |
92+-----------+------------+-------------------------------------+
93| USB       | on-chip    | USB device                          |
94+-----------+------------+-------------------------------------+
95| ADC       | on-chip    | adc                                 |
96+-----------+------------+-------------------------------------+
97| GPT       | on-chip    | gpt                                 |
98+-----------+------------+-------------------------------------+
99| TRNG      | on-chip    | entropy                             |
100+-----------+------------+-------------------------------------+
101
102The default configuration can be found in the defconfig file:
103``boards/arm/mimxrt1010_evk/mimxrt1010_evk_defconfig``
104
105Other hardware features are not currently supported by the port.
106
107Connections and I/Os
108====================
109
110The MIMXRT1010 SoC has five pairs of pinmux/gpio controllers.
111
112+---------------+-----------------+---------------------------+
113| Name          | Function        | Usage                     |
114+===============+=================+===========================+
115| GPIO_11       | GPIO            | LED                       |
116+---------------+-----------------+---------------------------+
117| GPIO_SD_05    | GPIO            | SW4                       |
118+---------------+-----------------+---------------------------+
119| GPIO_10       | LPUART1_TX      | UART Console              |
120+---------------+-----------------+---------------------------+
121| GPIO_09       | LPUART1_RX      | UART Console              |
122+---------------+-----------------+---------------------------+
123| GPIO_01       | LPI2C1_SDA      | I2C SDA                   |
124+---------------+-----------------+---------------------------+
125| GPIO_02       | LPI2C1_CLK      | I2C SCL                   |
126+---------------+-----------------+---------------------------+
127| GPIO_AD_03    | LPSPI1_SDI      | SPI                       |
128+---------------+-----------------+---------------------------+
129| GPIO_AD_04    | LPSPI1_SDO      | SPI                       |
130+---------------+-----------------+---------------------------+
131| GPIO_AD_05    | LPSPI1_PCS0     | SPI                       |
132+---------------+-----------------+---------------------------+
133| GPIO_AD_06    | LPSPI1_SCK      | SPI                       |
134+---------------+-----------------+---------------------------+
135| GPIO_AD_01    | ADC             | ADC1 Channel 1            |
136+---------------+-----------------+---------------------------+
137| GPIO_AD_02    | ADC             | ADC1 Channel 2            |
138+---------------+-----------------+---------------------------+
139
140System Clock
141============
142
143The MIMXRT1010 SoC is configured to use SysTick as the system clock source,
144running at 500MHz.
145
146When power management is enabled, the 32 KHz low frequency
147oscillator on the board will be used as a source for the GPT timer to
148generate a system clock. This clock enables lower power states, at the
149cost of reduced resolution
150
151Serial Port
152===========
153
154The MIMXRT1010 SoC has four UARTs. ``LPUART1`` is configured for the console,
155and the remaining are not used.
156
157Programming and Debugging
158*************************
159
160Build and flash applications as usual (see :ref:`build_an_application` and
161:ref:`application_run` for more details).
162
163Configuring a Debug Probe
164=========================
165
166A debug probe is used for both flashing and debugging the board. This board is
167configured by default to use the :ref:`opensda-daplink-onboard-debug-probe`,
168however the :ref:`pyocd-debug-host-tools` do not yet support programming the
169external flashes on this board so you must reconfigure the board for one of the
170following debug probes instead.
171
172:ref:`jlink-external-debug-probe`
173-------------------------------------------
174
175Install the :ref:`jlink-debug-host-tools` and make sure they are in your search
176path.
177
178Attach a J-Link 10-pin connector to J55. Check that jumpers J61 and J62 are
179**off** (they are on by default when boards ship from the factory) to ensure
180SWD signals are disconnected from the OpenSDA microcontroller.
181
182Configuring a Console
183=====================
184
185Regardless of your choice in debug probe, we will use the OpenSDA
186microcontroller as a usb-to-serial adapter for the serial console. Check that
187jumpers J31 and J32 are **on** (they are on by default when boards ship from
188the factory) to connect UART signals to the OpenSDA microcontroller.
189
190Connect a USB cable from your PC to J41.
191
192Use the following settings with your serial terminal of choice (minicom, putty,
193etc.):
194
195- Speed: 115200
196- Data: 8 bits
197- Parity: None
198- Stop bits: 1
199
200Flashing
201========
202
203Here is an example for the :ref:`hello_world` application.
204
205.. zephyr-app-commands::
206    :zephyr-app: samples/hello_world
207    :board: mimxrt1010_evk
208    :goals: flash
209
210Open a serial terminal, reset the board (press the SW9 button), and you should
211see the following message in the terminal:
212
213.. code-block:: console
214
215    Hello World! mimxrt1010_evk
216
217
218.. _MIMXRT1010-EVK Website:
219   https://www.nxp.com/MIMXRT1010-EVK
220
221.. _MIMXRT1010-EVK User Guide:
222   https://www.nxp.com/webapp/Download?colCode=MIMXRT1010EVKHUG
223
224.. _MIMXRT1010-EVK Design Files:
225   https://www.nxp.com/webapp/Download?colCode=IMXRT1010-EVK-DESIGN-FILES
226
227.. _i.MX RT1010 Website:
228   https://www.nxp.com/imxrt1010
229
230.. _i.MX RT1010 Datasheet:
231   https://www.nxp.com/docs/en/data-sheet/IMXRT1010CEC.pdf
232
233.. _i.MX RT1010 Reference Manual:
234   https://www.nxp.com/webapp/Download?colCode=IMXRT1010RM
235