17
17
*/
18
18
/*
19
19
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
20
- * + Pin number + M0 Radio pin | PIN | Label/Name | Comments (* is for default peripheral in use)
20
+ * + Pin number + ZERO Board pin | PIN | Label/Name | Comments (* is for default peripheral in use)
21
21
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
22
22
* | | Digital Low | | |
23
23
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
24
- * | 2 | 1 | PA14 | MISO | EIC/EXTINT[14] *SERCOM2/PAD[2] SERCOM4/PAD[2] TC3/WO[0] TCC0/WO[4]
25
- * | 3 | A17 | PA09 | | EIC/EXTINT[9] *ADC/AIN[17] PTC/X[1] SERCOM0/PAD[1] SERCOM2/PAD[1] *TCC0/WO[1] TCC1/WO[3]
26
- * | 4 | A16 | PA08 | | EIC/NMI *ADC/AIN[16] PTC/X[0] SERCOM0/PAD[0] SERCOM2/PAD[0] *TCC0/WO[0] TCC1/WO[2]
24
+ * | 0 | 0 | PA11 | AT86RF233_DIG4 | EIC/EXTINT[11] ADC/AIN[19] PTC/X[3] SERCOM0/PAD[3] SERCOM2/PAD[3] TCC0/WO[3] TCC1/WO[1]
25
+ * | 1 | 1 | PA10 | AT86RF233_DIG3 | EIC/EXTINT[10] ADC/AIN[18] PTC/X[2] SERCOM0/PAD[2] TCC0/WO[2] TCC1/WO[0]
26
+ * | 2 | 2 | PA14 | MISO | EIC/EXTINT[14] SERCOM2/PAD[2] SERCOM4/PAD[2] TC3/WO[0] TCC0/WO[4]
27
+ * | 3 | ~3 | PA09 | | EIC/EXTINT[9] ADC/AIN[17] PTC/X[1] SERCOM0/PAD[1] SERCOM2/PAD[1] *TCC0/WO[1] TCC1/WO[3]
28
+ * | 4 | ~4 | PA08 | | EIC/NMI ADC/AIN[16] PTC/X[0] SERCOM0/PAD[0] SERCOM2/PAD[0] *TCC0/WO[0] TCC1/WO[2]
27
29
* | 5 | ~5 | PA15 | | EIC/EXTINT[15] SERCOM2/PAD[3] SERCOM4/PAD[3] *TC3/WO[1] TCC0/WO[5]
30
+ * | 6 | ~6 | PA20 | | EIC/EXTINT[4] PTC/X[8] SERCOM5/PAD[2] SERCOM3/PAD[2] *TCC0/WO[6]
31
+ * | 7 | 7 | PA21 | | EIC/EXTINT[5] PTC/X[9] SERCOM5/PAD[3] SERCOM3/PAD[3] TCC0/WO[7]
28
32
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
29
33
* | | Digital High | | |
30
34
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
37
41
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
38
42
* | | Analog Connector | | |
39
43
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
40
- * | ??? | A11 | PB03 | | EIC/EXTINT[3] *ADC/AIN[11] PTC/Y[8] SERCOM5/PAD[1]
44
+ * | 14 | A0 | PA02 | A0 | EIC/EXTINT[2] *ADC/AIN[0] DAC/VOUT PTC/Y[0]
45
+ * | 15 | A1 | PB08 | A1 | EIC/EXTINT[8] *ADC/AIN[2] PTC/Y[14] SERCOM4/PAD[0] TC4/WO[0]
46
+ * | 16 | A2 | PB09 | A2 | EIC/EXTINT[9] *ADC/AIN[3] PTC/Y[15] SERCOM4/PAD[1] TC4/WO[1]
41
47
* | 17 | A3 | PA04 | A3 | EIC/EXTINT[4] *ADC/AIN[4] AC/AIN[0] PTC/Y[2] SERCOM0/PAD[0] TCC0/WO[0]
42
48
* | 18 | A4 | PA05 | A4 | EIC/EXTINT[5] *ADC/AIN[5] AC/AIN[1] PTC/Y[5] SERCOM0/PAD[1] TCC0/WO[1]
43
49
* | 19 | A5 | PB02 | A5 | EIC/EXTINT[2] *ADC/AIN[10] PTC/Y[8] SERCOM5/PAD[0]
49
55
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
50
56
* | |SPI (Legacy ICSP) | | |
51
57
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
52
- * | 22 | 4 | PA12 | MOSI | EIC/EXTINT[12] * SERCOM2/PAD[0] SERCOM4/PAD[0] TCC2/WO[0] TCC0/WO[6]
58
+ * | 22 | 1 | PA12 | MISO | EIC/EXTINT[12] SERCOM2/PAD[0] * SERCOM4/PAD[0] TCC2/WO[0] TCC0/WO[6]
53
59
* | | 2 | | 5V0 |
54
- * | 38 | 3 | PA13 | SCK | EIC/EXTINT[13] *SERCOM2/PAD[1] SERCOM4/PAD[1] TCC2/WO[1] TCC0/WO[7]
60
+ * | 23 | 4 | PB10 | MOSI | EIC/EXTINT[10] *SERCOM4/PAD[2] TC5/WO[0] TCC0/WO[4]
61
+ * | 24 | 3 | PB11 | SCK | EIC/EXTINT[11] *SERCOM4/PAD[3] TC5/WO[1] TCC0/WO[5]
55
62
* | | 5 | | RESET |
56
63
* | | 6 | | GND |
57
64
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
58
65
* | | LEDs | | |
59
66
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
67
+ * | 25 | | PB03 | RX |
60
68
* | 26 | | PA27 | TX |
61
69
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
62
70
* | | USB | | |
65
73
* | 28 | | PA24 | USB_NEGATIVE | *USB/DM
66
74
* | 29 | | PA25 | USB_POSITIVE | *USB/DP
67
75
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
68
- * | | UART | | |
76
+ * | | EDBG | | |
69
77
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
70
- * | 30 | | PB22 | UART TX | *SERCOM5/PAD[2]
71
- * | 31 | | PB23 | UART RX | *SERCOM5/PAD[3]
78
+ * | 30 | | PB22 | EDBG_UART TX | *SERCOM5/PAD[2]
79
+ * | 31 | | PB23 | EDBG_UART RX | *SERCOM5/PAD[3]
72
80
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
73
81
* | 32 | | PA22 | EDBG_SDA | Pin 20 (SDA)
74
82
* | 33 | | PA23 | EDBG_SCL | Pin 21 (SCL)
75
83
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
84
+ * | 34 | | PA19 | EDBG_MISO | EIC/EXTINT[3] *SERCOM1/PAD[3] SERCOM3/PAD[3] TC3/WO[1] TCC0/WO[3]
85
+ * | 35 | | PA16 | EDBG_MOSI | EIC/EXTINT[0] *SERCOM1/PAD[0] SERCOM3/PAD[0] TCC2/WO[0] TCC0/WO[6]
86
+ * | 36 | | PA18 | EDBG_SS | EIC/EXTINT[2] *SERCOM1/PAD[2] SERCOM3/PAD[2] TC3/WO[0] TCC0/WO[2]
87
+ * | 37 | | PA17 | EDBG_SCK | EIC/EXTINT[1] *SERCOM1/PAD[1] SERCOM3/PAD[1] TCC2/WO[1] TCC0/WO[7]
88
+ * +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
89
+ * | 38 | ATN | PA13 | EDBG_GPIO0 | EIC/EXTINT[13] SERCOM2/PAD[1] SERCOM4/PAD[1] *TCC2/WO[1] TCC0/WO[7]
90
+ * | 39 | | PA21 | EDBG_GPIO1 | Pin 7
91
+ * | 40 | | PA06 | EDBG_GPIO2 | Pin 8
92
+ * | 41 | | PA07 | EDBG_GPIO3 | Pin 9
93
+ * +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
76
94
* | | | | |
77
95
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
96
+ * | | GND | | |
97
+ * | 42 | AREF | PA03 | | EIC/EXTINT[3] *[ADC|DAC]/VREFA ADC/AIN[1] PTC/Y[1]
98
+ * +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
78
99
* | |32.768KHz Crystal | | |
79
100
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
80
101
* | | | PA00 | XIN32 | EIC/EXTINT[0] SERCOM1/PAD[0] TCC2/WO[0]
@@ -92,16 +113,18 @@ const PinDescription g_APinDescription[]=
92
113
{
93
114
// 0..13 - Digital pins
94
115
// ----------------------
116
+ // 0/1 - AT86RF233 internal pins
117
+ { PORTA, 11 , PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // AT86RF233 DIG4
118
+ { PORTA, 10 , PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // AT86RF233 DIG3
95
119
96
120
// 2..12
97
121
// Digital Low
98
- { PORTA, 9 , PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_9 }, // MISO: SERCOM2/PAD[2]
99
-
100
-
122
+ { PORTA, 14 , PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14 }, // SPI MISO SERCOM 2.2
123
+ { PORTA, 9 , PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_9 }, // TCC0/WO[1]
101
124
{ PORTA, 8 , PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH0, TCC0_CH0, EXTERNAL_INT_NMI }, // TCC0/WO[0]
102
125
{ PORTA, 15 , PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH1, TC3_CH1, EXTERNAL_INT_15 }, // TC3/WO[1]
103
126
{ PORTA, 20 , PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH6, TCC0_CH6, EXTERNAL_INT_4 }, // TCC0/WO[6]
104
- { PORTA, 21 , PIO_DIGITAL, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 },
127
+ { }, // PA21 not available on SAMR
105
128
106
129
// Digital High
107
130
{ PORTA, 6 , PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel6, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_6 }, // TCC1/WO[0]
@@ -115,9 +138,9 @@ const PinDescription g_APinDescription[]=
115
138
116
139
// 14..19 - Analog pins
117
140
// --------------------
118
- { PORTA, 2 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // ADC/AIN[0]
119
- { PORTB , 8 , PIO_ANALOG, (PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel2, PWM4_CH0, TC4_CH0, EXTERNAL_INT_8 }, // ADC/AIN[2]
120
- { PORTB , 9 , PIO_ANALOG, (PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel3, PWM4_CH1, TC4_CH1, EXTERNAL_INT_9 }, // ADC/AIN[3]
141
+ { }, // PA02 not available on SAMR
142
+ { } , // PB08 not available on SAMR
143
+ { } , // PB09 not available on SAMR
121
144
{ PORTA, 4 , PIO_ANALOG, 0 , ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // ADC/AIN[4]
122
145
{ PORTA, 5 , PIO_ANALOG, 0 , ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // ADC/AIN[5]
123
146
{ PORTB, 2 , PIO_ANALOG, 0 , ADC_Channel10, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // ADC/AIN[10]
@@ -129,13 +152,13 @@ const PinDescription g_APinDescription[]=
129
152
130
153
// 22..24 - SPI pins (ICSP:MISO,SCK,MOSI)
131
154
// ----------------------
132
- { PORTA, 12 , PIO_SERCOM_ALT , PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 },
133
- { PORTB, 10 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // MOSI: SERCOM4/PAD[2]
134
- { PORTB, 11 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // SCK: SERCOM4/PAD[3]
155
+ { PORTA, 12 , PIO_SERCOM , PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 }, // MOSI: SERCOM2/PAD[0]
156
+ { }, // PB10 Not available
157
+ { }, // PB11 Not available
135
158
136
- // 25..26 - RX/ TX LEDS (PB03/PA27)
159
+ // 25..26 - IO & TX LED (PB03/PA27)
137
160
// --------------------
138
- { PORTB, 3 , PIO_OUTPUT, PIN_ATTR_DIGITAL, No_ADC_Channel , NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // used as output only
161
+ { PORTB, 3 , PIO_ANALOG, 0 , ADC_Channel11 , NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // used as analog11
139
162
{ PORTA, 27 , PIO_OUTPUT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // used as output only
140
163
141
164
// 27..29 - USB
@@ -144,9 +167,9 @@ const PinDescription g_APinDescription[]=
144
167
{ PORTA, 24 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM
145
168
{ PORTA, 25 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
146
169
147
- // 30..41 - EDBG
170
+ // 30..41 - Serial1 UART
148
171
// ----------------------
149
- // 30/31 - EDBG/ UART
172
+ // 30/31 - Serial1 UART
150
173
{ PORTB, 22 , PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // TX: SERCOM5/PAD[2]
151
174
{ PORTB, 23 , PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // RX: SERCOM5/PAD[3]
152
175
@@ -161,17 +184,17 @@ const PinDescription g_APinDescription[]=
161
184
{ PORTA, 17 , PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SCK: SERCOM1/PAD[1]
162
185
163
186
// 38..41 - EDBG/Digital
164
- { PORTA, 13 , PIO_PWM , (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM0_CH5, NOT_ON_TIMER, EXTERNAL_INT_13 }, // EIC/EXTINT[13] *TCC2/WO[1] TCC0/WO[7]
165
- { PORTA, 21 , PIO_PWM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM0_CH7, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Pin 7
187
+ { PORTA, 13 , PIO_SERCOM , (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM0_CH5, NOT_ON_TIMER, EXTERNAL_INT_13 }, // SCK: SERCOM2.1
188
+ { }, // PA21 Not available
166
189
{ PORTA, 6 , PIO_PWM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH0, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Pin 8
167
190
{ PORTA, 7 , PIO_PWM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH1, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Pin 9
168
191
169
192
// 42 (AREF)
170
- { PORTA, 3 , PIO_ANALOG, PIN_ATTR_ANALOG, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // DAC/VREFP
193
+ { }, // DAC/VREFP
171
194
172
195
// ----------------------
173
196
// 43 - Alternate use of A0 (DAC output)
174
- { PORTA, 2 , PIO_ANALOG, PIN_ATTR_ANALOG, DAC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // DAC/VOUT
197
+ { }, // DAC/VOUT
175
198
} ;
176
199
177
200
const void * g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TC3, TC4, TC5 } ;
@@ -184,19 +207,9 @@ SERCOM sercom3( SERCOM3 ) ;
184
207
SERCOM sercom4 ( SERCOM4 ) ;
185
208
SERCOM sercom5 ( SERCOM5 ) ;
186
209
187
- Uart Serial1 ( &sercom0, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
188
- void SERCOM0_Handler ()
189
- {
190
- Serial1.IrqHandler ();
191
- }
192
-
193
-
194
- // Serial5 not available on Feather so ditch it
195
-
196
- // Uart Serial5( &sercom5, PIN_SERIAL_RX, PIN_SERIAL_TX, PAD_SERIAL_RX, PAD_SERIAL_TX ) ;
197
- /*
210
+ // We'll use sercom5 for Serial1 hardware serial since pins 0 and 1 are not external
211
+ Uart Serial1 ( &sercom5, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
198
212
void SERCOM5_Handler ()
199
213
{
200
- Serial5 .IrqHandler();
214
+ Serial1 .IrqHandler ();
201
215
}
202
- */
0 commit comments