Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
stm32/boards/NUCLEO_L152RE: Add NUCLEO-L152RE board support.
This change adds NUCLEO-L152RE support to the STM32 port. NUCLEO-L152RE: https://www.st.com/en/evaluation-tools/nucleo-l152re.html This board use STM32L152RE: https://www.st.com/en/microcontrollers-microprocessors/stm32l152re.html
- Loading branch information
Showing
6 changed files
with
210 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"deploy": [ | ||
"./deploy.md" | ||
], | ||
"docs": "", | ||
"features": [], | ||
"images": [ | ||
"nucleo_l152re.jpg" | ||
], | ||
"mcu": "stm32l1", | ||
"product": "Nucleo L152RE", | ||
"thumbnail": "", | ||
"url": "", | ||
"vendor": "ST Microelectronics" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
### STM32 via ST-Link | ||
|
||
Nucleo and Discovery boards typically include a built-in ST-Link programmer. | ||
|
||
A `.bin` or `.hex` file can be flashed using [st-flash](https://github.com/stlink-org/stlink). | ||
|
||
```bash | ||
# Optional erase to clear existing filesystem. | ||
st-flash erase | ||
|
||
# Flash .bin | ||
st-flash write firmware.bin 0x08000000 | ||
# or, flash .hex | ||
st-flash --format ihex write firmware.hex | ||
``` | ||
|
||
A `.hex` file can be flashed using [STM32 Cube Programmer](https://www.st.com/en/development-tools/stm32cubeprog.html). | ||
|
||
```bash | ||
STM32_Programmer.sh -c port=SWD mode=UR dLPM -d firmware.hex -v -hardRst | ||
``` | ||
|
||
### STM32 via DFU | ||
|
||
Boards with USB support can also be programmed via the ST DFU bootloader, using e.g. [dfu-util](http://dfu-util.sourceforge.net/) or [pydfu.py](https://github.com/micropython/micropython/blob/master/tools/pydfu.py). | ||
|
||
To enter the bootloader the `BOOT0` pin can be connected to `VCC` during reset, or you can use `machine.bootloader()` from the MicroPython REPL. | ||
|
||
```bash | ||
dfu-util --alt 0 -D firmware.dfu | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
#define MICROPY_HW_BOARD_NAME "NUCLEO-L152RE" | ||
#define MICROPY_HW_MCU_NAME "STM32L152xE" | ||
|
||
#define MICROPY_HW_HAS_SWITCH (1) | ||
#define MICROPY_HW_ENABLE_RTC (1) | ||
// This board has an external 32kHz crystal | ||
#define MICROPY_HW_RTC_USE_LSE (1) | ||
#define MICROPY_HW_ENABLE_SERVO (1) | ||
#define MICROPY_HW_ENABLE_DAC (1) | ||
|
||
// HSE is 8MHz, HSI is 16MHz CPU freq set to 32MHz | ||
// Default source for the clock is HSI. | ||
// For revisions of the board greater than C-01, HSE can be used as a | ||
// clock source by removing the #define MICROPY_HW_CLK_USE_HSE line | ||
#define MICROPY_HW_CLK_USE_HSI (1) | ||
|
||
#if MICROPY_HW_CLK_USE_HSI | ||
#define MICROPY_HW_CLK_PLLMUL (RCC_CFGR_PLLMUL6) | ||
#define MICROPY_HW_CLK_PLLDIV (RCC_CFGR_PLLDIV3) | ||
#else | ||
#define MICROPY_HW_CLK_PLLMUL (RCC_CFGR_PLLMUL12) | ||
#define MICROPY_HW_CLK_PLLDIV (RCC_CFGR_PLLDIV3) | ||
#endif | ||
|
||
// UART config | ||
#define MICROPY_HW_UART1_TX (pin_A9) | ||
#define MICROPY_HW_UART1_RX (pin_A10) | ||
#define MICROPY_HW_UART2_TX (pin_A2) | ||
#define MICROPY_HW_UART2_RX (pin_A3) | ||
#define MICROPY_HW_UART3_TX (pin_B10) | ||
#define MICROPY_HW_UART3_RX (pin_B11) | ||
#define MICROPY_HW_UART4_TX (pin_C10) | ||
#define MICROPY_HW_UART4_RX (pin_C11) | ||
#define MICROPY_HW_UART5_TX (pin_C12) | ||
#define MICROPY_HW_UART5_RX (pin_D2) | ||
// UART 2 connects to the STM32F103 (STLINK) on the Nucleo board | ||
// and this is exposed as a USB Serial port. | ||
#define MICROPY_HW_UART_REPL PYB_UART_2 | ||
#define MICROPY_HW_UART_REPL_BAUD 115200 | ||
|
||
// I2C buses | ||
#define MICROPY_HW_I2C1_SCL (pin_B8) // Arduino D15, pin 3 on CN10 | ||
#define MICROPY_HW_I2C1_SDA (pin_B9) // 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) // Arduino D3, pin 31 on CN10 | ||
|
||
// SPI buses | ||
#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) // Arduino A2, pin 32 on CN7 | ||
#define MICROPY_HW_SPI3_SCK (pin_C10) // Arduino D3, pin 31 on CN10 | ||
#define MICROPY_HW_SPI3_MISO (pin_C11) // Arduino D5, pin 27 on CN10 | ||
#define MICROPY_HW_SPI3_MOSI (pin_C12) // Arduino D4, pin 29 on CN10 | ||
|
||
// 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_A5) // Green LD2 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)) | ||
|
||
#define MICROPY_HW_FLASH_LATENCY FLASH_LATENCY_1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
MCU_SERIES = l1 | ||
CMSIS_MCU = STM32L152xE | ||
AF_FILE = boards/stm32l152_af.csv | ||
LD_FILES = boards/stm32l152xe.ld boards/common_basic.ld |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
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,PA5 | ||
LED_ORANGE,PA5 | ||
LED_RED,PA5 | ||
LED_BLUE,PA4 | ||
SW,PC13 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
/* This file is part of the MicroPython project, http://micropython.org/ | ||
* The MIT License (MIT) | ||
* Copyright (c) 2019 Damien P. George | ||
*/ | ||
#ifndef MICROPY_INCLUDED_STM32L1XX_HAL_CONF_H | ||
#define MICROPY_INCLUDED_STM32L1XX_HAL_CONF_H | ||
|
||
#include "boards/stm32l1xx_hal_conf_base.h" | ||
|
||
#endif // MICROPY_INCLUDED_STM32L1XX_HAL_CONF_H |