Skip to content

Commit bdf5ac8

Browse files
committed
fix some pin numbers so that there's an LED on pin 13
add external SPI
1 parent 9ba4e98 commit bdf5ac8

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

variants/matrixportal_m4/variant.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,21 @@ const PinDescription g_APinDescription[]=
4444
// 4 neopixel
4545
{ PORTA, 23, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // NeoPixel
4646

47-
// 5 LIS IRQ
48-
{ PORTA, 27, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // IRQ
49-
50-
// 6..7 I2C
47+
// 5..6 I2C
5148
{ PORTB, 31, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15 }, // SERCOM5.1 SDA
5249
{ PORTB, 30, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14 }, // SERCOM5.0 SCL
5350

54-
// 8..13 RGBRGB pins
51+
// 7..12 RGBRGB pins
5552
{ PORTB, 0, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_0 }, // R1
5653
{ PORTB, 1, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // G1
5754
{ PORTB, 2, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // B1
5855
{ PORTB, 3, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // R2
5956
{ PORTB, 4, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // G2
6057
{ PORTB, 5, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // B2
58+
59+
// 13 LED
60+
{ PORTA, 14, PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC1_CH2, TCC1_CH2, EXTERNAL_INT_14 }, // Red LED
61+
6162
// 14..21 Control pins
6263
{ PORTB, 6, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // CLK
6364
{ PORTB, 14, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14 }, // LAT
@@ -111,8 +112,13 @@ const PinDescription g_APinDescription[]=
111112
{ PORTA, 10, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
112113
{ PORTA, 11, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
113114

114-
// 47 nonexistant LED
115-
{ PORTA, 15, PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC1_CH3, TC3_CH0, EXTERNAL_INT_15 },
115+
// 47 LIS IRQ
116+
{ PORTA, 27, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // IRQ
117+
118+
// 48..50 external SPI #2 on sercom 0
119+
{ PORTA, 5, PIO_SERCOM_ALT, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // SCK SERCOM 0.1
120+
{ PORTA, 4, PIO_SERCOM_ALT, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel4, TC0_CH0, TC0_CH0, EXTERNAL_INT_4 }, // MOSI SERCOM 0.0
121+
{ PORTA, 7, PIO_SERCOM_ALT, PIN_ATTR_ANALOG, ADC_Channel7, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // MISO SERCOM 0.3
116122
} ;
117123

118124
const void* g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TCC3, TCC4, TC0, TC1, TC2, TC3, TC4, TC5 } ;

variants/matrixportal_m4/variant.h

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ static const uint8_t DAC1 = PIN_DAC1;
151151
/*
152152
* SPI Interfaces
153153
*/
154-
#define SPI_INTERFACES_COUNT 1
154+
#define SPI_INTERFACES_COUNT 2
155155

156156
#define PIN_SPI_SCK (34u)
157157
#define PIN_SPI_MISO (35u)
@@ -165,13 +165,26 @@ static const uint8_t MOSI = PIN_SPI_MOSI ;
165165
static const uint8_t MISO = PIN_SPI_MISO ;
166166
static const uint8_t SCK = PIN_SPI_SCK ;
167167

168+
169+
#define PIN_SPI1_SCK (48u)
170+
#define PIN_SPI1_MOSI (49u)
171+
#define PIN_SPI1_MISO (50u)
172+
#define PERIPH_SPI1 sercom0
173+
#define PAD_SPI1_TX SPI_PAD_0_SCK_1
174+
#define PAD_SPI1_RX SERCOM_RX_PAD_3
175+
176+
static const uint8_t SS1 = A3 ;
177+
static const uint8_t MOSI1 = PIN_SPI1_MOSI ;
178+
static const uint8_t MISO1 = PIN_SPI1_MISO ;
179+
static const uint8_t SCK1 = PIN_SPI1_SCK ;
180+
168181
/*
169182
* Wire Interfaces
170183
*/
171184
#define WIRE_INTERFACES_COUNT 1
172185

173-
#define PIN_WIRE_SDA (6u)
174-
#define PIN_WIRE_SCL (7u)
186+
#define PIN_WIRE_SDA (5u)
187+
#define PIN_WIRE_SCL (6u)
175188
#define PERIPH_WIRE sercom5
176189
#define WIRE_IT_HANDLER SERCOM5_Handler
177190
#define WIRE_IT_HANDLER_0 SERCOM5_0_Handler

0 commit comments

Comments
 (0)