boards/common/arduino-mkr/include/periph_conf.h

Configuration of CPU peripherals for Arduino MKR boards.

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_NUMOF
1
(sizeof(uart_config) / sizeof(uart_config[0]))
const uart_conf_t uart_config()
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
= {
    {
        .dev      = &SERCOM5->USART,
        .rx_pin   = GPIO_PIN(PB,23),  
        .tx_pin   = GPIO_PIN(PB,22),  
        .mux      = GPIO_MUX_D,
        .rx_pad   = UART_PAD_RX_3,
        .tx_pad   = UART_PAD_TX_2,
        .flags    = UART_FLAG_NONE,
        .gclk_src = GCLK_CLKCTRL_GEN_GCLK0
    }
}
PWM_0_EN
1
1
PWM_MAX_CHANNELS
1
(2U)
PWM_0_CHANNELS
1
PWM_MAX_CHANNELS
PWM_NUMOF
1
(sizeof(pwm_config) / sizeof(pwm_config[0]))
const pwm_conf_t pwm_config()
1
2
3
4
5
6
7
8
9
= {

    {TCC0, {
        
        { GPIO_PIN(PA, 10), GPIO_MUX_F, 2 },    
        { GPIO_PIN(PA, 11), GPIO_MUX_F, 3 },    
    }}

}
ADC_0_EN
1
1
ADC_MAX_CHANNELS
1
14
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(PA, 2), ADC_INPUTCTRL_MUXPOS_PIN0},     
    {GPIO_PIN(PB, 2), ADC_INPUTCTRL_MUXPOS_PIN10},    
    {GPIO_PIN(PB, 3), ADC_INPUTCTRL_MUXPOS_PIN11},    
    {GPIO_PIN(PA, 4), ADC_INPUTCTRL_MUXPOS_PIN4},     
    {GPIO_PIN(PA, 5), ADC_INPUTCTRL_MUXPOS_PIN5},     
    {GPIO_PIN(PA, 6), ADC_INPUTCTRL_MUXPOS_PIN6},     
    {GPIO_PIN(PA, 7), ADC_INPUTCTRL_MUXPOS_PIN7},     
}
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
14
15
16
17
18
19
20
21
22
23
24
= {
    {
        .dev      = &SERCOM1->SPI,
        .miso_pin = GPIO_PIN(PA, 19),   
        .mosi_pin = GPIO_PIN(PA, 16),   
        .clk_pin  = GPIO_PIN(PA, 17),   
        .miso_mux = GPIO_MUX_C,
        .mosi_mux = GPIO_MUX_C,
        .clk_mux  = GPIO_MUX_C,
        .miso_pad = SPI_PAD_MISO_3,
        .mosi_pad = SPI_PAD_MOSI_0_SCK_1
    },
    {
        .dev      = &SERCOM2->SPI,
        .miso_pin = GPIO_PIN(PA, 15),
        .mosi_pin = GPIO_PIN(PA, 12),
        .clk_pin  = GPIO_PIN(PA, 13),
        .miso_mux = GPIO_MUX_C,
        .mosi_mux = GPIO_MUX_C,
        .clk_mux  = GPIO_MUX_C,
        .miso_pad = SPI_PAD_MISO_3,
        .mosi_pad = SPI_PAD_MOSI_0_SCK_1
    }
}
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
= {
    {
        .dev      = &(SERCOM0->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 */