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

Configuration of CPU peripherals for the Adafruit Metro M4 Express. More...

Detailed Description

Configuration of CPU peripherals for the Adafruit Metro M4 Express.

Author
Marian Buschsieweke maria.nosp@m.n.bu.nosp@m.schsi.nosp@m.ewek.nosp@m.e@pos.nosp@m.teo..nosp@m.net

Definition in file periph_conf.h.

#include "periph_cpu.h"
+ Include dependency graph for periph_conf.h:

Go to the source code of this file.

Macros

#define USE_VREG_BUCK   (1)
 Enable the internal DC/DC converter The board is equipped with L_EXT (L1) of 10uH at VSW pin.
 

Core clock frequency

#define CLOCK_CORECLOCK   MHZ(120)
 

32kHz Oscillator configuration

#define EXTERNAL_OSC32_SOURCE   1
 
#define INTERNAL_OSC32_SOURCE   0
 
#define ULTRA_LOW_POWER_INTERNAL_OSC_SOURCE   0
 

ADC Configuration

#define ADC_GCLK_SRC   SAM0_GCLK_PERIPH
 clock used for ADC
 
#define ADC_PRESCALER   ADC_CTRLA_PRESCALER_DIV8
 
#define ADC_NEG_INPUT   ADC_INPUTCTRL_MUXNEG(0x18u)
 
#define ADC_REF_DEFAULT   ADC_REFCTRL_REFSEL_INTVCC1
 
#define ADC_NUMOF   ARRAY_SIZE(adc_channels)
 
static const adc_conf_chan_t adc_channels []
 

DAC configuration

#define DAC_CLOCK   SAM0_GCLK_TIMER
 
#define DAC_VREF   DAC_CTRLB_REFSEL_VREFPU
 

I2C configuration

#define I2C_NUMOF   ARRAY_SIZE(i2c_config)
 
static const i2c_conf_t i2c_config []
 

RTT configuration

#define RTT_FREQUENCY   (32768U)
 

Timer peripheral configuration

#define TIMER_0_CHANNELS   2
 
#define TIMER_0_ISR   isr_tc0
 
#define TIMER_1_CHANNELS   2
 
#define TIMER_1_ISR   isr_tc2
 
#define TIMER_NUMOF   ARRAY_SIZE(timer_config)
 
static const tc32_conf_t timer_config []
 

SPI configuration

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

UART configuration

#define UART_0_ISR   isr_sercom3_2
 
#define UART_0_ISR_TX   isr_sercom3_0
 
#define UART_NUMOF   ARRAY_SIZE(uart_config)
 
static const uart_conf_t uart_config []
 

USB peripheral configuration

static const sam0_common_usb_config_t sam_usbdev_config []
 

Macro Definition Documentation

◆ ADC_GCLK_SRC

#define ADC_GCLK_SRC   SAM0_GCLK_PERIPH

clock used for ADC

Definition at line 56 of file periph_conf.h.

◆ ADC_NEG_INPUT

#define ADC_NEG_INPUT   ADC_INPUTCTRL_MUXNEG(0x18u)

Definition at line 58 of file periph_conf.h.

◆ ADC_NUMOF

#define ADC_NUMOF   ARRAY_SIZE(adc_channels)

Definition at line 71 of file periph_conf.h.

◆ ADC_PRESCALER

#define ADC_PRESCALER   ADC_CTRLA_PRESCALER_DIV8

Definition at line 57 of file periph_conf.h.

◆ ADC_REF_DEFAULT

#define ADC_REF_DEFAULT   ADC_REFCTRL_REFSEL_INTVCC1

Definition at line 59 of file periph_conf.h.

◆ CLOCK_CORECLOCK

#define CLOCK_CORECLOCK   MHZ(120)

Definition at line 33 of file periph_conf.h.

◆ DAC_CLOCK

#define DAC_CLOCK   SAM0_GCLK_TIMER

Definition at line 79 of file periph_conf.h.

◆ DAC_VREF

#define DAC_VREF   DAC_CTRLB_REFSEL_VREFPU

Definition at line 84 of file periph_conf.h.

◆ EXTERNAL_OSC32_SOURCE

#define EXTERNAL_OSC32_SOURCE   1

Definition at line 41 of file periph_conf.h.

◆ I2C_NUMOF

#define I2C_NUMOF   ARRAY_SIZE(i2c_config)

Definition at line 103 of file periph_conf.h.

◆ INTERNAL_OSC32_SOURCE

#define INTERNAL_OSC32_SOURCE   0

Definition at line 42 of file periph_conf.h.

◆ RTT_FREQUENCY

#define RTT_FREQUENCY   (32768U)

Definition at line 111 of file periph_conf.h.

◆ SPI_NUMOF

#define SPI_NUMOF   ARRAY_SIZE(spi_config)

Definition at line 210 of file periph_conf.h.

◆ TIMER_0_CHANNELS

#define TIMER_0_CHANNELS   2

Definition at line 141 of file periph_conf.h.

◆ TIMER_0_ISR

#define TIMER_0_ISR   isr_tc0

Definition at line 142 of file periph_conf.h.

◆ TIMER_1_CHANNELS

#define TIMER_1_CHANNELS   2

Definition at line 145 of file periph_conf.h.

◆ TIMER_1_ISR

#define TIMER_1_ISR   isr_tc2

Definition at line 146 of file periph_conf.h.

◆ TIMER_NUMOF

#define TIMER_NUMOF   ARRAY_SIZE(timer_config)

Definition at line 148 of file periph_conf.h.

◆ UART_0_ISR

#define UART_0_ISR   isr_sercom3_2

Definition at line 257 of file periph_conf.h.

◆ UART_0_ISR_TX

#define UART_0_ISR_TX   isr_sercom3_0

Definition at line 258 of file periph_conf.h.

◆ UART_NUMOF

#define UART_NUMOF   ARRAY_SIZE(uart_config)

Definition at line 260 of file periph_conf.h.

◆ ULTRA_LOW_POWER_INTERNAL_OSC_SOURCE

#define ULTRA_LOW_POWER_INTERNAL_OSC_SOURCE   0

Definition at line 43 of file periph_conf.h.

◆ USE_VREG_BUCK

#define USE_VREG_BUCK   (1)

Enable the internal DC/DC converter The board is equipped with L_EXT (L1) of 10uH at VSW pin.

Definition at line 50 of file periph_conf.h.

Variable Documentation

◆ adc_channels

const adc_conf_chan_t adc_channels[]
static
Initial value:
= {
{ .inputctrl = ADC0_INPUTCTRL_MUXPOS_PA02, .dev = ADC0 },
{ .inputctrl = ADC0_INPUTCTRL_MUXPOS_PA05, .dev = ADC0 },
{ .inputctrl = ADC0_INPUTCTRL_MUXPOS_PA06, .dev = ADC0 },
{ .inputctrl = ADC0_INPUTCTRL_MUXPOS_PA04, .dev = ADC0 },
{ .inputctrl = ADC1_INPUTCTRL_MUXPOS_PB08, .dev = ADC1 },
{ .inputctrl = ADC1_INPUTCTRL_MUXPOS_PB09, .dev = ADC1 },
}
#define ADC1_INPUTCTRL_MUXPOS_PB09
Alias for AIN1.
Definition periph_cpu.h:144
#define ADC0_INPUTCTRL_MUXPOS_PA04
Alias for AIN4.
Definition periph_cpu.h:130
#define ADC1_INPUTCTRL_MUXPOS_PB08
Alias for AIN0.
Definition periph_cpu.h:143
#define ADC0_INPUTCTRL_MUXPOS_PA05
Alias for AIN5.
Definition periph_cpu.h:131
#define ADC0_INPUTCTRL_MUXPOS_PA06
Alias for AIN6.
Definition periph_cpu.h:132
#define ADC0_INPUTCTRL_MUXPOS_PA02
ADC pin aliases.
Definition periph_cpu.h:126

Definition at line 61 of file periph_conf.h.

◆ i2c_config

const i2c_conf_t i2c_config[]
static
Initial value:
= {
{
.dev = &(SERCOM5->I2CM),
.speed = I2C_SPEED_NORMAL,
.scl_pin = GPIO_PIN(PB, 3),
.sda_pin = GPIO_PIN(PB, 2),
.mux = GPIO_MUX_D,
.gclk_src = SAM0_GCLK_PERIPH,
.flags = I2C_FLAG_NONE
},
}
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
Definition periph_cpu.h:46
@ I2C_SPEED_NORMAL
normal mode: ~100 kbit/s
Definition periph_cpu.h:278
@ PB
port B
@ I2C_FLAG_NONE
No flags set.
@ GPIO_MUX_D
select peripheral function D
#define SAM0_GCLK_PERIPH
12-48 MHz (DFLL) clock
Definition periph_cpu.h:82

Definition at line 91 of file periph_conf.h.

◆ sam_usbdev_config

const sam0_common_usb_config_t sam_usbdev_config[]
static
Initial value:
= {
{
.dm = GPIO_PIN(PA, 24),
.dp = GPIO_PIN(PA, 25),
.d_mux = GPIO_MUX_H,
.device = &USB->DEVICE,
.gclk_src = SAM0_GCLK_PERIPH,
}
}
@ PA
port A
@ GPIO_MUX_H
select peripheral function H

Definition at line 217 of file periph_conf.h.

◆ spi_config

const spi_conf_t spi_config[]
static

Definition at line 155 of file periph_conf.h.

◆ timer_config

const tc32_conf_t timer_config[]
static
Initial value:
= {
{
.dev = TC0,
.irq = TC0_IRQn,
.mclk = &MCLK->APBAMASK.reg,
.mclk_mask = MCLK_APBAMASK_TC0 | MCLK_APBAMASK_TC1,
.gclk_id = TC0_GCLK_ID,
.gclk_src = SAM0_GCLK_TIMER,
.flags = TC_CTRLA_MODE_COUNT32,
},
{
.dev = TC2,
.irq = TC2_IRQn,
.mclk = &MCLK->APBBMASK.reg,
.mclk_mask = MCLK_APBBMASK_TC2 | MCLK_APBBMASK_TC3,
.gclk_id = TC2_GCLK_ID,
.gclk_src = SAM0_GCLK_TIMER,
.flags = TC_CTRLA_MODE_COUNT32,
}
}
#define SAM0_GCLK_TIMER
4-8 MHz clock for xTimer
Definition periph_cpu.h:79

Definition at line 119 of file periph_conf.h.

◆ uart_config

const uart_conf_t uart_config[]
static
Initial value:
= {
{
.dev = &SERCOM3->USART,
.rx_pin = GPIO_PIN(PA, 23),
.tx_pin = GPIO_PIN(PA, 22),
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.gclk_src = SAM0_GCLK_PERIPH,
},
}
@ UART_PAD_RX_1
select pad 1
@ UART_FLAG_NONE
No flags set.
@ UART_PAD_TX_0
select pad 0
@ GPIO_MUX_C
select peripheral function C

Definition at line 232 of file periph_conf.h.