stm32/boards/NUCLEO_L4A6ZG: Add new board definition.

Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
Damien George 2023-05-17 11:44:41 +10:00
parent 87cf439e0d
commit b57b079bbe
5 changed files with 202 additions and 0 deletions

View File

@ -0,0 +1,15 @@
{
"deploy": [
"../deploy.md"
],
"docs": "",
"features": [],
"images": [
"nucleo_l4a6zg.jpg"
],
"mcu": "stm32l4",
"product": "Nucleo L4A6ZG",
"thumbnail": "",
"url": "",
"vendor": "ST Microelectronics"
}

View File

@ -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)

View File

@ -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

View File

@ -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
1 D0 PA3
2 D1 PA2
3 D2 PA10
4 D3 PB3
5 D4 PB5
6 D5 PB4
7 D6 PB10
8 D7 PA8
9 D8 PA9
10 D9 PC7
11 D10 PB6
12 D11 PA7
13 D12 PA6
14 D13 PA5
15 D14 PB9
16 D15 PB8
17 A0 PA0
18 A1 PA1
19 A2 PA4
20 A3 PB0
21 A4 PC1
22 A5 PC0
23 PA0 PA0
24 PA1 PA1
25 PA2 PA2
26 PA3 PA3
27 PA4 PA4
28 PA5 PA5
29 PA6 PA6
30 PA7 PA7
31 PA8 PA8
32 PA9 PA9
33 PA10 PA10
34 PA11 PA11
35 PA12 PA12
36 PA15 PA15
37 PB0 PB0
38 PB1 PB1
39 PB2 PB2
40 PB3 PB3
41 PB4 PB4
42 PB5 PB5
43 PB6 PB6
44 PB7 PB7
45 PB8 PB8
46 PB9 PB9
47 PB10 PB10
48 PB11 PB11
49 PB12 PB12
50 PB13 PB13
51 PB14 PB14
52 PB15 PB15
53 PC0 PC0
54 PC1 PC1
55 PC2 PC2
56 PC3 PC3
57 PC4 PC4
58 PC5 PC5
59 PC6 PC6
60 PC7 PC7
61 PC8 PC8
62 PC9 PC9
63 PC10 PC10
64 PC11 PC11
65 PC12 PC12
66 PC13 PC13
67 PC14 PC14
68 PC15 PC15
69 PD2 PD2
70 PH0 PH0
71 PH1 PH1
72 LED_GREEN PC7
73 LED_RED PB14
74 LED_BLUE PB7
75 SW PC13
76 LPUART1_TX PG7
77 LPUART1_RX PG8

View File

@ -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