diff options
| author | robert-hh <robert@hammelrath.com> | 2022-06-04 15:42:56 +0200 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-10-06 22:32:01 +1100 |
| commit | 949a808076f10f9f7e25fd9ebe4a03b8cc397e1f (patch) | |
| tree | efd2266f371f3387157d023b08bc84348ad59c66 | |
| parent | c4f7c0b8a2504e8a13644ea692c4a66d6f124871 (diff) | |
samd/boards: Add ADAFRUIT_FEATHER_M4_EXPRESS and _ITSYBITSY_M0_EXPRESS.
These two boards are used for testing, so it is favorable to have them
added early.
The full test set is:
- ADAFRUIT_FEATHER_M4_EXPRESS: SAMD51 with 32kHz crystal.
- ADAFRUIT_ITSYBITSY_M0_EXPRESS: SAMD21 without crystal.
- ADAFRUIT_ITSYBITSY_M4_EXPRESS: SAMD51 without crystal.
- SEEED_XIAO: SAM21 with 32kHz crystal.
9 files changed, 153 insertions, 0 deletions
diff --git a/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/board.json b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/board.json new file mode 100644 index 000000000..c8042aa25 --- /dev/null +++ b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/board.json @@ -0,0 +1,22 @@ +{ + "deploy": [ + "../deploy.md" + ], + "docs": "", + "features": [ + "Battery Charging", + "Breadboard Friendly", + "Feather", + "Micro USB", + "RGB LED", + "SPI Flash" + ], + "images": [ + "feather_m4_express.jpg" + ], + "mcu": "samd51", + "product": "Feather M4 Express", + "thumbnail": "", + "url": "https://www.adafruit.com/product/3857", + "vendor": "Adafruit" +} diff --git a/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/mpconfigboard.h b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/mpconfigboard.h new file mode 100644 index 000000000..48599eec4 --- /dev/null +++ b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/mpconfigboard.h @@ -0,0 +1,2 @@ +#define MICROPY_HW_BOARD_NAME "Feather M4 Express" +#define MICROPY_HW_MCU_NAME "SAMD51J19A" diff --git a/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/mpconfigboard.mk b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/mpconfigboard.mk new file mode 100644 index 000000000..d29e2b109 --- /dev/null +++ b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/mpconfigboard.mk @@ -0,0 +1,8 @@ +MCU_SERIES = SAMD51 +CMSIS_MCU = SAMD51J19A +LD_FILES = boards/samd51j19a.ld sections.ld +TEXT0 = 0x4000 + +# The ?='s allow overriding in mpconfigboard.mk. +# MicroPython settings +MICROPY_VFS_LFS1 ?= 1 diff --git a/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/pins.csv b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/pins.csv new file mode 100644 index 000000000..5b999c39e --- /dev/null +++ b/ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/pins.csv @@ -0,0 +1,34 @@ +# Pin rows contain Pin number and pin name. +# Pin rows start with PIN_ +# LED rows start with LED_ +# If the pin name is omitted, the pin number is added as name. +# Rows for empty entries have to start with '-' +# Empty lines and lines starting with PIN_ or LED_ are ignored + +PIN_PB17,D0 +PIN_PB16,D1 +PIN_PA14,D4 +PIN_PA16,D5 +PIN_PA18,D6 +- +PIN_PB03,D8 +PIN_PA19,D9 +PIN_PA20,D10 +PIN_PA21,D11 +PIN_PA22,D12 +PIN_PA23,D13 +PIN_PA02,A0 +PIN_PA05,A1 +PIN_PB08,A2 +PIN_PB09,A3 +PIN_PA04,A4 +PIN_PB06,A5 +PIN_PA13,SCL +PIN_PA12,SDA +PIN_PB23,MOSI +PIN_PB22,MISO +PIN_PA17,SCK +PIN_PB01,VDIV +PIN_PA03,AREF + +LED_PA17,LED diff --git a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/board.json b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/board.json new file mode 100644 index 000000000..f99d19ca8 --- /dev/null +++ b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/board.json @@ -0,0 +1,20 @@ +{ + "deploy": [ + "../deploy.md" + ], + "docs": "", + "features": [ + "Breadboard Friendly", + "Micro USB", + "RGB LED", + "SPI Flash" + ], + "images": [ + "itsybitsy_m0_express.jpg" + ], + "mcu": "samd21", + "product": "ItsyBitsy M0 Express", + "thumbnail": "", + "url": "https://www.adafruit.com/product/3727", + "vendor": "Adafruit" +} diff --git a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/mpconfigboard.h b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/mpconfigboard.h new file mode 100644 index 000000000..d647af931 --- /dev/null +++ b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/mpconfigboard.h @@ -0,0 +1,2 @@ +#define MICROPY_HW_BOARD_NAME "ItsyBitsy M0 Express" +#define MICROPY_HW_MCU_NAME "SAMD21G18A" diff --git a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/mpconfigboard.mk b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/mpconfigboard.mk new file mode 100644 index 000000000..a760cf047 --- /dev/null +++ b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/mpconfigboard.mk @@ -0,0 +1,8 @@ +MCU_SERIES = SAMD21 +CMSIS_MCU = SAMD21G18A +LD_FILES = boards/samd21x18a.ld sections.ld +TEXT0 = 0x2000 + +# The ?='s allow overriding in mpconfigboard.mk. +# MicroPython settings +MICROPY_VFS_LFS1 ?= 1 diff --git a/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/pins.csv b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/pins.csv new file mode 100644 index 000000000..50c3c1cf6 --- /dev/null +++ b/ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/pins.csv @@ -0,0 +1,40 @@ +# Pin rows contain Pin number and pin name. +# Pin rows start with PIN_ +# LED rows start with LED_ +# If the pin name is omitted, the pin number is added as name. +# Rows for empty entries have to start with '-' +# Empty lines and lines not starting with PIN_ or LED_ are ignored + +PIN_PA11,D0 +PIN_PA10,D1 +PIN_PA14,D2 +PIN_PB09,D3 +PIN_PA08,D4 +PIN_PA15,D5 +- +PIN_PA21,D7 +- +PIN_PA07,D9 +PIN_PA18,D10 +PIN_PA16,D11 +PIN_PA19,D12 +PIN_PA17,D13 +PIN_PA02,A0 +PIN_PB08,A1 +PIN_PB09,A2 +PIN_PA04,A3 +PIN_PA05,A4 +PIN_PB02,A5 +PIN_PA22,SDA +PIN_PA23,SCL +PIN_PB10,MO +PIN_PA12,MI +PIN_PB11,SCK +PIN_PA00,DOTSTAR_CLK +PIN_PA01,DOTSTAR_DATA +PIN_PB22,FLASH_MOSI +PIN_PB03,FLASH_MISO +PIN_PB23,FLASH_SCK +PIN_PA27,FLASH_CS + +LED_PA17,LED diff --git a/ports/samd/boards/samd51j19a.ld b/ports/samd/boards/samd51j19a.ld new file mode 100644 index 000000000..e0baa9bba --- /dev/null +++ b/ports/samd/boards/samd51j19a.ld @@ -0,0 +1,17 @@ +/* + GNU linker script for SAMD51 +*/ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00004000, LENGTH = 512K - 16K + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 192K +} + +/* Top end of the stack, with room for double-tap variable */ +_estack = ORIGIN(RAM) + LENGTH(RAM) - 8; +_sstack = _estack - 16K; + +_sheap = _ebss; +_eheap = _sstack; |
