mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Committer:
fwndz
Date:
Thu Dec 22 05:12:40 2016 +0000
Revision:
153:9398a535854b
Parent:
149:156823d33999
device target maximize

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 15:a81a8d6c1dfe 1 /* mbed Microcontroller Library
mbed_official 15:a81a8d6c1dfe 2 * Copyright (c) 2006-2015 ARM Limited
mbed_official 15:a81a8d6c1dfe 3 *
mbed_official 15:a81a8d6c1dfe 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 15:a81a8d6c1dfe 5 * you may not use this file except in compliance with the License.
mbed_official 15:a81a8d6c1dfe 6 * You may obtain a copy of the License at
mbed_official 15:a81a8d6c1dfe 7 *
mbed_official 15:a81a8d6c1dfe 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 15:a81a8d6c1dfe 9 *
mbed_official 15:a81a8d6c1dfe 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 15:a81a8d6c1dfe 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 15:a81a8d6c1dfe 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 15:a81a8d6c1dfe 13 * See the License for the specific language governing permissions and
mbed_official 15:a81a8d6c1dfe 14 * limitations under the License.
mbed_official 15:a81a8d6c1dfe 15 */
mbed_official 15:a81a8d6c1dfe 16 #ifndef MBED_PERIPHERALNAMES_H
mbed_official 15:a81a8d6c1dfe 17 #define MBED_PERIPHERALNAMES_H
mbed_official 15:a81a8d6c1dfe 18
mbed_official 15:a81a8d6c1dfe 19 #include <compiler.h>
mbed_official 15:a81a8d6c1dfe 20 #include "cmsis.h"
mbed_official 15:a81a8d6c1dfe 21 #include "PinNames.h"
mbed_official 15:a81a8d6c1dfe 22
mbed_official 15:a81a8d6c1dfe 23 #ifdef __cplusplus
mbed_official 15:a81a8d6c1dfe 24 extern "C" {
mbed_official 15:a81a8d6c1dfe 25 #endif
mbed_official 15:a81a8d6c1dfe 26
mbed_official 15:a81a8d6c1dfe 27 #define _SERCOM_SPI_NAME(n, unused) \
mbed_official 15:a81a8d6c1dfe 28 SPI##n,
mbed_official 15:a81a8d6c1dfe 29
mbed_official 15:a81a8d6c1dfe 30 #define _SERCOM_PAD_NAME(n, pad) \
mbed_official 15:a81a8d6c1dfe 31 SERCOM##n##_PAD##pad = ((n & 0xF) | ((pad & 0xF) << 4)),
mbed_official 15:a81a8d6c1dfe 32
mbed_official 15:a81a8d6c1dfe 33 #define _SERCOM_I2C_NAME(n, unused) \
mbed_official 15:a81a8d6c1dfe 34 I2C##n,
mbed_official 15:a81a8d6c1dfe 35
mbed_official 15:a81a8d6c1dfe 36
mbed_official 15:a81a8d6c1dfe 37
mbed_official 15:a81a8d6c1dfe 38 typedef enum {
mbed_official 15:a81a8d6c1dfe 39 UART_0 = (int)0x42000800UL, // Base address of SERCOM0
mbed_official 15:a81a8d6c1dfe 40 UART_1 = (int)0x42000C00UL, // Base address of SERCOM1
mbed_official 15:a81a8d6c1dfe 41 UART_2 = (int)0x42001000UL, // Base address of SERCOM2
mbed_official 15:a81a8d6c1dfe 42 UART_3 = (int)0x42001400UL, // Base address of SERCOM3
mbed_official 15:a81a8d6c1dfe 43 UART_4 = (int)0x42001800UL, // Base address of SERCOM4
mbed_official 15:a81a8d6c1dfe 44 UART_5 = (int)0x42001C00UL // Base address of SERCOM5
mbed_official 15:a81a8d6c1dfe 45 } UARTName;
mbed_official 15:a81a8d6c1dfe 46
mbed_official 15:a81a8d6c1dfe 47 typedef enum {
mbed_official 15:a81a8d6c1dfe 48 ADC_0 = 0x0ul,
mbed_official 15:a81a8d6c1dfe 49 ADC_1 = 0x1ul,
mbed_official 15:a81a8d6c1dfe 50 ADC_2 = 0x2ul,
mbed_official 15:a81a8d6c1dfe 51 ADC_3 = 0x3ul,
mbed_official 15:a81a8d6c1dfe 52 ADC_4 = 0x4ul,
mbed_official 15:a81a8d6c1dfe 53 ADC_5 = 0x5ul,
mbed_official 15:a81a8d6c1dfe 54 ADC_6 = 0x6ul,
mbed_official 15:a81a8d6c1dfe 55 ADC_7 = 0x7ul,
mbed_official 15:a81a8d6c1dfe 56 ADC_8 = 0x8ul,
mbed_official 15:a81a8d6c1dfe 57 ADC_9 = 0x8ul,
mbed_official 15:a81a8d6c1dfe 58 ADC_10 = 0xAul,
mbed_official 15:a81a8d6c1dfe 59 ADC_11 = 0xBul,
mbed_official 15:a81a8d6c1dfe 60 ADC_12 = 0xCul,
mbed_official 15:a81a8d6c1dfe 61 ADC_13 = 0xDul,
mbed_official 15:a81a8d6c1dfe 62 ADC_14 = 0xEul,
mbed_official 15:a81a8d6c1dfe 63 ADC_15 = 0xFul,
mbed_official 15:a81a8d6c1dfe 64 ADC_16 = 0x10ul,
mbed_official 15:a81a8d6c1dfe 65 ADC_17 = 0x11ul,
mbed_official 15:a81a8d6c1dfe 66 ADC_18 = 0x12ul,
mbed_official 15:a81a8d6c1dfe 67 ADC_19 = 0x13ul
mbed_official 15:a81a8d6c1dfe 68 } ADCName;
mbed_official 15:a81a8d6c1dfe 69
mbed_official 15:a81a8d6c1dfe 70 typedef enum {
mbed_official 15:a81a8d6c1dfe 71 DAC_0 = 0x42004800UL
mbed_official 15:a81a8d6c1dfe 72 } DACName;
mbed_official 15:a81a8d6c1dfe 73
mbed_official 15:a81a8d6c1dfe 74 typedef enum { // for each channel
mbed_official 15:a81a8d6c1dfe 75 EXTINT_0 = 0,
mbed_official 15:a81a8d6c1dfe 76 EXTINT_1,
mbed_official 15:a81a8d6c1dfe 77 EXTINT_2,
mbed_official 15:a81a8d6c1dfe 78 EXTINT_3,
mbed_official 15:a81a8d6c1dfe 79 EXTINT_4,
mbed_official 15:a81a8d6c1dfe 80 EXTINT_5,
mbed_official 15:a81a8d6c1dfe 81 EXTINT_6,
mbed_official 15:a81a8d6c1dfe 82 EXTINT_7,
mbed_official 15:a81a8d6c1dfe 83 EXTINT_8,
mbed_official 15:a81a8d6c1dfe 84 EXTINT_9,
mbed_official 15:a81a8d6c1dfe 85 EXTINT_10,
mbed_official 15:a81a8d6c1dfe 86 EXTINT_11,
mbed_official 15:a81a8d6c1dfe 87 EXTINT_12,
mbed_official 15:a81a8d6c1dfe 88 EXTINT_13,
mbed_official 15:a81a8d6c1dfe 89 EXTINT_14,
mbed_official 15:a81a8d6c1dfe 90 EXTINT_15
mbed_official 15:a81a8d6c1dfe 91 } EXTINTName;
mbed_official 15:a81a8d6c1dfe 92
mbed_official 15:a81a8d6c1dfe 93 typedef enum {
mbed_official 15:a81a8d6c1dfe 94 MREPEAT(SERCOM_INST_NUM, _SERCOM_SPI_NAME, ~)
mbed_official 15:a81a8d6c1dfe 95 } SPIName;
mbed_official 15:a81a8d6c1dfe 96
mbed_official 15:a81a8d6c1dfe 97 typedef enum {
mbed_official 15:a81a8d6c1dfe 98 MREPEAT(SERCOM_INST_NUM, _SERCOM_I2C_NAME, ~)
mbed_official 15:a81a8d6c1dfe 99 } I2CName;
mbed_official 15:a81a8d6c1dfe 100
mbed_official 15:a81a8d6c1dfe 101 typedef enum {
mbed_official 15:a81a8d6c1dfe 102 /* Pad 0 definitions */
mbed_official 15:a81a8d6c1dfe 103 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 0)
mbed_official 15:a81a8d6c1dfe 104
mbed_official 15:a81a8d6c1dfe 105 /* Pad 1 definitions */
mbed_official 15:a81a8d6c1dfe 106 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 1)
mbed_official 15:a81a8d6c1dfe 107
mbed_official 15:a81a8d6c1dfe 108 /* Pad 2 definitions */
mbed_official 15:a81a8d6c1dfe 109 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 2)
mbed_official 15:a81a8d6c1dfe 110
mbed_official 15:a81a8d6c1dfe 111 /* Pad 3 definitions */
mbed_official 15:a81a8d6c1dfe 112 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 3)
mbed_official 15:a81a8d6c1dfe 113 } SercomPadName;
mbed_official 15:a81a8d6c1dfe 114
mbed_official 15:a81a8d6c1dfe 115 typedef enum {
mbed_official 15:a81a8d6c1dfe 116 PWM_0 = (0x42002000UL), /**< \brief (TCC0) APB Base Address */
mbed_official 15:a81a8d6c1dfe 117 PWM_1 = (0x42002400UL), /**< \brief (TCC1) APB Base Address */
mbed_official 15:a81a8d6c1dfe 118 PWM_2 = (0x42002800UL), /**< \brief (TCC2) APB Base Address */
mbed_official 15:a81a8d6c1dfe 119 } PWMName;
mbed_official 15:a81a8d6c1dfe 120
mbed_official 15:a81a8d6c1dfe 121 struct pwm_pin_channel {
mbed_official 15:a81a8d6c1dfe 122 PinName pin;
mbed_official 15:a81a8d6c1dfe 123 PWMName pwm;
mbed_official 15:a81a8d6c1dfe 124 uint8_t channel_index;
mbed_official 15:a81a8d6c1dfe 125 };
mbed_official 15:a81a8d6c1dfe 126
mbed_official 15:a81a8d6c1dfe 127 #define STDIO_UART_TX USBTX
mbed_official 15:a81a8d6c1dfe 128 #define STDIO_UART_RX USBRX
mbed_official 15:a81a8d6c1dfe 129 #define STDIO_UART UART_3
mbed_official 15:a81a8d6c1dfe 130
mbed_official 15:a81a8d6c1dfe 131 // Default peripherals
mbed_official 15:a81a8d6c1dfe 132 #define MBED_SPI0 PA18, PA16, PA19, PA17
mbed_official 15:a81a8d6c1dfe 133
mbed_official 15:a81a8d6c1dfe 134 #define MBED_UART0 PA04, PA05
mbed_official 15:a81a8d6c1dfe 135 #define MBED_UARTUSB USBTX, USBRX
mbed_official 15:a81a8d6c1dfe 136
mbed_official 15:a81a8d6c1dfe 137 #define MBED_I2C0 PA08, PA09
mbed_official 15:a81a8d6c1dfe 138
mbed_official 15:a81a8d6c1dfe 139 #define MBED_ANALOGOUT0 PA02
mbed_official 15:a81a8d6c1dfe 140
mbed_official 15:a81a8d6c1dfe 141 #define MBED_ANALOGIN0 PA03
mbed_official 15:a81a8d6c1dfe 142 #define MBED_ANALOGIN1 PA08
mbed_official 15:a81a8d6c1dfe 143 #define MBED_ANALOGIN2 PB09
mbed_official 15:a81a8d6c1dfe 144 #define MBED_ANALOGIN3 PA04
mbed_official 15:a81a8d6c1dfe 145 #define MBED_ANALOGIN4 PA05
mbed_official 15:a81a8d6c1dfe 146 #define MBED_ANALOGIN5 PA06
mbed_official 15:a81a8d6c1dfe 147 #define MBED_ANALOGIN7 PA07
mbed_official 15:a81a8d6c1dfe 148 #define MBED_ANALOGIN8 PB00
mbed_official 15:a81a8d6c1dfe 149 #define MBED_ANALOGIN9 PB01
mbed_official 15:a81a8d6c1dfe 150
mbed_official 15:a81a8d6c1dfe 151 #define MBED_PWMOUT0 PA18
mbed_official 15:a81a8d6c1dfe 152 #define MBED_PWMOUT1 PA19
mbed_official 15:a81a8d6c1dfe 153
mbed_official 15:a81a8d6c1dfe 154 #ifdef __cplusplus
mbed_official 15:a81a8d6c1dfe 155 }
mbed_official 15:a81a8d6c1dfe 156 #endif
mbed_official 15:a81a8d6c1dfe 157
mbed_official 15:a81a8d6c1dfe 158 #endif