Skip to content

Commit 6076e22

Browse files
committed
allow PDM mic on SPI
1 parent a6e9eb3 commit 6076e22

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

variants/pybadge_m4/variant.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ const PinDescription g_APinDescription[]=
3434
{ PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 },
3535
{ PORTB, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel14, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
3636
{ PORTA, 14, PIO_SERCOM, PIN_ATTR_PWM_E, No_ADC_Channel, TC3_CH0, TC3_CH0, EXTERNAL_INT_14 },
37-
{ PORTA, 16, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_0 },
38-
{ PORTA, 18, PIO_SERCOM, PIO_SERCOM, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
37+
{ PORTA, 16, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_0 },
38+
{ PORTA, 18, PIO_SERCOM_ALT, PIO_SERCOM, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
3939
{ PORTB, 14, PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC4_CH0, TC5_CH0, EXTERNAL_INT_14 },
4040

4141
// Digital High
4242
{ PORTA, 15, PIO_DIGITAL, PIN_ATTR_PWM_E, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15 }, // D8 - NEOPIXEL
43-
{ PORTA, 19, PIO_DIGITAL, PIN_ATTR_PWM_E, No_ADC_Channel, TC3_CH1, TC3_CH1, EXTERNAL_INT_3 },
43+
{ PORTA, 19, PIO_SERCOM_ALT, PIN_ATTR_PWM_E, No_ADC_Channel, TC3_CH1, TC3_CH1, EXTERNAL_INT_3 },
4444
{ PORTA, 20, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 },
4545
{ PORTA, 21, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 },
4646
{ PORTA, 22, PIO_SERCOM, PIN_ATTR_PWM_G, No_ADC_Channel, TCC0_CH2, TC4_CH0, EXTERNAL_INT_6 },

variants/pybadge_m4/variant.h

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ static const uint8_t ATN = PIN_ATN;
136136
/*
137137
* SPI Interfaces
138138
*/
139-
#define SPI_INTERFACES_COUNT 2
139+
#define SPI_INTERFACES_COUNT 3
140140

141141
#define PIN_SPI_MISO (26u)
142142
#define PIN_SPI_MOSI (27u)
@@ -150,7 +150,7 @@ static const uint8_t MOSI = PIN_SPI_MOSI ;
150150
static const uint8_t MISO = PIN_SPI_MISO ;
151151
static const uint8_t SCK = PIN_SPI_SCK ;
152152

153-
// Internal SPI for TFT
153+
// Internal SPI for TFT
154154
#define PIN_SPI1_MOSI (41u)
155155
#define PIN_SPI1_SCK (42u)
156156
#define PIN_SPI1_MISO (43u)
@@ -163,6 +163,19 @@ static const uint8_t MOSI1 = PIN_SPI1_MOSI ;
163163
static const uint8_t MISO1 = PIN_SPI1_MISO ;
164164
static const uint8_t SCK1 = PIN_SPI1_SCK ;
165165

166+
// SPI for PDM mic
167+
#define PIN_SPI2_MOSI (9u)
168+
#define PIN_SPI2_SCK (5u)
169+
#define PIN_SPI2_MISO (6u)
170+
#define PERIPH_SPI2 sercom3
171+
#define PAD_SPI2_TX SPI_PAD_3_SCK_1
172+
#define PAD_SPI2_RX SERCOM_RX_PAD_2
173+
174+
static const uint8_t SS2 = 10 ;
175+
static const uint8_t MOSI2 = PIN_SPI2_MOSI ;
176+
static const uint8_t MISO2 = PIN_SPI2_MISO ;
177+
static const uint8_t SCK2 = PIN_SPI2_SCK ;
178+
166179
/*
167180
* Wire Interfaces
168181
*/

0 commit comments

Comments
 (0)