diff options
| -rw-r--r-- | ports/stm32/boards/NUCLEO_U5A5ZJ_Q/board.json | 15 | ||||
| -rw-r--r-- | ports/stm32/boards/NUCLEO_U5A5ZJ_Q/mpconfigboard.h | 82 | ||||
| -rw-r--r-- | ports/stm32/boards/NUCLEO_U5A5ZJ_Q/mpconfigboard.mk | 11 | ||||
| -rw-r--r-- | ports/stm32/boards/NUCLEO_U5A5ZJ_Q/pins.csv | 123 | ||||
| -rw-r--r-- | ports/stm32/boards/NUCLEO_U5A5ZJ_Q/stm32u5xx_hal_conf.h | 19 |
5 files changed, 250 insertions, 0 deletions
diff --git a/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/board.json b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/board.json new file mode 100644 index 000000000..4386b7084 --- /dev/null +++ b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/board.json @@ -0,0 +1,15 @@ +{ + "deploy": [ + "../deploy.md" + ], + "docs": "", + "features": [], + "images": [ + "nucleo_u5a5zj_q.jpg" + ], + "mcu": "stm32u5", + "product": "Nucleo U5A5ZJ_Q", + "thumbnail": "", + "url": "", + "vendor": "ST Microelectronics" +} diff --git a/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/mpconfigboard.h b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/mpconfigboard.h new file mode 100644 index 000000000..1b39e136b --- /dev/null +++ b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/mpconfigboard.h @@ -0,0 +1,82 @@ +#define MICROPY_HW_BOARD_NAME "NUCLEO_U5A5ZJ_Q" +#define MICROPY_HW_MCU_NAME "STM32U5A5ZJ" + +#define MICROPY_HW_ENABLE_INTERNAL_FLASH_STORAGE (1) +#define MICROPY_HW_ENABLE_ADC (1) +#define MICROPY_HW_ENABLE_DAC (1) +#define MICROPY_HW_ENABLE_USB (1) +#define MICROPY_HW_ENABLE_RNG (1) +#define MICROPY_HW_ENABLE_RTC (1) +#define MICROPY_HW_HAS_FLASH (1) +#define MICROPY_HW_HAS_SWITCH (1) + +// The board has a 16MHz oscillator, the following gives 160MHz CPU speed +#define MICROPY_HW_CLK_PLLM (1) +#define MICROPY_HW_CLK_PLLN (10) +#define MICROPY_HW_CLK_PLLP (10) +#define MICROPY_HW_CLK_PLLQ (2) +#define MICROPY_HW_CLK_PLLR (1) +#define MICROPY_HW_CLK_PLLVCI (RCC_PLLVCIRANGE_1) +#define MICROPY_HW_CLK_PLLFRAC (0) + +// 5 wait states, according to Table 37, Reference Manual (RM0481 Rev 1) +#define MICROPY_HW_FLASH_LATENCY FLASH_LATENCY_4 + +// There is an external 32kHz oscillator +#define MICROPY_HW_RTC_USE_LSE (1) +#define MICROPY_HW_RCC_RTC_CLKSOURCE (RCC_RTCCLKSOURCE_LSE) + +// UART config +#define MICROPY_HW_UART1_TX (pin_A9) +#define MICROPY_HW_UART1_RX (pin_A10) +#define MICROPY_HW_UART2_TX (pin_D5) +#define MICROPY_HW_UART2_RX (pin_D6) +#define MICROPY_HW_UART2_RTS (pin_D4) +#define MICROPY_HW_UART2_CTS (pin_D3) + +// Connect REPL to UART1 which is provided on ST-Link USB interface +#define MICROPY_HW_UART_REPL PYB_UART_1 +#define MICROPY_HW_UART_REPL_BAUD 115200 + +// I2C buses +#define MICROPY_HW_I2C1_SCL (pin_B8) // Arduino Connector CN7-Pin2 (D15) +#define MICROPY_HW_I2C1_SDA (pin_B9) // Arduino Connector CN7-Pin4 (D14) +#define MICROPY_HW_I2C2_SCL (pin_F1) // Connector CN9-Pin19 +#define MICROPY_HW_I2C2_SDA (pin_F0) // Connector CN9-Pin21 + +// SPI buses +#define MICROPY_HW_SPI1_NSS (pin_D14) // Arduino Connector CN7-Pin16 (D10) +#define MICROPY_HW_SPI1_SCK (pin_A5) // Arduino Connector CN7-Pin10 (D13) +#define MICROPY_HW_SPI1_MISO (pin_A6) // Arduino Connector CN7-Pin12 (D12) +#define MICROPY_HW_SPI1_MOSI (pin_A7) // Arduino Connector CN7-Pin14 (D11) +#define MICROPY_HW_SPI2_NSS (pin_D0) +#define MICROPY_HW_SPI2_SCK (pin_B10) +#define MICROPY_HW_SPI2_MISO (pin_D3) +#define MICROPY_HW_SPI2_MOSI (pin_C1) +#define MICROPY_HW_SPI3_NSS (pin_A4) +#define MICROPY_HW_SPI3_SCK (pin_B3) +#define MICROPY_HW_SPI3_MISO (pin_B4) +#define MICROPY_HW_SPI3_MOSI (pin_B5) + +// 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_RISING) +#define MICROPY_HW_USRSW_PRESSED (1) + +// LEDs +#define MICROPY_HW_LED1 (pin_C7) // Green +#define MICROPY_HW_LED2 (pin_B7) // Orange +#define MICROPY_HW_LED3 (pin_G2) // Red +#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin)) +#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin)) + +// USB Configuration +#define MICROPY_HW_USB_HS (1) +#define MICROPY_HW_USB_HS_IN_FS (1) + +#if 0 // FDCAN bus +#define MICROPY_HW_CAN1_NAME "FDCAN1" +#define MICROPY_HW_CAN1_TX (pin_D1) +#define MICROPY_HW_CAN1_RX (pin_D0) +#endif diff --git a/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/mpconfigboard.mk b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/mpconfigboard.mk new file mode 100644 index 000000000..e313f189e --- /dev/null +++ b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/mpconfigboard.mk @@ -0,0 +1,11 @@ +# MCU settings +MCU_SERIES = u5 +CMSIS_MCU = STM32U5A5xx +MICROPY_FLOAT_IMPL = single +AF_FILE = boards/stm32u5a5_af.csv + +LD_FILES = boards/stm32u5a5xj.ld boards/common_basic.ld +TEXT0_ADDR = 0x08000000 + +# MicroPython settings +MICROPY_HW_ENABLE_ISR_UART_FLASH_FUNCS_IN_RAM = 1 diff --git a/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/pins.csv b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/pins.csv new file mode 100644 index 000000000..fb0a0d4b9 --- /dev/null +++ b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/pins.csv @@ -0,0 +1,123 @@ +A0,PA3 +A1,PA2 +A2,PC3 +A3,PB0 +A4,PC1 +A5,PC0 +A6,PB1 +A7,PC2 +A8,PA1 +D0,PG8 +D1,PG7 +D2,PF15 +D3,PE13 +D4,PF14 +D5,PE11 +D6,PE9 +D7,PF13 +D8,PF12 +D9,PD15 +D10,PD14 +D11,PA7 +D12,PA6 +D13,PA5 +D14,PB9 +D15,PB8 +D16,PC6 +D17,PD11 +D18,PB13 +D19,PD12 +D20,PA4 +D21,PB4 +D22,PB5 +D23,PB3 +D24,PA4 +D25,PB4 +D26,PA2 +D27,PB10 +D28,PE15 +D29,PB0 +D30,PE12 +D31,PE14 +D32,PA0 +D33,PA8 +D34,PE0 +D35,PB11 +D36,PB10 +D37,PE15 +D38,PE14 +D39,PE12 +D40,PE10 +D41,PE7 +D42,PE8 +D43,PC8 +D44,PC9 +D45,PC10 +D46,PC11 +D47,PC12 +D48,PD2 +D49,PF3 +D50,PF5 +D51,PD7 +D52,PD6 +D53,PD5 +D54,PD4 +D55,PD3 +D56,PE2 +D57,PE4 +D58,PE5 +D59,PE6 +D60,PE3 +D61,PF8 +D62,PF7 +D63,PF9 +D64,PG1 +D65,PG0 +D66,PD1 +D67,PD0 +D68,PF0 +D69,PF1 +D70,PF2 +D71,PB6 +D72,PB2 +DAC1,PA4 +DAC2,PA5 +LED1,PC7 +LED2,PB7 +LED3,PG2 +SW,PC13 +I2C1_SDA,PB9 +I2C1_SCL,PB8 +I2C2_SDA,PF0 +I2C2_SCL,PF1 +I2C4_SCL,PF14 +I2C4_SDA,PF15 +SD_D0,PC8 +SD_D1,PC9 +SD_D2,PC10 +SD_D3,PC11 +SD_CMD,PD2 +SD_CK,PC12 +SD_SW,PG2 +OTG_FS_POWER,PD10 +OTG_FS_OVER_CURRENT,PG7 +USB_VBUS,PA9 +USB_ID,PA10 +USB_DM,PA11 +USB_DP,PA12 +UART1_TX,PA9 +UART1_RX,PA10 +UART2_TX,PD5 +UART2_RX,PD6 +UART2_RTS,PD4 +UART2_CTS,PD3 +UART3_TX,PD8 +UART3_RX,PD9 +UART5_TX,PB6 +UART5_RX,PB12 +UART6_TX,PC6 +UART6_RX,PC7 +UART7_TX,PF7 +UART7_RX,PF6 +UART8_TX,PE1 +UART8_RX,PE0 diff --git a/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/stm32u5xx_hal_conf.h b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/stm32u5xx_hal_conf.h new file mode 100644 index 000000000..3af461418 --- /dev/null +++ b/ports/stm32/boards/NUCLEO_U5A5ZJ_Q/stm32u5xx_hal_conf.h @@ -0,0 +1,19 @@ +/* This file is part of the MicroPython project, http://micropython.org/ + * The MIT License (MIT) + * Copyright (c) 2023 Damien P. George + */ +#ifndef MICROPY_INCLUDED_STM32U5XX_HAL_CONF_H +#define MICROPY_INCLUDED_STM32U5XX_HAL_CONF_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) + +#include "boards/stm32u5xx_hal_conf_base.h" + +#endif // MICROPY_INCLUDED_STM32U5XX_HAL_CONF_H |
