Skip to content

Commit 7ec720c

Browse files
committed
restore the definition of wio terminal Serial1
1 parent c6ef22d commit 7ec720c

File tree

2 files changed

+34
-70
lines changed

2 files changed

+34
-70
lines changed

variants/wio_terminal/variant.cpp

+22-10
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
/*
22
Copyright (c) 2014-2015 Arduino LLC. All right reserved.
3-
43
This library is free software; you can redistribute it and/or
54
modify it under the terms of the GNU Lesser General Public
65
License as published by the Free Software Foundation; either
76
version 2.1 of the License, or (at your option) any later version.
8-
97
This library is distributed in the hope that it will be useful,
108
but WITHOUT ANY WARRANTY; without even the implied warranty of
119
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1210
See the GNU Lesser General Public License for more details.
13-
1411
You should have received a copy of the GNU Lesser General Public
1512
License along with this library; if not, write to the Free Software
1613
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
@@ -93,9 +90,9 @@ const PinDescription g_APinDescription[] =
9390
//39 MIC INPUT
9491
{PORTC, 30, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel12, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14}, //MIC_INPUT
9592

96-
//40..41 UART GPIO (Host)
97-
{PORTB, 26, PIO_SERCOM, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM_F), No_ADC_Channel, TCC1_CH2, NOT_ON_TIMER, EXTERNAL_INT_12}, //SERCOM2.0
98-
{PORTB, 27, PIO_SERCOM, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM_F), No_ADC_Channel, TCC1_CH3, NOT_ON_TIMER, EXTERNAL_INT_13}, //SERCOM2.1
93+
//40..41 UART Serial1
94+
{PORTB, 26, PIO_SERCOM, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM_F), No_ADC_Channel, TCC1_CH2, NOT_ON_TIMER, EXTERNAL_INT_12}, //UART1_TX, SERCOM2.0
95+
{PORTB, 27, PIO_SERCOM, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM_F), No_ADC_Channel, TCC1_CH3, NOT_ON_TIMER, EXTERNAL_INT_13}, //UART1_RX, SERCOM2.1
9996

10097
// 42..44 - USB
10198
{PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8}, // USB_D-
@@ -186,11 +183,8 @@ const PinDescription g_APinDescription[] =
186183

187184
//91..92 OUTPUT_CTR
188185
{PORTC, 14, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14},
189-
{PORTC, 15, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15},
186+
{PORTC, 15, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15}
190187

191-
//93..94 UART GPIO (Device)
192-
{PORTB, 26, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12}, //SERCOM4.1
193-
{PORTB, 27, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_13}, //SERCOM4.0
194188
};
195189

196190
const void *g_apTCInstances[TCC_INST_NUM + TC_INST_NUM] = {TCC0, TCC1, TCC2, TCC3, TCC4, TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7};
@@ -206,6 +200,7 @@ SERCOM sercom5(SERCOM5);
206200
SERCOM sercom6(SERCOM6);
207201
SERCOM sercom7(SERCOM7);
208202

203+
Uart Serial1(&SERCOM_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX);
209204
Uart Serial2(&SERCOM_SERIAL2, PIN_SERIAL2_RX, PIN_SERIAL2_TX, PAD_SERIAL2_RX, PAD_SERIAL2_TX);
210205

211206
void SERCOM1_0_Handler()
@@ -224,3 +219,20 @@ void SERCOM1_3_Handler()
224219
{
225220
Serial2.IrqHandler();
226221
}
222+
223+
void SERCOM2_0_Handler()
224+
{
225+
Serial1.IrqHandler();
226+
}
227+
void SERCOM2_1_Handler()
228+
{
229+
Serial1.IrqHandler();
230+
}
231+
void SERCOM2_2_Handler()
232+
{
233+
Serial1.IrqHandler();
234+
}
235+
void SERCOM2_3_Handler()
236+
{
237+
Serial1.IrqHandler();
238+
}

variants/wio_terminal/variant.h

+12-60
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
/*
22
Copyright (c) 2014-2015 Arduino LLC. All right reserved.
3-
43
This library is free software; you can redistribute it and/or
54
modify it under the terms of the GNU Lesser General Public
65
License as published by the Free Software Foundation; either
76
version 2.1 of the License, or (at your option) any later version.
8-
97
This library is distributed in the hope that it will be useful,
108
but WITHOUT ANY WARRANTY; without even the implied warranty of
119
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1210
See the GNU Lesser General Public License for more details.
13-
1411
You should have received a copy of the GNU Lesser General Public
1512
License along with this library; if not, write to the Free Software
1613
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
@@ -57,7 +54,7 @@ extern "C"
5754
*----------------------------------------------------------------------------*/
5855

5956
// Number of pins defined in PinDescription array
60-
#define PINS_COUNT (sizeof(g_APinDescription) / sizeof(g_APinDescription[0]))
57+
#define PINS_COUNT (93u)
6158
#define NUM_DIGITAL_PINS (23u)
6259
#define NUM_ANALOG_INPUTS (14u)
6360
#define NUM_ANALOG_OUTPUTS (2u)
@@ -265,66 +262,20 @@ static const uint8_t DAC1 = PIN_DAC1;
265262
* Serial interfaces
266263
*/
267264

265+
// Serial1
266+
#define PIN_SERIAL1_RX (41ul)
267+
#define PIN_SERIAL1_TX (40ul)
268+
#define PAD_SERIAL1_RX (SERCOM_RX_PAD_1)
269+
#define PAD_SERIAL1_TX (UART_TX_PAD_0)
270+
#define SERCOM_SERIAL1 sercom2
271+
268272
// Serial2
269273
#define PIN_SERIAL2_RX (83ul)
270274
#define PIN_SERIAL2_TX (82ul)
271275
#define PAD_SERIAL2_RX (SERCOM_RX_PAD_1)
272276
#define PAD_SERIAL2_TX (UART_TX_PAD_0)
273277
#define SERCOM_SERIAL2 sercom1
274278

275-
// UART GPIO (Host)
276-
// static Uart GpioSerial(&SERCOM_GPIO_SERIAL, PIN_GPIO_SERIAL_RX, PIN_GPIO_SERIAL_TX, PAD_GPIO_SERIAL_RX, PAD_GPIO_SERIAL_TX);
277-
// INTERRUPT_HANDLER_IMPLEMENT_GPIO_SERIAL(GpioSerial)
278-
#define PIN_GPIO_SERIAL_RX (BCM15)
279-
#define PIN_GPIO_SERIAL_TX (BCM14)
280-
#define PAD_GPIO_SERIAL_RX (SERCOM_RX_PAD_1)
281-
#define PAD_GPIO_SERIAL_TX (UART_TX_PAD_0)
282-
#define SERCOM_GPIO_SERIAL sercom2
283-
#define INTERRUPT_HANDLER_IMPLEMENT_GPIO_SERIAL(uart) \
284-
void SERCOM2_0_Handler() \
285-
{ \
286-
(uart).IrqHandler(); \
287-
} \
288-
void SERCOM2_1_Handler() \
289-
{ \
290-
(uart).IrqHandler(); \
291-
} \
292-
void SERCOM2_2_Handler() \
293-
{ \
294-
(uart).IrqHandler(); \
295-
} \
296-
void SERCOM2_3_Handler() \
297-
{ \
298-
(uart).IrqHandler(); \
299-
}
300-
301-
// UART GPIO (Device)
302-
// Uart GpioSerial(&SERCOM_GPIO_SERIAL_X, PIN_GPIO_SERIAL_X_RX, PIN_GPIO_SERIAL_X_TX, PAD_GPIO_SERIAL_X_RX, PAD_GPIO_SERIAL_X_TX);
303-
// INTERRUPT_HANDLER_IMPLEMENT_GPIO_SERIAL_X(GpioSerial)
304-
305-
#define PIN_GPIO_SERIAL_X_RX (93ul)
306-
#define PIN_GPIO_SERIAL_X_TX (94ul)
307-
#define PAD_GPIO_SERIAL_X_RX (SERCOM_RX_PAD_1)
308-
#define PAD_GPIO_SERIAL_X_TX (UART_TX_PAD_0)
309-
#define SERCOM_GPIO_SERIAL_X sercom4
310-
#define INTERRUPT_HANDLER_IMPLEMENT_GPIO_SERIAL_X(uart) \
311-
void SERCOM4_0_Handler() \
312-
{ \
313-
(uart).IrqHandler(); \
314-
} \
315-
void SERCOM4_1_Handler() \
316-
{ \
317-
(uart).IrqHandler(); \
318-
} \
319-
void SERCOM4_2_Handler() \
320-
{ \
321-
(uart).IrqHandler(); \
322-
} \
323-
void SERCOM4_3_Handler() \
324-
{ \
325-
(uart).IrqHandler(); \
326-
}
327-
328279
/*
329280
* Wire Interfaces
330281
*/
@@ -522,6 +473,7 @@ extern SERCOM sercom5;
522473
extern SERCOM sercom6;
523474
extern SERCOM sercom7;
524475

476+
extern Uart Serial1;
525477
extern Uart Serial2;
526478

527479
#endif
@@ -544,10 +496,10 @@ extern Uart Serial2;
544496
#define SERIAL_PORT_USBVIRTUAL Serial
545497
#define SERIAL_PORT_MONITOR Serial
546498
// Serial has no physical pins broken out, so it's not listed as HARDWARE port
547-
#define SERIAL_PORT_HARDWARE
548-
#define SERIAL_PORT_HARDWARE_OPEN
499+
#define SERIAL_PORT_HARDWARE Serial1
500+
#define SERIAL_PORT_HARDWARE_OPEN Serial1
549501
#define RTL8720D Serial2
550502
// Alias Serial to SerialUSB
551503
#define SerialUSB Serial
552504

553-
#endif /* _VARIANT_GREOVE_UI_M4_WIRELESS */
505+
#endif /* _VARIANT_GREOVE_UI_M4_WIRELESS */

0 commit comments

Comments
 (0)