summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/board.json13
-rw-r--r--ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/manifest.py2
-rw-r--r--ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/mpconfigboard.h84
-rw-r--r--ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/mpconfigboard.mk6
-rw-r--r--ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/pins.csv55
-rw-r--r--ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/stm32f4xx_hal_conf.h19
6 files changed, 179 insertions, 0 deletions
diff --git a/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/board.json b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/board.json
new file mode 100644
index 000000000..1df9b6f65
--- /dev/null
+++ b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/board.json
@@ -0,0 +1,13 @@
+{
+ "deploy": [
+ "../deploy.md"
+ ],
+ "docs": "",
+ "features": [],
+ "images": [],
+ "mcu": "stm32f4",
+ "product": "GARATRONIC_PYBSTICK26_F411",
+ "thumbnail": "",
+ "url": "https://shop.mchobby.be/product.php?id_product=1844",
+ "vendor": "McHobby"
+}
diff --git a/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/manifest.py b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/manifest.py
new file mode 100644
index 000000000..b09c7ab92
--- /dev/null
+++ b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/manifest.py
@@ -0,0 +1,2 @@
+include("$(MPY_DIR)/extmod/uasyncio/manifest.py")
+freeze("$(MPY_DIR)/drivers/", ("display/ssd1306.py"))
diff --git a/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/mpconfigboard.h b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/mpconfigboard.h
new file mode 100644
index 000000000..408bc2851
--- /dev/null
+++ b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/mpconfigboard.h
@@ -0,0 +1,84 @@
+#define MICROPY_HW_BOARD_NAME "PYBSTICK26_STD"
+#define MICROPY_HW_MCU_NAME "STM32F411RE"
+#define MICROPY_PY_THREAD (1)
+
+#define MICROPY_HW_HAS_SWITCH (1)
+#define MICROPY_HW_HAS_FLASH (1)
+#define MICROPY_HW_HAS_KXTJ3 (0)
+#define MICROPY_HW_HAS_LCD (0)
+#define MICROPY_HW_ENABLE_RTC (1)
+#define MICROPY_HW_ENABLE_USB (1)
+#define MICROPY_HW_ENABLE_SERVO (1)
+#define MICROPY_HW_ENABLE_SDCARD (1)
+
+// HSE is 16MHz
+#define MICROPY_HW_CLK_PLLM (16)
+#define MICROPY_HW_CLK_PLLN (192)
+#define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV2)
+#define MICROPY_HW_CLK_PLLQ (4)
+#define MICROPY_HW_CLK_LAST_FREQ (1)
+
+// Pybstick26 STD has an optional 32kHz crystal
+#define MICROPY_HW_RTC_USE_LSE (1)
+#define MICROPY_HW_RTC_USE_US (1)
+#define MICROPY_HW_RTC_USE_CALOUT (0)
+
+// UART config
+#define MICROPY_HW_UART1_NAME "XB"
+#define MICROPY_HW_UART1_TX (pin_A15)
+#define MICROPY_HW_UART1_RX (pin_A10)
+#define MICROPY_HW_UART2_NAME "XA"
+#define MICROPY_HW_UART2_TX (pin_A2)
+#define MICROPY_HW_UART2_RX (pin_A3)
+//#define MICROPY_HW_UART2_RTS (pin_A1)
+//#define MICROPY_HW_UART2_CTS (pin_A0)
+#define MICROPY_HW_UART6_NAME "YA"
+#define MICROPY_HW_UART6_TX (pin_C6)
+#define MICROPY_HW_UART6_RX (pin_C7)
+
+// I2C buses
+#define MICROPY_HW_I2C1_NAME "X"
+#define MICROPY_HW_I2C1_SCL (pin_B8) // S5
+#define MICROPY_HW_I2C1_SDA (pin_B9) // S3
+#define MICROPY_HW_I2C2_NAME "Y"
+#define MICROPY_HW_I2C2_SCL (pin_B10) //S13
+#define MICROPY_HW_I2C2_SDA (pin_B3) // S11
+
+// SPI buses
+#define MICROPY_HW_SPI1_NAME "X"
+#define MICROPY_HW_SPI1_NSS (pin_A4) // S26
+#define MICROPY_HW_SPI1_SCK (pin_A5) // S23
+#define MICROPY_HW_SPI1_MISO (pin_B4) // S21
+#define MICROPY_HW_SPI1_MOSI (pin_A7) // S19
+#define MICROPY_HW_SPI2_NAME "Y"
+#define MICROPY_HW_SPI2_NSS (pin_B12) // S15
+#define MICROPY_HW_SPI2_SCK (pin_B13) // S16
+#define MICROPY_HW_SPI2_MISO (pin_B14) // S18
+#define MICROPY_HW_SPI2_MOSI (pin_C3) // S13
+
+// USRSW has no pullup or pulldown, and pressing the switch makes the input go low
+#define MICROPY_HW_USRSW_PIN (pin_C13)
+#define MICROPY_HW_USRSW_PULL (GPIO_PULLUP)
+#define MICROPY_HW_USRSW_EXTI_MODE (GPIO_MODE_IT_FALLING)
+#define MICROPY_HW_USRSW_PRESSED (0)
+
+// The board has 4 LEDs
+#define MICROPY_HW_LED1 (pin_A13) // red
+#define MICROPY_HW_LED2 (pin_A14) // green
+#define MICROPY_HW_LED3 (pin_B0) // yellow
+#define MICROPY_HW_LED4 (pin_B1) // blue
+#define MICROPY_HW_LED3_PWM { TIM3, 3, TIM_CHANNEL_3, GPIO_AF2_TIM3 }
+#define MICROPY_HW_LED4_PWM { TIM3, 4, TIM_CHANNEL_4, GPIO_AF2_TIM3 }
+#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin))
+#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin))
+
+// SD card with custom SDIO pins
+#define MICROPY_HW_SDCARD_D0 (pin_B7)
+#define MICROPY_HW_SDCARD_D1 (pin_A8)
+#define MICROPY_HW_SDCARD_D2 (pin_A9)
+#define MICROPY_HW_SDCARD_D3 (pin_B5)
+#define MICROPY_HW_SDCARD_CK (pin_B15)
+#define MICROPY_HW_SDCARD_CMD (pin_A6)
+
+// USB config
+#define MICROPY_HW_USB_FS (1)
diff --git a/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/mpconfigboard.mk b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/mpconfigboard.mk
new file mode 100644
index 000000000..df9506522
--- /dev/null
+++ b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/mpconfigboard.mk
@@ -0,0 +1,6 @@
+MCU_SERIES = f4
+CMSIS_MCU = STM32F411xE
+AF_FILE = boards/stm32f411_af.csv
+LD_FILES = boards/stm32f411.ld boards/common_ifs.ld
+TEXT0_ADDR = 0x08000000
+TEXT1_ADDR = 0x08020000
diff --git a/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/pins.csv b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/pins.csv
new file mode 100644
index 000000000..c52e65cf7
--- /dev/null
+++ b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/pins.csv
@@ -0,0 +1,55 @@
+S1,3.3V
+S2,VBUS
+S3,PB9
+S4,VIN
+S5,PB8
+S6,GND
+S7,PB6
+S8,PA2
+S9,GND
+S10,PA3
+S11,PB3
+S12,PA0
+S13,PB10
+S13A,PC3
+S14,Reset
+S15,PB12
+S15A,PC5
+S16,PB13
+S16A,PC6
+S17,GND
+S18,PB14
+S18A,PC7
+S19,PA7
+S20,GND
+S21,PB4
+S22,PA10
+S23,PA5
+S24,PA15
+S25,GND
+S26,PA4
+SW,PC13
+SW2,PB6
+LED_GREEN,PA14
+LED_YELLOW,PB0
+LED_RED,PA13
+LED_BLUE,PB1
+SD_D0,PB7
+SD_D1,PA8
+SD_D2,PA9
+SD_D3,PB5
+SD_CMD,PA6
+SD_CK,PB15
+USB_DM,PA11
+USB_DP,PA12
+OSC_IN,PH0
+OSC_OUT,PH1
+OSC32_IN,PC14
+OSC32_OUT,PC15
+QSPI_BK1_IO3,PA1
+SDIO_CMD,PA6
+SDIO_D1,PA8
+SDIO_D2,PA9
+SDIO_D3,PB5
+SDIO_D0,PB7
+SDIO_CK,PB15
diff --git a/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/stm32f4xx_hal_conf.h b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/stm32f4xx_hal_conf.h
new file mode 100644
index 000000000..7d6344f0a
--- /dev/null
+++ b/ports/stm32/boards/GARATRONIC_PYBSTICK26_F411/stm32f4xx_hal_conf.h
@@ -0,0 +1,19 @@
+/* This file is part of the MicroPython project, http://micropython.org/
+ * The MIT License (MIT)
+ * Copyright (c) 2019 Damien P. George
+ */
+#ifndef MICROPY_INCLUDED_STM32F4XX_HAL_CONF_H
+#define MICROPY_INCLUDED_STM32F4XX_HAL_CONF_H
+
+#include "boards/stm32f4xx_hal_conf_base.h"
+
+// Oscillator values in Hz
+#define HSE_VALUE (16000000)
+#define LSE_VALUE (32768)
+#define EXTERNAL_CLOCK_VALUE (12288000)
+
+// Oscillator timeouts in ms
+#define HSE_STARTUP_TIMEOUT (100)
+#define LSE_STARTUP_TIMEOUT (5000)
+
+#endif // MICROPY_INCLUDED_STM32F4XX_HAL_CONF_H