MadMachine 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 configuration supports the following hardware features:
Interface |
Controller |
Driver/Component |
---|---|---|
NVIC |
on-chip |
nested vector interrupt controller |
SYSTICK |
on-chip |
systick |
DISPLAY |
on-chip |
display |
GPIO |
on-chip |
gpio |
I2C |
on-chip |
i2c |
SPI |
on-chip |
spi |
UART |
on-chip |
serial port-polling; serial port-interrupt |
I2S |
on-chip |
I2S |
USB |
on-chip |
USB device |
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 debuger 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