summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobert-hh <robert@hammelrath.com>2022-06-04 15:42:56 +0200
committerDamien George <damien@micropython.org>2022-10-06 22:32:01 +1100
commit949a808076f10f9f7e25fd9ebe4a03b8cc397e1f (patch)
treeefd2266f371f3387157d023b08bc84348ad59c66
parentc4f7c0b8a2504e8a13644ea692c4a66d6f124871 (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.
-rw-r--r--ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/board.json22
-rw-r--r--ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/mpconfigboard.h2
-rw-r--r--ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/mpconfigboard.mk8
-rw-r--r--ports/samd/boards/ADAFRUIT_FEATHER_M4_EXPRESS/pins.csv34
-rw-r--r--ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/board.json20
-rw-r--r--ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/mpconfigboard.h2
-rw-r--r--ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/mpconfigboard.mk8
-rw-r--r--ports/samd/boards/ADAFRUIT_ITSYBITSY_M0_EXPRESS/pins.csv40
-rw-r--r--ports/samd/boards/samd51j19a.ld17
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;