seb-cli-tool
Version:
SEB CLI - Smart Embedded Board Configuration Tool - Cloud-First MCU Management
450 lines (435 loc) • 8.55 kB
YAML
# STM32L476RG MCU Definition
# STM32L476 Nucleo-64 / Ultra-Low-Power Industrial Applications
# ARM Cortex-M4, 80MHz, 1MB Flash, 128KB RAM
mcu:
name: stm32l476rg
family: stm32l4
architecture: ARM Cortex-M4
package: lqfp64
flash_size: 1MB
ram_size: 128KB
max_frequency: 80MHz
# Clock configuration
clock:
hse_frequencies: [8MHz, 12MHz, 16MHz, 24MHz, 32MHz]
sysclk_frequencies: [80MHz]
pll_configs:
80MHz:
pllm: 1
plln: 20
pllp: 2
# Pin alternate function mappings for LQFP64
pin_alternate_functions:
# Port A (0-15)
PA0:
UART2_TX: 7
TIM2_CH1: 1
TIM5_CH1: 2
ADC1_IN0: 0
PA1:
UART2_RX: 7
TIM2_CH2: 1
TIM5_CH2: 2
ADC1_IN1: 0
PA2:
UART2_TX: 7
TIM2_CH3: 1
TIM5_CH3: 2
ADC1_IN2: 0
PA3:
UART2_RX: 7
TIM2_CH4: 1
TIM5_CH4: 2
ADC1_IN3: 0
PA4:
SPI1_NSS: 5
TIM3_CH2: 2
ADC1_IN4: 0
PA5:
SPI1_SCK: 5
TIM2_CH1: 1
ADC1_IN5: 0
PA6:
SPI1_MISO: 5
TIM3_CH1: 2
ADC1_IN6: 0
PA7:
SPI1_MOSI: 5
TIM3_CH2: 2
ADC1_IN7: 0
PA8:
I2C3_SCL: 4
TIM1_CH1: 1
USART1_CK: 7
PA9:
I2C3_SMBA: 4
TIM1_CH2: 1
USART1_TX: 7
PA10:
I2C2_SDA: 4
TIM1_CH3: 1
USART1_RX: 7
PA11:
CAN1_RX: 9
TIM1_CH4: 1
USART1_CTS: 7
USB_DM: 14
PA12:
CAN1_TX: 9
TIM1_ETR: 1
USART1_RTS: 7
USB_DP: 14
PA13:
JTMS_SWDIO: 0
PA14:
JTCK_SWCLK: 0
PA15:
JTDI: 0
SPI3_NSS: 6
TIM2_CH1: 1
# Port B (0-15)
PB0:
TIM3_CH3: 2
ADC1_IN8: 0
PB1:
TIM3_CH4: 2
ADC1_IN9: 0
PB2:
BOOT1: 0
PB3:
JTDO: 0
SPI3_SCK: 6
TIM2_CH2: 1
PB4:
NJTRST: 0
SPI3_MISO: 6
TIM3_CH1: 2
PB5:
I2C1_SMBA: 4
TIM3_CH2: 2
PB6:
I2C1_SCL: 4
TIM4_CH1: 2
USART1_TX: 7
PB7:
I2C1_SDA: 4
TIM4_CH2: 2
USART1_RX: 7
PB8:
I2C1_SCL: 4
TIM4_CH3: 2
TIM10_CH1: 3
PB9:
I2C1_SDA: 4
TIM4_CH4: 2
TIM11_CH1: 3
PB10:
I2C2_SCL: 4
USART3_TX: 7
PB11:
I2C2_SDA: 4
USART3_RX: 7
PB12:
SPI2_NSS: 5
I2S2_WS: 5
PB13:
SPI2_SCK: 5
I2S2_CK: 5
PB14:
SPI2_MISO: 5
I2S2EXT_SD: 5
TIM1_CH2N: 1
PB15:
SPI2_MOSI: 5
I2S2_SD: 5
TIM1_CH3N: 1
# Port C (0-15)
PC0:
ADC1_IN10: 0
PC1:
ADC1_IN11: 0
PC2:
SPI2_MISO: 5
I2S2EXT_SD: 5
PC3:
SPI2_MOSI: 5
I2S2_SD: 5
PC4:
ADC1_IN12: 0
PC5:
ADC1_IN13: 0
PC6:
TIM3_CH1: 2
TIM8_CH1: 3
PC7:
TIM3_CH2: 2
TIM8_CH2: 3
PC8:
TIM3_CH3: 2
TIM8_CH3: 3
PC9:
TIM3_CH4: 2
TIM8_CH4: 3
PC10:
SPI3_SCK: 6
I2S3_CK: 6
USART3_TX: 7
PC11:
SPI3_MISO: 6
I2S3EXT_SD: 6
USART3_RX: 7
PC12:
SPI3_MOSI: 6
I2S3_SD: 6
USART3_CK: 7
PC13:
LED: 0
PC14:
OSC32_IN: 0
PC15:
OSC32_OUT: 0
# Port D (0-2)
PD0:
CAN1_RX: 9
TIM4_ETR: 2
PD1:
CAN1_TX: 9
TIM4_CH1: 2
PD2:
TIM3_ETR: 2
# Pin mappings for common functions
pin_mappings:
uart:
uart1_tx: PA9
uart1_rx: PA10
uart2_tx: PA2
uart2_rx: PA3
uart3_tx: PB10
uart3_rx: PB11
spi:
spi1_sck: PA5
spi1_miso: PA6
spi1_mosi: PA7
spi1_cs: PA4
spi2_sck: PB13
spi2_miso: PB14
spi2_mosi: PB15
spi2_cs: PB12
i2c:
i2c1_scl: PB6
i2c1_sda: PB7
i2c2_scl: PB10
i2c2_sda: PB11
can:
can1_rx: PA11
can1_tx: PA12
usb:
usb_dm: PA11
usb_dp: PA12
led:
user_led: PC13
debug:
swdio: PA13
swclk: PA14
# Peripherals configuration
peripherals:
uart:
uart1:
baudrate: 115200
pins:
tx: PA9
rx: PA10
uart2:
baudrate: 115200
pins:
tx: PA2
rx: PA3
spi:
spi1:
mode: 0
speed: 1000000
pins:
sck: PA5
miso: PA6
mosi: PA7
cs: PA4
i2c:
i2c1:
speed: 100000
pins:
scl: PB6
sda: PB7
gpio:
- pin: PC13
mode: output
initial_state: low
description: User LED
# System configuration
system:
clock:
hse: 8MHz
pll: true
sysclk: 80MHz
power:
voltage: 3.3V
sleep_modes: [sleep, stop, standby, shutdown]
ultra_low_power: true
debug:
interface: SWD
pins:
swdio: PA13
swclk: PA14
# Board information
board_info:
name: STM32L476 Nucleo-64
manufacturer: STMicroelectronics
description: Ultra-low-power ARM Cortex-M4 MCU for battery-powered industrial applications
features:
- ARM Cortex-M4 at 80MHz
- 1MB Flash, 128KB RAM
- Ultra-low-power operation
- Multiple low-power modes
- USB OTG FS
- Multiple UART/SPI/I2C interfaces
- CAN bus support
- Advanced timers
- 12-bit ADC
- Industrial temperature range
- Battery backup domain
documentation:
datasheet: "https://www.st.com/resource/en/datasheet/stm32l476rg.pdf"
reference_manual: "https://www.st.com/resource/en/reference_manual/dm00083560.pdf"
programming_manual: "https://www.st.com/resource/en/programming_manual/pm0214-stm32f4xxx-cortexm4-programming-manual-stmicroelectronics.pdf"
# Use cases
use_cases:
- name: Battery-Powered Sensors
description: IoT sensors, environmental monitoring
complexity: intermediate
- name: Wearable Devices
description: Health monitors, fitness trackers
complexity: intermediate
- name: Smart Meters
description: Energy monitoring, utility meters
complexity: advanced
- name: Industrial IoT
description: Remote monitoring, predictive maintenance
complexity: advanced
- name: Medical Devices
description: Portable medical equipment, patient monitors
complexity: advanced
- name: Energy Harvesting
description: Solar-powered devices, vibration harvesters
complexity: advanced
# Community resources
community:
forums:
- "https://community.st.com/s/topic/0TO0X000000qTdVWAU/stm32l4"
- "https://www.st.com/en/evaluation-tools/nucleo-l476rg.html"
tutorials:
- "https://www.st.com/en/evaluation-tools/nucleo-l476rg.html"
- "https://www.st.com/en/development-tools/stm32cubemx.html"
examples:
- "https://github.com/STMicroelectronics/STM32CubeL4"
- "https://github.com/STMicroelectronics/STM32CubeL4/tree/master/Projects/NUCLEO-L476RG"
# Memory layout
memory:
flash:
start: 0x08000000
size: 1MB
sectors:
- start: 0x08000000
size: 16KB
- start: 0x08004000
size: 16KB
- start: 0x08008000
size: 16KB
- start: 0x0800C000
size: 16KB
- start: 0x08010000
size: 64KB
- start: 0x08020000
size: 128KB
- start: 0x08040000
size: 128KB
- start: 0x08060000
size: 128KB
- start: 0x08080000
size: 128KB
- start: 0x080A0000
size: 128KB
- start: 0x080C0000
size: 128KB
- start: 0x080E0000
size: 128KB
ram:
start: 0x20000000
size: 128KB
regions:
- start: 0x20000000
size: 96KB
description: Main RAM
- start: 0x20018000
size: 32KB
description: SRAM2
# Interrupts
interrupts:
- name: EXTI0
irq: 6
description: External interrupt line 0
- name: EXTI1
irq: 7
description: External interrupt line 1
- name: EXTI2
irq: 8
description: External interrupt line 2
- name: EXTI3
irq: 9
description: External interrupt line 3
- name: EXTI4
irq: 10
description: External interrupt line 4
- name: EXTI9_5
irq: 23
description: External interrupt lines 5-9
- name: EXTI15_10
irq: 40
description: External interrupt lines 10-15
- name: USART1
irq: 37
description: USART1 global interrupt
- name: USART2
irq: 38
description: USART2 global interrupt
- name: USART3
irq: 39
description: USART3 global interrupt
- name: SPI1
irq: 35
description: SPI1 global interrupt
- name: SPI2
irq: 36
description: SPI2 global interrupt
- name: I2C1_EV
irq: 31
description: I2C1 event interrupt
- name: I2C1_ER
irq: 32
description: I2C1 error interrupt
- name: I2C2_EV
irq: 33
description: I2C2 event interrupt
- name: I2C2_ER
irq: 34
description: I2C2 error interrupt
- name: CAN1_RX0
irq: 19
description: CAN1 RX0 interrupt
- name: CAN1_TX
irq: 20
description: CAN1 TX interrupt
- name: USB_HP
irq: 74
description: USB high priority interrupt
- name: USB_LP
irq: 67
description: USB low priority interrupt