CPU specific definitions for internal peripheral handling. More...
CPU specific definitions for internal peripheral handling.
CPU specific definitions for internal peripheral handling
Definition in file periph_cpu.h.
#include <limits.h>#include "periph_cpu_common.h"
Include dependency graph for periph_cpu.h:Go to the source code of this file.
Data Structures | |
| struct | sam0_aux_cfg_mapping |
| NVM User Row Mapping - Dedicated Entries Config values will be applied at power-on. More... | |
Macros | |
| #define | PM_BLOCKER_INITIAL { 1, 0, 0, 0 } |
| Override the default initial PM blocker Idle modes are enabled by default, deep sleep mode blocked. | |
| #define | SPI_HWCS(x) (UINT_MAX - 1) |
| Override SPI hardware chip select macro. More... | |
| #define | DAC_RES_BITS (10) |
| The MCU has a 10 bit DAC. | |
| #define | DAC_NUMOF (1) |
| The MCU has one DAC Output. | |
Functions | |
| static int | _sercom_id (SercomUsart *sercom) |
| Return the numeric id of a SERCOM device derived from its address. More... | |
Variables | |
| static const gpio_t | sam0_adc_pins [1][20] |
| Pins that can be used for ADC input. More... | |
Power mode configuration | |
| #define | PM_NUM_MODES (4) |
SAMD21 sleep modes for PM | |
| #define | SAMD21_PM_STANDBY (0U) |
| Standby mode (stops main clock) | |
| #define | SAMD21_PM_IDLE_2 (1U) |
| Idle 2 (stops AHB, APB and CPU) | |
| #define | SAMD21_PM_IDLE_1 (2U) |
| Idle 1 (stops AHB and CPU) | |
| #define | SAMD21_PM_IDLE_0 (3U) |
| Idle 0 (stops CPU) | |
SPI configuration | |
| #define | SAM0_SPI_PM_BLOCK SAMD21_PM_IDLE_1 |
| Stay in Idle 0 mode. | |
USB configuration | |
| #define | SAM0_USB_ACTIVE_PM_BLOCK SAMD21_PM_IDLE_1 |
| Stay in Idle 0 mode. | |
| #define | ADC_INPUTCTRL_MUXPOS_PA02 ADC_INPUTCTRL_MUXPOS_PIN0 |
| ADC pin aliases. More... | |
| #define | ADC_INPUTCTRL_MUXPOS_PA03 ADC_INPUTCTRL_MUXPOS_PIN1 |
| Alias for PIN1. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB08 ADC_INPUTCTRL_MUXPOS_PIN2 |
| Alias for PIN2. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB09 ADC_INPUTCTRL_MUXPOS_PIN3 |
| Alias for PIN3. | |
| #define | ADC_INPUTCTRL_MUXPOS_PA04 ADC_INPUTCTRL_MUXPOS_PIN4 |
| Alias for PIN4. | |
| #define | ADC_INPUTCTRL_MUXPOS_PA05 ADC_INPUTCTRL_MUXPOS_PIN5 |
| Alias for PIN5. | |
| #define | ADC_INPUTCTRL_MUXPOS_PA06 ADC_INPUTCTRL_MUXPOS_PIN6 |
| Alias for PIN6. | |
| #define | ADC_INPUTCTRL_MUXPOS_PA07 ADC_INPUTCTRL_MUXPOS_PIN7 |
| Alias for PIN7. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB00 ADC_INPUTCTRL_MUXPOS_PIN8 |
| Alias for PIN8. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB01 ADC_INPUTCTRL_MUXPOS_PIN9 |
| Alias for PIN9. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB02 ADC_INPUTCTRL_MUXPOS_PIN10 |
| Alias for PIN10. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB03 ADC_INPUTCTRL_MUXPOS_PIN11 |
| Alias for PIN11. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB04 ADC_INPUTCTRL_MUXPOS_PIN12 |
| Alias for PIN12. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB05 ADC_INPUTCTRL_MUXPOS_PIN13 |
| Alias for PIN13. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB06 ADC_INPUTCTRL_MUXPOS_PIN14 |
| Alias for PIN14. | |
| #define | ADC_INPUTCTRL_MUXPOS_PB07 ADC_INPUTCTRL_MUXPOS_PIN15 |
| Alias for PIN15. | |
| #define | ADC_INPUTCTRL_MUXPOS_PA08 ADC_INPUTCTRL_MUXPOS_PIN16 |
| Alias for PIN16. | |
| #define | ADC_INPUTCTRL_MUXPOS_PA09 ADC_INPUTCTRL_MUXPOS_PIN17 |
| Alias for PIN17. | |
| #define | ADC_INPUTCTRL_MUXPOS_PA10 ADC_INPUTCTRL_MUXPOS_PIN18 |
| Alias for PIN18. | |
| #define | ADC_INPUTCTRL_MUXPOS_PA11 ADC_INPUTCTRL_MUXPOS_PIN19 |
| Alias for PIN19. | |
| #define | ADC_INPUTCTRL_MUXNEG_PA02 ADC_INPUTCTRL_MUXPOS_PIN0 |
| Alias for PIN0. | |
| #define | ADC_INPUTCTRL_MUXNEG_PA03 ADC_INPUTCTRL_MUXPOS_PIN1 |
| Alias for PIN1. | |
| #define | ADC_INPUTCTRL_MUXNEG_PB08 ADC_INPUTCTRL_MUXPOS_PIN2 |
| Alias for PIN2. | |
| #define | ADC_INPUTCTRL_MUXNEG_PB09 ADC_INPUTCTRL_MUXPOS_PIN3 |
| Alias for PIN3. | |
| #define | ADC_INPUTCTRL_MUXNEG_PA04 ADC_INPUTCTRL_MUXPOS_PIN4 |
| Alias for PIN4. | |
| #define | ADC_INPUTCTRL_MUXNEG_PA05 ADC_INPUTCTRL_MUXPOS_PIN5 |
| Alias for PIN5. | |
| #define | ADC_INPUTCTRL_MUXNEG_PA06 ADC_INPUTCTRL_MUXPOS_PIN6 |
| Alias for PIN6. | |
| #define | ADC_INPUTCTRL_MUXNEG_PA07 ADC_INPUTCTRL_MUXPOS_PIN7 |
| Alias for PIN7. | |
Real time counter configuration | |
| #define | RTT_RUNSTDBY (1) /* Keep RTT running in sleep states */ |
| #define | RTT_MAX_VALUE (0xffffffff) |
| #define | RTT_CLOCK_FREQUENCY (32768U) /* in Hz */ |
| #define | RTT_MIN_FREQUENCY (RTT_CLOCK_FREQUENCY / 1024U) /* in Hz */ |
| #define | RTT_MAX_FREQUENCY (RTT_CLOCK_FREQUENCY) /* in Hz */ |
SAMD21 GCLK definitions | |
| enum | { SAM0_GCLK_MAIN = 0 , SAM0_GCLK_1MHZ , SAM0_GCLK_32KHZ , SAM0_GCLK_1KHZ , SAM0_GCLK_DISABLED = 0xF } |
| #define ADC_INPUTCTRL_MUXPOS_PA02 ADC_INPUTCTRL_MUXPOS_PIN0 |
| #define SPI_HWCS | ( | x | ) | (UINT_MAX - 1) |
Override SPI hardware chip select macro.
As of now, we do not support HW CS, so we always set it to a fixed value
Definition at line 84 of file periph_cpu.h.
| anonymous enum |
| Enumerator | |
|---|---|
| SAM0_GCLK_MAIN | 48 MHz main clock |
| SAM0_GCLK_1MHZ | 1 MHz clock for xTimer |
| SAM0_GCLK_32KHZ | 32 kHz clock |
| SAM0_GCLK_1KHZ | 1 kHz clock |
| SAM0_GCLK_DISABLED | disabled GCLK |
Definition at line 70 of file periph_cpu.h.
|
inlinestatic |
Return the numeric id of a SERCOM device derived from its address.
| [in] | sercom | SERCOM device |
Definition at line 93 of file periph_cpu.h.
|
static |
Pins that can be used for ADC input.
Definition at line 101 of file periph_cpu.h.