Skip to content

Commit f1018ee

Browse files
robert-hhdpgeorge
authored andcommitted
mimxrt/boards/MAKERDIARY_RT1011_NANO_KIT: Add new Makerdiary board.
This is a board based on the i.MX RT1011 in breadboard-friendly shape. A good basic board with 16M flash and regular pinout, providing access to many GPIO_nn and GPIO_AD_nn Pins. Signed-off-by: robert-hh <robert@hammelrath.com>
1 parent 31a008c commit f1018ee

File tree

6 files changed

+245
-20
lines changed

6 files changed

+245
-20
lines changed

docs/mimxrt/pinout.rst

Lines changed: 47 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,28 @@ MIMXRT1170-EVK Debug USB D0/D1 D12/D11 D10/D13
3030
Adafruit Metro M7 - D0/D1 D7/D3 A1/A0
3131
Olimex RT1010Py - RxD/TxD D7/D8 D5/D6
3232
Seeed ARCH MIX - J3_19/J3_20 J4_16/J4_17 J4_06/J4_07
33+
Makerdiary RT1011 - D9/D10 D13/A0 D11/D12
3334
================= =========== =========== =========== ===========
3435

3536
|
3637
37-
================ =========== =========== ======= ======= =====
38-
Board / Pin UART4 UART5 UART6 UART7 UART8
39-
================ =========== =========== ======= ======= =====
40-
Teensy 4.0 16/17 21/20 25/24 28/29 -
41-
Teensy 4.1 16/17 21/20 25/24 28/29 34/35
42-
MIMXRT1010-EVK - - - - -
43-
MIMXRT1015-EVK - - - - -
44-
MIMXRT1020-EVK D15/D14 A1/A0 - - -
45-
MIMXRT1050-EVK A1/A0 - - - -
46-
MIMXRT1050-EVKB A1/A0 - - - -
47-
MIMXRT1060-EVK A1/A0 - - - -
48-
MIMXRT1064-EVK A1/A0 - - - -
49-
MIMXRT1170-EVK D15/D14 D25/D26 D33/D34 D35/D36 -
50-
Olimex RT1010Py - - - - -
51-
Seeed ARCH MIX J4_10/J4_11 J5_08/J5_12 - - -
52-
================ =========== =========== ======= ======= =====
38+
================= =========== =========== ======= ======= =====
39+
Board / Pin UART4 UART5 UART6 UART7 UART8
40+
================= =========== =========== ======= ======= =====
41+
Teensy 4.0 16/17 21/20 25/24 28/29 -
42+
Teensy 4.1 16/17 21/20 25/24 28/29 34/35
43+
MIMXRT1010-EVK - - - - -
44+
MIMXRT1015-EVK - - - - -
45+
MIMXRT1020-EVK D15/D14 A1/A0 - - -
46+
MIMXRT1050-EVK A1/A0 - - - -
47+
MIMXRT1050-EVKB A1/A0 - - - -
48+
MIMXRT1060-EVK A1/A0 - - - -
49+
MIMXRT1064-EVK A1/A0 - - - -
50+
MIMXRT1170-EVK D15/D14 D25/D26 D33/D34 D35/D36 -
51+
Olimex RT1010Py - - - - -
52+
Seeed ARCH MIX J4_10/J4_11 J5_08/J5_12 - - -
53+
Makerdiary RT1011 A1/A2 - - - -
54+
================= =========== =========== ======= ======= =====
5355

5456
.. _mimxrt_pwm_pinout:
5557

@@ -188,7 +190,6 @@ LED_BLUE F1/3/B
188190
========= ===============
189191
Pin Olimex RT1010PY
190192
========= ===============
191-
D0 -
192193
D1 F1/0/B
193194
D2 F1/0/A
194195
D3 F1/1/B
@@ -197,13 +198,10 @@ D5 F1/2/B
197198
D6 F1/2/A
198199
D7 F1/3/B
199200
D8 F1/3/A
200-
D9 -
201201
D10 F1/0/B
202202
D11 F1/0/A
203203
D12 F1/1/B
204204
D13 F1/1/A
205-
D14 -
206-
A0 -
207205
A1 F1/2/B
208206
A2 F1/2/A
209207
A3 F1/3/B
@@ -214,6 +212,32 @@ CS0 F1/1/X
214212
SCK F1/0/X
215213
========= ===============
216214

215+
|
216+
217+
========= =================
218+
Pin Makerdiary RT1011
219+
========= =================
220+
D1 F1/0/B
221+
D2 F1/0/A
222+
D3 F1/1/B
223+
D4 F1/1/A
224+
D5 F1/2/B
225+
D6 F1/2/A
226+
D7 F1/3/B
227+
D8 F1/3/A
228+
A3 F1/2/B
229+
A4 F1/2/A
230+
A5 F1/3/B
231+
A6 F1/3/A
232+
A9 F1/3/X
233+
A10 F1/2/X
234+
A11 F1/1/X
235+
SD1 F1/0/B
236+
SD2 F1/0/A
237+
LED F1/1/B
238+
DIO F1/0/X
239+
========= =================
240+
217241
Legend:
218242

219243
* Qm/n: QTMR module m, channel n
@@ -322,6 +346,7 @@ MIXMXRT1170-EVK D10/-/D11/D12/D13 D28/-/D25/D24/D26 -/-/D14/D
322346
Adafruit Metro M7 -/-/MOSI/MISO/SCK - -
323347
Olimex RT1010Py - CS0/-/SDO/SDI/SCK SDCARD with CS1
324348
Seeed ARCH MIX J4_12/-/J4_14/J4_13/J4_15 J3_09/J3_05/J3_08_J3_11
349+
Makerdiary RT1011 A5/A2/A4/A3/A6 A11/A1/A10/A9/CLK
325350
================= ========================= ======================= ===============
326351

327352
Pins denoted with (*) are by default not wired at the board. The CS0 and CS1 signals
@@ -355,6 +380,7 @@ MIXMXRT1170-EVK D14/D15 D1/D0 A4/A5 D26/D25 D19/D18
355380
Adafruit Metro M7 D14/D15 D0/D1
356381
Olimex RT1010Py - SDA1/SCL1 SDA2/SCL2 - -
357382
Seeed ARCH MIX J3_17/J3_16 J4_06/J4_07 J5_05/J5_04 - -
383+
Makerdiary RT1011 D1/D2 A7/A8
358384
================= =========== =========== =========== ======= =======
359385

360386
.. _mimxrt_i2s_pinout:
@@ -379,6 +405,7 @@ Adafruit Metro M7 1 D8 D10 D9 D12 D14 D15 D13
379405
Olimex RT1010Py 1 D8 D6 D7 D4 D1 D2 D3
380406
Olimex RT1010Py 3 - D10 D9 D11 - - -
381407
MIMXRT_DEV 1 "MCK" "SCK_TX" "WS_TX" "SD_TX" "SCK_RX" "WS_RX" "SD_RX"
408+
Makerdiary RT1011 1 D8 SD1 D7 D4 D1 D2 D3
382409
================= == ===== ======== ======= ======= ======== ======= =======
383410

384411
Symbolic pin names are provided for the MIMXRT_10xx_DEV boards.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"deploy": [
3+
"deploy_makerdiary.md"
4+
],
5+
"docs": "",
6+
"features": [
7+
"External Flash",
8+
"USB",
9+
"microSD"
10+
],
11+
"images": [
12+
"MAKERDIARY_RT1011_NANO_KIT.jpg"
13+
],
14+
"mcu": "mimxrt",
15+
"product": "iMX RT1011 Nano Kit",
16+
"thumbnail": "",
17+
"url": "https://makerdiary.com/products/imxrt1011-nanokit",
18+
"vendor": "Makerdiary"
19+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
## 1. Deploy the MicroPython firmware to the iMX RT1011 Nano Kit.
2+
3+
The iMX RT1011 Nano Kit comes pre-installed with a UF2 bootloader.
4+
It can be started by pushing reset twice. Then the bootloader drive will
5+
appear. If that does not happen or the bootloader was lost, you can
6+
reinstall the bootloader using the procedure below.
7+
8+
Once the bootloader is installed and started, you can install MicroPython
9+
by copying the .uf2 version of the firmware file to the bootloader
10+
drive. When the firmware is installed, the drive will disappear.
11+
12+
## 2. Reinstall the bootloader iMX RT1011 Nano Kit.
13+
14+
1. Get the NXP program sdphost for your operating system, e.g. from
15+
https://github.com/adafruit/tinyuf2/tree/master/ports/mimxrt10xx/sdphost.
16+
You can also get them from the NXP web sites.
17+
18+
2. Get the UF2 boot-loader package https://github.com/adafruit/tinyuf2/releases/tag/0.21.0
19+
and extract the file tinyuf2-makerdiary_rt1011-0.21.0.bin. You may as
20+
well go for a newer release.
21+
22+
Now you have all files at hand that you will need for updating.
23+
24+
1. Push and hold the "USR/BT" button, then press "RST", and release both buttons.
25+
26+
2. Run the commands:
27+
28+
```
29+
sudo ./sdphost -u 0x1fc9,0x0145 -- write-file 0x20206400 tinyuf2-makerdiary_rt1011-0.21.0.bin
30+
sudo ./sdphost -u 0x1fc9,0x0145 -- jump-address 0x20207000
31+
```
32+
Wait until a drive icon appears on the computer (or mount it explicitly).
33+
At this point the bootloader is installed. You can now copy the
34+
MicroPython .uf2 file to the board.
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#define MICROPY_HW_BOARD_NAME "iMX_RT1011_Nano_Kit"
2+
#define MICROPY_HW_MCU_NAME "MIMXRT1011DAE5A"
3+
#define MICROPY_HW_USB_MANUFACTURER_STRING "Makerdiary"
4+
#define MICROPY_HW_USB_VID 0xf055
5+
#define MICROPY_HW_USB_PID 0x9802
6+
#define MICROPY_PY_OS_DUPTERM_BUILTIN_STREAM (0)
7+
8+
// RT1011-Nanokit has 1 board LED
9+
#define MICROPY_HW_LED1_PIN (pin_GPIO_SD_04)
10+
#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin))
11+
#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin))
12+
13+
#define MICROPY_HW_NUM_PIN_IRQS (2 * 32)
14+
#define MICROPY_PY_MACHINE_SDCARD (0)
15+
16+
17+
#define MICROPY_HW_UART_NUM (sizeof(uart_index_table) / sizeof(uart_index_table)[0])
18+
#define MICROPY_HW_UART_INDEX { 0, 1, 2, 3, 4 }
19+
20+
#define IOMUX_TABLE_UART \
21+
{ IOMUXC_GPIO_10_LPUART1_TXD }, { IOMUXC_GPIO_09_LPUART1_RXD }, \
22+
{ IOMUXC_GPIO_AD_00_LPUART2_TXD }, { IOMUXC_GPIO_13_LPUART2_RXD }, \
23+
{ IOMUXC_GPIO_12_LPUART3_TXD }, { IOMUXC_GPIO_11_LPUART3_RXD }, \
24+
{ IOMUXC_GPIO_AD_02_LPUART4_TXD }, { IOMUXC_GPIO_AD_01_LPUART4_RXD },
25+
26+
#define IOMUX_TABLE_UART_CTS_RTS \
27+
{ IOMUXC_GPIO_08_LPUART1_CTS_B }, { IOMUXC_GPIO_07_LPUART1_RTS_B }, \
28+
{ IOMUXC_GPIO_AD_08_LPUART2_CTS_B }, { IOMUXC_GPIO_AD_07_LPUART2_RTS_B }, \
29+
{ IOMUXC_GPIO_AD_14_LPUART3_CTS_B }, { IOMUXC_GPIO_AD_13_LPUART3_RTS_B }, \
30+
{ IOMUXC_GPIO_AD_14_LPUART4_CTS_B }, { IOMUXC_GPIO_AD_13_LPUART4_RTS_B },
31+
32+
#define MICROPY_HW_SPI_INDEX { 1, 2 }
33+
34+
#define IOMUX_TABLE_SPI \
35+
{ IOMUXC_GPIO_AD_06_LPSPI1_SCK }, { IOMUXC_GPIO_AD_05_LPSPI1_PCS0 }, \
36+
{ IOMUXC_GPIO_AD_04_LPSPI1_SDO }, { IOMUXC_GPIO_AD_03_LPSPI1_SDI }, \
37+
{ IOMUXC_GPIO_AD_02_LPSPI1_PCS1 }, \
38+
{ IOMUXC_GPIO_AD_12_LPSPI2_SCK }, { IOMUXC_GPIO_AD_11_LPSPI2_PCS0 }, \
39+
{ IOMUXC_GPIO_AD_10_LPSPI2_SDO }, { IOMUXC_GPIO_AD_09_LPSPI2_SDI }, \
40+
{ IOMUXC_GPIO_AD_01_LPSPI2_PCS1 }
41+
42+
#define DMA_REQ_SRC_RX { 0, kDmaRequestMuxLPSPI1Rx, kDmaRequestMuxLPSPI2Rx }
43+
#define DMA_REQ_SRC_TX { 0, kDmaRequestMuxLPSPI1Tx, kDmaRequestMuxLPSPI2Tx }
44+
45+
// Define mapping hardware I2C # to logical I2C #
46+
// SDA/SCL HW-I2C Logical I2C
47+
// SDA1/SCL1 LPI2C1 -> 0
48+
// SDA2/SCL2 LPI2C2 -> 1
49+
50+
#define MICROPY_HW_I2C_INDEX { 1, 2 }
51+
52+
#define IOMUX_TABLE_I2C \
53+
{ IOMUXC_GPIO_02_LPI2C1_SCL }, { IOMUXC_GPIO_01_LPI2C1_SDA }, \
54+
{ IOMUXC_GPIO_AD_08_LPI2C2_SCL }, { IOMUXC_GPIO_AD_07_LPI2C2_SDA },
55+
56+
#define MICROPY_PY_MACHINE_I2S (1)
57+
#define MICROPY_HW_I2S_NUM (3)
58+
#define I2S_CLOCK_MUX { 0, kCLOCK_Sai1Mux, 0, kCLOCK_Sai3Mux }
59+
#define I2S_CLOCK_PRE_DIV { 0, kCLOCK_Sai1PreDiv, 0, kCLOCK_Sai3PreDiv }
60+
#define I2S_CLOCK_DIV { 0, kCLOCK_Sai1Div, 0, kCLOCK_Sai3Div }
61+
#define I2S_IOMUXC_GPR_MODE { 0, kIOMUXC_GPR_SAI1MClkOutputDir, 0, kIOMUXC_GPR_SAI3MClkOutputDir }
62+
#define I2S_DMA_REQ_SRC_RX { 0, kDmaRequestMuxSai1Rx, 0, kDmaRequestMuxSai3Rx }
63+
#define I2S_DMA_REQ_SRC_TX { 0, kDmaRequestMuxSai1Tx, 0, kDmaRequestMuxSai3Tx }
64+
#define I2S_AUDIO_PLL_CLOCK (2U)
65+
66+
#define I2S_GPIO(_hwid, _fn, _mode, _pin, _iomux) \
67+
{ \
68+
.hw_id = _hwid, \
69+
.fn = _fn, \
70+
.mode = _mode, \
71+
.name = MP_QSTR_##_pin, \
72+
.iomux = {_iomux}, \
73+
}
74+
75+
#define I2S_GPIO_MAP \
76+
{ \
77+
I2S_GPIO(1, MCK, TX, GPIO_08, IOMUXC_GPIO_08_SAI1_MCLK), /* pin D8 */ \
78+
I2S_GPIO(1, SCK, RX, GPIO_01, IOMUXC_GPIO_01_SAI1_RX_BCLK), /* pin D1 */ \
79+
I2S_GPIO(1, WS, RX, GPIO_02, IOMUXC_GPIO_02_SAI1_RX_SYNC), /* pin D2 */ \
80+
I2S_GPIO(1, SD, RX, GPIO_03, IOMUXC_GPIO_03_SAI1_RX_DATA00), /* pin D3 */ \
81+
I2S_GPIO(1, SCK, TX, GPIO_06, IOMUXC_GPIO_06_SAI1_TX_BCLK), /* pin D6 */ \
82+
I2S_GPIO(1, WS, TX, GPIO_07, IOMUXC_GPIO_07_SAI1_TX_SYNC), /* pin D7 */ \
83+
I2S_GPIO(1, SD, TX, GPIO_04, IOMUXC_GPIO_04_SAI1_TX_DATA00), /* pin D4 */ \
84+
I2S_GPIO(3, SCK, TX, GPIO_SD_01, IOMUXC_GPIO_SD_01_SAI3_TX_BCLK), /* pin SD1 */ \
85+
I2S_GPIO(3, WS, TX, GPIO_SD_00, IOMUXC_GPIO_SD_00_SAI3_TX_SYNC), /* pin SD0 */ \
86+
I2S_GPIO(3, SD, TX, GPIO_SD_02, IOMUXC_GPIO_SD_02_SAI3_TX_DATA) /* pin SD2 */ \
87+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
MCU_SERIES = MIMXRT1011
2+
MCU_VARIANT = MIMXRT1011DAE5A
3+
4+
MICROPY_FLOAT_IMPL = single
5+
MICROPY_HW_FLASH_TYPE = qspi_nor_flash
6+
MICROPY_HW_FLASH_SIZE = 0x1000000 # 16MB
7+
MICROPY_HW_FLASH_CLK = kFlexSpiSerialClk_100MHz
8+
MICROPY_HW_FLASH_QE_CMD = 0x31
9+
MICROPY_HW_FLASH_QE_ARG = 0x02
10+
11+
USE_UF2_BOOTLOADER = 1
12+
13+
CFLAGS += -DMICROPY_HW_FLASH_SAMPLE_CLK=kFLEXSPIReadSampleClk_LoopbackInternally
14+
15+
SRC_C += \
16+
hal/flexspi_nor_flash.c \
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
A0,GPIO_AD_00
2+
A1,GPIO_AD_01
3+
A2,GPIO_AD_02
4+
A3,GPIO_AD_03
5+
A4,GPIO_AD_04
6+
A5,GPIO_AD_05
7+
A6,GPIO_AD_06
8+
A7,GPIO_AD_07
9+
A8,GPIO_AD_08
10+
A9,GPIO_AD_09
11+
A10,GPIO_AD_10
12+
A11,GPIO_AD_11
13+
A14,GPIO_AD_14
14+
15+
D0,GPIO_00
16+
D1,GPIO_01
17+
D2,GPIO_02
18+
D3,GPIO_03
19+
D4,GPIO_04
20+
D5,GPIO_05
21+
D6,GPIO_06
22+
D7,GPIO_07
23+
D8,GPIO_08
24+
D9,GPIO_09
25+
D10,GPIO_10
26+
D11,GPIO_11
27+
D12,GPIO_12
28+
D13,GPIO_13
29+
30+
SD0,GPIO_SD_00
31+
SD1,GPIO_SD_01
32+
SD2,GPIO_SD_02
33+
SD5,GPIO_SD_05
34+
# Test pads at the bottom side
35+
SD3,GPIO_SD_03
36+
SD4,GPIO_SD_04
37+
SD12,GPIO_SD_12
38+
SD13,GPIO_SD_13
39+
40+
LED,GPIO_SD_04
41+
CLK,GPIO_AD_12
42+
DIO,GPIO_AD_13

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy