@@ -26,51 +26,51 @@ const PinDescription g_APinDescription[]=
2626 // 0..13 - Digital pins
2727 // ----------------------
2828 // 0/1 - SERCOM/UART (Serial1)
29- { PORTA, 23 , PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH7, TCC1_CH7 , EXTERNAL_INT_7 }, // RX: SERCOM3/PAD[1]
30- { PORTA, 22 , PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH6, TCC1_CH6 , EXTERNAL_INT_6 }, // TX: SERCOM3/PAD[0]
29+ { PORTA, 23 , PIO_SERCOM, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH3, TC4_CH1 , EXTERNAL_INT_7 }, // RX: SERCOM3/PAD[1]
30+ { PORTA, 22 , PIO_SERCOM, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH2, TC4_CH0 , EXTERNAL_INT_6 }, // TX: SERCOM3/PAD[0]
3131
3232 // 2..12
3333 // Digital Low
34- { PORTB, 17 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH5, TCC0_CH5 , EXTERNAL_INT_1 },
35- { PORTB, 16 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH4, TCC0_CH4 , EXTERNAL_INT_0 },
36- { PORTB, 13 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH1, TCC0_CH1 , EXTERNAL_INT_13 },
37- { PORTB, 14 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH2, TCC0_CH2 , EXTERNAL_INT_14 },
38- { PORTB, 15 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH3, TCC0_CH3 , EXTERNAL_INT_15 },
39- { PORTB, 12 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER) , No_ADC_Channel, PWM0_CH0, TCC0_CH0 , EXTERNAL_INT_12 },
34+ { PORTB, 17 , PIO_DIGITAL, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH5, NOT_ON_TIMER , EXTERNAL_INT_1 },
35+ { PORTB, 16 , PIO_DIGITAL, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH4, NOT_ON_TIMER , EXTERNAL_INT_0 },
36+ { PORTB, 13 , PIO_DIGITAL, PIN_ATTR_PWM_F , No_ADC_Channel, TCC3_CH1, TC4_CH1 , EXTERNAL_INT_13 },
37+ { PORTB, 14 , PIO_DIGITAL, PIN_ATTR_PWM_F , No_ADC_Channel, TCC4_CH0, TC5_CH0 , EXTERNAL_INT_14 },
38+ { PORTB, 15 , PIO_DIGITAL, PIN_ATTR_PWM_F , No_ADC_Channel, TCC4_CH1, TC5_CH1 , EXTERNAL_INT_15 },
39+ { PORTB, 12 , PIO_DIGITAL, PIN_ATTR_PWM_F , No_ADC_Channel, TCC3_CH0, TC4_CH0 , EXTERNAL_INT_12 },
4040
4141 // Digital High
42- { PORTA, 21 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH5, TCC1_CH5 , EXTERNAL_INT_5 },
43- { PORTA, 20 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH4, TCC1_CH4 , EXTERNAL_INT_4 },
44- { PORTA, 18 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH2, TCC1_CH2 , EXTERNAL_INT_2 },
45- { PORTA, 19 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH3, TCC1_CH3 , EXTERNAL_INT_3 },
46- { PORTA, 17 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH1, TCC1_CH1 , EXTERNAL_INT_1 },
42+ { PORTA, 21 , PIO_DIGITAL, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH1, NOT_ON_TIMER , EXTERNAL_INT_5 },
43+ { PORTA, 20 , PIO_DIGITAL, PIN_ATTR_PWM_G , No_ADC_Channel, TCC0_CH0, NOT_ON_TIMER , EXTERNAL_INT_4 },
44+ { PORTA, 18 , PIO_DIGITAL, PIN_ATTR_PWM_F , No_ADC_Channel, TCC1_CH2, TC3_CH0 , EXTERNAL_INT_2 },
45+ { PORTA, 19 , PIO_DIGITAL, PIN_ATTR_PWM_F , No_ADC_Channel, TCC1_CH3, TC3_CH1 , EXTERNAL_INT_3 },
46+ { PORTA, 17 , PIO_DIGITAL, PIN_ATTR_PWM_F , No_ADC_Channel, TCC1_CH1, TC2_CH1 , EXTERNAL_INT_1 },
4747
4848 // 13 (LED)
49- { PORTA, 16 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH0, TCC1_CH0 , EXTERNAL_INT_0 },
49+ { PORTA, 16 , PIO_DIGITAL, PIN_ATTR_PWM_F , No_ADC_Channel, TCC1_CH0, TC2_CH0 , EXTERNAL_INT_0 },
5050
5151 // 14..19 - Analog pins
5252 // --------------------
5353 { PORTA, 2 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
54- { PORTA, 5 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_5 },
55- { PORTA, 6 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_6 },
56- { PORTA, 4 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_4 },
57- { PORTB, 8 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_8 },
58- { PORTB, 9 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_9 },
54+ { PORTA, 5 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, TC0_CH1 , EXTERNAL_INT_5 },
55+ { PORTA, 6 , PIO_ANALOG, ( PIN_ATTR_ANALOG|PIN_ATTR_PWM_E) , ADC_Channel6, TC1_CH0, TC1_CH0 , EXTERNAL_INT_6 },
56+ { PORTA, 4 , PIO_ANALOG, ( PIN_ATTR_ANALOG|PIN_ATTR_PWM_E) , ADC_Channel4, TC0_CH0, TC0_CH0 , EXTERNAL_INT_4 },
57+ { PORTB, 8 , PIO_ANALOG, ( PIN_ATTR_ANALOG|PIN_ATTR_PWM_E) , ADC_Channel2, TC4_CH0, TC4_CH0 , EXTERNAL_INT_8 },
58+ { PORTB, 9 , PIO_ANALOG, ( PIN_ATTR_ANALOG|PIN_ATTR_PWM_E) , ADC_Channel3, TC4_CH1, TC4_CH1 , EXTERNAL_INT_9 },
5959
6060 // Extra Analog pins! 20..21
6161 { PORTB, 2 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel14, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // same as sda
6262 { PORTB, 3 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // same as scl
6363
6464 // 22..23 I2C pins (SDA/SCL)
6565 // ----------------------
66- { PORTB, 2 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL , No_ADC_Channel, NOT_ON_PWM , NOT_ON_TIMER, EXTERNAL_INT_2 }, // sda
66+ { PORTB, 2 , PIO_SERCOM_ALT, PIN_ATTR_PWM_F , No_ADC_Channel, TCC2_CH2 , NOT_ON_TIMER, EXTERNAL_INT_2 }, // sda
6767 { PORTB, 3 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // scl
6868
6969 // 24..26 - SPI pins (ICSP:MISO,SCK,MOSI)
7070 // ----------------------
71- { PORTA, 14 , PIO_SERCOM, PIN_ATTR_DIGITAL , No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_14 },
72- { PORTA, 13 , PIO_SERCOM, PIN_ATTR_DIGITAL , No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_13 },
73- { PORTA, 12 , PIO_SERCOM, PIN_ATTR_DIGITAL , No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER , EXTERNAL_INT_12 },
71+ { PORTA, 14 , PIO_SERCOM, PIN_ATTR_PWM_E , No_ADC_Channel, TC3_CH0, TC3_CH0 , EXTERNAL_INT_14 },
72+ { PORTA, 13 , PIO_SERCOM, PIN_ATTR_PWM_E , No_ADC_Channel, TC2_CH1, TC2_CH1 , EXTERNAL_INT_13 },
73+ { PORTA, 12 , PIO_SERCOM, PIN_ATTR_PWM_E , No_ADC_Channel, TC2_CH0, TC2_CH0 , EXTERNAL_INT_12 },
7474
7575 // 27..28 - RX/TX LEDS (PB06/PA27)
7676 // --------------------
@@ -101,7 +101,7 @@ const PinDescription g_APinDescription[]=
101101 { PORTA, 5 , PIO_ANALOG, PIN_ATTR_ANALOG, DAC_Channel1, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // DAC/VOUT[1]
102102
103103 // 39 - LED #13 duplicate placeholder
104- { PORTA, 16 , PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM) , No_ADC_Channel, PWM1_CH0, NOT_ON_TIMER , EXTERNAL_INT_0 },
104+ { PORTA, 16 , PIO_DIGITAL, PIN_ATTR_PWM_F , No_ADC_Channel, TCC1_CH0, TC2_CH0 , EXTERNAL_INT_0 },
105105
106106 // 40 - Internal NeoPixel
107107 { PORTB, 22 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // used as output only
@@ -116,7 +116,9 @@ const PinDescription g_APinDescription[]=
116116 { PORTA, 11 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 },
117117} ;
118118
119- const void * g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TCC3, TCC4, TC5 } ;
119+ const void * g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TCC3, TCC4, TC0, TC1, TC2, TC3, TC4, TC5 } ;
120+ 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 } ;
121+
120122
121123// Multi-serial objects instantiation
122124SERCOM sercom0 ( SERCOM0 ) ;
0 commit comments