Skip to content

Commit 9507d1b

Browse files
committed
if Role is salve, reverse Serial1 RX/TX.
1 parent 1c8741f commit 9507d1b

File tree

2 files changed

+44
-13
lines changed

2 files changed

+44
-13
lines changed

variants/wio_terminal/variant.cpp

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const PinDescription g_APinDescription[] =
4949

5050
// 13 (LED)
5151
{PORTA, 15, PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC2_CH1, TCC2_CH1, EXTERNAL_INT_15},
52-
52+
5353
//14 WIO_IR
5454
{PORTB, 31, PIO_DIGITAL, PIN_ATTR_PWM_E, No_ADC_Channel, TC0_CH1, TC0_CH1, EXTERNAL_INT_15},
5555
{PORTA, 20, PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC0_CH0, TCC0_CH0, EXTERNAL_INT_4},
@@ -59,14 +59,14 @@ const PinDescription g_APinDescription[] =
5959
{PORTB, 28, PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC0_CH4, TCC0_CH4, EXTERNAL_INT_14},
6060
{PORTB, 17, PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC3_CH1, TCC3_CH1, EXTERNAL_INT_1},
6161
{PORTB, 29, PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC1_CH5, TCC1_CH5, EXTERNAL_INT_15},
62-
{PORTA, 14, PIO_DIGITAL, PIN_ATTR_PWM_E, No_ADC_Channel, TC3_CH0, TC3_CH0, EXTERNAL_INT_14},
63-
{PORTC, 1, PIO_DIGITAL, PIN_ATTR_ANALOG_ALT, ADC_Channel11, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1},
62+
{PORTA, 14, PIO_DIGITAL, PIN_ATTR_PWM_E, No_ADC_Channel, TC3_CH0, TC3_CH0, EXTERNAL_INT_14},
63+
{PORTC, 1, PIO_DIGITAL, PIN_ATTR_ANALOG_ALT, ADC_Channel11, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1},
6464
{PORTC, 2, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2},
6565
{PORTC, 3, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3},
6666
{PORTC, 4, PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC0_CH0, TCC0_CH0, EXTERNAL_INT_4},
6767
{PORTC, 31, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15},
6868
{PORTD, 0, PIO_DIGITAL, PIN_ATTR_ANALOG_ALT, ADC_Channel14, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_0},
69-
69+
7070
//27 WIO_LIGHT
7171
{PORTD, 1, PIO_DIGITAL, PIN_ATTR_ANALOG_ALT, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1},
7272

@@ -90,13 +90,17 @@ const PinDescription g_APinDescription[] =
9090
//39 MIC INPUT
9191
{PORTC, 30, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel12, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14}, //MIC_INPUT
9292

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
96-
93+
//40..41 UART Serial1
94+
#if ROLE
95+
{PORTB, 26, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM_F), No_ADC_Channel, TCC1_CH2, NOT_ON_TIMER, EXTERNAL_INT_12}, //UART1_TX, SERCOM4.1
96+
{PORTB, 27, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM_F), No_ADC_Channel, TCC1_CH3, NOT_ON_TIMER, EXTERNAL_INT_13}, //UART1_RX, SERCOM4.0
97+
#else
98+
{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//SERCOM4.1
99+
{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//SERCOM4.0
100+
#endif
97101
// 42..44 - USB
98-
{PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8}, // USB_D-
99-
{PORTA, 25, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9}, // USB_D+
102+
{PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8}, // USB_D-
103+
{PORTA, 25, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9}, // USB_D+
100104
{PORTA, 27, PIO_COM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11}, // USB _HOST_EN
101105

102106
//45..46 I2C Wire2
@@ -183,8 +187,7 @@ const PinDescription g_APinDescription[] =
183187

184188
//91..92 OUTPUT_CTR
185189
{PORTC, 14, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14},
186-
{PORTC, 15, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15}
187-
190+
{PORTC, 15, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15},
188191
};
189192

190193
const void *g_apTCInstances[TCC_INST_NUM + TC_INST_NUM] = {TCC0, TCC1, TCC2, TCC3, TCC4, TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7};
@@ -201,6 +204,7 @@ SERCOM sercom6(SERCOM6);
201204
SERCOM sercom7(SERCOM7);
202205

203206
Uart Serial1(&SERCOM_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX);
207+
204208
Uart Serial2(&SERCOM_SERIAL2, PIN_SERIAL2_RX, PIN_SERIAL2_TX, PAD_SERIAL2_RX, PAD_SERIAL2_TX);
205209

206210
void SERCOM1_0_Handler()
@@ -220,6 +224,24 @@ void SERCOM1_3_Handler()
220224
Serial2.IrqHandler();
221225
}
222226

227+
#if ROLE
228+
void SERCOM4_0_Handler()
229+
{
230+
Serial1.IrqHandler();
231+
}
232+
void SERCOM4_1_Handler()
233+
{
234+
Serial1.IrqHandler();
235+
}
236+
void SERCOM4_2_Handler()
237+
{
238+
Serial1.IrqHandler();
239+
}
240+
void SERCOM4_3_Handler()
241+
{
242+
Serial1.IrqHandler();
243+
}
244+
#else
223245
void SERCOM2_0_Handler()
224246
{
225247
Serial1.IrqHandler();
@@ -235,4 +257,5 @@ void SERCOM2_2_Handler()
235257
void SERCOM2_3_Handler()
236258
{
237259
Serial1.IrqHandler();
238-
}
260+
}
261+
#endif

variants/wio_terminal/variant.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,11 +265,19 @@ static const uint8_t DAC1 = PIN_DAC1;
265265
*/
266266

267267
// Serial1
268+
#if ROLE
269+
#define PIN_SERIAL1_RX (40ul)
270+
#define PIN_SERIAL1_TX (41ul)
271+
#define PAD_SERIAL1_RX (SERCOM_RX_PAD_1)
272+
#define PAD_SERIAL1_TX (UART_TX_PAD_0)
273+
#define SERCOM_SERIAL1 sercom4
274+
#else
268275
#define PIN_SERIAL1_RX (41ul)
269276
#define PIN_SERIAL1_TX (40ul)
270277
#define PAD_SERIAL1_RX (SERCOM_RX_PAD_1)
271278
#define PAD_SERIAL1_TX (UART_TX_PAD_0)
272279
#define SERCOM_SERIAL1 sercom2
280+
#endif
273281

274282
// Serial2
275283
#define PIN_SERIAL2_RX (83ul)

0 commit comments

Comments
 (0)