Skip to content

Commit 4c0af43

Browse files
committed
add analog divider on feather m4, remove extra SPI we aren't using (yet)
itsy m0 - remove confusing note on adc
1 parent 11c9a8d commit 4c0af43

File tree

5 files changed

+28
-52
lines changed

5 files changed

+28
-52
lines changed

boards.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ adafruit_itsybitsy_m4.menu.cache.off.build.cache_flags=
347347

348348
# Adafruit Feather M4 (SAMD51)
349349
# ------------------------------
350-
adafruit_feather_m4.name=Adafruit Feather M4 (SAMD51)
350+
adafruit_feather_m4.name=Adafruit Feather M4 Express (SAMD51)
351351
adafruit_feather_m4.vid.0=0x239A
352352
adafruit_feather_m4.pid.0=0x8022
353353
adafruit_feather_m4.vid.1=0x239A
-64.5 KB
Binary file not shown.

variants/feather_m4/variant.cpp

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -57,47 +57,42 @@ const PinDescription g_APinDescription[]=
5757
{ PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 },
5858
{ PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel9, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 },
5959

60-
// 20..21 I2C pins (SDA/SCL)
60+
// A6, D20 - VDiv!
61+
{ PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 },
62+
63+
64+
// 21..22 I2C pins (SDA/SCL)
6165
// ----------------------
6266
{ PORTA, 12, PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH2, TCC1_CH2, EXTERNAL_INT_12 }, // SDA: SERCOM2/PAD[0]
6367
{ PORTA, 13, PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH3, TCC1_CH3, EXTERNAL_INT_13 }, // SCL: SERCOM2/PAD[1]
6468

65-
// 22..24 - SPI pins (MISO,MOSI,SCK)
69+
// 23..25 - SPI pins (MISO,MOSI,SCK)
6670
// ----------------------
6771
{ PORTB, 22, PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // MISO: SERCOM1/PAD[2]
6872
{ PORTB, 23, PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // MOSI: SERCOM1/PAD[3]
6973
{ PORTA, 17, PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // SCK: SERCOM1/PAD[1]
7074

71-
// 25..26 - RX/TX LEDS -- unused
75+
// 26..27 - RX/TX LEDS -- unused
7276
// --------------------
7377
{ NOT_A_PORT, PIN_NOT_A_PIN, PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
7478
{ NOT_A_PORT, PIN_NOT_A_PIN, PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
7579

76-
// 27..29 - USB
80+
// 28..30 - USB
7781
// --------------------
7882
{ NOT_A_PORT, PIN_NOT_A_PIN, PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable DOES NOT EXIST ON THIS BOARD
7983
{ PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM
8084
{ PORTA, 27, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
8185

82-
// 30..32 - Secondary SPI
83-
// ----------------------
84-
{ PORTA, 21, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // MISO: SERCOM5/PAD[3] (same as d11)
85-
{ PORTA, 23, PIO_TIMER, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // MOSI: SERCOM5/PAD[0] (same as d13)
86-
{ PORTA, 22, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SCK: SERCOM5/PAD[1] (same as d12)
87-
88-
// 33 same as #8 - Internal NeoPixel (to match Metro M0)
89-
{ PORTB, 3, PIO_DIGITAL, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
90-
91-
// 34 (AREF)
86+
// 31 (AREF)
9287
{ PORTA, 3, PIO_ANALOG, PIN_ATTR_ANALOG, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // DAC/VREFP
9388

9489
// ----------------------
95-
// 35 - 36 - Alternate use of A0 (DAC output)
90+
// 32..33 - Alternate use of A0 (DAC output)
9691
{ PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, DAC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // DAC/VOUT0
9792
{ PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, DAC_Channel1, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // DAC/VOUT1
9893

9994
// ----------------------
100-
// 37 - 40 QSPI (SCK, CS, IO0, IO1, IO2, IO3)
95+
// 34..39 QSPI (SCK, CS, IO0, IO1, IO2, IO3)
10196
{ PORTB, 10, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
10297
{ PORTB, 11, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
10398
{ PORTA, 8, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },

variants/feather_m4/variant.h

Lines changed: 14 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,7 @@ extern "C"
9595
#define PIN_A4 (PIN_A0 + 4)
9696
#define PIN_A5 (PIN_A0 + 5)
9797
#define PIN_A6 (PIN_A0 + 6)
98-
#define PIN_A7 (PIN_A0 + 7)
99-
#define PIN_A8 (PIN_A0 + 8)
100-
#define PIN_A9 (PIN_A0 + 9)
98+
10199
#define PIN_DAC0 (14ul)
102100
#define PIN_DAC1 PIN_A1
103101

@@ -108,17 +106,14 @@ static const uint8_t A3 = PIN_A3;
108106
static const uint8_t A4 = PIN_A4;
109107
static const uint8_t A5 = PIN_A5;
110108
static const uint8_t A6 = PIN_A6 ;
111-
static const uint8_t A7 = PIN_A7 ;
112-
static const uint8_t A8 = PIN_A8 ;
113-
static const uint8_t A9 = PIN_A9 ;
114109

115110
static const uint8_t DAC0 = PIN_DAC0;
116111
static const uint8_t DAC1 = PIN_DAC1;
117112

118113
#define ADC_RESOLUTION 12
119114

120115
// Other pins
121-
#define PIN_ATN (38ul)
116+
#define PIN_ATN (31ul)
122117
static const uint8_t ATN = PIN_ATN;
123118

124119
/*
@@ -134,7 +129,7 @@ static const uint8_t ATN = PIN_ATN;
134129
/*
135130
* SPI Interfaces
136131
*/
137-
#define SPI_INTERFACES_COUNT 2
132+
#define SPI_INTERFACES_COUNT 1
138133

139134
#define PIN_SPI_MISO (22u)
140135
#define PIN_SPI_MOSI (23u)
@@ -148,27 +143,13 @@ static const uint8_t MOSI = PIN_SPI_MOSI ;
148143
static const uint8_t MISO = PIN_SPI_MISO ;
149144
static const uint8_t SCK = PIN_SPI_SCK ;
150145

151-
//TODO: SPI1
152-
#define PIN_SPI1_MISO (22u)
153-
#define PIN_SPI1_MOSI (23u)
154-
#define PIN_SPI1_SCK (24u)
155-
#define PERIPH_SPI1 sercom5
156-
#define PAD_SPI1_TX SPI_PAD_0_SCK_1
157-
#define PAD_SPI1_RX SERCOM_RX_PAD_3
158-
159-
static const uint8_t SS1 = 10 ;
160-
static const uint8_t MOSI1 = PIN_SPI1_MOSI ;
161-
static const uint8_t MISO1 = PIN_SPI1_MISO ;
162-
static const uint8_t SCK1 = PIN_SPI1_SCK ;
163-
164-
165146
/*
166147
* Wire Interfaces
167148
*/
168149
#define WIRE_INTERFACES_COUNT 1
169150

170-
#define PIN_WIRE_SDA (20u)
171-
#define PIN_WIRE_SCL (21u)
151+
#define PIN_WIRE_SDA (21u)
152+
#define PIN_WIRE_SCL (22u)
172153
#define PERIPH_WIRE sercom2
173154
#define WIRE_IT_HANDLER SERCOM2_Handler
174155

@@ -191,17 +172,17 @@ static const uint8_t SCL = PIN_WIRE_SCL;
191172
#define I2S_CLOCK_GENERATOR 3
192173

193174
#define PIN_I2S_SDO (5u)
194-
#define PIN_I2S_SDI (23u)
195-
#define PIN_I2S_SCK (16u)
196-
#define PIN_I2S_FS (22u)
175+
#define PIN_I2S_SDI PIN_SPI_MOSI
176+
#define PIN_I2S_SCK PIN_A2
177+
#define PIN_I2S_FS PIN_SPI_MISO
197178

198179
//QSPI Pins
199-
#define PIN_QSPI_SCK (37u)
200-
#define PIN_QSPI_CS (38u)
201-
#define PIN_QSPI_IO0 (39u)
202-
#define PIN_QSPI_IO1 (40u)
203-
#define PIN_QSPI_IO2 (41u)
204-
#define PIN_QSPI_IO3 (42u)
180+
#define PIN_QSPI_SCK (34u)
181+
#define PIN_QSPI_CS (35u)
182+
#define PIN_QSPI_IO0 (36u)
183+
#define PIN_QSPI_IO1 (37u)
184+
#define PIN_QSPI_IO2 (38u)
185+
#define PIN_QSPI_IO3 (39u)
205186

206187
//TODO: meaningful value for this
207188
#define VARIANT_QSPI_BAUD_DEFAULT 5000000

variants/itsybitsy_m0/variant.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ const PinDescription g_APinDescription[]=
6161
{ PORTA, 11, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel19, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // A6 same as D0
6262
{ PORTA, 10, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel18, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // A7 same as D1
6363
{ PORTA, 8, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel16, PWM0_CH0, TCC0_CH0, EXTERNAL_INT_NMI }, // A8 same as D4
64-
{ PORTA, 9, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel17, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_9 }, // A9 same as D5
65-
{ PORTA, 6, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel6, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_6 }, // A10 same as D8
64+
{ PORTA, 9, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel17, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_9 }, // A9 same as D3
65+
{ PORTA, 6, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel6, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_6 }, // A10 (unavailable)
6666
{ PORTA, 7, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel7, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_7 }, // A11 same as D9
6767

6868
// 26..27 I2C pins (SDA/SCL and also EDBG:SDA/SCL)

0 commit comments

Comments
 (0)