stm32/boards/NUCLEO_L452RE: Add definition files for new board.

This commit is contained in:
Chris Mason 2019-06-29 20:55:19 +10:00 committed by Damien George
parent 64181b5f76
commit c24d81119c
4 changed files with 185 additions and 0 deletions

View File

@ -0,0 +1,74 @@
#define MICROPY_HW_BOARD_NAME "NUCLEO-L452RE"
#define MICROPY_HW_MCU_NAME "STM32L452RE"
#define MICROPY_PY_USOCKET (0)
#define MICROPY_PY_NETWORK (0)
#define MICROPY_HW_ENABLE_RTC (1)
#define MICROPY_HW_ENABLE_RNG (1)
#define MICROPY_HW_ENABLE_DAC (1)
#define MICROPY_HW_ENABLE_SERVO (0) // SERVO requires TIM5 (not on L452).
#define MICROPY_HW_HAS_SWITCH (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)
// UART config
#define MICROPY_HW_UART1_TX (pin_B6)
#define MICROPY_HW_UART1_RX (pin_B7)
#define MICROPY_HW_UART2_TX (pin_A2) // VCP TX
#define MICROPY_HW_UART2_RX (pin_A3) // VCP RX
#define MICROPY_HW_UART3_TX (pin_C10)
#define MICROPY_HW_UART3_RX (pin_C11)
#define MICROPY_HW_UART4_TX (pin_A0)
#define MICROPY_HW_UART4_RX (pin_A1)
// USART2 is connected to the ST-LINK USB VCP
#define MICROPY_HW_UART_REPL PYB_UART_2
#define MICROPY_HW_UART_REPL_BAUD 115200
// I2C busses
#define MICROPY_HW_I2C1_SCL (pin_B8) // Arduino D15, pin 3 on CN10
#define MICROPY_HW_I2C1_SDA (pin_B9) // Arduino D14, pin 5 on CN10
#define MICROPY_HW_I2C2_SCL (pin_B10) // Arduino D6, pin 25 on CN10
#define MICROPY_HW_I2C2_SDA (pin_B11) // pin 18 on CN10
#define MICROPY_HW_I2C3_SCL (pin_A7) // pin 15 on CN10
#define MICROPY_HW_I2C3_SDA (pin_B4) // pin 27 on CN10
#define MICROPY_HW_I2C4_SCL (pin_C0) // pin 38 on CN7
#define MICROPY_HW_I2C4_SDA (pin_C1) // pin 36 on CN7
// SPI busses
#define MICROPY_HW_SPI1_NSS (pin_A15) // pin 17 on CN7
#define MICROPY_HW_SPI1_SCK (pin_A5) // Arduino D13, pin 11 on CN10
#define MICROPY_HW_SPI1_MISO (pin_A6) // Arduino D12, pin 13 on CN10
#define MICROPY_HW_SPI1_MOSI (pin_A7) // Arduino D11, pin 15 on CN10
#define MICROPY_HW_SPI2_NSS (pin_B12) // pin 16 on CN10
#define MICROPY_HW_SPI2_SCK (pin_B13) // pin 30 on CN10
#define MICROPY_HW_SPI2_MISO (pin_B14) // pin 28 on CN10
#define MICROPY_HW_SPI2_MOSI (pin_B15) // pin 26 on CN10
#define MICROPY_HW_SPI3_NSS (pin_A4) // pin 32 on CN7
#define MICROPY_HW_SPI3_SCK (pin_C10) // pin 1 on CN7
#define MICROPY_HW_SPI3_MISO (pin_C11) // pin 2 on CN7
#define MICROPY_HW_SPI3_MOSI (pin_C12) // pin 3 on CN7
// CAN busses
#define MICROPY_HW_CAN1_TX (pin_B9)
#define MICROPY_HW_CAN1_RX (pin_B8)
// USER B1 has a pull-up and is active low
#define MICROPY_HW_USRSW_PIN (pin_C13)
#define MICROPY_HW_USRSW_PULL (0)
#define MICROPY_HW_USRSW_EXTI_MODE (GPIO_MODE_IT_FALLING)
#define MICROPY_HW_USRSW_PRESSED (0)
// NUCLEO-64 has one user LED
#define MICROPY_HW_LED1 (pin_A5) // green
#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin))
#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin))

View File

@ -0,0 +1,5 @@
MCU_SERIES = l4
CMSIS_MCU = STM32L452xx
AF_FILE = boards/stm32l452_af.csv
LD_FILES = boards/stm32l452xe.ld boards/common_basic.ld
OPENOCD_CONFIG = boards/openocd_stm32l4.cfg

View File

@ -0,0 +1,86 @@
CN9_D0,PA3
CN9_D1,PA2
CN9_D2,PA10
CN9_D3,PB3
CN9_D4,PB5
CN9_D5,PB4
CN9_D6,PB10
CN9_D7,PA8
CN5_D8,PA9
CN5_D9,PC7
CN5_D10,PB6
CN5_D11,PA7
CN5_D12,PA6
CN5_D13,PA5
CN5_D14,PB9
CN5_D15,PB8
CN8_A0,PA0
CN8_A1,PA1
CN8_A2,PA4
CN8_A3,PB0
CN8_A4,PC1
CN8_A5,PC0
CN9_RX,PA3
CN9_TX,PA2
CN5_SCL,PB8
CN5_SDA,PB9
CN5_SCK,PA5
CN5_MISO,PA6
CN5_MOSI,PA7
CN5_CS,PB6
CN7_28,PA0
CN7_30,PA1
CN10_35,PA2
CN10_37,PA3
CN7_32,PA4
CN10_11,PA5
CN10_13,PA6
CN10_15,PA7
CN10_23,PA8
CN10_21,PA9
CN10_33,PA10
CN10_14,PA11
CN10_12,PA12
CN7_13,PA13
CN7_15,PA14
CN7_17,PA15
CN7_34,PB0
CN10_24,PB1
CN10_22,PB2
CN10_31,PB3
CN10_27,PB4
CN10_29,PB5
CN10_17,PB6
CN7_21,PB7
CN10_3,PB8
CN10_5,PB9
CN10_25,PB10
CN10_18,PB11
CN10_16,PB12
CN10_30,PB13
CN10_28,PB14
CN10_26,PB15
CN7_38,PC0
CN7_36,PC1
CN7_35,PC2
CN7_37,PC3
CN10_34,PC4
CN10_6,PC5
CN10_4,PC6
CN10_19,PC7
CN10_2,PC8
CN10_1,PC9
CN7_1,PC10
CN7_2,PC11
CN7_3,PC12
CN7_23,PC13
CN7_25,PC14
CN7_27,PC15
CN7_4,PD2
CN7_29,PH0
CN7_31,PH1
BOOT0,PH3
SWDIO,PA13
SWCLK,PA14
USER_B1,PC13
LED_GREEN,PA5
1 CN9_D0 PA3
2 CN9_D1 PA2
3 CN9_D2 PA10
4 CN9_D3 PB3
5 CN9_D4 PB5
6 CN9_D5 PB4
7 CN9_D6 PB10
8 CN9_D7 PA8
9 CN5_D8 PA9
10 CN5_D9 PC7
11 CN5_D10 PB6
12 CN5_D11 PA7
13 CN5_D12 PA6
14 CN5_D13 PA5
15 CN5_D14 PB9
16 CN5_D15 PB8
17 CN8_A0 PA0
18 CN8_A1 PA1
19 CN8_A2 PA4
20 CN8_A3 PB0
21 CN8_A4 PC1
22 CN8_A5 PC0
23 CN9_RX PA3
24 CN9_TX PA2
25 CN5_SCL PB8
26 CN5_SDA PB9
27 CN5_SCK PA5
28 CN5_MISO PA6
29 CN5_MOSI PA7
30 CN5_CS PB6
31 CN7_28 PA0
32 CN7_30 PA1
33 CN10_35 PA2
34 CN10_37 PA3
35 CN7_32 PA4
36 CN10_11 PA5
37 CN10_13 PA6
38 CN10_15 PA7
39 CN10_23 PA8
40 CN10_21 PA9
41 CN10_33 PA10
42 CN10_14 PA11
43 CN10_12 PA12
44 CN7_13 PA13
45 CN7_15 PA14
46 CN7_17 PA15
47 CN7_34 PB0
48 CN10_24 PB1
49 CN10_22 PB2
50 CN10_31 PB3
51 CN10_27 PB4
52 CN10_29 PB5
53 CN10_17 PB6
54 CN7_21 PB7
55 CN10_3 PB8
56 CN10_5 PB9
57 CN10_25 PB10
58 CN10_18 PB11
59 CN10_16 PB12
60 CN10_30 PB13
61 CN10_28 PB14
62 CN10_26 PB15
63 CN7_38 PC0
64 CN7_36 PC1
65 CN7_35 PC2
66 CN7_37 PC3
67 CN10_34 PC4
68 CN10_6 PC5
69 CN10_4 PC6
70 CN10_19 PC7
71 CN10_2 PC8
72 CN10_1 PC9
73 CN7_1 PC10
74 CN7_2 PC11
75 CN7_3 PC12
76 CN7_23 PC13
77 CN7_25 PC14
78 CN7_27 PC15
79 CN7_4 PD2
80 CN7_29 PH0
81 CN7_31 PH1
82 BOOT0 PH3
83 SWDIO PA13
84 SWCLK PA14
85 USER_B1 PC13
86 LED_GREEN PA5

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