Merge branch 'samd51' of github.com:adafruit/ArduinoCore-samd into samd51
This commit is contained in:
commit
dd7d17e642
2 changed files with 115 additions and 100 deletions
29
boards.txt
29
boards.txt
|
|
@ -152,26 +152,17 @@ adafruit_circuitplayground_m0.build.pid=0x8018
|
||||||
adafruit_circuitplayground_m0.bootloader.tool=openocd
|
adafruit_circuitplayground_m0.bootloader.tool=openocd
|
||||||
adafruit_circuitplayground_m0.bootloader.file=circuitplay/circuitplay_m0_samd21g18_sam_ba.bin
|
adafruit_circuitplayground_m0.bootloader.file=circuitplay/circuitplay_m0_samd21g18_sam_ba.bin
|
||||||
|
|
||||||
# Adafruit Metro M4
|
|
||||||
|
# Adafruit Metro M4 (SAMD51)
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
adafruit_metro_m4.name=Adafruit Metro M4
|
adafruit_metro_m4.name=Adafruit Metro M4 (SAMD51)
|
||||||
adafruit_metro_m4.vid.0=0x2341
|
adafruit_metro_m4.vid.0=0x239A
|
||||||
adafruit_metro_m4.pid.0=0x804d
|
adafruit_metro_m4.pid.0=0x8020
|
||||||
adafruit_metro_m4.vid.1=0x2341
|
adafruit_metro_m4.vid.1=0x239A
|
||||||
adafruit_metro_m4.pid.1=0x004d
|
adafruit_metro_m4.pid.1=0x0020
|
||||||
|
|
||||||
adafruit_metro_m4.vid.2=0x2341
|
|
||||||
adafruit_metro_m4.pid.2=0x824d
|
|
||||||
# If the board is a 2341:824d use 2341:824d for build and set other parameters as well
|
|
||||||
adafruit_metro_m4.vid.2.build.vid=0x2341
|
|
||||||
adafruit_metro_m4.vid.2.build.pid=0x824d
|
|
||||||
adafruit_metro_m4.vid.2.build.usb_product="Adafruit Metro M4"
|
|
||||||
adafruit_metro_m4.vid.2.bootloader.file=metroM4/samdx1_sam_ba.bin
|
|
||||||
|
|
||||||
adafruit_metro_m4.upload.tool=bossac
|
adafruit_metro_m4.upload.tool=bossac
|
||||||
adafruit_metro_m4.upload.protocol=sam-ba
|
adafruit_metro_m4.upload.protocol=sam-ba
|
||||||
#TODO: fix
|
adafruit_metro_m4.upload.maximum_size=1048576
|
||||||
adafruit_metro_m4.upload.maximum_size=262144
|
|
||||||
adafruit_metro_m4.upload.use_1200bps_touch=true
|
adafruit_metro_m4.upload.use_1200bps_touch=true
|
||||||
adafruit_metro_m4.upload.wait_for_upload_port=true
|
adafruit_metro_m4.upload.wait_for_upload_port=true
|
||||||
adafruit_metro_m4.upload.native_usb=true
|
adafruit_metro_m4.upload.native_usb=true
|
||||||
|
|
@ -179,7 +170,7 @@ adafruit_metro_m4.build.mcu=cortex-m4
|
||||||
adafruit_metro_m4.build.f_cpu=48000000L
|
adafruit_metro_m4.build.f_cpu=48000000L
|
||||||
adafruit_metro_m4.build.usb_product="Adafruit Metro M4"
|
adafruit_metro_m4.build.usb_product="Adafruit Metro M4"
|
||||||
adafruit_metro_m4.build.usb_manufacturer="Adafruit LLC"
|
adafruit_metro_m4.build.usb_manufacturer="Adafruit LLC"
|
||||||
adafruit_metro_m4.build.board=SAMD_METRO_M4
|
adafruit_metro_m4.build.board=SAMD_51
|
||||||
adafruit_metro_m4.build.core=arduino
|
adafruit_metro_m4.build.core=arduino
|
||||||
adafruit_metro_m4.build.extra_flags=-D__SAMD51J20A__ -D__SAMD51__ {build.usb_flags}
|
adafruit_metro_m4.build.extra_flags=-D__SAMD51J20A__ -D__SAMD51__ {build.usb_flags}
|
||||||
adafruit_metro_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
|
adafruit_metro_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
|
||||||
|
|
@ -189,4 +180,4 @@ adafruit_metro_m4.build.variant_system_lib=
|
||||||
adafruit_metro_m4.build.vid=0x2341
|
adafruit_metro_m4.build.vid=0x2341
|
||||||
adafruit_metro_m4.build.pid=0x804d
|
adafruit_metro_m4.build.pid=0x804d
|
||||||
adafruit_metro_m4.bootloader.tool=openocd
|
adafruit_metro_m4.bootloader.tool=openocd
|
||||||
adafruit_metro_m4.bootloader.file=metroM4/samdx1_sam_ba.bin
|
adafruit_metro_m4.bootloader.file=metroM4/samdx1_sam_ba.bin
|
||||||
|
|
|
||||||
|
|
@ -21,70 +21,89 @@
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | | Digital Low | | |
|
* | | Digital Low | | |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | 0 | 0 -> RX | PA23 | | EIC/EXTINT[7] PTCXY[17] *SERCOM3/PAD[1] SERCOM5/PAD[0] TC4/WO[1] TCC1/WO[7]
|
* | 0 | 0 -> RX | PA11 | | EIC/EXTINT[11] ADC/AIN[19] PTC/X[3] *SERCOM0/PAD[3] SERCOM2/PAD[3] TCC0/WO[3] TCC1/WO[1]
|
||||||
* | 1 | 1 <- TX | PA22 | | EIC/EXTINT[6] PTCXY[16] *SERCOM3/PAD[0] SERCOM5/PAD[1] TC4/WO[0] TCC1/WO[6]
|
* | 1 | 1 <- TX | PA10 | | EIC/EXTINT[10] ADC/AIN[18] PTC/X[2] *SERCOM0/PAD[2] TCC0/WO[2] TCC1/WO[0]
|
||||||
* | 2 | ~2 | PA08 | | EIC/NMI ADC0/AIN[8] PTCXY[6] SERCOM0/PAD[0] SERCOM2/PAD[1] TC0/WO[0] *TCC1/WO[4]
|
* | 2 | 2 | PA14 | | EIC/EXTINT[14] SERCOM2/PAD[2] SERCOM4/PAD[2] TC3/WO[0] TCC0/WO[4]
|
||||||
* | 3 | ~3 | PA10 | | EIC/EXTINT[10] ADC0/AIN[10] PTCXY[8] SERCOM0/PAD[2] SERCOM2/PAD[2] TC1/WO[0] *TCC0/WO[2]
|
* | 3 | ~3 | PA09 | | EIC/EXTINT[9] ADC/AIN[17] PTC/X[1] SERCOM0/PAD[1] SERCOM2/PAD[1] TC0/WO[1] *TCC0/WO[1]
|
||||||
* | 4 | ~4 | PB12 | | EIC/EXTINT[12] PTCXY[26] SERCOM4/PAD[0] TC4/WO[0] *TCC3/WO[0]
|
* | 4 | ~4 | PA08 | | EIC/NMI ADC/AIN[16] PTC/X[0] SERCOM0/PAD[0] SERCOM2/PAD[0] TC0/WO[0] *TCC0/WO[0]
|
||||||
* | 5 | ~5 | PB14 | | EIC/EXTINT[14] PTCXY[28] SERCOM4/PAD[2] *TC5/WO[0] TCC4/WO[0]
|
* | 5 | ~5 | PA15 | | EIC/EXTINT[15] SERCOM2/PAD[3] SERCOM4/PAD[3] *TC3/WO[1] TCC0/WO[5]
|
||||||
* | 6 | ~6 | PB15 | | EIC/EXTINT[15] PTCXY[29] SERCOM4/PAD[3] *TC5/WO[1] TCC4/WO[1]
|
* | 6 | ~6 | PA20 | | EIC/EXTINT[4] PTC/X[8] SERCOM5/PAD[2] SERCOM3/PAD[2] *TCC1/WO[4]
|
||||||
* | 7 | ~7 | PA14 | | EIC/EXTINT[14] SERCOM2/PAD[2] SERCOM4/PAD[2] TC3/WO[0] TCC2/WO[0]
|
* | 7 | ~7 | PA21 | | EIC/EXTINT[5] PTC/X[9] SERCOM5/PAD[3] SERCOM3/PAD[3] TCC0/WO[7]
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | | Digital High | | |
|
* | | Digital High | | |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | 8 | 8 | PA16 | | EIC/EXTINT[0] PTCXY[10] SERCOM1/PAD[0] SERCOM3/PAD[1] TC2/WO[2] TCC1/WO[1]
|
* | 8 | 8 | PA06 | | EIC/EXTINT[6] ADC/AIN[6] AC/AIN[2] PTC/Y[4] SERCOM0/PAD[2]
|
||||||
* | 9 | 9 | PA17 | | EIC/EXTINT[7] PTCXY[11] SERCOM1/PAD[1] SERCOM3/PAD[0] TC2/WO[1] TCC1/WO[1]
|
* | 9 | 9 | PA07 | | EIC/EXTINT[7] ADC/AIN[7] AC/AIN[3] PTC/Y[5] SERCOM0/PAD[3]
|
||||||
* | 10 | ~10 | PA18 | | EIC/EXTINT[2] PTCXY[12] SERCOM1/PAD[2] SERCOM3/PAD[2] TC3/WO[0] TCC1/WO[2]
|
* | 10 | ~10 | PA18 | | EIC/EXTINT[2] PTC/X[6] +SERCOM1/PAD[2] SERCOM3/PAD[2] *TC3/WO[0] TCC0/WO[6]
|
||||||
* | 11 | ~11 | PA19 | | EIC/EXTINT[3] PTCXY[13] SERCOM1/PAD[3] SERCOM3/PAD[3] TC3/WO[1] TCC1/WO[3]
|
* | 11 | ~11 | PA16 | | EIC/EXTINT[0] PTC/X[4] +SERCOM1/PAD[0] SERCOM3/PAD[0] *TCC1/WO[0]
|
||||||
* | 12 | ~12 | PA20 | | EIC/EXTINT[4] PTCXY[14] SERCOM5/PAD[2] SERCOM3/PAD[2] TCC1/WO[4]
|
* | 12 | ~12 | PA19 | | EIC/EXTINT[3] PTC/X[7] +SERCOM1/PAD[3] SERCOM3/PAD[3] *TC3/WO[1] TCC1/WO[3]
|
||||||
* | 13 | ~13 | PA21 | LED | EIC/EXTINT[5] PTCXY[15] SERCOM5/PAD[3] SERCOM3/PAD[3] TCC1/WO[5]
|
* | 13 | ~13 | PA17 | LED | EIC/EXTINT[1] PTC/X[5] +SERCOM1/PAD[1] SERCOM3/PAD[1] *TCC1/WO[1] TCC0/WO[5]
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | | Analog Connector | | |
|
* | | Analog Connector | | |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | 14 | A0 | PA02 | A0 | EIC/EXTINT[2] *ADC/AIN[0] DAC[0]/VOUT
|
* | 14 | A0 | PA02 | A0 | EIC/EXTINT[2] *ADC/AIN[0] DAC/VOUT PTC/Y[0]
|
||||||
* | 15 | A1 | PA05 | A1 | EIC/EXTINT[5] *ADC/AIN[5] DAC[1]/VOUT SERCOM0/PAD[1] TC0/WO[1]
|
* | 15 | A1 | PB08 | A1 | EIC/EXTINT[8] *ADC/AIN[2] PTC/Y[14] SERCOM4/PAD[0] TC4/WO[0]
|
||||||
* | 16 | A2 | PA06 | A2 | EIC/EXTINT[6] *ADC/AIN[3] PTCXY[4] SERCOM4/PAD[1] TC1/WO[0]
|
* | 16 | A2 | PB09 | A2 | EIC/EXTINT[9] *ADC/AIN[3] PTC/Y[15] SERCOM4/PAD[1] TC4/WO[1]
|
||||||
* | 17 | A3 | PA07 | A3 | EIC/EXTINT[7] *ADC/AIN[7] PTCXY[5] SERCOM0/PAD[3] TC1/WO[1]
|
* | 17 | A3 | PA04 | A3 | EIC/EXTINT[4] *ADC/AIN[4] AC/AIN[0] PTC/Y[2] SERCOM0/PAD[0] TCC0/WO[0]
|
||||||
* | 18 | A4 | PA11 | A4 | EIC/EXTINT[11] *ADC/AIN[11] PTCXY[9] SERCOM0/PAD[3] SERCOM2/PAD[3] TC1/WO[1] TCC0/WO[3]
|
* | 18 | A4 | PA05 | A4 | EIC/EXTINT[5] *ADC/AIN[5] AC/AIN[1] PTC/Y[5] SERCOM0/PAD[1] TCC0/WO[1]
|
||||||
* | 19 | A5 | PA04 | A5 | EIC/EXTINT[4] *ADC/AIN[4] PTCXY[3] SERCOM0/PAD[0] TC0/WO[0]
|
* | 19 | A5 | PB02 | A5 | EIC/EXTINT[2] *ADC/AIN[10] PTC/Y[8] SERCOM5/PAD[0]
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | | Wire | | |
|
* | | Wire | | |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | 20 | SDA | PB02 | SDA | EIC/EXTINT[6] ADC/AIN[14] PTCXY[20] *SERCOM5/PAD[0] TCC2/WO[2]
|
* | 20 | SDA | PA22 | SDA | EIC/EXTINT[6] PTC/X[10] *SERCOM3/PAD[0] SERCOM5/PAD[0] TC4/WO[0] TCC0/WO[4]
|
||||||
* | 21 | SCL | PB03 | SCL | EIC/EXTINT[3] ADC/AIN[15] PTCXY[21] *SERCOM5/PAD[1]
|
* | 21 | SCL | PA23 | SCL | EIC/EXTINT[7] PTC/X[11] *SERCOM3/PAD[1] SERCOM5/PAD[1] TC4/WO[1] TCC0/WO[5]
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | |SPI (Legacy ICSP) | | |
|
* | |SPI (Legacy ICSP) | | |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | 22 | 1 | PA15 | MISO | EIC/EXTINT[15] SERCOM2/PAD[3] *SERCOM4/PAD[3] TC3/WO[1] TCC2/WO[1]
|
* | 22 | 1 | PA12 | MISO | EIC/EXTINT[12] SERCOM2/PAD[0] *SERCOM4/PAD[0] TCC2/WO[0] TCC0/WO[6]
|
||||||
* | | 2 | | 5V0 |
|
* | | 2 | | 5V0 |
|
||||||
* | 23 | 4 | PA13 | MOSI | EIC/EXTINT[13] SERCOM2/PAD[1] *SERCOM4/PAD[0] TC2/WO[1] TCC0/WO[7]
|
* | 23 | 4 | PB10 | MOSI | EIC/EXTINT[10] *SERCOM4/PAD[2] TC5/WO[0] TCC0/WO[4]
|
||||||
* | 24 | 3 | PA12 | SCK | EIC/EXTINT[12] SERCOM2/PAD[0] *SERCOM4/PAD[1] TC2/WO[0] TCC0/WO[6]
|
* | 24 | 3 | PB11 | SCK | EIC/EXTINT[11] *SERCOM4/PAD[3] TC5/WO[1] TCC0/WO[5]
|
||||||
* | | 5 | | RESET |
|
* | | 5 | | RESET |
|
||||||
* | | 6 | | GND |
|
* | | 6 | | GND |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | | LEDs | | |
|
* | | LEDs | | |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | 25 | | PB06 | RX |
|
* | 25 | | PB03 | RX |
|
||||||
* | 26 | | PA27 | TX |
|
* | 26 | | PA27 | TX |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | | USB | | |
|
* | | USB | | |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | 27 | | PB07 | USB_HOST_ENABLE | EIC/EXTINT[7]
|
* | 27 | | PA28 | USB_HOST_ENABLE | EIC/EXTINT[8]
|
||||||
* | 28 | | PA24 | USB_NEGATIVE | *USB/DM
|
* | 28 | | PA24 | USB_NEGATIVE | *USB/DM
|
||||||
* | 29 | | PA25 | USB_POSITIVE | *USB/DP
|
* | 29 | | PA25 | USB_POSITIVE | *USB/DP
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
|
* | | EDBG | | |
|
||||||
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
|
* | 30 | | PB22 | EDBG_UART TX | *SERCOM5/PAD[2]
|
||||||
|
* | 31 | | PB23 | EDBG_UART RX | *SERCOM5/PAD[3]
|
||||||
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
|
* | 32 | | PA22 | EDBG_SDA | Pin 20 (SDA)
|
||||||
|
* | 33 | | PA23 | EDBG_SCL | Pin 21 (SCL)
|
||||||
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
|
* | 34 | | PA19 | EDBG_MISO | EIC/EXTINT[3] *SERCOM1/PAD[3] SERCOM3/PAD[3] TC3/WO[1] TCC0/WO[3]
|
||||||
|
* | 35 | | PA16 | EDBG_MOSI | EIC/EXTINT[0] *SERCOM1/PAD[0] SERCOM3/PAD[0] TCC2/WO[0] TCC0/WO[6]
|
||||||
|
* | 36 | | PA18 | EDBG_SS | EIC/EXTINT[2] *SERCOM1/PAD[2] SERCOM3/PAD[2] TC3/WO[0] TCC0/WO[2]
|
||||||
|
* | 37 | | PA17 | EDBG_SCK | EIC/EXTINT[1] *SERCOM1/PAD[1] SERCOM3/PAD[1] TCC2/WO[1] TCC0/WO[7]
|
||||||
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
|
* | 38 | ATN | PA13 | EDBG_GPIO0 | EIC/EXTINT[13] SERCOM2/PAD[1] SERCOM4/PAD[1] *TCC2/WO[1] TCC0/WO[7]
|
||||||
|
* | 39 | | PA21 | EDBG_GPIO1 | Pin 7
|
||||||
|
* | 40 | | PA06 | EDBG_GPIO2 | Pin 8
|
||||||
|
* | 41 | | PA07 | EDBG_GPIO3 | Pin 9
|
||||||
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | | | | |
|
* | | | | |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | | GND | | |
|
* | | GND | | |
|
||||||
* | 42 | AREF | PA03 | | EIC/EXTINT[3] *[ADC|DAC]/VREFA ADC/AIN[1] PTCXY[0]
|
* | 42 | AREF | PA03 | | EIC/EXTINT[3] *[ADC|DAC]/VREFA ADC/AIN[1] PTC/Y[1]
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | |32.768KHz Crystal | | |
|
* | |32.768KHz Crystal | | |
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
* | | | PA00 | XIN32 | EIC/EXTINT[0]
|
* | | | PA00 | XIN32 | EIC/EXTINT[0] SERCOM1/PAD[0] TCC2/WO[0]
|
||||||
* | | | PA01 | XOUT32 | EIC/EXTINT[1]
|
* | | | PA01 | XOUT32 | EIC/EXTINT[1] SERCOM1/PAD[1] TCC2/WO[1]
|
||||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "variant.h"
|
#include "variant.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -95,86 +114,91 @@ const PinDescription g_APinDescription[]=
|
||||||
// 0..13 - Digital pins
|
// 0..13 - Digital pins
|
||||||
// ----------------------
|
// ----------------------
|
||||||
// 0/1 - SERCOM/UART (Serial1)
|
// 0/1 - SERCOM/UART (Serial1)
|
||||||
{ PORTA, 23, PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH7, NOT_ON_TIMER, EXTERNAL_INT_7 }, // RX: SERCOM3/PAD[1]
|
{ PORTA, 11, PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // RX: SERCOM0/PAD[3]
|
||||||
{ PORTA, 22, PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH6, NOT_ON_TIMER, EXTERNAL_INT_6 }, // TX: SERCOM3/PAD[0]
|
{ PORTA, 10, PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // TX: SERCOM0/PAD[2]
|
||||||
|
|
||||||
// 2..12
|
// 2..12
|
||||||
// Digital Low
|
// Digital Low
|
||||||
{ PORTA, 8, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH4, NOT_ON_TIMER, NOT_AN_INTERRUPT },
|
{ PORTA, 14, PIO_DIGITAL, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14 },
|
||||||
{ PORTA, 10, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM0_CH2, NOT_ON_TIMER, EXTERNAL_INT_10 },
|
{ PORTA, 9, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_9 }, // TCC0/WO[1]
|
||||||
{ PORTB, 12, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM3_CH0, NOT_ON_TIMER, EXTERNAL_INT_12 },
|
{ PORTA, 8, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH0, TCC0_CH0, EXTERNAL_INT_NMI }, // TCC0/WO[0]
|
||||||
{ PORTB, 14, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM4_CH0, NOT_ON_TIMER, EXTERNAL_INT_14 },
|
{ PORTA, 15, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH1, NOT_ON_TIMER, EXTERNAL_INT_15 }, // TC3/WO[1]
|
||||||
{ PORTB, 15, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM4_CH1, NOT_ON_TIMER, EXTERNAL_INT_15 },
|
{ PORTA, 20, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM1_CH4, TCC1_CH4, EXTERNAL_INT_4 }, // TCC1/WO[4]
|
||||||
{ PORTA, 14, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM2_CH0, NOT_ON_TIMER, EXTERNAL_INT_14 },
|
{ PORTA, 21, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM1_CH5, TCC1_CH5, EXTERNAL_INT_5 }, // TCC1/WO[5]
|
||||||
|
|
||||||
// Digital High
|
// Digital High
|
||||||
{ PORTA, 16, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH1, NOT_ON_TIMER, EXTERNAL_INT_0 },
|
{ PORTA, 6, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 },
|
||||||
{ PORTA, 17, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH1, NOT_ON_TIMER, EXTERNAL_INT_7 },
|
{ PORTA, 7, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel7, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 },
|
||||||
{ PORTA, 18, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH2, NOT_ON_TIMER, EXTERNAL_INT_2 },
|
{ PORTA, 18, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH0, NOT_ON_TIMER, EXTERNAL_INT_2 }, // TC3/WO[0]
|
||||||
{ PORTA, 19, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH3, NOT_ON_TIMER, EXTERNAL_INT_3 },
|
{ PORTA, 16, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_0 }, // TCC1/WO[0]
|
||||||
{ PORTA, 12, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH4, NOT_ON_TIMER, EXTERNAL_INT_4 },
|
{ PORTA, 19, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH1, NOT_ON_TIMER, EXTERNAL_INT_3 }, // TC3/WO[1]
|
||||||
|
|
||||||
// 13 (LED)
|
// 13 (LED)
|
||||||
{ PORTA, 21, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH5, NOT_ON_TIMER, EXTERNAL_INT_5 },
|
{ PORTA, 21, PIO_PWM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_1 }, // TCC1/WO[1]
|
||||||
|
|
||||||
// 14..19 - Analog pins
|
// 14..19 - Analog pins
|
||||||
// --------------------
|
// --------------------
|
||||||
{ PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
|
{ PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // ADC/AIN[0]
|
||||||
{ PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 },
|
{ PORTB, 8, PIO_ANALOG, 0, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 }, // ADC/AIN[2]
|
||||||
{ PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 },
|
{ PORTB, 9, PIO_ANALOG, 0, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 }, // ADC/AIN[3]
|
||||||
{ PORTA, 7, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel7, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 },
|
{ PORTA, 4, PIO_ANALOG, 0, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // ADC/AIN[4]
|
||||||
{ PORTA, 11, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel11, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 },
|
{ PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // ADC/AIN[5]
|
||||||
{ PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 },
|
{ PORTB, 2, PIO_ANALOG, 0, ADC_Channel10, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // ADC/AIN[10]
|
||||||
|
|
||||||
// Extra Analog pins! 20..23
|
|
||||||
{ PORTA, 8, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel8, NOT_ON_PWM, NOT_ON_TIMER, NOT_AN_INTERRUPT }, // same as D2
|
|
||||||
{ PORTA, 10, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel10, NOT_ON_PWM, NOT_ON_TIMER, NOT_AN_INTERRUPT }, // same as D3
|
|
||||||
{ PORTB, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel14, NOT_ON_PWM, NOT_ON_TIMER, NOT_AN_INTERRUPT }, // same as sda
|
|
||||||
{ PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, NOT_AN_INTERRUPT }, //same as scl
|
|
||||||
|
|
||||||
// 24..25 I2C pins (SDA/SCL)
|
//DM TODO: some of these are on PWM channels
|
||||||
|
// Extra Analog pins! 20..25
|
||||||
|
{ PORTA, 11, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel19, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // A6 same as D0
|
||||||
|
{ PORTA, 10, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel18, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // A7 same as D1
|
||||||
|
{ PORTA, 8, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel16, PWM0_CH0, TCC0_CH0, EXTERNAL_INT_NMI }, // A8 same as D4
|
||||||
|
{ PORTA, 9, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel17, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_9 }, // A9 same as D5
|
||||||
|
{ PORTA, 6, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel6, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_6 }, // A10 same as D8
|
||||||
|
{ PORTA, 7, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel7, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_7 }, // A11 same as D9
|
||||||
|
|
||||||
|
// 26..27 I2C pins (SDA/SCL)
|
||||||
// ----------------------
|
// ----------------------
|
||||||
{ PORTB, 2, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, PWM2_CH2, TCC2_CH2, EXTERNAL_INT_6 }, //sda
|
{ PORTA, 22, PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // SDA: SERCOM3/PAD[0]
|
||||||
{ PORTB, 3, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, //scl
|
{ PORTA, 23, PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // SCL: SERCOM3/PAD[1]
|
||||||
|
|
||||||
// 26..28 - SPI pins (ICSP:MISO,SCK,MOSI)
|
// 28..30 - SPI pins (ICSP:MISO,SCK,MOSI)
|
||||||
// ----------------------
|
// ----------------------
|
||||||
{ PORTA, 15, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, PWM2_CH1, TCC2_CH1, EXTERNAL_INT_15 },
|
//TODO: FIX THIS IN HARDWARE!! PA12 IS NOT SERCOM4/PAD[0] ANYMORE
|
||||||
{ PORTA, 14, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, PWM0_CH7, TCC0_CH7, EXTERNAL_INT_13 },
|
{ PORTA, 12, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 }, // MISO: SERCOM4/PAD[0]
|
||||||
{ PORTA, 12, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, PWM0_CH6, TCC0_CH6, EXTERNAL_INT_12 },
|
{ PORTB, 10, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // MOSI: SERCOM4/PAD[2]
|
||||||
|
{ PORTB, 11, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // SCK: SERCOM4/PAD[3]
|
||||||
|
|
||||||
// 29..30 - RX/TX LEDS (PB06/PA27)
|
// 31..32 - RX/TX LEDS (PA31/PA27)
|
||||||
// --------------------
|
// --------------------
|
||||||
{ PORTB, 6, PIO_OUTPUT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // used as output only
|
{ PORTA, 31, PIO_OUTPUT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // used as output only
|
||||||
{ PORTA, 27, PIO_OUTPUT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // used as output only
|
{ PORTA, 27, PIO_OUTPUT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // used as output only
|
||||||
|
|
||||||
// 31..33 - USB
|
// 33..35 - USB
|
||||||
// --------------------
|
// --------------------
|
||||||
{ PORTB, 7, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable
|
//TODO: FIX THIS IN HARDWARE!! PA28 IS NOT USB HOST ENABLE ANYMORE
|
||||||
|
{ PORTA, 28, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable
|
||||||
{ PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM
|
{ PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM
|
||||||
{ PORTA, 25, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
|
{ PORTA, 25, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
|
||||||
|
|
||||||
// 34..36 - Secondary SPI
|
// 36..38 - Secondary SPI
|
||||||
// ----------------------
|
// ----------------------
|
||||||
{ PORTB, 11, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, NOT_AN_INTERRUPT }, //flash miso
|
{ PORTB, 03, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SPI Flash MISO
|
||||||
{ PORTB, 8, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, NOT_AN_INTERRUPT }, //flash mosi
|
{ PORTB, 22, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SPI FLash MOSI
|
||||||
{ PORTB, 9, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, NOT_AN_INTERRUPT }, //flash sck
|
{ PORTB, 23, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SPI FLash SCK
|
||||||
// 37 Secondary SPI SS
|
// 39 Secondary SPI SS
|
||||||
{ PORTB, 10, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, NOT_AN_INTERRUPT }, //flash cs
|
{ PORTA, 13, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_13 }, // SPI Flash SS
|
||||||
|
|
||||||
// 38 - Internal NeoPixel
|
// 40 - Internal NeoPixel
|
||||||
{ PORTB, 17, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // used as output only
|
{ PORTA, 30, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // used as output only
|
||||||
|
|
||||||
// 39 (AREF)
|
// 41 (AREF)
|
||||||
{ PORTA, 3, PIO_ANALOG, PIN_ATTR_ANALOG, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // DAC/VREFP
|
{ PORTA, 3, PIO_ANALOG, PIN_ATTR_ANALOG, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // DAC/VREFP
|
||||||
|
|
||||||
// ----------------------
|
// ----------------------
|
||||||
// 40 - Alternate use of A0 and A1 (DAC output)
|
// 42 - Alternate use of A0 (DAC output)
|
||||||
{ PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, DAC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // DAC/VOUT[0]
|
{ PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, DAC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // DAC/VOUT
|
||||||
{ PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, DAC_Channel1, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // DAC/VOUT[1]
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
const void* g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TCC3, TCC4, TC5 } ;
|
const void* g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TC3 } ;
|
||||||
|
|
||||||
// Multi-serial objects instantiation
|
// Multi-serial objects instantiation
|
||||||
SERCOM sercom0( SERCOM0 ) ;
|
SERCOM sercom0( SERCOM0 ) ;
|
||||||
|
|
@ -184,9 +208,9 @@ SERCOM sercom3( SERCOM3 ) ;
|
||||||
SERCOM sercom4( SERCOM4 ) ;
|
SERCOM sercom4( SERCOM4 ) ;
|
||||||
SERCOM sercom5( SERCOM5 ) ;
|
SERCOM sercom5( SERCOM5 ) ;
|
||||||
|
|
||||||
Uart Serial1( &sercom3, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
|
Uart Serial1( &sercom0, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
|
||||||
|
|
||||||
void SERCOM1_2_Handler()
|
void SERCOM0_2_Handler()
|
||||||
{
|
{
|
||||||
Serial1.IrqHandler();
|
Serial1.IrqHandler();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue