mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Committer:
screamer
Date:
Tue Aug 02 14:07:36 2016 +0000
Revision:
144:423e1876dc07
Parent:
15:a81a8d6c1dfe
Added targets.json file for the supported targets in the release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 15:a81a8d6c1dfe 1 #ifndef SAMR21_XPLAINED_PRO_H_INCLUDED
mbed_official 15:a81a8d6c1dfe 2 #define SAMR21_XPLAINED_PRO_H_INCLUDED
mbed_official 15:a81a8d6c1dfe 3
mbed_official 15:a81a8d6c1dfe 4 #include <conf_board.h>
mbed_official 15:a81a8d6c1dfe 5 #include <compiler.h>
mbed_official 15:a81a8d6c1dfe 6
mbed_official 15:a81a8d6c1dfe 7 #ifdef __cplusplus
mbed_official 15:a81a8d6c1dfe 8 extern "C" {
mbed_official 15:a81a8d6c1dfe 9 #endif
mbed_official 15:a81a8d6c1dfe 10
mbed_official 15:a81a8d6c1dfe 11 /**
mbed_official 15:a81a8d6c1dfe 12 * \ingroup group_common_boards
mbed_official 15:a81a8d6c1dfe 13 * \defgroup samr21_xplained_pro_group SAM R21 Xplained Pro board
mbed_official 15:a81a8d6c1dfe 14 *
mbed_official 15:a81a8d6c1dfe 15 * @{
mbed_official 15:a81a8d6c1dfe 16 */
mbed_official 15:a81a8d6c1dfe 17
mbed_official 15:a81a8d6c1dfe 18 void system_board_init(void);
mbed_official 15:a81a8d6c1dfe 19
mbed_official 15:a81a8d6c1dfe 20 /**
mbed_official 15:a81a8d6c1dfe 21 * \defgroup samr21_xplained_pro_features_group Features
mbed_official 15:a81a8d6c1dfe 22 *
mbed_official 15:a81a8d6c1dfe 23 * Symbols that describe features and capabilities of the board.
mbed_official 15:a81a8d6c1dfe 24 *
mbed_official 15:a81a8d6c1dfe 25 * @{
mbed_official 15:a81a8d6c1dfe 26 */
mbed_official 15:a81a8d6c1dfe 27
mbed_official 15:a81a8d6c1dfe 28 /** Name string macro */
mbed_official 15:a81a8d6c1dfe 29 #define BOARD_NAME "SAMR21_XPLAINED_PRO"
mbed_official 15:a81a8d6c1dfe 30
mbed_official 15:a81a8d6c1dfe 31 /** \name Resonator definitions
mbed_official 15:a81a8d6c1dfe 32 * @{ */
mbed_official 15:a81a8d6c1dfe 33 #define BOARD_FREQ_SLCK_XTAL (32768U)
mbed_official 15:a81a8d6c1dfe 34 #define BOARD_FREQ_SLCK_BYPASS (32768U)
mbed_official 15:a81a8d6c1dfe 35 #define BOARD_FREQ_MAINCK_XTAL 0 /* Not Mounted */
mbed_official 15:a81a8d6c1dfe 36 #define BOARD_FREQ_MAINCK_BYPASS 0 /* Not Mounted */
mbed_official 15:a81a8d6c1dfe 37 #define BOARD_MCK CHIP_FREQ_CPU_MAX
mbed_official 15:a81a8d6c1dfe 38 #define BOARD_OSC_STARTUP_US 15625
mbed_official 15:a81a8d6c1dfe 39 /** @} */
mbed_official 15:a81a8d6c1dfe 40
mbed_official 15:a81a8d6c1dfe 41 /** \name LED0 definitions
mbed_official 15:a81a8d6c1dfe 42 * @{ */
mbed_official 15:a81a8d6c1dfe 43 #define LED0_PIN PIN_PA19
mbed_official 15:a81a8d6c1dfe 44 #define LED0_ACTIVE false
mbed_official 15:a81a8d6c1dfe 45 #define LED0_INACTIVE !LED0_ACTIVE
mbed_official 15:a81a8d6c1dfe 46 #define LED0 LED0_PIN
mbed_official 15:a81a8d6c1dfe 47 /** @} */
mbed_official 15:a81a8d6c1dfe 48
mbed_official 15:a81a8d6c1dfe 49 /** \name SW0 definitions
mbed_official 15:a81a8d6c1dfe 50 * @{ */
mbed_official 15:a81a8d6c1dfe 51 #define SW0_PIN PIN_PA28
mbed_official 15:a81a8d6c1dfe 52 #define SW0_ACTIVE false
mbed_official 15:a81a8d6c1dfe 53 #define SW0_INACTIVE !SW0_ACTIVE
mbed_official 15:a81a8d6c1dfe 54 #define SW0_EIC_PIN PIN_PA28A_EIC_EXTINT8
mbed_official 15:a81a8d6c1dfe 55 #define SW0_EIC_MUX MUX_PA28A_EIC_EXTINT8
mbed_official 15:a81a8d6c1dfe 56 #define SW0_EIC_PINMUX PINMUX_PA28A_EIC_EXTINT8
mbed_official 15:a81a8d6c1dfe 57 #define SW0_EIC_LINE 8
mbed_official 15:a81a8d6c1dfe 58 /** @} */
mbed_official 15:a81a8d6c1dfe 59
mbed_official 15:a81a8d6c1dfe 60 /**
mbed_official 15:a81a8d6c1dfe 61 * \name LED #0 definitions
mbed_official 15:a81a8d6c1dfe 62 *
mbed_official 15:a81a8d6c1dfe 63 * Wrapper macros for LED0, to ensure common naming across all Xplained Pro
mbed_official 15:a81a8d6c1dfe 64 * boards.
mbed_official 15:a81a8d6c1dfe 65 *
mbed_official 15:a81a8d6c1dfe 66 * @{ */
mbed_official 15:a81a8d6c1dfe 67 #define LED_0_NAME "LED0 (yellow)"
mbed_official 15:a81a8d6c1dfe 68 #define LED_0_PIN LED0_PIN
mbed_official 15:a81a8d6c1dfe 69 #define LED_0_ACTIVE LED0_ACTIVE
mbed_official 15:a81a8d6c1dfe 70 #define LED_0_INACTIVE LED0_INACTIVE
mbed_official 15:a81a8d6c1dfe 71 #define LED0_GPIO LED0_PIN
mbed_official 15:a81a8d6c1dfe 72
mbed_official 15:a81a8d6c1dfe 73 #define LED_0_PWM_MODULE TC3
mbed_official 15:a81a8d6c1dfe 74 #define LED_0_PWM_CHANNEL 1
mbed_official 15:a81a8d6c1dfe 75 #define LED_0_PWM_OUTPUT 1
mbed_official 15:a81a8d6c1dfe 76 #define LED_0_PWM_PIN PIN_PA19E_TC3_WO1
mbed_official 15:a81a8d6c1dfe 77 #define LED_0_PWM_MUX MUX_PA19E_TC3_WO1
mbed_official 15:a81a8d6c1dfe 78 #define LED_0_PWM_PINMUX PINMUX_PA19E_TC3_WO1
mbed_official 15:a81a8d6c1dfe 79
mbed_official 15:a81a8d6c1dfe 80 #define LED_0_PWM4CTRL_MODULE TCC0
mbed_official 15:a81a8d6c1dfe 81 #define LED_0_PWM4CTRL_CHANNEL 3
mbed_official 15:a81a8d6c1dfe 82 #define LED_0_PWM4CTRL_OUTPUT 3
mbed_official 15:a81a8d6c1dfe 83 #define LED_0_PWM4CTRL_PIN PIN_PA19F_TCC0_WO3
mbed_official 15:a81a8d6c1dfe 84 #define LED_0_PWM4CTRL_MUX MUX_PA19F_TCC0_WO3
mbed_official 15:a81a8d6c1dfe 85 #define LED_0_PWM4CTRL_PINMUX PINMUX_PA19F_TCC0_WO3
mbed_official 15:a81a8d6c1dfe 86 /** @} */
mbed_official 15:a81a8d6c1dfe 87
mbed_official 15:a81a8d6c1dfe 88 /** Number of on-board LEDs */
mbed_official 15:a81a8d6c1dfe 89 #define LED_COUNT 1
mbed_official 15:a81a8d6c1dfe 90
mbed_official 15:a81a8d6c1dfe 91
mbed_official 15:a81a8d6c1dfe 92 /**
mbed_official 15:a81a8d6c1dfe 93 * \name Button #0 definitions
mbed_official 15:a81a8d6c1dfe 94 *
mbed_official 15:a81a8d6c1dfe 95 * Wrapper macros for SW0, to ensure common naming across all Xplained Pro
mbed_official 15:a81a8d6c1dfe 96 * boards.
mbed_official 15:a81a8d6c1dfe 97 *
mbed_official 15:a81a8d6c1dfe 98 * @{ */
mbed_official 15:a81a8d6c1dfe 99 #define BUTTON_0_NAME "SW0"
mbed_official 15:a81a8d6c1dfe 100 #define BUTTON_0_PIN SW0_PIN
mbed_official 15:a81a8d6c1dfe 101 #define BUTTON_0_ACTIVE SW0_ACTIVE
mbed_official 15:a81a8d6c1dfe 102 #define BUTTON_0_INACTIVE SW0_INACTIVE
mbed_official 15:a81a8d6c1dfe 103 #define BUTTON_0_EIC_PIN SW0_EIC_PIN
mbed_official 15:a81a8d6c1dfe 104 #define BUTTON_0_EIC_MUX SW0_EIC_MUX
mbed_official 15:a81a8d6c1dfe 105 #define BUTTON_0_EIC_PINMUX SW0_EIC_PINMUX
mbed_official 15:a81a8d6c1dfe 106 #define BUTTON_0_EIC_LINE SW0_EIC_LINE
mbed_official 15:a81a8d6c1dfe 107 /** @} */
mbed_official 15:a81a8d6c1dfe 108
mbed_official 15:a81a8d6c1dfe 109 /** Number of on-board buttons */
mbed_official 15:a81a8d6c1dfe 110 #define BUTTON_COUNT 1
mbed_official 15:a81a8d6c1dfe 111
mbed_official 15:a81a8d6c1dfe 112 /** \name Extension header #1 pin definitions
mbed_official 15:a81a8d6c1dfe 113 * @{
mbed_official 15:a81a8d6c1dfe 114 */
mbed_official 15:a81a8d6c1dfe 115 #define EXT1_PIN_3 PIN_PA06
mbed_official 15:a81a8d6c1dfe 116 #define EXT1_PIN_4 PIN_PA07
mbed_official 15:a81a8d6c1dfe 117 #define EXT1_PIN_5 PIN_PA13
mbed_official 15:a81a8d6c1dfe 118 #define EXT1_PIN_6 PIN_PA28
mbed_official 15:a81a8d6c1dfe 119 #define EXT1_PIN_7 PIN_PA18
mbed_official 15:a81a8d6c1dfe 120 #define EXT1_PIN_8 PIN_PA19
mbed_official 15:a81a8d6c1dfe 121 #define EXT1_PIN_9 PIN_PA22
mbed_official 15:a81a8d6c1dfe 122 #define EXT1_PIN_10 PIN_PA23
mbed_official 15:a81a8d6c1dfe 123 #define EXT1_PIN_11 PIN_PA16
mbed_official 15:a81a8d6c1dfe 124 #define EXT1_PIN_12 PIN_PA17
mbed_official 15:a81a8d6c1dfe 125 #define EXT1_PIN_13 PIN_PA05
mbed_official 15:a81a8d6c1dfe 126 #define EXT1_PIN_14 PIN_PA04
mbed_official 15:a81a8d6c1dfe 127 #define EXT1_PIN_15 PIN_PB03
mbed_official 15:a81a8d6c1dfe 128 #define EXT1_PIN_16 PIN_PB22
mbed_official 15:a81a8d6c1dfe 129 #define EXT1_PIN_17 PIN_PB02
mbed_official 15:a81a8d6c1dfe 130 #define EXT1_PIN_18 PIN_PB23
mbed_official 15:a81a8d6c1dfe 131 /** @} */
mbed_official 15:a81a8d6c1dfe 132
mbed_official 15:a81a8d6c1dfe 133 /** \name Extension header #1 pin definitions by function
mbed_official 15:a81a8d6c1dfe 134 * @{
mbed_official 15:a81a8d6c1dfe 135 */
mbed_official 15:a81a8d6c1dfe 136 #define EXT1_PIN_ADC_0 EXT1_PIN_3
mbed_official 15:a81a8d6c1dfe 137 #define EXT1_PIN_ADC_1 EXT1_PIN_4
mbed_official 15:a81a8d6c1dfe 138 #define EXT1_PIN_GPIO_0 EXT1_PIN_5
mbed_official 15:a81a8d6c1dfe 139 #define EXT1_PIN_GPIO_1 EXT1_PIN_6
mbed_official 15:a81a8d6c1dfe 140 #define EXT1_PIN_PWM_0 EXT1_PIN_7
mbed_official 15:a81a8d6c1dfe 141 #define EXT1_PIN_PWM_1 EXT1_PIN_8
mbed_official 15:a81a8d6c1dfe 142 #define EXT1_PIN_GPIO_3 EXT1_PIN_9
mbed_official 15:a81a8d6c1dfe 143 #define EXT1_PIN_GPIO_4 EXT1_PIN_10
mbed_official 15:a81a8d6c1dfe 144 #define EXT1_PIN_I2C_SDA EXT1_PIN_11
mbed_official 15:a81a8d6c1dfe 145 #define EXT1_PIN_I2C_SCL EXT1_PIN_12
mbed_official 15:a81a8d6c1dfe 146 #define EXT1_PIN_UART_RX EXT1_PIN_13
mbed_official 15:a81a8d6c1dfe 147 #define EXT1_PIN_UART_TX EXT1_PIN_14
mbed_official 15:a81a8d6c1dfe 148 #define EXT1_PIN_SPI_SS_0 EXT1_PIN_15
mbed_official 15:a81a8d6c1dfe 149 #define EXT1_PIN_SPI_MOSI EXT1_PIN_16
mbed_official 15:a81a8d6c1dfe 150 #define EXT1_PIN_SPI_MISO EXT1_PIN_17
mbed_official 15:a81a8d6c1dfe 151 #define EXT1_PIN_SPI_SCK EXT1_PIN_18
mbed_official 15:a81a8d6c1dfe 152 /** @} */
mbed_official 15:a81a8d6c1dfe 153
mbed_official 15:a81a8d6c1dfe 154 /** \name Extension header #1 ADC definitions
mbed_official 15:a81a8d6c1dfe 155 * @{
mbed_official 15:a81a8d6c1dfe 156 */
mbed_official 15:a81a8d6c1dfe 157 #define EXT1_ADC_MODULE ADC
mbed_official 15:a81a8d6c1dfe 158 #define EXT1_ADC_0_CHANNEL 6
mbed_official 15:a81a8d6c1dfe 159 #define EXT1_ADC_0_PIN PIN_PA06B_ADC_AIN6
mbed_official 15:a81a8d6c1dfe 160 #define EXT1_ADC_0_MUX MUX_PA06B_ADC_AIN6
mbed_official 15:a81a8d6c1dfe 161 #define EXT1_ADC_0_PINMUX PINMUX_PA06B_ADC_AIN6
mbed_official 15:a81a8d6c1dfe 162 #define EXT1_ADC_1_CHANNEL 7
mbed_official 15:a81a8d6c1dfe 163 #define EXT1_ADC_1_PIN PIN_PA07B_ADC_AIN7
mbed_official 15:a81a8d6c1dfe 164 #define EXT1_ADC_1_MUX MUX_PA07B_ADC_AIN7
mbed_official 15:a81a8d6c1dfe 165 #define EXT1_ADC_1_PINMUX PINMUX_PA07B_ADC_AIN7
mbed_official 15:a81a8d6c1dfe 166 /** @} */
mbed_official 15:a81a8d6c1dfe 167
mbed_official 15:a81a8d6c1dfe 168 /** \name Extension header #1 PWM definitions
mbed_official 15:a81a8d6c1dfe 169 * @{
mbed_official 15:a81a8d6c1dfe 170 */
mbed_official 15:a81a8d6c1dfe 171 #define EXT1_PWM_MODULE TC3
mbed_official 15:a81a8d6c1dfe 172 #define EXT1_PWM_0_CHANNEL 0
mbed_official 15:a81a8d6c1dfe 173 #define EXT1_PWM_0_PIN PIN_PA18E_TC3_WO0
mbed_official 15:a81a8d6c1dfe 174 #define EXT1_PWM_0_MUX MUX_PA18E_TC3_WO0
mbed_official 15:a81a8d6c1dfe 175 #define EXT1_PWM_0_PINMUX PINMUX_PA18E_TC3_WO0
mbed_official 15:a81a8d6c1dfe 176 #define EXT1_PWM_1_CHANNEL 1
mbed_official 15:a81a8d6c1dfe 177 #define EXT1_PWM_1_PIN PIN_PA19E_TC3_WO1
mbed_official 15:a81a8d6c1dfe 178 #define EXT1_PWM_1_MUX MUX_PA19E_TC3_WO1
mbed_official 15:a81a8d6c1dfe 179 #define EXT1_PWM_1_PINMUX PINMUX_PA19E_TC3_WO1
mbed_official 15:a81a8d6c1dfe 180 /** @} */
mbed_official 15:a81a8d6c1dfe 181
mbed_official 15:a81a8d6c1dfe 182 /** \name Extension header #1 PWM for Control definitions
mbed_official 15:a81a8d6c1dfe 183 * @{
mbed_official 15:a81a8d6c1dfe 184 */
mbed_official 15:a81a8d6c1dfe 185 #define EXT1_PWM4CTRL_MODULE TCC0
mbed_official 15:a81a8d6c1dfe 186 #define EXT1_PWM4CTRL_0_CHANNEL 2
mbed_official 15:a81a8d6c1dfe 187 #define EXT1_PWM4CTRL_0_OUTPUT 2
mbed_official 15:a81a8d6c1dfe 188 #define EXT1_PWM4CTRL_0_PIN PIN_PA18F_TCC0_WO2
mbed_official 15:a81a8d6c1dfe 189 #define EXT1_PWM4CTRL_0_MUX MUX_PA18F_TCC0_WO2
mbed_official 15:a81a8d6c1dfe 190 #define EXT1_PWM4CTRL_0_PINMUX PINMUX_PA18F_TCC0_WO2
mbed_official 15:a81a8d6c1dfe 191 #define EXT1_PWM4CTRL_1_CHANNEL 3
mbed_official 15:a81a8d6c1dfe 192 #define EXT1_PWM4CTRL_1_OUTPUT 3
mbed_official 15:a81a8d6c1dfe 193 #define EXT1_PWM4CTRL_1_PIN PIN_PA19F_TCC0_WO3
mbed_official 15:a81a8d6c1dfe 194 #define EXT1_PWM4CTRL_1_MUX MUX_PA19F_TCC0_WO3
mbed_official 15:a81a8d6c1dfe 195 #define EXT1_PWM4CTRL_1_PINMUX PINMUX_PA19F_TCC0_WO3
mbed_official 15:a81a8d6c1dfe 196 /** @} */
mbed_official 15:a81a8d6c1dfe 197
mbed_official 15:a81a8d6c1dfe 198 /** \name Extension header #1 IRQ/External interrupt definitions
mbed_official 15:a81a8d6c1dfe 199 * @{
mbed_official 15:a81a8d6c1dfe 200 */
mbed_official 15:a81a8d6c1dfe 201 #define EXT1_IRQ_MODULE EIC
mbed_official 15:a81a8d6c1dfe 202 #define EXT1_IRQ_INPUT 6
mbed_official 15:a81a8d6c1dfe 203 #define EXT1_IRQ_PIN PIN_PA22A_EIC_EXTINT6
mbed_official 15:a81a8d6c1dfe 204 #define EXT1_IRQ_MUX MUX_PA22A_EIC_EXTINT6
mbed_official 15:a81a8d6c1dfe 205 #define EXT1_IRQ_PINMUX PINMUX_PA22A_EIC_EXTINT6
mbed_official 15:a81a8d6c1dfe 206 /** @} */
mbed_official 15:a81a8d6c1dfe 207
mbed_official 15:a81a8d6c1dfe 208 /** \name Extension header #1 I2C definitions
mbed_official 15:a81a8d6c1dfe 209 * @{
mbed_official 15:a81a8d6c1dfe 210 */
mbed_official 15:a81a8d6c1dfe 211 #define EXT1_I2C_MODULE SERCOM1
mbed_official 15:a81a8d6c1dfe 212 #define EXT1_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA16C_SERCOM1_PAD0
mbed_official 15:a81a8d6c1dfe 213 #define EXT1_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA17C_SERCOM1_PAD1
mbed_official 15:a81a8d6c1dfe 214 #define EXT1_I2C_SERCOM_DMAC_ID_TX SERCOM1_DMAC_ID_TX
mbed_official 15:a81a8d6c1dfe 215 #define EXT1_I2C_SERCOM_DMAC_ID_RX SERCOM1_DMAC_ID_RX
mbed_official 15:a81a8d6c1dfe 216 /** @} */
mbed_official 15:a81a8d6c1dfe 217
mbed_official 15:a81a8d6c1dfe 218 /** \name Extension header #1 UART definitions
mbed_official 15:a81a8d6c1dfe 219 * @{
mbed_official 15:a81a8d6c1dfe 220 */
mbed_official 15:a81a8d6c1dfe 221 #define EXT1_UART_MODULE SERCOM0
mbed_official 15:a81a8d6c1dfe 222 #define EXT1_UART_SERCOM_MUX_SETTING USART_RX_1_TX_0_XCK_1
mbed_official 15:a81a8d6c1dfe 223 #define EXT1_UART_SERCOM_PINMUX_PAD0 PINMUX_PA04D_SERCOM0_PAD0
mbed_official 15:a81a8d6c1dfe 224 #define EXT1_UART_SERCOM_PINMUX_PAD1 PINMUX_PA05D_SERCOM0_PAD1
mbed_official 15:a81a8d6c1dfe 225 #define EXT1_UART_SERCOM_PINMUX_PAD2 PINMUX_UNUSED
mbed_official 15:a81a8d6c1dfe 226 #define EXT1_UART_SERCOM_PINMUX_PAD3 PINMUX_UNUSED
mbed_official 15:a81a8d6c1dfe 227 #define EXT1_UART_SERCOM_DMAC_ID_TX SERCOM0_DMAC_ID_TX
mbed_official 15:a81a8d6c1dfe 228 #define EXT1_UART_SERCOM_DMAC_ID_RX SERCOM0_DMAC_ID_RX
mbed_official 15:a81a8d6c1dfe 229 /** @} */
mbed_official 15:a81a8d6c1dfe 230
mbed_official 15:a81a8d6c1dfe 231 /** \name Extension header #1 SPI definitions
mbed_official 15:a81a8d6c1dfe 232 * @{
mbed_official 15:a81a8d6c1dfe 233 */
mbed_official 15:a81a8d6c1dfe 234 #define EXT1_SPI_MODULE SERCOM5
mbed_official 15:a81a8d6c1dfe 235 #define EXT1_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
mbed_official 15:a81a8d6c1dfe 236 #define EXT1_SPI_SERCOM_PINMUX_PAD0 PINMUX_PB02D_SERCOM5_PAD0
mbed_official 15:a81a8d6c1dfe 237 #define EXT1_SPI_SERCOM_PINMUX_PAD1 PINMUX_PB03D_SERCOM5_PAD1
mbed_official 15:a81a8d6c1dfe 238 #define EXT1_SPI_SERCOM_PINMUX_PAD2 PINMUX_PB22D_SERCOM5_PAD2
mbed_official 15:a81a8d6c1dfe 239 #define EXT1_SPI_SERCOM_PINMUX_PAD3 PINMUX_PB23D_SERCOM5_PAD3
mbed_official 15:a81a8d6c1dfe 240 #define EXT1_SPI_SERCOM_DMAC_ID_TX SERCOM5_DMAC_ID_TX
mbed_official 15:a81a8d6c1dfe 241 #define EXT1_SPI_SERCOM_DMAC_ID_RX SERCOM5_DMAC_ID_RX
mbed_official 15:a81a8d6c1dfe 242 /** @} */
mbed_official 15:a81a8d6c1dfe 243
mbed_official 15:a81a8d6c1dfe 244 /** \name Extension header #3 pin definitions
mbed_official 15:a81a8d6c1dfe 245 * @{
mbed_official 15:a81a8d6c1dfe 246 */
mbed_official 15:a81a8d6c1dfe 247 #define EXT3_PIN_5 PIN_PA15
mbed_official 15:a81a8d6c1dfe 248 #define EXT3_PIN_10 PIN_PA08
mbed_official 15:a81a8d6c1dfe 249 #define EXT3_PIN_11 PIN_PA16
mbed_official 15:a81a8d6c1dfe 250 #define EXT3_PIN_12 PIN_PA17
mbed_official 15:a81a8d6c1dfe 251 #define EXT3_PIN_15 PIN_PA14
mbed_official 15:a81a8d6c1dfe 252 #define EXT3_PIN_16 PIN_PB22
mbed_official 15:a81a8d6c1dfe 253 #define EXT3_PIN_17 PIN_PB02
mbed_official 15:a81a8d6c1dfe 254 #define EXT3_PIN_18 PIN_PB23
mbed_official 15:a81a8d6c1dfe 255 /** @} */
mbed_official 15:a81a8d6c1dfe 256
mbed_official 15:a81a8d6c1dfe 257 /** \name Extension header #3 pin definitions by function
mbed_official 15:a81a8d6c1dfe 258 * @{
mbed_official 15:a81a8d6c1dfe 259 */
mbed_official 15:a81a8d6c1dfe 260 #define EXT3_PIN_GPIO_0 EXT3_PIN_5
mbed_official 15:a81a8d6c1dfe 261 #define EXT3_PIN_GPIO_1 EXT3_PIN_10
mbed_official 15:a81a8d6c1dfe 262 #define EXT3_PIN_I2C_SDA EXT3_PIN_11
mbed_official 15:a81a8d6c1dfe 263 #define EXT3_PIN_I2C_SCL EXT3_PIN_12
mbed_official 15:a81a8d6c1dfe 264 #define EXT3_PIN_GPIO_2 EXT3_PIN_15
mbed_official 15:a81a8d6c1dfe 265 #define EXT3_PIN_SPI_MOSI EXT3_PIN_16
mbed_official 15:a81a8d6c1dfe 266 #define EXT3_PIN_SPI_MISO EXT3_PIN_17
mbed_official 15:a81a8d6c1dfe 267 #define EXT3_PIN_SPI_SCK EXT3_PIN_18
mbed_official 15:a81a8d6c1dfe 268 /** @} */
mbed_official 15:a81a8d6c1dfe 269
mbed_official 15:a81a8d6c1dfe 270 /** \name Extension header #3 SPI definitions
mbed_official 15:a81a8d6c1dfe 271 * @{
mbed_official 15:a81a8d6c1dfe 272 */
mbed_official 15:a81a8d6c1dfe 273 #define EXT3_SPI_SLAVE_SELECT_PIN PIN_PA14
mbed_official 15:a81a8d6c1dfe 274 #define EXT3_SPI_MODULE SERCOM5
mbed_official 15:a81a8d6c1dfe 275 #define EXT3_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
mbed_official 15:a81a8d6c1dfe 276 #define EXT3_SPI_SERCOM_PINMUX_PAD0 PINMUX_PB02D_SERCOM5_PAD0
mbed_official 15:a81a8d6c1dfe 277 #define EXT3_SPI_SERCOM_PINMUX_PAD1 PINMUX_UNUSED
mbed_official 15:a81a8d6c1dfe 278 #define EXT3_SPI_SERCOM_PINMUX_PAD2 PINMUX_PB22D_SERCOM5_PAD2
mbed_official 15:a81a8d6c1dfe 279 #define EXT3_SPI_SERCOM_PINMUX_PAD3 PINMUX_PB23D_SERCOM5_PAD3
mbed_official 15:a81a8d6c1dfe 280 #define EXT3_SPI_SERCOM_DMAC_ID_TX SERCOM5_DMAC_ID_TX
mbed_official 15:a81a8d6c1dfe 281 #define EXT3_SPI_SERCOM_DMAC_ID_RX SERCOM5_DMAC_ID_RX
mbed_official 15:a81a8d6c1dfe 282 /** @} */
mbed_official 15:a81a8d6c1dfe 283
mbed_official 15:a81a8d6c1dfe 284 /** \name Extension header #3 Dataflash
mbed_official 15:a81a8d6c1dfe 285 * @{
mbed_official 15:a81a8d6c1dfe 286 */
mbed_official 15:a81a8d6c1dfe 287 #define EXT3_DATAFLASH_SPI_MODULE EXT3_SPI_MODULE
mbed_official 15:a81a8d6c1dfe 288 #define EXT3_DATAFLASH_SPI_MUX_SETTING EXT3_SPI_SERCOM_MUX_SETTING
mbed_official 15:a81a8d6c1dfe 289 #define EXT3_DATAFLASH_SPI_PINMUX_PAD0 EXT3_SPI_SERCOM_PINMUX_PAD0
mbed_official 15:a81a8d6c1dfe 290 #define EXT3_DATAFLASH_SPI_PINMUX_PAD1 EXT3_SPI_SERCOM_PINMUX_PAD1
mbed_official 15:a81a8d6c1dfe 291 #define EXT3_DATAFLASH_SPI_PINMUX_PAD2 EXT3_SPI_SERCOM_PINMUX_PAD2
mbed_official 15:a81a8d6c1dfe 292 #define EXT3_DATAFLASH_SPI_PINMUX_PAD3 EXT3_SPI_SERCOM_PINMUX_PAD3
mbed_official 15:a81a8d6c1dfe 293 /** @} */
mbed_official 15:a81a8d6c1dfe 294
mbed_official 15:a81a8d6c1dfe 295 /** \name USB definitions
mbed_official 15:a81a8d6c1dfe 296 * @{
mbed_official 15:a81a8d6c1dfe 297 */
mbed_official 15:a81a8d6c1dfe 298 #define USB_ID
mbed_official 15:a81a8d6c1dfe 299 #define USB_TARGET_DP_PIN PIN_PA25G_USB_DP
mbed_official 15:a81a8d6c1dfe 300 #define USB_TARGET_DP_MUX MUX_PA25G_USB_DP
mbed_official 15:a81a8d6c1dfe 301 #define USB_TARGET_DP_PINMUX PINMUX_PA25G_USB_DP
mbed_official 15:a81a8d6c1dfe 302 #define USB_TARGET_DM_PIN PIN_PA24G_USB_DM
mbed_official 15:a81a8d6c1dfe 303 #define USB_TARGET_DM_MUX MUX_PA24G_USB_DM
mbed_official 15:a81a8d6c1dfe 304 #define USB_TARGET_DM_PINMUX PINMUX_PA24G_USB_DM
mbed_official 15:a81a8d6c1dfe 305 #define USB_VBUS_PIN PIN_PA07
mbed_official 15:a81a8d6c1dfe 306 #define USB_VBUS_EIC_LINE 7
mbed_official 15:a81a8d6c1dfe 307 #define USB_VBUS_EIC_MUX MUX_PA07A_EIC_EXTINT7
mbed_official 15:a81a8d6c1dfe 308 #define USB_VBUS_EIC_PINMUX PINMUX_PA07A_EIC_EXTINT7
mbed_official 15:a81a8d6c1dfe 309 /* USB ID pin is not connected */
mbed_official 15:a81a8d6c1dfe 310 //#define USB_ID_PIN -1
mbed_official 15:a81a8d6c1dfe 311 //#define USB_ID_EIC_LINE -1
mbed_official 15:a81a8d6c1dfe 312 //#define USB_ID_EIC_MUX -1
mbed_official 15:a81a8d6c1dfe 313 //#define USB_ID_EIC_PINMUX -1
mbed_official 15:a81a8d6c1dfe 314 /** @} */
mbed_official 15:a81a8d6c1dfe 315
mbed_official 15:a81a8d6c1dfe 316 /** \name Embedded debugger GPIO interface definitions
mbed_official 15:a81a8d6c1dfe 317 * @{
mbed_official 15:a81a8d6c1dfe 318 */
mbed_official 15:a81a8d6c1dfe 319 #define EDBG_GPIO0_PIN PIN_PA08
mbed_official 15:a81a8d6c1dfe 320 #define EDBG_GPIO1_PIN PIN_PA09
mbed_official 15:a81a8d6c1dfe 321 #define EDBG_GPIO2_PIN PIN_PA12
mbed_official 15:a81a8d6c1dfe 322 #define EDBG_GPIO3_PIN PIN_PA14
mbed_official 15:a81a8d6c1dfe 323 /** @} */
mbed_official 15:a81a8d6c1dfe 324
mbed_official 15:a81a8d6c1dfe 325 /** \name Embedded debugger USART interface definitions
mbed_official 15:a81a8d6c1dfe 326 * @{
mbed_official 15:a81a8d6c1dfe 327 */
mbed_official 15:a81a8d6c1dfe 328 #define EDBG_UART_MODULE -1 /* Not available on this board */
mbed_official 15:a81a8d6c1dfe 329 #define EDBG_UART_RX_PIN -1 /* Not available on this board */
mbed_official 15:a81a8d6c1dfe 330 #define EDBG_UART_RX_MUX -1 /* Not available on this board */
mbed_official 15:a81a8d6c1dfe 331 #define EDBG_UART_RX_PINMUX -1 /* Not available on this board */
mbed_official 15:a81a8d6c1dfe 332 #define EDBG_UART_RX_SERCOM_PAD -1 /* Not available on this board */
mbed_official 15:a81a8d6c1dfe 333 #define EDBG_UART_TX_PIN -1 /* Not available on this board */
mbed_official 15:a81a8d6c1dfe 334 #define EDBG_UART_TX_MUX -1 /* Not available on this board */
mbed_official 15:a81a8d6c1dfe 335 #define EDBG_UART_TX_PINMUX -1 /* Not available on this board */
mbed_official 15:a81a8d6c1dfe 336 #define EDBG_UART_TX_SERCOM_PAD -1 /* Not available on this board */
mbed_official 15:a81a8d6c1dfe 337 /** @} */
mbed_official 15:a81a8d6c1dfe 338
mbed_official 15:a81a8d6c1dfe 339 /** \name Embedded debugger I2C interface definitions
mbed_official 15:a81a8d6c1dfe 340 * @{
mbed_official 15:a81a8d6c1dfe 341 */
mbed_official 15:a81a8d6c1dfe 342 #define EDBG_I2C_MODULE SERCOM1
mbed_official 15:a81a8d6c1dfe 343 #define EDBG_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA16C_SERCOM1_PAD0
mbed_official 15:a81a8d6c1dfe 344 #define EDBG_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA17C_SERCOM1_PAD1
mbed_official 15:a81a8d6c1dfe 345 #define EDBG_I2C_SERCOM_DMAC_ID_TX SERCOM1_DMAC_ID_TX
mbed_official 15:a81a8d6c1dfe 346 #define EDBG_I2C_SERCOM_DMAC_ID_RX SERCOM1_DMAC_ID_RX
mbed_official 15:a81a8d6c1dfe 347 /** @} */
mbed_official 15:a81a8d6c1dfe 348
mbed_official 15:a81a8d6c1dfe 349 /** \name Embedded debugger SPI interface definitions
mbed_official 15:a81a8d6c1dfe 350 * @{
mbed_official 15:a81a8d6c1dfe 351 */
mbed_official 15:a81a8d6c1dfe 352 #define EDBG_SPI_SLAVE_SELECT_PIN PIN_PA27
mbed_official 15:a81a8d6c1dfe 353 #define EDBG_SPI_MODULE SERCOM5
mbed_official 15:a81a8d6c1dfe 354 #define EDBG_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
mbed_official 15:a81a8d6c1dfe 355 #define EDBG_SPI_SERCOM_PINMUX_PAD0 PINMUX_PB02D_SERCOM5_PAD0
mbed_official 15:a81a8d6c1dfe 356 #define EDBG_SPI_SERCOM_PINMUX_PAD1 PINMUX_UNUSED
mbed_official 15:a81a8d6c1dfe 357 #define EDBG_SPI_SERCOM_PINMUX_PAD2 PINMUX_PB22D_SERCOM5_PAD2
mbed_official 15:a81a8d6c1dfe 358 #define EDBG_SPI_SERCOM_PINMUX_PAD3 PINMUX_PB23D_SERCOM5_PAD3
mbed_official 15:a81a8d6c1dfe 359 #define EDBG_SPI_SERCOM_DMAC_ID_TX SERCOM5_DMAC_ID_TX
mbed_official 15:a81a8d6c1dfe 360 #define EDBG_SPI_SERCOM_DMAC_ID_RX SERCOM5_DMAC_ID_RX
mbed_official 15:a81a8d6c1dfe 361 /** @} */
mbed_official 15:a81a8d6c1dfe 362
mbed_official 15:a81a8d6c1dfe 363 /** \name Embedded debugger CDC Gateway USART interface definitions
mbed_official 15:a81a8d6c1dfe 364 * @{
mbed_official 15:a81a8d6c1dfe 365 */
mbed_official 15:a81a8d6c1dfe 366 #define EDBG_CDC_MODULE SERCOM0
mbed_official 15:a81a8d6c1dfe 367 #define EDBG_CDC_SERCOM_MUX_SETTING USART_RX_1_TX_0_XCK_1
mbed_official 15:a81a8d6c1dfe 368 #define EDBG_CDC_SERCOM_PINMUX_PAD0 PINMUX_PA04D_SERCOM0_PAD0
mbed_official 15:a81a8d6c1dfe 369 #define EDBG_CDC_SERCOM_PINMUX_PAD1 PINMUX_PA05D_SERCOM0_PAD1
mbed_official 15:a81a8d6c1dfe 370 #define EDBG_CDC_SERCOM_PINMUX_PAD2 PINMUX_UNUSED
mbed_official 15:a81a8d6c1dfe 371 #define EDBG_CDC_SERCOM_PINMUX_PAD3 PINMUX_UNUSED
mbed_official 15:a81a8d6c1dfe 372 #define EDBG_CDC_SERCOM_DMAC_ID_TX SERCOM0_DMAC_ID_TX
mbed_official 15:a81a8d6c1dfe 373 #define EDBG_CDC_SERCOM_DMAC_ID_RX SERCOM0_DMAC_ID_RX
mbed_official 15:a81a8d6c1dfe 374 /** @} */
mbed_official 15:a81a8d6c1dfe 375
mbed_official 15:a81a8d6c1dfe 376 #define RF_SPI_MODULE SERCOM4
mbed_official 15:a81a8d6c1dfe 377 #define RF_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
mbed_official 15:a81a8d6c1dfe 378 #define RF_SPI_SERCOM_PINMUX_PAD0 PINMUX_PC19F_SERCOM4_PAD0
mbed_official 15:a81a8d6c1dfe 379 #define RF_SPI_SERCOM_PINMUX_PAD1 PINMUX_PB31D_SERCOM5_PAD1
mbed_official 15:a81a8d6c1dfe 380 #define RF_SPI_SERCOM_PINMUX_PAD2 PINMUX_PB30F_SERCOM4_PAD2
mbed_official 15:a81a8d6c1dfe 381 #define RF_SPI_SERCOM_PINMUX_PAD3 PINMUX_PC18F_SERCOM4_PAD3
mbed_official 15:a81a8d6c1dfe 382
mbed_official 15:a81a8d6c1dfe 383
mbed_official 15:a81a8d6c1dfe 384 #define RF_IRQ_MODULE EIC
mbed_official 15:a81a8d6c1dfe 385 #define RF_IRQ_INPUT 0
mbed_official 15:a81a8d6c1dfe 386 #define RF_IRQ_PIN PIN_PB00A_EIC_EXTINT0
mbed_official 15:a81a8d6c1dfe 387 #define RF_IRQ_MUX MUX_PB00A_EIC_EXTINT0
mbed_official 15:a81a8d6c1dfe 388 #define RF_IRQ_PINMUX PINMUX_PB00A_EIC_EXTINT0
mbed_official 15:a81a8d6c1dfe 389
mbed_official 15:a81a8d6c1dfe 390 /** \name 802.15.4 TRX Interface definitions
mbed_official 15:a81a8d6c1dfe 391 * @{
mbed_official 15:a81a8d6c1dfe 392 */
mbed_official 15:a81a8d6c1dfe 393
mbed_official 15:a81a8d6c1dfe 394 #define AT86RFX_SPI SERCOM4
mbed_official 15:a81a8d6c1dfe 395 #define AT86RFX_RST_PIN PIN_PB15
mbed_official 15:a81a8d6c1dfe 396 #define AT86RFX_IRQ_PIN PIN_PB00
mbed_official 15:a81a8d6c1dfe 397 #define AT86RFX_SLP_PIN PIN_PA20
mbed_official 15:a81a8d6c1dfe 398 #define AT86RFX_SPI_CS PIN_PB31
mbed_official 15:a81a8d6c1dfe 399 #define AT86RFX_SPI_MOSI PIN_PB30
mbed_official 15:a81a8d6c1dfe 400 #define AT86RFX_SPI_MISO PIN_PC19
mbed_official 15:a81a8d6c1dfe 401 #define AT86RFX_SPI_SCK PIN_PC18
mbed_official 15:a81a8d6c1dfe 402 #define PIN_RFCTRL1 PIN_PA09
mbed_official 15:a81a8d6c1dfe 403 #define PIN_RFCTRL2 PIN_PA12
mbed_official 15:a81a8d6c1dfe 404 #define RFCTRL_CFG_ANT_DIV 4
mbed_official 15:a81a8d6c1dfe 405
mbed_official 15:a81a8d6c1dfe 406
mbed_official 15:a81a8d6c1dfe 407 #define AT86RFX_SPI_SERCOM_MUX_SETTING RF_SPI_SERCOM_MUX_SETTING
mbed_official 15:a81a8d6c1dfe 408 #define AT86RFX_SPI_SERCOM_PINMUX_PAD0 RF_SPI_SERCOM_PINMUX_PAD0
mbed_official 15:a81a8d6c1dfe 409 #define AT86RFX_SPI_SERCOM_PINMUX_PAD1 PINMUX_UNUSED
mbed_official 15:a81a8d6c1dfe 410 #define AT86RFX_SPI_SERCOM_PINMUX_PAD2 RF_SPI_SERCOM_PINMUX_PAD2
mbed_official 15:a81a8d6c1dfe 411 #define AT86RFX_SPI_SERCOM_PINMUX_PAD3 RF_SPI_SERCOM_PINMUX_PAD3
mbed_official 15:a81a8d6c1dfe 412
mbed_official 15:a81a8d6c1dfe 413 #define AT86RFX_IRQ_CHAN RF_IRQ_INPUT
mbed_official 15:a81a8d6c1dfe 414 #define AT86RFX_IRQ_PINMUX RF_IRQ_PINMUX
mbed_official 15:a81a8d6c1dfe 415
mbed_official 15:a81a8d6c1dfe 416
mbed_official 15:a81a8d6c1dfe 417 /** Enables the transceiver main interrupt. */
mbed_official 15:a81a8d6c1dfe 418 #define ENABLE_TRX_IRQ() \
mbed_official 15:a81a8d6c1dfe 419 extint_chan_enable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT)
mbed_official 15:a81a8d6c1dfe 420
mbed_official 15:a81a8d6c1dfe 421 /** Disables the transceiver main interrupt. */
mbed_official 15:a81a8d6c1dfe 422 #define DISABLE_TRX_IRQ() \
mbed_official 15:a81a8d6c1dfe 423 extint_chan_disable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT)
mbed_official 15:a81a8d6c1dfe 424
mbed_official 15:a81a8d6c1dfe 425 /** Clears the transceiver main interrupt. */
mbed_official 15:a81a8d6c1dfe 426 #define CLEAR_TRX_IRQ() \
mbed_official 15:a81a8d6c1dfe 427 extint_chan_clear_detected(AT86RFX_IRQ_CHAN);
mbed_official 15:a81a8d6c1dfe 428
mbed_official 15:a81a8d6c1dfe 429 /*
mbed_official 15:a81a8d6c1dfe 430 * This macro saves the trx interrupt status and disables the trx interrupt.
mbed_official 15:a81a8d6c1dfe 431 */
mbed_official 15:a81a8d6c1dfe 432 #define ENTER_TRX_REGION() \
mbed_official 15:a81a8d6c1dfe 433 { extint_chan_disable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT)
mbed_official 15:a81a8d6c1dfe 434
mbed_official 15:a81a8d6c1dfe 435 /*
mbed_official 15:a81a8d6c1dfe 436 * This macro restores the transceiver interrupt status
mbed_official 15:a81a8d6c1dfe 437 */
mbed_official 15:a81a8d6c1dfe 438 #define LEAVE_TRX_REGION() \
mbed_official 15:a81a8d6c1dfe 439 extint_chan_enable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT); }
mbed_official 15:a81a8d6c1dfe 440
mbed_official 15:a81a8d6c1dfe 441 /** @} */
mbed_official 15:a81a8d6c1dfe 442 /**
mbed_official 15:a81a8d6c1dfe 443 * \brief Turns off the specified LEDs.
mbed_official 15:a81a8d6c1dfe 444 *
mbed_official 15:a81a8d6c1dfe 445 * \param led_gpio LED to turn off (LEDx_GPIO).
mbed_official 15:a81a8d6c1dfe 446 *
mbed_official 15:a81a8d6c1dfe 447 * \note The pins of the specified LEDs are set to GPIO output mode.
mbed_official 15:a81a8d6c1dfe 448 */
mbed_official 15:a81a8d6c1dfe 449 #define LED_Off(led_gpio) port_pin_set_output_level(led_gpio,true)
mbed_official 15:a81a8d6c1dfe 450
mbed_official 15:a81a8d6c1dfe 451 /**
mbed_official 15:a81a8d6c1dfe 452 * \brief Turns on the specified LEDs.
mbed_official 15:a81a8d6c1dfe 453 *
mbed_official 15:a81a8d6c1dfe 454 * \param led_gpio LED to turn on (LEDx_GPIO).
mbed_official 15:a81a8d6c1dfe 455 *
mbed_official 15:a81a8d6c1dfe 456 * \note The pins of the specified LEDs are set to GPIO output mode.
mbed_official 15:a81a8d6c1dfe 457 */
mbed_official 15:a81a8d6c1dfe 458 #define LED_On(led_gpio) port_pin_set_output_level(led_gpio,false)
mbed_official 15:a81a8d6c1dfe 459
mbed_official 15:a81a8d6c1dfe 460 /**
mbed_official 15:a81a8d6c1dfe 461 * \brief Toggles the specified LEDs.
mbed_official 15:a81a8d6c1dfe 462 *
mbed_official 15:a81a8d6c1dfe 463 * \param led_gpio LED to toggle (LEDx_GPIO).
mbed_official 15:a81a8d6c1dfe 464 *
mbed_official 15:a81a8d6c1dfe 465 * \note The pins of the specified LEDs are set to GPIO output mode.
mbed_official 15:a81a8d6c1dfe 466 */
mbed_official 15:a81a8d6c1dfe 467 #define LED_Toggle(led_gpio) port_pin_toggle_output_level(led_gpio)
mbed_official 15:a81a8d6c1dfe 468
mbed_official 15:a81a8d6c1dfe 469
mbed_official 15:a81a8d6c1dfe 470
mbed_official 15:a81a8d6c1dfe 471 #ifdef __cplusplus
mbed_official 15:a81a8d6c1dfe 472 }
mbed_official 15:a81a8d6c1dfe 473 #endif
mbed_official 15:a81a8d6c1dfe 474
mbed_official 15:a81a8d6c1dfe 475 #endif /* SAMR21_XPLAINED_PRO_H_INCLUDED */