Skip to content

Commit 600f5dd

Browse files
Updates to Support FDC daughter board
1 parent 1af6699 commit 600f5dd

File tree

5 files changed

+77
-33
lines changed

5 files changed

+77
-33
lines changed

CHANGELOG

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
PwFusion SAMD CORE 0.2.0 2022.05.25
2+
3+
* Added support for additional analog inputs and external interrupts to R3actor
4+
* Fixed defect in analogRead() to allow reading A11 input
5+
16
PwFusion SAMD CORE 0.1.0 2022.03.07
27

38
* PwFusion R3actor production board support
1.57 MB
Binary file not shown.

Source/cores/arduino/wiring_analog.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,6 @@ uint32_t analogRead(uint32_t pin)
129129
{
130130
uint32_t valueRead = 0;
131131

132-
if (pin < A0) {
133-
pin += A0;
134-
}
135-
136132
pinPeripheral(pin, PIO_ANALOG);
137133

138134
// Disable DAC, if analogWrite() was used previously to enable the DAC

Source/variants/r3aktor/variant.cpp

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -44,62 +44,62 @@ const PinDescription g_APinDescription[] = {
4444
| 15 | A1 | PB08 | | 08 | 02 | | Y14 | | | 4/00 | TC4/0 | | | |
4545
| 16 | A2 | PB09 | | *09 | 03 | | Y15 | | | 4/01 | TC4/1 | | | |
4646
| 17 | A3 | PA04 | | 04 | *04 | 00 | Y02 | | | 0/00 |*TCC0/0 | | | |
47-
| 18 | A4 | PA05 | | 05 | *05 | 01 | Y03 | | | 0/01 |*TCC0/1 | | | |
47+
| 18 | A4 | PA05 | | *05 | *05 | 01 | Y03 | | | 0/01 |*TCC0/1 | | | |
4848
| 19 | A5 | PA06 | | 06 | *06 | 02 | Y04 | | | 0/02 | TCC1/0 | | | |
4949
| 20 | SDA / D20 | PA16 | | *00 | | | X04 | | *1/00 | 3/00 |*TCC2/0 | TCC0/6 | | GCLK_IO2 |
5050
| 21 | SCL / D21 | PA17 | | *01 | | | X05 | | *1/01 | 3/01 | TCC2/1 | TCC0/7 | | GCLK_IO3 |
5151
| 22 | MISO / D22 | PA09 | | 09 | *17 | | X01 | | *0/01 | 2/01 | TCC0/1 | TCC1/3 | I2S/MCK0 | |
5252
| 23 | MOSI / D23 | PA08 | | NMI | *16 | | X00 | | *0/00 | 2/00 | TCC0/0 | TCC1/2 | I2S/SD1 | |
53-
| 24 | SCK / D24 | PA07 | | 07 | *07 | 03 | Y05 | | | 0/03 | TCC1/1 | | I2S/SD0 | |
53+
| 24 | SCK / D24 | PA07 | | *07 | *07 | 03 | Y05 | | | 0/03 | TCC1/1 | | I2S/SD0 | |
5454
| 25 | | PB10 | CS_SD | *10 | | | | | | 4/02 |* TC5/0 | TCC0/4 | I2S/MCK1 | GCLK_IO4 |
5555
| 26 | | PA12 | MOSI_SD | 12 | | | | | *2/00 | 4/00 | TCC2/0 | TCC0/6 | | AC/CMP0 |
5656
| 27 | | PA13 | MISO_SD | 13 | | | | | *2/01 | 4/01 | TCC2/1 | TCC0/7 | | AC/CMP1 |
5757
| 28 | | PB11 | SCK_SD | *11 | | | | | | 4/03 |* TC5/1 | TCC0/5 | I2S/SCK1 | GCLK_IO5 |
5858
| 29 | | PA28 | LED_BUILTIN | 08 | | | | | | | | | | GCLK_IO0 |
59-
| 30 | | PB03 | ADC_BATTERY | *03 | *11 | | Y09 | | | 5/01 | | | | |
59+
| 30 | | PB03 | ADC_BATTERY | 03 | *11 | | Y09 | | | 5/01 | | | | |
6060
| 31 | USB_DM | PA24 | USB N | 12 | | | | | 3/02 | 5/02 | TC5/0 | TCC1/2 | USB/DM | |
6161
| 32 | USB_DP | PA25 | USB P | 13 | | | | | 3/03 | 5/03 | TC5/1 | TCC1/3 | USB/DP | |
62-
| 33 | AREF | PA03 | | 03 | 01 | | Y01 | | | | | | | |
62+
| 33 | AREF | PA03 | | *03 | 01 | | Y01 | | | | | | | |
6363
+------------+------------------+--------+-----------------+--------+-----+-----+-----+-----+---------+---------+--------+--------+----------+----------+
6464
| | 32768Hz Crystal | | | | | | | | | | | | | |
6565
| 34 | | PA00 | XIN32 | 00 | | | | | | 1/00 | TCC2/0 | | | |
6666
| 35 | | PA01 | XOUT32 | 01 | | | | | | 1/01 | TCC2/1 | | | |
6767
+------------+------------------+--------+-----------------+--------+-----+-----+-----+-----+---------+---------+--------+--------+----------+----------+
6868
*/
69-
{ PORTA, 11, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), No_ADC_Channel, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_NONE },
70-
{ PORTA, 10, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), No_ADC_Channel, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_NONE },
69+
{ PORTA, 11, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), ADC_Channel19, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_11 },
70+
{ PORTA, 10, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), ADC_Channel18, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_10 },
7171
{ PORTB, 2, PIO_ANALOG, (PIN_ATTR_DIGITAL ), ADC_Channel10, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
72-
{ PORTA, 14, PIO_DIGITAL, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
73-
{ PORTB, 23, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
74-
{ PORTA, 15, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
75-
{ PORTA, 18, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
76-
{ PORTB, 22, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
77-
{ PORTA, 27, PIO_DIGITAL, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
78-
{ PORTA, 19, PIO_COM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), No_ADC_Channel, PWM3_CH1, TC3_CH1, EXTERNAL_INT_NONE },
72+
{ PORTA, 14, PIO_DIGITAL, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14 },
73+
{ PORTB, 23, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 },
74+
{ PORTA, 15, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15 },
75+
{ PORTA, 18, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
76+
{ PORTB, 22, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 },
77+
{ PORTA, 27, PIO_DIGITAL, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15 },
78+
{ PORTA, 19, PIO_COM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), No_ADC_Channel, PWM3_CH1, TC3_CH1, EXTERNAL_INT_3 },
7979
{ PORTA, 20, PIO_COM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH6, TCC0_CH6, EXTERNAL_INT_4 },
8080
{ PORTA, 21, PIO_COM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH7, TCC0_CH7, EXTERNAL_INT_5 },
8181
{ PORTA, 22, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), No_ADC_Channel, PWM4_CH0, TC4_CH0, EXTERNAL_INT_6 },
8282
{ PORTA, 23, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), No_ADC_Channel, PWM4_CH1, TC4_CH1, EXTERNAL_INT_7 },
83-
{ PORTA, 2, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG /*DAC*/ ), ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
84-
{ PORTB, 8, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_NONE ), ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
83+
{ PORTA, 2, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG /*DAC*/ ), ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
84+
{ PORTB, 8, PIO_ANALOG, (PIN_ATTR_DIGITAL ), ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 },
8585
{ PORTB, 9, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), ADC_Channel3, PWM4_CH1, TC4_CH1, EXTERNAL_INT_9 },
86-
{ PORTA, 4, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), ADC_Channel4, PWM0_CH0, TCC0_CH0, EXTERNAL_INT_NONE },
87-
{ PORTA, 5, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), ADC_Channel5, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_NONE },
88-
{ PORTA, 6, PIO_ANALOG, (PIN_ATTR_DIGITAL ), ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
86+
{ PORTA, 4, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), ADC_Channel4, PWM0_CH0, TCC0_CH0, EXTERNAL_INT_4 },
87+
{ PORTA, 5, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), ADC_Channel5, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_5 },
88+
{ PORTA, 6, PIO_ANALOG, (PIN_ATTR_DIGITAL ), ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 },
8989
{ PORTA, 16, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER ), No_ADC_Channel, PWM2_CH0, TCC2_CH0, EXTERNAL_INT_0 },
9090
{ PORTA, 17, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 },
91-
{ PORTA, 9, PIO_SERCOM, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
92-
{ PORTA, 8, PIO_SERCOM, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NMI },
93-
{ PORTA, 7, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
94-
{ PORTB, 10, PIO_SERCOM_ALT, (PIN_ATTR_NONE ), No_ADC_Channel, PWM5_CH0, TC5_CH0, EXTERNAL_INT_10 },
95-
{ PORTA, 12, PIO_SERCOM_ALT, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
96-
{ PORTA, 13, PIO_SERCOM_ALT, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
97-
{ PORTB, 11, PIO_SERCOM_ALT, (PIN_ATTR_NONE ), No_ADC_Channel, PWM5_CH1, TC5_CH1, EXTERNAL_INT_11 },
98-
{ PORTA, 28, PIO_DIGITAL, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
91+
{ PORTA, 9, PIO_SERCOM, (PIN_ATTR_DIGITAL ), ADC_Channel17, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 },
92+
{ PORTA, 8, PIO_SERCOM, (PIN_ATTR_DIGITAL ), ADC_Channel16, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NMI },
93+
{ PORTA, 7, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), ADC_Channel7, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 },
94+
{ PORTB, 10, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, PWM5_CH0, TC5_CH0, EXTERNAL_INT_10 },
95+
{ PORTA, 12, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 },
96+
{ PORTA, 13, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_13 },
97+
{ PORTB, 11, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL ), No_ADC_Channel, PWM5_CH1, TC5_CH1, EXTERNAL_INT_11 },
98+
{ PORTA, 28, PIO_DIGITAL, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 },
9999
{ PORTB, 3, PIO_ANALOG, (PIN_ATTR_NONE ), ADC_Channel11, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 },
100-
{ PORTA, 24, PIO_COM, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
101-
{ PORTA, 25, PIO_COM, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
102-
{ PORTA, 3, PIO_DIGITAL, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
100+
{ PORTA, 24, PIO_COM, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 },
101+
{ PORTA, 25, PIO_COM, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_13 },
102+
{ PORTA, 3, PIO_DIGITAL, (PIN_ATTR_DIGITAL ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 },
103103
{ PORTA, 0, PIO_DIGITAL, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
104104
{ PORTA, 1, PIO_DIGITAL, (PIN_ATTR_NONE ), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }
105105
};
@@ -125,6 +125,7 @@ SERCOM sercom5(SERCOM5);
125125
// Serial1
126126
Uart Serial1(&sercom2, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX);
127127

128+
void SERCOM2_Handler() __attribute__((weak));
128129
void SERCOM2_Handler()
129130
{
130131
Serial1.IrqHandler();

package_pwfusion_samd_index.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,48 @@
131131
"version": "1.2.0"
132132
}
133133
]
134+
},
135+
{
136+
"name": "Playing With Fusion SAMD Boards",
137+
"architecture": "samd",
138+
"version": "0.2.0",
139+
"category": "Contributed",
140+
"url": "https://github.com/PlayingWithFusion/Arduino_SAMD/raw/main/Releases/PwFusion_SAMD_00.02.00.zip",
141+
"archiveFileName": "PwFusion_SAMD_00.02.00.zip",
142+
"checksum": "SHA-256:208BDEF5BF691F377C679AA3580670497EA55001C1DA9F50B2EF7B2EB164D825",
143+
"size": "1646320",
144+
"boards": [
145+
{
146+
"name": "R3aktor M0 Logger"
147+
}
148+
],
149+
"toolsDependencies": [
150+
{
151+
"packager": "arduino",
152+
"name": "arm-none-eabi-gcc",
153+
"version": "7-2017q4"
154+
},
155+
{
156+
"packager": "arduino",
157+
"name": "bossac",
158+
"version": "1.8.0-48-gb176eee"
159+
},
160+
{
161+
"packager": "arduino",
162+
"name": "openocd",
163+
"version": "0.10.0-arduino9"
164+
},
165+
{
166+
"packager": "arduino",
167+
"name": "CMSIS",
168+
"version": "4.5.0"
169+
},
170+
{
171+
"packager": "arduino",
172+
"name": "CMSIS-Atmel",
173+
"version": "1.2.0"
174+
}
175+
]
134176
}
135177
],
136178
"tools": []

0 commit comments

Comments
 (0)