forked from adafruit/circuitpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Zelin Cai <zelin@makerdiary.com>
- Loading branch information
Showing
6 changed files
with
349 additions
and
0 deletions.
There are no files selected for viewing
26 changes: 26 additions & 0 deletions
26
ports/mimxrt10xx/boards/makerdiary_imxrt1011_nanokit/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Makerdiary iMX RT1011 Nano Kit | ||
|
||
## Introduction | ||
|
||
[iMX RT1011 Nano Kit](https://makerdiary.com/products/imxrt1011-nanokit) is a small, high-performing prototyping kit designed around NXP's iMX RT1011 Crossover MCU based on the Arm Cortex-M7 core, which operates at speeds up to 500 MHz to provide high CPU performance and best real-time response. It has 128 KB on-chip RAM that can be flexibly configured as TCM or general-purpose as well as numerous peripherals including high speed USB, UART, SPI, I2C, SAI, PWM, GPIO, ADC and etc to support a wide range of applications. | ||
|
||
The design provides external 128 Mbit QSPI flash with XIP support, flexible power management, programmable LED and Button, easy-to-use form factor with USB-C and dual-row 40 pins in DIP/SMT type, including up to 33 multi-function GPIO pins (15 can be configured as ADC inputs) and Serial Wire Debug (SWD) port. Available with loose or pre-soldered headers, for even more flexibility in your projects. | ||
|
||
It's shipped with UF2 Bootloader for easy firmware update, which means you can easily install CircuitPython firmware by just copying the .uf2-format images to the flash drive without using an external programmer. | ||
|
||
Refer to [iMX RT1011 Nano Kit Documentation](https://wiki.makerdiary.com/imxrt1011-nanokit/) for more details. | ||
|
||
![](https://wiki.makerdiary.com/imxrt1011-nanokit/assets/images/imxrt1011-nanokit-hero.png) | ||
|
||
## Hardware Diagram | ||
|
||
The following figure illustrates the iMX RT1011 Nano Kit hardware diagram. The design is available with loose or pre-soldered pin headers. For more details, refer to the [Hardware description](https://wiki.makerdiary.com/imxrt1011-nanokit/hardware/) section. | ||
|
||
[![](https://wiki.makerdiary.com/imxrt1011-nanokit/assets/images/imxrt1011-nanokit-pinout_reva.png)](https://wiki.makerdiary.com/imxrt1011-nanokit/assets/attachments/imxrt1011-nanokit-pinout_reva.pdf) | ||
|
||
## Get Involved | ||
|
||
We think the best way to learn is by doing. And to help you get started, we have provided an extensive set of documentation. Find the details below: | ||
|
||
- [Getting started with CircuitPython](https://wiki.makerdiary.com/imxrt1011-nanokit/guides/python/getting-started/) | ||
- [CircuitPython Samples for iMX RT1011 Nano Kit](https://wiki.makerdiary.com/imxrt1011-nanokit/guides/python/samples/) |
45 changes: 45 additions & 0 deletions
45
ports/mimxrt10xx/boards/makerdiary_imxrt1011_nanokit/board.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// This file is part of the CircuitPython project: https://circuitpython.org | ||
// | ||
// SPDX-FileCopyrightText: Copyright (c) 2019 Scott Shawcroft for Adafruit Industries | ||
// SPDX-FileCopyrightText: Copyright (c) 2019 Artur Pacholec | ||
// SPDX-FileCopyrightText: Copyright (c) 2024 Makerdiary | ||
// | ||
// SPDX-License-Identifier: MIT | ||
|
||
#include "supervisor/board.h" | ||
#include "shared-bindings/microcontroller/Pin.h" | ||
|
||
// These pins should never ever be reset; doing so could interfere with basic operation. | ||
// Used in common-hal/microcontroller/Pin.c | ||
const mcu_pin_obj_t *mimxrt10xx_reset_forbidden_pins[] = { | ||
// SWD Pins | ||
&pin_GPIO_AD_13,// SWDIO | ||
&pin_GPIO_AD_12,// SWCLK | ||
|
||
// FLEX flash | ||
&pin_GPIO_SD_12, | ||
&pin_GPIO_SD_11, | ||
&pin_GPIO_SD_10, | ||
&pin_GPIO_SD_09, | ||
&pin_GPIO_SD_08, | ||
&pin_GPIO_SD_07, | ||
&pin_GPIO_SD_06, | ||
NULL, // Must end in NULL. | ||
}; | ||
|
||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here. | ||
|
||
bool mimxrt10xx_board_reset_pin_number(const mcu_pin_obj_t *pin) { | ||
#if CIRCUITPY_SWO_TRACE | ||
if (pin == &pin_GPIO_AD_09) { | ||
IOMUXC_SetPinMux( /* Add these lines*/ | ||
IOMUXC_GPIO_AD_09_ARM_TRACE_SWO, | ||
0U); | ||
IOMUXC_SetPinConfig( /* Add these lines*/ | ||
IOMUXC_GPIO_AD_09_ARM_TRACE_SWO, | ||
0x00F9U); | ||
return true; | ||
} | ||
#endif | ||
return false; | ||
} |
153 changes: 153 additions & 0 deletions
153
ports/mimxrt10xx/boards/makerdiary_imxrt1011_nanokit/flash_config.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
/* | ||
* Copyright 2017 NXP | ||
* All rights reserved. | ||
* | ||
* SPDX-License-Identifier: BSD-3-Clause | ||
*/ | ||
|
||
#include "boards/flash_config.h" | ||
|
||
#include "xip/fsl_flexspi_nor_boot.h" | ||
|
||
// Config for W25Q128JV with QSPI routed. | ||
__attribute__((section(".boot_hdr.conf"))) | ||
const flexspi_nor_config_t qspiflash_config = { | ||
.pageSize = 256u, | ||
.sectorSize = 4u * 1024u, | ||
.ipcmdSerialClkFreq = kFLEXSPISerialClk_133MHz, | ||
.blockSize = 0x00010000, | ||
.isUniformBlockSize = false, | ||
.memConfig = | ||
{ | ||
.tag = FLEXSPI_CFG_BLK_TAG, | ||
.version = FLEXSPI_CFG_BLK_VERSION, | ||
.readSampleClkSrc = kFLEXSPIReadSampleClk_LoopbackFromSckPad, | ||
.csHoldTime = 3u, | ||
.csSetupTime = 3u, | ||
|
||
.busyOffset = 0u, // Status bit 0 indicates busy. | ||
.busyBitPolarity = 0u, // Busy when the bit is 1. | ||
|
||
.deviceModeCfgEnable = 1u, | ||
.deviceModeType = kDeviceConfigCmdType_QuadEnable, | ||
.deviceModeSeq = { | ||
.seqId = 4u, | ||
.seqNum = 1u, | ||
}, | ||
.deviceModeArg = 0x0200, | ||
.configCmdEnable = 1u, | ||
.configModeType[0] = kDeviceConfigCmdType_Generic, | ||
.configCmdSeqs[0] = { | ||
.seqId = 2u, | ||
.seqNum = 1u, | ||
}, | ||
.deviceType = kFLEXSPIDeviceType_SerialNOR, | ||
.sflashPadType = kSerialFlash_4Pads, | ||
.serialClkFreq = kFLEXSPISerialClk_133MHz, | ||
.sflashA1Size = FLASH_SIZE, | ||
.lookupTable = | ||
{ | ||
// FSL_ROM_FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1) | ||
// The high 16 bits is command 1 and the low are command 0. | ||
// Within a command, the top 6 bits are the opcode, the next two are the number | ||
// of pads and then last byte is the operand. The operand's meaning changes | ||
// per opcode. | ||
|
||
// Indices with ROM should always have the same function because the ROM | ||
// bootloader uses it. | ||
|
||
// 0: ROM: Read LUTs | ||
// Quad version | ||
SEQUENCE(FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */, | ||
RADDR_SDR, FLEXSPI_4PAD, 24 /* bits to transmit */), | ||
FSL_ROM_FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */, | ||
READ_SDR, FLEXSPI_4PAD, 0x04), | ||
// Single fast read version, good for debugging. | ||
// FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */, | ||
// RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */), | ||
// FSL_ROM_FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */, | ||
// READ_SDR, FLEXSPI_1PAD, 0x04), | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS), | ||
|
||
// 1: ROM: Read status | ||
SEQUENCE(FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */, | ||
READ_SDR, FLEXSPI_1PAD, 0x02), | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS), | ||
|
||
// 2: Empty | ||
SEQUENCE(FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x35 /* the command to send */, | ||
DUMMY_SDR, FLEXSPI_1PAD, 8), | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS), | ||
|
||
// 3: ROM: Write Enable | ||
SEQUENCE(FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */, | ||
STOP, FLEXSPI_1PAD, 0x00), | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS), | ||
|
||
// 4: Config: Write Status | ||
SEQUENCE(FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x01 /* the command to send */, | ||
WRITE_SDR, FLEXSPI_1PAD, 0x02), | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS), | ||
|
||
// 5: ROM: Erase Sector | ||
SEQUENCE(FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */, | ||
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */), | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS), | ||
|
||
// 6: Empty | ||
EMPTY_SEQUENCE, | ||
|
||
// 7: Empty | ||
EMPTY_SEQUENCE, | ||
|
||
// 8: Block Erase | ||
SEQUENCE(FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */, | ||
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */), | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS), | ||
|
||
// 9: ROM: Page program | ||
SEQUENCE(FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */, | ||
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */), | ||
|
||
FSL_ROM_FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */, | ||
STOP, FLEXSPI_1PAD, 0), | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS), | ||
|
||
// 10: Empty | ||
EMPTY_SEQUENCE, | ||
|
||
// 11: ROM: Chip erase | ||
SEQUENCE(FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */, | ||
STOP, FLEXSPI_1PAD, 0), | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS, | ||
TWO_EMPTY_STEPS), | ||
|
||
// 12: Empty | ||
EMPTY_SEQUENCE, | ||
|
||
// 13: ROM: Read SFDP | ||
EMPTY_SEQUENCE, | ||
|
||
// 14: ROM: Restore no cmd | ||
EMPTY_SEQUENCE, | ||
|
||
// 15: ROM: Dummy | ||
EMPTY_SEQUENCE | ||
}, | ||
}, | ||
}; |
30 changes: 30 additions & 0 deletions
30
ports/mimxrt10xx/boards/makerdiary_imxrt1011_nanokit/mpconfigboard.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
// This file is part of the CircuitPython project: https://circuitpython.org | ||
// | ||
// SPDX-FileCopyrightText: Copyright (c) 2019 Scott Shawcroft for Adafruit Industries | ||
// SPDX-FileCopyrightText: Copyright (c) 2019 Artur Pacholec | ||
// SPDX-FileCopyrightText: Copyright (c) 2024 Makerdiary | ||
// | ||
// SPDX-License-Identifier: MIT | ||
|
||
#pragma once | ||
|
||
#define MICROPY_HW_BOARD_NAME "iMX RT1011 Nano Kit" | ||
#define MICROPY_HW_MCU_NAME "IMXRT1011DAE5A" | ||
|
||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO_00) | ||
|
||
// If you change this, then make sure to update the linker scripts as well to | ||
// make sure you don't overwrite code | ||
#define CIRCUITPY_INTERNAL_NVM_SIZE 0 | ||
|
||
#define BOARD_FLASH_SIZE (16 * 1024 * 1024) | ||
|
||
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO_02) | ||
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO_01) | ||
|
||
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO_AD_06) | ||
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO_AD_04) | ||
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO_AD_03) | ||
|
||
#define DEFAULT_UART_BUS_RX (&pin_GPIO_09) | ||
#define DEFAULT_UART_BUS_TX (&pin_GPIO_10) |
12 changes: 12 additions & 0 deletions
12
ports/mimxrt10xx/boards/makerdiary_imxrt1011_nanokit/mpconfigboard.mk
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
USB_VID = 0x2886 | ||
USB_PID = 0xF004 | ||
USB_PRODUCT = "iMX RT1011 Nano Kit" | ||
USB_MANUFACTURER = "Makerdiary" | ||
|
||
CHIP_VARIANT = MIMXRT1011DAE5A | ||
CHIP_FAMILY = MIMXRT1011 | ||
FLASH = W25Q128JV | ||
|
||
# Include these Python libraries in firmware. | ||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel | ||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID |
83 changes: 83 additions & 0 deletions
83
ports/mimxrt10xx/boards/makerdiary_imxrt1011_nanokit/pins.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
// This file is part of the CircuitPython project: https://circuitpython.org | ||
// | ||
// SPDX-FileCopyrightText: Copyright (c) 2019 Scott Shawcroft for Adafruit Industries | ||
// SPDX-FileCopyrightText: Copyright (c) 2019 Artur Pacholec | ||
// SPDX-FileCopyrightText: Copyright (c) 2024 Makerdiary | ||
// | ||
// SPDX-License-Identifier: MIT | ||
|
||
#include "shared-bindings/board/__init__.h" | ||
|
||
#include "supervisor/board.h" | ||
|
||
static const mp_rom_map_elem_t board_module_globals_table[] = { | ||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS | ||
|
||
// Analog | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO_AD_00) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO_AD_01) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO_AD_02) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO_AD_03) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO_AD_04) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO_AD_05) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_GPIO_AD_06) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_GPIO_AD_07) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_GPIO_AD_08) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_GPIO_AD_09) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A10), MP_ROM_PTR(&pin_GPIO_AD_10) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A11), MP_ROM_PTR(&pin_GPIO_AD_11) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A14), MP_ROM_PTR(&pin_GPIO_AD_14) }, | ||
|
||
// Digital | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO_00) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO_01) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO_02) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO_03) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO_04) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO_05) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO_06) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO_07) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO_08) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO_09) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO_10) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO_11) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO_12) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO_13) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SD0), MP_ROM_PTR(&pin_GPIO_SD_00) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SD1), MP_ROM_PTR(&pin_GPIO_SD_01) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SD2), MP_ROM_PTR(&pin_GPIO_SD_02) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SD3), MP_ROM_PTR(&pin_GPIO_SD_03) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SD4), MP_ROM_PTR(&pin_GPIO_SD_04) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SD5), MP_ROM_PTR(&pin_GPIO_SD_05) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SD13), MP_ROM_PTR(&pin_GPIO_SD_13) }, | ||
|
||
{ MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO_SD_04) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_USR_BTN), MP_ROM_PTR(&pin_GPIO_SD_03) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_DCDC_MODE), MP_ROM_PTR(&pin_GPIO_SD_13) }, | ||
|
||
// SPI | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO_AD_06) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO_AD_03) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO_AD_04) }, | ||
|
||
// I2C | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO_01) }, | ||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO_02) }, | ||
|
||
{ MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO_00) }, | ||
|
||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, | ||
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) }, | ||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, | ||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, | ||
|
||
{ MP_ROM_QSTR(MP_QSTR_I2S_WORD_SELECT), MP_ROM_PTR(&pin_GPIO_06) }, | ||
{ MP_ROM_QSTR(MP_QSTR_I2S_WSEL), MP_ROM_PTR(&pin_GPIO_06) }, | ||
|
||
{ MP_ROM_QSTR(MP_QSTR_I2S_BIT_CLOCK), MP_ROM_PTR(&pin_GPIO_07) }, | ||
{ MP_ROM_QSTR(MP_QSTR_I2S_BCLK), MP_ROM_PTR(&pin_GPIO_07) }, | ||
|
||
{ MP_ROM_QSTR(MP_QSTR_I2S_DATA), MP_ROM_PTR(&pin_GPIO_04) }, | ||
{ MP_ROM_QSTR(MP_QSTR_I2S_DOUT), MP_ROM_PTR(&pin_GPIO_04) }, | ||
}; | ||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); |