periph_conf.h File Reference

Peripheral MCU configuration for the Nucleo-C031C6 board. More...

Detailed Description

Peripheral MCU configuration for the Nucleo-C031C6 board.

Author
Jason Parker Jason.nosp@m..Par.nosp@m.ker@b.nosp@m.isse.nosp@m.ll.co.nosp@m.m

Definition in file periph_conf.h.

#include "clk_conf.h"
#include "cfg_i2c1_pb8_pb9.h"
#include "cfg_rtt_default.h"
+ Include dependency graph for periph_conf.h:

Go to the source code of this file.

#define CONFIG_BOARD_HAS_LSE   1
 

Timer configuration

#define TIMER_0_ISR   isr_tim3
 
#define TIMER_NUMOF   ARRAY_SIZE(timer_config)
 
static const timer_conf_t timer_config []
 

UART configuration

#define UART_0_ISR   (isr_usart2)
 
#define UART_1_ISR   (isr_usart1)
 
#define UART_NUMOF   ARRAY_SIZE(uart_config)
 
static const uart_conf_t uart_config []
 

ADC configuration

Note that we do not configure all ADC channels, and not in the STM32C031 order.

Instead, we just define 6 ADC channels, for the Nucleo Arduino header pins A0-A5.

The appropriate ADC device and channel for each pin can be found in the board manual in the pin assignment table. The format of the entries is ARD_A[N]_IN[X], where [N] describes the analog arduino pin and [Y] describes the used channel - indexed from 1. For example: ARD_A0_IN11 is Arduino A4, Channel 11.

For the Nucleo-C031C6 this information is in the board manual, Table 11 "ARDUINO connector pinout".

#define ADC_NUMOF   ARRAY_SIZE(adc_config)
 
static const adc_conf_t adc_config []
 

PWM configuration

The appropriate PWM device and channel for each pin can be found in the MCU datasheet table "Alternate function AF0 to AF7".

The format of the entries is TIM[X]_CH[Y], where TIM[X] is the timer device and [Y] describes the used channel (indexed from 0). For example TIM2_CH1 is Timer 2, Channel 1 which corresponds to Channel 0 in the PWM configuration structure. The port column in the table describes the connected port.

For the Nucleo-C031C6 this information can be found in the MCU datasheet, Table 15 "Port B alternate function mapping (AF0 to AF7)".

#define PWM_NUMOF   ARRAY_SIZE(pwm_config)
 
static const pwm_conf_t pwm_config []
 

SPI configuration

#define SPI_NUMOF   ARRAY_SIZE(spi_config)
 
static const spi_conf_t spi_config []
 

Variable Documentation

◆ adc_config

const adc_conf_t adc_config[]
static
Initial value:
= {
{ .pin = GPIO_PIN(PORT_A, 0), .dev = 0, .chan = 0 },
{ .pin = GPIO_PIN(PORT_A, 1), .dev = 0, .chan = 1 },
{ .pin = GPIO_PIN(PORT_A, 4), .dev = 0, .chan = 4 },
{ .pin = GPIO_PIN(PORT_B, 1), .dev = 0, .chan = 18 },
{ .pin = GPIO_PIN(PORT_A, 11), .dev = 0, .chan = 11 },
{ .pin = GPIO_PIN(PORT_A, 12), .dev = 0, .chan = 12 },
}
@ PORT_B
port B
Definition: periph_cpu.h:44
@ PORT_A
port A
Definition: periph_cpu.h:43
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
Definition: periph_cpu.h:42

Definition at line 102 of file periph_conf.h.

◆ pwm_config

const pwm_conf_t pwm_config[]
static
Initial value:
= {
{
.dev = TIM3,
.rcc_mask = RCC_APBENR1_TIM3EN,
.chan = { { .pin = GPIO_PIN(PORT_B, 5) , .cc_chan = 1 },
{ .pin = GPIO_PIN(PORT_B, 0) , .cc_chan = 2 },
{ .pin = GPIO_PIN(PORT_B, 1) , .cc_chan = 3 },
{ .pin = GPIO_UNDEF, .cc_chan = 0 } },
.af = GPIO_AF1,
.bus = APB1
},
}
#define GPIO_UNDEF
Definition of a fitting UNDEF value.
@ GPIO_AF1
use alternate function 1
Definition: cpu_gpio.h:99
@ APB1
Advanced Peripheral Bus 1
Definition: periph_cpu.h:75

Definition at line 130 of file periph_conf.h.

◆ spi_config

const spi_conf_t spi_config[]
static
Initial value:
= {
{
.dev = SPI1,
.mosi_pin = GPIO_PIN(PORT_A, 7),
.miso_pin = GPIO_PIN(PORT_A, 6),
.sclk_pin = GPIO_PIN(PORT_A, 5),
.cs_pin = GPIO_UNDEF,
.mosi_af = GPIO_AF0,
.miso_af = GPIO_AF0,
.sclk_af = GPIO_AF0,
.cs_af = GPIO_AF0,
.rccmask = RCC_APBENR2_SPI1EN,
.apbbus = APB12,
},
}
@ GPIO_AF0
use alternate function 0
Definition: cpu_gpio.h:98

Definition at line 150 of file periph_conf.h.

◆ timer_config

const timer_conf_t timer_config[]
static
Initial value:
= {
{
.dev = TIM3,
.max = 0x0000ffff,
.rcc_mask = RCC_APBENR1_TIM3EN,
.bus = APB1,
.irqn = TIM3_IRQn
}
}

Definition at line 35 of file periph_conf.h.

◆ uart_config

const uart_conf_t uart_config[]
static
Initial value:
= {
{
.dev = USART2,
.rcc_mask = RCC_APBENR1_USART2EN,
.rx_pin = GPIO_PIN(PORT_A, 3),
.tx_pin = GPIO_PIN(PORT_A, 2),
.rx_af = GPIO_AF1,
.tx_af = GPIO_AF1,
.bus = APB1,
.irqn = USART2_IRQn,
},
{
.dev = USART1,
.rcc_mask = RCC_APBENR2_USART1EN,
.rx_pin = GPIO_PIN(PORT_B, 7),
.tx_pin = GPIO_PIN(PORT_B, 6),
.rx_af = GPIO_AF0,
.tx_af = GPIO_AF0,
.bus = APB12,
.irqn = USART1_IRQn,
},
}

Definition at line 54 of file periph_conf.h.