summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/stm32/boards/NUCLEO_L4A6ZG/board.json15
-rw-r--r--ports/stm32/boards/NUCLEO_L4A6ZG/mpconfigboard.h85
-rw-r--r--ports/stm32/boards/NUCLEO_L4A6ZG/mpconfigboard.mk5
-rw-r--r--ports/stm32/boards/NUCLEO_L4A6ZG/pins.csv77
-rw-r--r--ports/stm32/boards/NUCLEO_L4A6ZG/stm32l4xx_hal_conf.h20
5 files changed, 202 insertions, 0 deletions
diff --git a/ports/stm32/boards/NUCLEO_L4A6ZG/board.json b/ports/stm32/boards/NUCLEO_L4A6ZG/board.json
new file mode 100644
index 000000000..73b134eac
--- /dev/null
+++ b/ports/stm32/boards/NUCLEO_L4A6ZG/board.json
@@ -0,0 +1,15 @@
+{
+ "deploy": [
+ "../deploy.md"
+ ],
+ "docs": "",
+ "features": [],
+ "images": [
+ "nucleo_l4a6zg.jpg"
+ ],
+ "mcu": "stm32l4",
+ "product": "Nucleo L4A6ZG",
+ "thumbnail": "",
+ "url": "",
+ "vendor": "ST Microelectronics"
+}
diff --git a/ports/stm32/boards/NUCLEO_L4A6ZG/mpconfigboard.h b/ports/stm32/boards/NUCLEO_L4A6ZG/mpconfigboard.h
new file mode 100644
index 000000000..9696b1fb9
--- /dev/null
+++ b/ports/stm32/boards/NUCLEO_L4A6ZG/mpconfigboard.h
@@ -0,0 +1,85 @@
+#define MICROPY_HW_BOARD_NAME "NUCLEO-L4A6ZG"
+#define MICROPY_HW_MCU_NAME "STM32L4A6ZG"
+
+#define MICROPY_HW_HAS_SWITCH (1)
+#define MICROPY_HW_HAS_FLASH (1)
+#define MICROPY_HW_ENABLE_RNG (1)
+#define MICROPY_HW_ENABLE_RTC (1)
+#define MICROPY_HW_ENABLE_USB (1)
+#define MICROPY_HW_ENABLE_DAC (1)
+
+// MSI is used and is 4MHz
+#define MICROPY_HW_CLK_PLLM (1)
+#define MICROPY_HW_CLK_PLLN (40)
+#define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV7)
+#define MICROPY_HW_CLK_PLLQ (RCC_PLLQ_DIV2)
+#define MICROPY_HW_CLK_PLLR (RCC_PLLR_DIV2)
+
+#define MICROPY_HW_FLASH_LATENCY FLASH_LATENCY_4
+
+// The board has an external 32kHz crystal
+#define MICROPY_HW_RTC_USE_LSE (1)
+
+// USART1 config
+#define MICROPY_HW_UART1_TX (pin_A9)
+#define MICROPY_HW_UART1_RX (pin_A10)
+// USART2 config
+#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)
+// USART3 config
+#define MICROPY_HW_UART3_TX (pin_C4)
+#define MICROPY_HW_UART3_RX (pin_C5)
+#define MICROPY_HW_UART3_RTS (pin_B14)
+#define MICROPY_HW_UART3_CTS (pin_B13)
+// UART4 config
+#define MICROPY_HW_UART4_TX (pin_A0)
+#define MICROPY_HW_UART4_RX (pin_A1)
+// UART5 config
+#define MICROPY_HW_UART5_TX (pin_C12)
+#define MICROPY_HW_UART5_RX (pin_D2)
+// LPUART config
+#define MICROPY_HW_LPUART1_TX (pin_G7)
+#define MICROPY_HW_LPUART1_RX (pin_G8)
+// LPUART1 is connected to the virtual com portlon the ST-Link
+#define MICROPY_HW_UART_REPL PYB_LPUART_1
+#define MICROPY_HW_UART_REPL_BAUD 115200
+
+// I2C buses
+#define MICROPY_HW_I2C1_SCL (pin_B8)
+#define MICROPY_HW_I2C1_SDA (pin_B9)
+#define MICROPY_HW_I2C2_SCL (pin_B10)
+#define MICROPY_HW_I2C2_SDA (pin_B11)
+#define MICROPY_HW_I2C3_SCL (pin_C0)
+#define MICROPY_HW_I2C3_SDA (pin_C1)
+
+// SPI buses
+#define MICROPY_HW_SPI1_NSS (pin_A4)
+#define MICROPY_HW_SPI1_SCK (pin_B3)
+#define MICROPY_HW_SPI1_MISO (pin_B4)
+#define MICROPY_HW_SPI1_MOSI (pin_B5)
+#define MICROPY_HW_SPI2_NSS (pin_B12)
+#define MICROPY_HW_SPI2_SCK (pin_B13)
+#define MICROPY_HW_SPI2_MISO (pin_B14)
+#define MICROPY_HW_SPI2_MOSI (pin_B15)
+
+// CAN buses
+#define MICROPY_HW_CAN1_TX (pin_A12)
+#define MICROPY_HW_CAN1_RX (pin_A11)
+
+// USRSW is pulled low. Pressing the button makes the input go high.
+#define MICROPY_HW_USRSW_PIN (pin_C13)
+#define MICROPY_HW_USRSW_PULL (GPIO_NOPULL)
+#define MICROPY_HW_USRSW_EXTI_MODE (GPIO_MODE_IT_FALLING)
+#define MICROPY_HW_USRSW_PRESSED (0)
+
+// LEDs
+#define MICROPY_HW_LED1 (pin_C7) // Green LED on Nucleo
+#define MICROPY_HW_LED2 (pin_B7) // Blue LED on Nucleo
+#define MICROPY_HW_LED3 (pin_B14) // Red LED on Nucleo
+#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin))
+#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin))
+
+// USB config
+#define MICROPY_HW_USB_FS (1)
diff --git a/ports/stm32/boards/NUCLEO_L4A6ZG/mpconfigboard.mk b/ports/stm32/boards/NUCLEO_L4A6ZG/mpconfigboard.mk
new file mode 100644
index 000000000..51caeaa3a
--- /dev/null
+++ b/ports/stm32/boards/NUCLEO_L4A6ZG/mpconfigboard.mk
@@ -0,0 +1,5 @@
+MCU_SERIES = l4
+CMSIS_MCU = STM32L4A6xx
+AF_FILE = boards/stm32l496_af.csv
+LD_FILES = boards/stm32l496xg.ld boards/common_basic.ld
+OPENOCD_CONFIG = boards/openocd_stm32l4.cfg
diff --git a/ports/stm32/boards/NUCLEO_L4A6ZG/pins.csv b/ports/stm32/boards/NUCLEO_L4A6ZG/pins.csv
new file mode 100644
index 000000000..e7c3ef63e
--- /dev/null
+++ b/ports/stm32/boards/NUCLEO_L4A6ZG/pins.csv
@@ -0,0 +1,77 @@
+D0,PA3
+D1,PA2
+D2,PA10
+D3,PB3
+D4,PB5
+D5,PB4
+D6,PB10
+D7,PA8
+D8,PA9
+D9,PC7
+D10,PB6
+D11,PA7
+D12,PA6
+D13,PA5
+D14,PB9
+D15,PB8
+A0,PA0
+A1,PA1
+A2,PA4
+A3,PB0
+A4,PC1
+A5,PC0
+PA0,PA0
+PA1,PA1
+PA2,PA2
+PA3,PA3
+PA4,PA4
+PA5,PA5
+PA6,PA6
+PA7,PA7
+PA8,PA8
+PA9,PA9
+PA10,PA10
+PA11,PA11
+PA12,PA12
+PA15,PA15
+PB0,PB0
+PB1,PB1
+PB2,PB2
+PB3,PB3
+PB4,PB4
+PB5,PB5
+PB6,PB6
+PB7,PB7
+PB8,PB8
+PB9,PB9
+PB10,PB10
+PB11,PB11
+PB12,PB12
+PB13,PB13
+PB14,PB14
+PB15,PB15
+PC0,PC0
+PC1,PC1
+PC2,PC2
+PC3,PC3
+PC4,PC4
+PC5,PC5
+PC6,PC6
+PC7,PC7
+PC8,PC8
+PC9,PC9
+PC10,PC10
+PC11,PC11
+PC12,PC12
+PC13,PC13
+PC14,PC14
+PC15,PC15
+PD2,PD2
+PH0,PH0
+PH1,PH1
+LED_GREEN,PC7
+LED_RED,PB14
+LED_BLUE,PB7
+SW,PC13
+LPUART1_TX,PG7
+LPUART1_RX,PG8
diff --git a/ports/stm32/boards/NUCLEO_L4A6ZG/stm32l4xx_hal_conf.h b/ports/stm32/boards/NUCLEO_L4A6ZG/stm32l4xx_hal_conf.h
new file mode 100644
index 000000000..fd380ab73
--- /dev/null
+++ b/ports/stm32/boards/NUCLEO_L4A6ZG/stm32l4xx_hal_conf.h
@@ -0,0 +1,20 @@
+/* This file is part of the MicroPython project, http://micropython.org/
+ * The MIT License (MIT)
+ * Copyright (c) 2019 Damien P. George
+ */
+#ifndef MICROPY_INCLUDED_STM32L4XX_HAL_CONF_H
+#define MICROPY_INCLUDED_STM32L4XX_HAL_CONF_H
+
+#include "boards/stm32l4xx_hal_conf_base.h"
+
+// Oscillator values in Hz
+#define HSE_VALUE (8000000)
+#define LSE_VALUE (32768)
+#define EXTERNAL_SAI1_CLOCK_VALUE (48000)
+#define EXTERNAL_SAI2_CLOCK_VALUE (48000)
+
+// Oscillator timeouts in ms
+#define HSE_STARTUP_TIMEOUT (100)
+#define LSE_STARTUP_TIMEOUT (5000)
+
+#endif // MICROPY_INCLUDED_STM32L4XX_HAL_CONF_H