Lancaster University's (short term!) clone of mbed-src for micro:bit. This is a copy of the github branch https://github.com/lancaster-university/mbed-classic

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Fri Jul 17 09:15:10 2015 +0100
Revision:
592:a274ee790e56
Parent:
579:53297373a894
Synchronized with git revision e7144f83a8d75df80c4877936b6ffe552b0be9e6

Full URL: https://github.com/mbedmicro/mbed/commit/e7144f83a8d75df80c4877936b6ffe552b0be9e6/

More API implementation for SAMR21

Who changed what in which revision?

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