boards/sodaq-explorer/include/periph_conf.h

Configuration of CPU peripherals for the Sodaq LoRaWAN Explorer board.

CLOCK_USE_PLL
1
(1)
CLOCK_PLL_MUL
1
(47U)               /* must be >= 31 & <= 95 */
CLOCK_PLL_DIV
1
(1U)                /* adjust to your needs */
CLOCK_CORECLOCK
1
(((CLOCK_PLL_MUL + 1) * 1000000U) / CLOCK_PLL_DIV)
TIMER_NUMOF
1
(2U)
TIMER_0_EN
1
1
TIMER_1_EN
1
1
TIMER_0_DEV
1
TC3->COUNT16
TIMER_0_CHANNELS
1
2
TIMER_0_MAX_VALUE
1
(0xffff)
TIMER_0_ISR
1
isr_tc3
TIMER_1_DEV
1
TC4->COUNT32
TIMER_1_CHANNELS
1
2
TIMER_1_MAX_VALUE
1
(0xffffffff)
TIMER_1_ISR
1
isr_tc4
UART_0_ISR
1
isr_sercom5
UART_1_ISR
1
isr_sercom4
UART_2_ISR
1
isr_sercom0
UART_NUMOF
1
(sizeof(uart_config) / sizeof(uart_config[0]))
const uart_conf_t uart_config()
ADC_0_EN
1
1
ADC_MAX_CHANNELS
1
17
ADC_0_DEV
1
ADC
ADC_0_IRQ
1
ADC_IRQn
ADC_0_CLK_SOURCE
1
0 /* GCLK_GENERATOR_0 */
ADC_0_PRESCALER
1
ADC_CTRLB_PRESCALER_DIV512
ADC_0_NEG_INPUT
1
ADC_INPUTCTRL_MUXNEG_GND
ADC_0_GAIN_FACTOR_DEFAULT
1
ADC_INPUTCTRL_GAIN_1X
ADC_0_REF_DEFAULT
1
ADC_REFCTRL_REFSEL_INT1V
ADC_0_CHANNELS
1
(7U)
ADC_NUMOF
1
ADC_0_CHANNELS
const adc_conf_chan_t adc_channels()
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
= {
    
    {GPIO_PIN(PB, 0), ADC_INPUTCTRL_MUXPOS_PIN8},     
    {GPIO_PIN(PB, 1), ADC_INPUTCTRL_MUXPOS_PIN9},     
    {GPIO_PIN(PB, 2), ADC_INPUTCTRL_MUXPOS_PIN10},    
    {GPIO_PIN(PB, 3), ADC_INPUTCTRL_MUXPOS_PIN11},    
    {GPIO_PIN(PA, 8), ADC_INPUTCTRL_MUXPOS_PIN16},    
    {GPIO_PIN(PA, 9), ADC_INPUTCTRL_MUXPOS_PIN17},    
    {GPIO_PIN(PA, 4), ADC_INPUTCTRL_MUXPOS_PIN4},     
}
SPI_NUMOF
1
(sizeof(spi_config) / sizeof(spi_config[0]))
const spi_conf_t spi_config()
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
= {
    {
        .dev      = &SERCOM3->SPI,
        .miso_pin = GPIO_PIN(PA, 22),
        .mosi_pin = GPIO_PIN(PA, 20),
        .clk_pin  = GPIO_PIN(PA, 21),
        .miso_mux = GPIO_MUX_C,
        .mosi_mux = GPIO_MUX_C,
        .clk_mux  = GPIO_MUX_C,
        .miso_pad = SPI_PAD_MISO_0,
        .mosi_pad = SPI_PAD_MOSI_2_SCK_3
    }
}
I2C_NUMOF
1
(sizeof(i2c_config) / sizeof(i2c_config[0]))
const i2c_conf_t i2c_config()
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
= {
    {
        .dev      = &(SERCOM1->I2CM),
        .speed    = I2C_SPEED_NORMAL,
        .scl_pin  = GPIO_PIN(PA, 17),
        .sda_pin  = GPIO_PIN(PA, 16),
        .mux      = GPIO_MUX_C,
        .gclk_src = GCLK_CLKCTRL_GEN_GCLK0,
        .flags    = I2C_FLAG_NONE,
    },
    {
        .dev      = &(SERCOM2->I2CM),
        .speed    = I2C_SPEED_NORMAL,
        .scl_pin  = GPIO_PIN(PA, 9),
        .sda_pin  = GPIO_PIN(PA, 8),
        .mux      = GPIO_MUX_C,
        .gclk_src = GCLK_CLKCTRL_GEN_GCLK0,
        .flags    = I2C_FLAG_NONE
    }
}
RTC_NUMOF
1
(1U)
RTC_DEV
1
RTC->MODE2
RTT_NUMOF
1
(1U)
RTT_DEV
1
RTC->MODE0
RTT_IRQ
1
RTC_IRQn
RTT_IRQ_PRIO
1
10
RTT_ISR
1
isr_rtc
RTT_MAX_VALUE
1
(0xffffffff)
RTT_FREQUENCY
1
(32768U)    /* in Hz. For changes see `rtt.c` */
RTT_RUNSTDBY
1
(1)         /* Keep RTT running in sleep states */