21
21
/*
22
22
* Pins descriptions
23
23
*/
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
24
32
const PinDescription g_APinDescription[]=
25
33
{
26
34
// 0..13 - Digital pins
27
35
// ----------------------
28
36
// 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]
31
39
32
40
// 2..12
33
41
// 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 },
40
48
41
49
// 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 },
47
55
48
56
// 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]
50
58
51
59
// 14..19 - Analog pins
52
60
// --------------------
53
61
{ PORTA, 2 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
54
62
{ 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 },
59
67
60
68
// A6, D20 - VDiv!
61
69
{ PORTB, 1 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 },
62
70
63
71
64
72
// 21..22 I2C pins (SDA/SCL)
65
73
// ----------------------
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]
68
76
69
77
// 23..25 - SPI pins (MISO,MOSI,SCK)
70
78
// ----------------------
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]
74
82
75
83
// 26..27 - RX/TX LEDS -- unused
76
84
// --------------------
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 },
79
87
80
88
// 28..30 - USB
81
89
// --------------------
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
83
91
{ PORTA, 24 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM
84
92
{ PORTA, 27 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
85
93
@@ -101,7 +109,8 @@ const PinDescription g_APinDescription[]=
101
109
{ PORTA, 11 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
102
110
} ;
103
111
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 } ;
105
114
106
115
// Multi-serial objects instantiation
107
116
SERCOM sercom0 ( SERCOM0 ) ;
0 commit comments