Loading...
Searching...
No Matches
periph_conf.h File Reference

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

Detailed Description

Peripheral MCU configuration for the Nucleo-C071RB 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 STM32C071 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 ADC_IN[Y], where [Y] - describes the used channel - indexed from 1. For example: ADC_IN11 is Channel 11.

For the Nucleo-C071RB this information is in the board manual, Table 12 "ARDUINO connectors on NUCLEO-C071RB and NUCLEO-C092RC".

#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 TIM3_CH1 is Timer 3, 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-C071RB 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 []
 

Macro Definition Documentation

◆ ADC_NUMOF

#define ADC_NUMOF   ARRAY_SIZE(adc_config)

Definition at line 111 of file periph_conf.h.

◆ CONFIG_BOARD_HAS_LSE

#define CONFIG_BOARD_HAS_LSE   1

Definition at line 20 of file periph_conf.h.

◆ PWM_NUMOF

#define PWM_NUMOF   ARRAY_SIZE(pwm_config)

Definition at line 143 of file periph_conf.h.

◆ SPI_NUMOF

#define SPI_NUMOF   ARRAY_SIZE(spi_config)

Definition at line 166 of file periph_conf.h.

◆ TIMER_0_ISR

#define TIMER_0_ISR   isr_tim3

Definition at line 45 of file periph_conf.h.

◆ TIMER_NUMOF

#define TIMER_NUMOF   ARRAY_SIZE(timer_config)

Definition at line 47 of file periph_conf.h.

◆ UART_0_ISR

#define UART_0_ISR   (isr_usart2)

Definition at line 77 of file periph_conf.h.

◆ UART_1_ISR

#define UART_1_ISR   (isr_usart1)

Definition at line 78 of file periph_conf.h.

◆ UART_NUMOF

#define UART_NUMOF   ARRAY_SIZE(uart_config)

Definition at line 80 of file periph_conf.h.

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, 0), .dev = 0, .chan = 17 },
{ .pin = GPIO_PIN(PORT_C, 4), .dev = 0, .chan = 11 },
{ .pin = GPIO_PIN(PORT_C, 5), .dev = 0, .chan = 12 },
}
@ PORT_B
port B
Definition periph_cpu.h:44
@ PORT_C
port C
Definition periph_cpu.h:45
@ 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.