SwiftIO Feather
Overview
The SwiftIO Feather board, designed by MadMachine is designed with support for the modern Swift language. Zephyr provides basic low-level capabilities for the SwiftIO Feather board. Swift application would run on top of Zephyr. More information about the board can be found at:
Hardware
MIMXRT1062DVL6B MCU (Cortex-M7 at 600MHz, 2048KB on-chip memory)
Memory
8MB QSPI Flash
32MB SDRAM
TF socket for SD card
USB
USB-C 2.0 OTG connector
Power
5V USB power
4.2V DC jack
Debug
SWD connector
RGB LED
Supported Features
The mm_feather
board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo
-
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
mm_feather/mimxrt1062
target
Type |
Location |
Description |
Compatible |
---|---|---|---|
CPU |
on-chip |
ARM Cortex-M7 CPU1 |
|
ADC |
on-chip |
NXP MCUA 12B1MSPS SAR ADC2 |
|
ARM architecture |
on-chip |
MCUX XBAR (Crossbar)3 |
|
CAN |
on-chip |
NXP FlexCAN controller2 |
|
on-chip |
NXP FlexCAN CANFD controller1 |
||
Clock control |
on-chip |
i.MX CCM (Clock Controller Module) IP node1 |
|
on-chip |
Generic fixed factor clock provider3 |
||
on-chip |
i.MX CCM Fractional PLL1 |
||
on-chip |
i.MX ANATOP (Analog Clock Controller Module) IP node1 |
||
on-chip |
Generic fixed-rate clock provider4 |
||
Counter |
on-chip |
NXP MCUX Quad Timer (QTMR)4 |
|
on-chip |
NXP MCUX Quad Timer Channel16 |
||
on-chip |
NXP Periodic Interrupt Timer (PIT)1 |
||
on-chip |
Child node for the Periodic Interrupt Timer node, intended for an individual timer channel4 |
||
Cryptographic accelerator |
on-chip |
NXP Data Co-Processor (DCP) Crypto accelerator1 |
|
Debug |
on-chip |
ARMv7 instrumentation trace macrocell1 |
|
Display |
on-chip |
NXP i.MX eLCDIF (Enhanced LCD Interface) controller1 |
|
DMA |
on-chip |
NXP MCUX EDMA controller1 |
|
on-chip |
NXP PXP 2D DMA engine1 |
||
Ethernet |
on-chip |
NXP ENET IP Module2 |
|
on-chip |
NXP ENET MAC/L2 Device2 |
||
on-chip |
NXP ENET PTP (Precision Time Protocol) Clock2 |
||
GPIO & Headers |
on-chip |
i.MX GPIO9 |
|
I2C |
on-chip |
||
I2S |
on-chip |
NXP mcux SAI-I2S controller3 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
MDIO |
on-chip |
NXP ENET MDIO Features2 |
|
Memory controller |
on-chip |
NXP FlexRAM on-chip ram controller If the flexram,bank-spec property is specified, then the flexram will be dynamically reconfigured to the configuration specified at runtime1 |
|
on-chip |
NXP Smart External Memory Controller (SEMC)1 |
||
Miscellaneous |
on-chip |
NXP FlexIO controller3 |
|
MMU / MPU |
on-chip |
ARMv7-M Memory Protection Unit (MPU)1 |
|
MTD |
on-board |
NXP FlexSPI NOR1 |
|
Pin control |
on-chip |
This compatible binding should be applied to the device’s iomuxc DTS node1 |
|
on-chip |
The node has the ‘pinctrl’ node label set in MCUX RT SoC’s devicetree1 |
||
on-chip |
i.MX IOMUXC1 |
||
PWM |
on-chip |
NXP eFLEX PWM module with mcux-pwm submodules4 |
|
on-chip |
|||
RNG |
on-chip |
Kinetis TRNG (True Random Number Generator)1 |
|
RTC |
on-chip |
NXP SNVS LP/HP RTC1 |
|
SDHC |
on-chip |
||
Sensors |
on-chip |
NXP MCUX QDEC4 |
|
on-chip |
NXP on-die temperature monitor1 |
||
Serial controller |
on-chip |
||
SPI |
on-chip |
||
on-chip |
|||
Timer |
on-chip |
ARMv7-M System Tick1 |
|
on-chip |
NXP MCUX General-Purpose HW Timer (GPT)1 |
||
on-chip |
NXP MCUX General-Purpose Timer (GPT)1 |
||
USB |
on-chip |
||
on-chip |
NXP USB high speed phy that is used on NXP RTxxxx, RTxxx, MCX, LPC and Kinetis platforms if high speed usb is supported on these platforms2 |
||
Video |
on-chip |
NXP MCUX CMOS sensor interface1 |
|
Watchdog |
on-chip |
imxRT watchdog2 |
Connections and IOs
Note: The following SwiftIO Feather pinout diagram is used for Swift programming. The Swift ID is not the same as the Zephyr driver ID.
Name |
GPIO |
Other peripherals |
|||
---|---|---|---|---|---|
Swift ID |
Pin name |
Swift ID |
Zephyr driver |
Swift ID |
Zephyr driver |
P0 |
GPIO_AD_B1_04 |
D0 |
GPIO1_IO20 |
||
P1 |
GPIO_AD_B1_08 |
D1 |
GPIO1_IO24 |
||
P2 |
GPIO_AD_B1_09 |
D2 |
GPIO1_IO25 |
||
P3 |
GPIO_AD_B1_10 |
D3 |
GPIO1_IO26 |
UART1 |
UART_8 |
P4 |
GPIO_AD_B1_11 |
D4 |
GPIO1_IO27 |
||
P5 |
GPIO_AD_B1_12 |
D5 |
GPIO1_IO28 |
||
P6 |
GPIO_AD_B1_15 |
D6 |
GPIO1_IO31 |
SPI0 |
SPI_3 |
P7 |
GPIO_AD_B1_14 |
D7 |
GPIO1_IO30 |
||
P8 |
GPIO_AD_B1_13 |
D8 |
GPIO1_IO29 |
||
P9 |
GPIO_AD_B1_03 |
D9 |
GPIO1_IO19 |
UART0 |
UART_2 |
P10 |
GPIO_AD_B1_02 |
D10 |
GPIO1_IO18 |
||
P11 |
GPIO_AD_B1_05 |
D11 |
GPIO1_IO21 |
||
P12 |
GPIO_AD_B0_14 |
D12 |
GPIO1_IO14 |
CAN0 |
CAN_3 |
P13 |
GPIO_AD_B0_15 |
D13 |
GPIO1_IO15 |
||
P14 |
GPIO_B0_00 |
D14 |
GPIO2_IO00 |
||
P15 |
GPIO_B1_03 |
D15 |
GPIO2_IO19 |
||
P16 |
GPIO_B1_02 |
D16 |
GPIO2_IO18 |
||
P17 |
GPIO_B1_01 |
D17 |
GPIO2_IO17 |
UART2 |
UART_4 |
P18 |
GPIO_B1_00 |
D18 |
GPIO2_IO16 |
||
P19 |
GPIO_B1_15 |
D19 |
GPIO2_IO31 |
||
P20 |
GPIO_B1_14 |
D20 |
GPIO2_IO30 |
||
P21 |
GPIO_B0_03 |
D21 |
GPIO2_IO03 |
SPI1 |
SPI_4 |
P22 |
GPIO_B0_02 |
D22 |
GPIO2_IO02 |
||
P23 |
GPIO_B0_01 |
D23 |
GPIO2_IO01 |
||
P24 |
GPIO_B0_04 |
D24 |
GPIO2_IO04 |
||
P25 |
GPIO_B0_05 |
D25 |
GPIO2_IO05 |
||
P26 |
GPIO_B0_06 |
D26 |
GPIO2_IO06 |
||
P27 |
GPIO_B0_07 |
D27 |
GPIO2_IO07 |
||
P28 |
GPIO_B0_08 |
D28 |
GPIO2_IO08 |
||
P29 |
GPIO_B0_09 |
D29 |
GPIO2_IO09 |
||
P30 |
GPIO_B0_10 |
D30 |
GPIO2_IO10 |
||
P31 |
GPIO_B0_11 |
D31 |
GPIO2_IO11 |
||
P32 |
GPIO_B0_12 |
D32 |
GPIO2_IO12 |
||
P33 |
GPIO_B0_13 |
D33 |
GPIO2_IO13 |
||
P34 |
GPIO_B0_14 |
D34 |
GPIO2_IO14 |
||
P35 |
GPIO_B0_15 |
D35 |
GPIO2_IO15 |
||
GPIO_AD_B1_07 |
GPIO1_IO23 |
I2C0 |
I2C_3 |
||
GPIO_AD_B1_06 |
GPIO1_IO22 |
||||
GPIO_AD_B1_00 |
GPIO1_IO16 |
I2C1 |
I2C_1 |
||
GPIO_AD_B1_00 |
GPIO1_IO17 |
Programming and Flash
Build and flash applications as usual (see Building an Application and Run an Application for more details).
Configuring a Console
Connect a USB-to-serial adapter from your PC to corresponding UART pins of SwiftIO Feather.
Use the following settings with your serial terminal of choice (minicom, putty, etc.):
Speed: 115200
Data: 8 bits
Parity: None
Stop bits: 1
Flashing
Here is an example for the Hello World application.
Connect a DAPLink debugger from your PC to corresponding SWD pins of SwiftIO Feather.
# From the root of the zephyr repository
west build -b mm_feather samples/hello_world
west flash
Open a serial terminal, reset the board (press the “reset” button), and you should see the following message in the terminal:
*** Booting Zephyr OS build v2.6.0-rc1-301-gd9c666a5abf8 ***
Hello World! mm_feather
Debugging
Here is an example for the Hello World application.
# From the root of the zephyr repository
west build -b mm_feather samples/hello_world
west debug
Open a serial terminal, step through the application in your debugger, and you should see the following message in the terminal:
*** Booting Zephyr OS build v2.6.0-rc1-301-gd9c666a5abf8 ***
Hello World! mm_feather