2121/*
2222 * Pins descriptions
2323 */
24+
25+ // TCC0 IOSET 6
26+ // TCC1 IOSET 1
27+ // TC0 IOSET 1
28+ // TC1 IOSET 1
29+ // TC2 IOSET 2
30+ // TC3 IOSET 1
31+ // TC4 IOSET 1
2432const PinDescription g_APinDescription[]=
2533{
2634 // 0..13 - Digital pins
2735 // ----------------------
2836 // 0/1 - SERCOM/UART (Serial1)
29- { PORTB, 17 , PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH5, TCC0_CH2 , EXTERNAL_INT_1 }, // RX: SERCOM5/PAD[1]
30- { PORTB, 16 , PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH4, TCC0_CH4 , EXTERNAL_INT_0 }, // TX: SERCOM5/PAD[0]
37+ { PORTB, 17 , PIO_SERCOM, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH4, NOT_ON_TIMER , EXTERNAL_INT_1 }, // RX: SERCOM5/PAD[1]
38+ { PORTB, 16 , PIO_SERCOM, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH5, NOT_ON_TIMER , EXTERNAL_INT_0 }, // TX: SERCOM5/PAD[0]
3139
3240 // 2..12
3341 // Digital Low
34- { NOT_A_PORT, PIN_NOT_A_PIN, PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
35- { NOT_A_PORT, PIN_NOT_A_PIN, PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
36- { PORTA, 14 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM1_CH2, TCC1_CH2 , EXTERNAL_INT_14 },
37- { PORTA, 16 , PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH0, TCC1_CH0 , EXTERNAL_INT_0 },
38- { PORTA, 18 , PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH2, TCC1_CH2 , EXTERNAL_INT_2 },
39- { NOT_A_PORT, PIN_NOT_A_PIN , PIO_NOT_A_PIN, PIN_ATTR_TIMER, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
42+ { NOT_A_PORT, 0 , PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
43+ { NOT_A_PORT, 0 , PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
44+ { PORTA, 14 , PIO_DIGITAL, PIN_ATTR_PWM_E , No_ADC_Channel, TC3_CH0, TC3_CH0 , EXTERNAL_INT_14 },
45+ { PORTA, 16 , PIO_TIMER_ALT, PIN_ATTR_PWM_F , No_ADC_Channel, TCC1_CH0, TC2_CH0 , EXTERNAL_INT_0 },
46+ { PORTA, 18 , PIO_TIMER_ALT, PIN_ATTR_PWM_F , No_ADC_Channel, TCC1_CH2, TC3_CH0 , EXTERNAL_INT_2 },
47+ { NOT_A_PORT, 0 , PIO_NOT_A_PIN, PIN_ATTR_TIMER, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
4048
4149 // Digital High
42- { PORTB, 3 , PIO_DIGITAL, ( PIN_ATTR_DIGITAL) , No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // neopix
43- { PORTA, 19 , PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH3, TCC1_CH3 , EXTERNAL_INT_3 },
44- { PORTA, 20 , PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH4, TCC1_CH4 , EXTERNAL_INT_4 },
45- { PORTA, 21 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH1, TCC0_CH1 , EXTERNAL_INT_5 },
46- { PORTA, 22 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH2, TCC0_CH2 , EXTERNAL_INT_6 },
50+ { PORTB, 3 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // neopix
51+ { PORTA, 19 , PIO_TIMER_ALT, PIN_ATTR_PWM_F , No_ADC_Channel, TCC1_CH3, TC3_CH1 , EXTERNAL_INT_3 },
52+ { PORTA, 20 , PIO_TIMER_ALT, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH0, NOT_ON_TIMER , EXTERNAL_INT_4 },
53+ { PORTA, 21 , PIO_DIGITAL, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH1, NOT_ON_TIMER , EXTERNAL_INT_5 },
54+ { PORTA, 22 , PIO_DIGITAL, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH2, NOT_ON_TIMER , EXTERNAL_INT_6 },
4755
4856 // 13 (LED)
49- { PORTA, 23 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH3, TCC0_CH3 , EXTERNAL_INT_7 }, // TCC2/WO[1]
57+ { PORTA, 23 , PIO_DIGITAL, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH3, TC4_CH1 , EXTERNAL_INT_7 }, // TCC2/WO[1]
5058
5159 // 14..19 - Analog pins
5260 // --------------------
5361 { PORTA, 2 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
5462 { PORTA, 5 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 },
55- { PORTB, 8 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_8 },
56- { PORTB, 9 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_9 },
57- { PORTA, 4 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_6 },
58- { PORTA, 6 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_10 },
63+ { PORTB, 8 , PIO_ANALOG, ( PIN_ATTR_ANALOG|PIN_ATTR_PWM_E) , ADC_Channel2, TC4_CH0, TC4_CH0 , EXTERNAL_INT_8 },
64+ { PORTB, 9 , PIO_ANALOG, ( PIN_ATTR_ANALOG|PIN_ATTR_PWM_E) , ADC_Channel3, TC4_CH1, TC4_CH1 , EXTERNAL_INT_9 },
65+ { PORTA, 4 , PIO_ANALOG, ( PIN_ATTR_ANALOG|PIN_ATTR_PWM_E) , ADC_Channel4, TC0_CH0, TC0_CH0 , EXTERNAL_INT_6 },
66+ { PORTA, 6 , PIO_ANALOG, ( PIN_ATTR_ANALOG|PIN_ATTR_PWM_E) , ADC_Channel6, TC1_CH0, TC1_CH0 , EXTERNAL_INT_10 },
5967
6068 // A6, D20 - VDiv!
6169 { PORTB, 1 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 },
6270
6371
6472 // 21..22 I2C pins (SDA/SCL)
6573 // ----------------------
66- { PORTA, 12 , PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM1_CH2, TCC1_CH2 , EXTERNAL_INT_12 }, // SDA: SERCOM2/PAD[0]
67- { PORTA, 13 , PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM1_CH3, TCC1_CH3 , EXTERNAL_INT_13 }, // SCL: SERCOM2/PAD[1]
74+ { PORTA, 12 , PIO_SERCOM, PIN_ATTR_PWM_E , No_ADC_Channel, TC2_CH0, TC2_CH0 , EXTERNAL_INT_12 }, // SDA: SERCOM2/PAD[0]
75+ { PORTA, 13 , PIO_SERCOM, PIN_ATTR_PWM_E , No_ADC_Channel, TC2_CH1, TC2_CH1 , EXTERNAL_INT_13 }, // SCL: SERCOM2/PAD[1]
6876
6977 // 23..25 - SPI pins (MISO,MOSI,SCK)
7078 // ----------------------
71- { PORTB, 22 , PIO_SERCOM, ( PIN_ATTR_DIGITAL) , No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // MISO: SERCOM1/PAD[2]
72- { PORTB, 23 , PIO_SERCOM, ( PIN_ATTR_DIGITAL) , No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // MOSI: SERCOM1/PAD[3]
73- { PORTA, 17 , PIO_SERCOM, ( PIN_ATTR_DIGITAL) , No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // SCK: SERCOM1/PAD[1]
79+ { PORTB, 22 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // MISO: SERCOM1/PAD[2]
80+ { PORTB, 23 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // MOSI: SERCOM1/PAD[3]
81+ { PORTA, 17 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // SCK: SERCOM1/PAD[1]
7482
7583 // 26..27 - RX/TX LEDS -- unused
7684 // --------------------
77- { NOT_A_PORT, PIN_NOT_A_PIN , PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
78- { NOT_A_PORT, PIN_NOT_A_PIN , PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
85+ { NOT_A_PORT, 0 , PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
86+ { NOT_A_PORT, 0 , PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
7987
8088 // 28..30 - USB
8189 // --------------------
82- { NOT_A_PORT, PIN_NOT_A_PIN , PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable DOES NOT EXIST ON THIS BOARD
90+ { NOT_A_PORT, 0 , PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable DOES NOT EXIST ON THIS BOARD
8391 { PORTA, 24 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM
8492 { PORTA, 27 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
8593
@@ -101,7 +109,8 @@ const PinDescription g_APinDescription[]=
101109 { PORTA, 11 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
102110} ;
103111
104- const void * g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TC0, TC1, TC2, TC3 } ;
112+ const void * g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TCC3, TCC4, TC0, TC1, TC2, TC3, TC4, TC5 } ;
113+ const uint32_t GCLK_CLKCTRL_IDs[TCC_INST_NUM+TC_INST_NUM] = { TCC0_GCLK_ID, TCC1_GCLK_ID, TCC2_GCLK_ID, TCC3_GCLK_ID, TCC4_GCLK_ID, TC0_GCLK_ID, TC1_GCLK_ID, TC2_GCLK_ID, TC3_GCLK_ID, TC4_GCLK_ID, TC5_GCLK_ID } ;
105114
106115// Multi-serial objects instantiation
107116SERCOM sercom0 ( SERCOM0 ) ;
0 commit comments