boards/feather-m0/include/periph_conf.h

Configuration of CPU peripherals for Adafruit Feather M0.

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_sercom0
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    = &SERCOM0->USART,
        .rx_pin = GPIO_PIN(PA, 11), 
        .tx_pin = GPIO_PIN(PA, 10), 
        .mux    = GPIO_MUX_C,
        .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_1_EN
1
1
PWM_MAX_CHANNELS
1
2
PWM_0_CHANNELS
1
PWM_MAX_CHANNELS
PWM_1_CHANNELS
1
PWM_MAX_CHANNELS
PWM_NUMOF
1
(2U)
const pwm_conf_t pwm_config()
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
= {

    {TCC0, {
        
        { GPIO_UNDEF, (gpio_mux_t)0,  0 },
        { GPIO_PIN(PA, 7), GPIO_MUX_E, 1 }, 
    }},


    {TCC2, {
        
        { GPIO_PIN(PA, 16), GPIO_MUX_E, 0 }, 
        { GPIO_UNDEF, (gpio_mux_t)0, 1 },
    }},

}
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
(6U)
ADC_NUMOF
1
ADC_0_CHANNELS
const adc_conf_chan_t adc_channels()
1
2
3
4
5
6
7
8
9
= {
    
    { GPIO_PIN(PA, 2), ADC_INPUTCTRL_MUXPOS_PIN0 },     
    { GPIO_PIN(PB, 8), ADC_INPUTCTRL_MUXPOS_PIN2 },     
    { GPIO_PIN(PB, 9), ADC_INPUTCTRL_MUXPOS_PIN3 },     
    { GPIO_PIN(PA, 4), ADC_INPUTCTRL_MUXPOS_PIN4 },     
    { GPIO_PIN(PA, 5), ADC_INPUTCTRL_MUXPOS_PIN5 },     
    { GPIO_PIN(PB, 2), ADC_INPUTCTRL_MUXPOS_PIN10 },    
}
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      = &SERCOM4->SPI,
        .miso_pin = GPIO_PIN(PA, 12),
        .mosi_pin = GPIO_PIN(PB, 10),
        .clk_pin  = GPIO_PIN(PB, 11),
        .miso_mux = GPIO_MUX_D,
        .mosi_mux = GPIO_MUX_D,
        .clk_mux  = GPIO_MUX_D,
        .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
= {
    {
        .dev      = &(SERCOM3->I2CM),
        .speed    = I2C_SPEED_NORMAL,
        .scl_pin  = GPIO_PIN(PA, 23),
        .sda_pin  = GPIO_PIN(PA, 22),
        .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 */