Skip to content

Commit 806de12

Browse files
ladyadacmaglie
authored andcommitted
match variant to shipping rev G hardware
1 parent 06ae208 commit 806de12

File tree

2 files changed

+91
-133
lines changed

2 files changed

+91
-133
lines changed

variants/circuitplay/variant.cpp

Lines changed: 52 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -114,109 +114,74 @@ const PinDescription g_APinDescription[]=
114114
// 0..13 - Digital pins
115115
// ----------------------
116116
// 0/1 - SERCOM/UART (Serial1)
117-
{ PORTA, 11, PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // RX: SERCOM0/PAD[3]
118-
{ PORTA, 10, PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // TX: SERCOM0/PAD[2]
117+
{ PORTB, 9, PIO_SERCOM_ALT, (PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel3, PWM4_CH1, TC4_CH1, EXTERNAL_INT_9 }, // GPIO 0 / A6 / UART RX
118+
{ PORTB, 8, PIO_SERCOM_ALT, (PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel2, PWM4_CH0, TC4_CH0, EXTERNAL_INT_8 }, // GPIO 1 / A7 / UART TX
119119

120120
// 2..12
121121
// Digital Low
122-
{ PORTA, 14, PIO_DIGITAL, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14 },
123-
{ 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 }, // TCC0/WO[1]
124-
{ 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 }, // TCC0/WO[0]
125-
{ PORTA, 15, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH1, TC3_CH1, EXTERNAL_INT_15 }, // TC3/WO[1]
126-
{ PORTA, 20, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH6, TCC0_CH6, EXTERNAL_INT_4 }, // TCC0/WO[6]
127-
{ PORTA, 21, PIO_DIGITAL, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 },
122+
{ PORTB, 2, PIO_SERCOM_ALT, 0, ADC_Channel10, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // GPIO D2 / A5 / SDA
123+
{ PORTB, 3, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // GPIO D3 / A4 / SCL
124+
{ PORTA, 28, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // GPIO D4 / Left Button
125+
{ PORTA, 14, PIO_DIGITAL, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14 }, // GPIO D5 / Right button
126+
{ PORTA, 5, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel5, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_5 }, // GPIO D6 / A1
127+
{ PORTA, 15, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH1, TC3_CH1, EXTERNAL_INT_15 }, // GPIO D7 / Slide Switch
128128

129129
// Digital High
130-
{ PORTA, 6, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel6, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_6 }, // TCC1/WO[0]
131-
{ PORTA, 7, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel7, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_7 }, // TCC1/WO[1]
132-
{ PORTA, 18, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH0, TC3_CH0, EXTERNAL_INT_2 }, // TC3/WO[0]
133-
{ PORTA, 16, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM2_CH0, TCC2_CH0, EXTERNAL_INT_0 }, // TCC2/WO[0]
134-
{ PORTA, 19, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH3, TCC0_CH3, EXTERNAL_INT_3 }, // TCC0/WO[3]
135-
130+
{ PORTB, 23, PIO_DIGITAL, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // GPIO D8 / NeoPixels
131+
{ PORTA, 6, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel6, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_6 }, // GPIO D9 / A2
132+
{ PORTA, 7, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel7, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_7 }, // GPIO D10 / A3
133+
{ PORTA, 30, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // GPIO D11 / Speaker Shutdown
134+
{ PORTA, 2, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // GPIO D12 / VOut / A0
136135
// 13 (LED)
137-
{ PORTA, 17, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM2_CH1, TCC2_CH1, EXTERNAL_INT_1 }, // TCC2/WO[1]
136+
{ PORTA, 17, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM2_CH1, TCC2_CH1, EXTERNAL_INT_1 }, // GPIO D13 / Red LED
138137

139-
// 14..19 - Analog pins
138+
// 14..24 - Analog pins
140139
// --------------------
141-
{ PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // ADC/AIN[0]
142-
{ PORTB, 8, PIO_SERCOM_ALT, (PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel2, PWM4_CH0, TC4_CH0, EXTERNAL_INT_8 }, // ADC/AIN[2] (UART TX)
143-
{ PORTB, 9, PIO_SERCOM_ALT, (PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel3, PWM4_CH1, TC4_CH1, EXTERNAL_INT_9 }, // ADC/AIN[3] (UART RX)
144-
{ PORTA, 4, PIO_ANALOG, 0, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // ADC/AIN[4]
145-
{ PORTA, 5, PIO_ANALOG, 0, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // ADC/AIN[5]
146-
{ PORTB, 2, PIO_SERCOM_ALT, 0, ADC_Channel10, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // ADC/AIN[10] & I2C (SDA)
147-
148-
// A6: D20 / D0
149-
{ PORTA, 11, PIO_ANALOG, (PIN_ATTR_DIGITAL), ADC_Channel19, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 },
150-
// A7: D21 / D1
151-
{ PORTA, 10, PIO_ANALOG, (PIN_ATTR_DIGITAL), ADC_Channel18, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 },
152-
153-
// A8: D22 / D8
154-
{ PORTA, 6, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel6, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_6 }, // TCC1/WO[0]
155-
// A9: D23 / D9
156-
{ PORTA, 7, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel7, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_7 }, // TCC1/WO[1]
157-
158-
// A10: D24 / D3
159-
{ 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 }, // TCC0/WO[1]
160-
// A11: D25 / D4
161-
{ 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 }, // TCC0/WO[0]
162-
163-
164-
// 26..27
165-
// ----------------------
166-
{ PORTA, 22, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 },
167-
{ PORTA, 23, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 },
140+
{ PORTA, 2, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A0 (Same as D12)
141+
{ PORTA, 5, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // A1 (Same as D6)
142+
{ 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 }, // A2 (Same as D9)
143+
{ 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 }, // A3 (Same as D10
144+
{ PORTB, 3, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel11, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // A4 (Same as D3)
145+
{ PORTB, 2, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel10, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A5 (Same as D2)
146+
{ PORTB, 9, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG|PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel3, PWM4_CH1, TC4_CH1, EXTERNAL_INT_9 }, // A6 (Same as D0)
147+
{ PORTB, 8, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG|PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel2, PWM4_CH0, TC4_CH0, EXTERNAL_INT_8 }, // A7 (Same as D1)
148+
149+
{ PORTA, 11, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel19, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // A8 / Light Sensor
150+
{ 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 / Thermistor
151+
{ PORTA, 4, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A10 Proximity
152+
153+
// GPIO 25 / IR Transmit
154+
{ PORTA, 23, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM4_CH1, TC4_CH1, EXTERNAL_INT_7 }, // GPIO D25 - IR Transmitter
155+
// GPIO 26 / IR Remote in
156+
{ PORTA, 12, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 }, // GPIO D26 - IR Receiver
157+
158+
// GPIO 27 (LIS IRQ)
159+
{ PORTA, 13, PIO_PWM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM0_CH5, NOT_ON_TIMER, EXTERNAL_INT_13 }, // EIC/EXTINT[13] *TCC2/WO[1] TCC0/WO[7]
168160

169-
// 28..30 - SPI pins (ICSP:MISO,SCK,MOSI)
170-
// ----------------------
171-
{ PORTA, 12, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 }, // MISO: SERCOM4/PAD[0]
172-
{ PORTB, 10, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // MOSI: SERCOM4/PAD[2]
173-
{ PORTB, 11, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // SCK: SERCOM4/PAD[3]
161+
// GPIO 28 & 29 internal I2C (original xtal pins)
162+
{ PORTA, 0, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Internal SDA
163+
{ PORTA, 1, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Internal SCL
174164

175-
// GPIO31 - SCL
176-
{ PORTB, 3, PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // external I2C SCL
165+
// GPIO 30, 31, 32 Internal SPI
166+
{ PORTA, 16, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // MISO: SERCOM3/PAD[0]
167+
{ PORTA, 21, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM0_CH7, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SCK: SERCOM3/PAD[3]
168+
{ PORTA, 20, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH6, TCC0_CH6, EXTERNAL_INT_4 }, // MOSI: SERCOM3/PAD[2]
177169

178-
// GPIO 33 - left button
179-
{ PORTA, 27, PIO_OUTPUT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // "RX/TX LED"
170+
// GPIO 33 (Flash CS)
171+
{ PORTB, 22, PIO_DIGITAL, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
180172

181-
// GPIO33
182-
{ PORTA, 28, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
173+
// GPIO 34 (I2S SCK)
174+
{ PORTA, 10, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel18, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 },
175+
// GPIO 35 (I2S Datain)
176+
{ PORTA, 8, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel16, PWM0_CH0, TCC0_CH0, EXTERNAL_INT_NMI },
183177

184-
// 34..35 - USB
185-
// --------------------
178+
179+
// 36..38 - USB
180+
// --------------------
181+
{ PORTA, 22, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // GPIO 29 - Host USB (not used)
186182
{ PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM
187183
{ PORTA, 25, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
188184

189-
190-
// 36/37 - GPIO
191-
{ PORTB, 22, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
192-
{ PORTB, 23, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // RX: SERCOM5/PAD[3]
193-
194-
// 38/39
195-
{ PORTA, 22, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SDA: SERCOM3/PAD[0]
196-
{ PORTA, 23, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SCL: SERCOM3/PAD[1]
197-
198-
// 40..43 - GPIO
199-
{ PORTA, 19, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // MISO: SERCOM1/PAD[3]
200-
{ PORTA, 16, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // MOSI: SERCOM1/PAD[0]
201-
{ PORTA, 18, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SS: SERCOM1/PAD[2]
202-
{ PORTA, 17, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // SCK: SERCOM1/PAD[1]
203-
204-
// 44..47 - GPIO
205-
{ PORTA, 13, PIO_PWM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM0_CH5, NOT_ON_TIMER, EXTERNAL_INT_13 }, // EIC/EXTINT[13] *TCC2/WO[1] TCC0/WO[7]
206-
{ PORTA, 21, PIO_PWM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM0_CH7, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Pin 7
207-
{ PORTA, 6, PIO_PWM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH0, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Pin 8
208-
{ PORTA, 7, PIO_PWM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM1_CH1, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Pin 9
209-
210-
// 48 (AREF)
211-
{ PORTA, 3, PIO_ANALOG, PIN_ATTR_ANALOG, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // DAC/VREFP
212-
213-
// 49 & 50 original xtal pins
214-
{ PORTA, 0, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Internal SDA
215-
{ PORTA, 1, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Internal SCL
216-
217-
// ----------------------
218-
// 51 - Alternate use of A0 (DAC output)
219-
{ PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, DAC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // DAC/VOUT
220185
} ;
221186

222187
const void* g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TC3, TC4, TC5 } ;

variants/circuitplay/variant.h

Lines changed: 39 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@
3737
// ----
3838

3939
// Number of pins defined in PinDescription array
40-
#define PINS_COUNT (52u)
41-
#define NUM_DIGITAL_PINS (52u)
42-
#define NUM_ANALOG_INPUTS (12u)
40+
#define PINS_COUNT (39u)
41+
#define NUM_DIGITAL_PINS (39u)
42+
#define NUM_ANALOG_INPUTS (11u)
4343
#define NUM_ANALOG_OUTPUTS (1u)
4444

4545
// Low-level pin register query macros
@@ -51,6 +51,7 @@
5151
#define portInputRegister(port) (&(port->IN.reg))
5252
#define portModeRegister(port) (&(port->DIR.reg))
5353
#define digitalPinHasPWM(P) (g_APinDescription[P].ulPWMChannel != NOT_ON_PWM || g_APinDescription[P].ulTCChannel != NOT_ON_TIMER)
54+
#define digitalPinToInterrupt(P) (g_APinDescription[P].ulExtInt)
5455

5556
/*
5657
* digitalPinToTimer(..) is AVR-specific and is not defined for SAMD
@@ -64,32 +65,33 @@
6465

6566
// LEDs
6667
// ----
67-
#define PIN_LED (13u)
68+
#define PIN_LED_13 (13u)
69+
#define PIN_LED PIN_LED_13
6870
#define LED_BUILTIN PIN_LED
6971

7072

71-
#define PIN_LED_RXL (25u)
72-
#define PIN_LED_TXL (26u)
73-
#define PIN_LED2 PIN_LED_RXL
74-
#define PIN_LED3 PIN_LED_TXL
73+
//#define PIN_LED_RXL (25u)
74+
//#define PIN_LED_TXL (26u)
75+
//#define PIN_LED2 PIN_LED_RXL
76+
//#define PIN_LED3 PIN_LED_TXL
7577

7678
/*
7779
* Analog pins
7880
*/
7981
#define PIN_A0 (14ul)
80-
#define PIN_A1 (15ul)
81-
#define PIN_A2 (16ul)
82-
#define PIN_A3 (17ul)
83-
#define PIN_A4 (18ul)
84-
#define PIN_A5 (19ul)
85-
#define PIN_A6 (20ul)
86-
#define PIN_A7 (21ul)
87-
#define PIN_A8 (22ul)
88-
#define PIN_A9 (23ul)
89-
#define PIN_A10 (24ul)
90-
#define PIN_A11 (25ul)
91-
92-
#define PIN_DAC0 (14ul)
82+
#define PIN_A1 (PIN_A0 + 1)
83+
#define PIN_A2 (PIN_A0 + 2)
84+
#define PIN_A3 (PIN_A0 + 3)
85+
#define PIN_A4 (PIN_A0 + 4)
86+
#define PIN_A5 (PIN_A0 + 5)
87+
#define PIN_A6 (PIN_A0 + 6)
88+
#define PIN_A7 (PIN_A0 + 7)
89+
#define PIN_A8 (PIN_A0 + 8)
90+
#define PIN_A9 (PIN_A0 + 9)
91+
#define PIN_A10 (PIN_A0 + 10)
92+
93+
#define PIN_DAC0 (PIN_A0)
94+
9395

9496
static const uint8_t A0 = PIN_A0;
9597
static const uint8_t A1 = PIN_A1;
@@ -102,7 +104,6 @@ static const uint8_t A7 = PIN_A7 ;
102104
static const uint8_t A8 = PIN_A8 ;
103105
static const uint8_t A9 = PIN_A9 ;
104106
static const uint8_t A10 = PIN_A10 ;
105-
static const uint8_t A11 = PIN_A11 ;
106107
static const uint8_t DAC0 = PIN_DAC0;
107108

108109
#define ADC_RESOLUTION 12
@@ -112,14 +113,14 @@ static const uint8_t DAC0 = PIN_DAC0;
112113
*/
113114
#define SPI_INTERFACES_COUNT 1
114115

115-
#define PIN_SPI_MISO (10u) // pa18
116-
#define PIN_SPI_MOSI (11u) // pa16
117-
#define PIN_SPI_SCK (12u) // pa19
116+
#define PIN_SPI_MISO (30u)
117+
#define PIN_SPI_SCK (31u)
118+
#define PIN_SPI_MOSI (32u)
118119
#define PERIPH_SPI sercom3
119-
#define PAD_SPI_TX SPI_PAD_0_SCK_3 // MOSI / SCK
120-
#define PAD_SPI_RX SERCOM_RX_PAD_2 // MISO
120+
#define PAD_SPI_TX SPI_PAD_2_SCK_3 // MOSI / SCK
121+
#define PAD_SPI_RX SERCOM_RX_PAD_0 // MISO
121122

122-
static const uint8_t SS = PIN_A2 ; // SERCOM4 last PAD is present on A2 but HW SS isn't used. Set here only for reference.
123+
static const uint8_t SS = 33 ;
123124
static const uint8_t MOSI = PIN_SPI_MOSI ;
124125
static const uint8_t MISO = PIN_SPI_MISO ;
125126
static const uint8_t SCK = PIN_SPI_SCK ;
@@ -131,38 +132,30 @@ static const uint8_t SCK = PIN_SPI_SCK ;
131132
#define WIRE_INTERFACES_COUNT 2
132133

133134
// "external" public i2c interface
134-
#define PIN_WIRE_SDA (19u)
135-
#define PIN_WIRE_SCL (31u)
135+
#define PIN_WIRE_SDA (2u)
136+
#define PIN_WIRE_SCL (3u)
136137
#define PERIPH_WIRE sercom5
137138
#define WIRE_IT_HANDLER SERCOM5_Handler
138139
static const uint8_t SDA = PIN_WIRE_SDA;
139140
static const uint8_t SCL = PIN_WIRE_SCL;
140141

141142
// "internal" lis3dh i2c interface
142-
#define PIN_WIRE1_SDA (49u)
143-
#define PIN_WIRE1_SCL (50u)
143+
#define PIN_WIRE1_SDA (28u)
144+
#define PIN_WIRE1_SCL (29u)
144145
#define PERIPH_WIRE1 sercom1
145146
#define WIRE1_IT_HANDLER SERCOM1_Handler
146147
static const uint8_t SDA1 = PIN_WIRE1_SDA;
147148
static const uint8_t SCL1 = PIN_WIRE1_SCL;
148149

149-
150150
// USB
151151
// ---
152-
#define PIN_USB_HOST_ENABLE (27ul)
153-
#define PIN_USB_DM (28ul)
154-
#define PIN_USB_DP (29ul)
152+
#define PIN_USB_HOST_ENABLE (36ul)
153+
#define PIN_USB_DM (37ul)
154+
#define PIN_USB_DP (38ul)
155155

156156
// I2S Interfaces
157157
// --------------
158-
#define I2S_INTERFACES_COUNT 1
159-
160-
#define I2S_DEVICE 0
161-
#define I2S_CLOCK_GENERATOR 3
162-
#define PIN_I2S_SD (PIN_A6)
163-
#define PIN_I2S_SCK (2u)
164-
#define PIN_I2S_FS (3u)
165-
158+
#define I2S_INTERFACES_COUNT 0
166159

167160
// Serial ports
168161
// ------------
@@ -180,8 +173,8 @@ extern SERCOM sercom5;
180173

181174
// Serial1
182175
extern Uart Serial1;
183-
#define PIN_SERIAL1_RX (16ul)
184-
#define PIN_SERIAL1_TX (15ul)
176+
#define PIN_SERIAL1_RX (0ul)
177+
#define PIN_SERIAL1_TX (1ul)
185178
#define PAD_SERIAL1_TX (UART_TX_PAD_0)
186179
#define PAD_SERIAL1_RX (SERCOM_RX_PAD_1)
187180
#endif // __cplusplus

0 commit comments

Comments
 (0)