Skip to content

Commit bd28cc8

Browse files
committed
emb/machine:sync tinygo 0.39.0
1 parent 321077e commit bd28cc8

18 files changed

+290
-136
lines changed

emb/machine/board_atmega328p.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ const (
2727
PC1 = portC + 1
2828
PC2 = portC + 2
2929
PC3 = portC + 3
30-
PC4 = portC + 4
31-
PC5 = portC + 5
30+
PC4 = portC + 4 // peripherals: I2C0 SDA
31+
PC5 = portC + 5 // peripherals: I2C0 SCL
3232
PC6 = portC + 6
3333
PC7 = portC + 7
3434
PD0 = portD + 0

emb/machine/board_atmega328pb.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ const (
2828
PC1 = portC + 1
2929
PC2 = portC + 2
3030
PC3 = portC + 3
31-
PC4 = portC + 4
32-
PC5 = portC + 5
31+
PC4 = portC + 4 // peripherals: I2C0 SDA
32+
PC5 = portC + 5 // peripherals: I2C0 SCL
3333
PC6 = portC + 6
3434
PC7 = portC + 7
3535
PD0 = portD + 0
@@ -40,8 +40,8 @@ const (
4040
PD5 = portD + 5 // peripherals: Timer0 channel B
4141
PD6 = portD + 6 // peripherals: Timer0 channel A
4242
PD7 = portD + 7
43-
PE0 = portE + 0
44-
PE1 = portE + 1
43+
PE0 = portE + 0 // peripherals: I2C1 SDA
44+
PE1 = portE + 1 // peripherals: I2C1 SCL
4545
PE2 = portE + 2
4646
PE3 = portE + 3
4747
PE4 = portE + 4

emb/machine/board_atsamd21.go

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,36 @@ func CPUFrequency() uint32 {
77
return 48000000
88
}
99

10+
// Note that the below pins have a few I2C pins listed that according to the
11+
// datasheet don't support I2C yet they are used in practice on boards from
12+
// Adafruit and Arduino. See machine_atsamd21_simulator.go for details.
13+
1014
// Hardware pins
1115
const (
12-
PA00 Pin = 0 // peripherals: TCC2 channel 0
13-
PA01 Pin = 1 // peripherals: TCC2 channel 1
16+
PA00 Pin = 0 // peripherals: TCC2 channel 0, sercomI2CM1 SDA
17+
PA01 Pin = 1 // peripherals: TCC2 channel 1, sercomI2CM1 SCL
1418
PA02 Pin = 2
1519
PA03 Pin = 3
1620
PA04 Pin = 4 // peripherals: TCC0 channel 0
1721
PA05 Pin = 5 // peripherals: TCC0 channel 1
1822
PA06 Pin = 6 // peripherals: TCC1 channel 0
1923
PA07 Pin = 7 // peripherals: TCC1 channel 1
20-
PA08 Pin = 8 // peripherals: TCC0 channel 0, TCC1 channel 2
21-
PA09 Pin = 9 // peripherals: TCC0 channel 1, TCC1 channel 3
24+
PA08 Pin = 8 // peripherals: TCC0 channel 0, TCC1 channel 2, sercomI2CM0 SDA, sercomI2CM2 SDA
25+
PA09 Pin = 9 // peripherals: TCC0 channel 1, TCC1 channel 3, sercomI2CM0 SCL, sercomI2CM2 SCL
2226
PA10 Pin = 10 // peripherals: TCC1 channel 0, TCC0 channel 2
2327
PA11 Pin = 11 // peripherals: TCC1 channel 1, TCC0 channel 3
24-
PA12 Pin = 12 // peripherals: TCC2 channel 0, TCC0 channel 2
25-
PA13 Pin = 13 // peripherals: TCC2 channel 1, TCC0 channel 3
28+
PA12 Pin = 12 // peripherals: TCC2 channel 0, TCC0 channel 2, sercomI2CM2 SDA, sercomI2CM4 SDA
29+
PA13 Pin = 13 // peripherals: TCC2 channel 1, TCC0 channel 3, sercomI2CM2 SCL, sercomI2CM4 SCL
2630
PA14 Pin = 14 // peripherals: TCC0 channel 0
2731
PA15 Pin = 15 // peripherals: TCC0 channel 1
28-
PA16 Pin = 16 // peripherals: TCC2 channel 0, TCC0 channel 2
29-
PA17 Pin = 17 // peripherals: TCC2 channel 1, TCC0 channel 3
32+
PA16 Pin = 16 // peripherals: TCC2 channel 0, TCC0 channel 2, sercomI2CM1 SDA, sercomI2CM3 SDA
33+
PA17 Pin = 17 // peripherals: TCC2 channel 1, TCC0 channel 3, sercomI2CM1 SCL, sercomI2CM3 SCL
3034
PA18 Pin = 18 // peripherals: TCC0 channel 2
3135
PA19 Pin = 19 // peripherals: TCC0 channel 3
3236
PA20 Pin = 20 // peripherals: TCC0 channel 2
3337
PA21 Pin = 21 // peripherals: TCC0 channel 3
34-
PA22 Pin = 22 // peripherals: TCC0 channel 0
35-
PA23 Pin = 23 // peripherals: TCC0 channel 1
38+
PA22 Pin = 22 // peripherals: TCC0 channel 0, sercomI2CM3 SDA, sercomI2CM5 SDA
39+
PA23 Pin = 23 // peripherals: TCC0 channel 1, sercomI2CM3 SCL, sercomI2CM5 SCL
3640
PA24 Pin = 24 // peripherals: TCC1 channel 2
3741
PA25 Pin = 25 // peripherals: TCC1 channel 3
3842
PA26 Pin = 26
@@ -43,22 +47,22 @@ const (
4347
PA31 Pin = 31 // peripherals: TCC1 channel 1
4448
PB00 Pin = 32
4549
PB01 Pin = 33
46-
PB02 Pin = 34
47-
PB03 Pin = 35
50+
PB02 Pin = 34 // peripherals: sercomI2CM5 SDA
51+
PB03 Pin = 35 // peripherals: sercomI2CM5 SCL
4852
PB04 Pin = 36
4953
PB05 Pin = 37
5054
PB06 Pin = 38
5155
PB07 Pin = 39
52-
PB08 Pin = 40
53-
PB09 Pin = 41
56+
PB08 Pin = 40 // peripherals: sercomI2CM4 SDA
57+
PB09 Pin = 41 // peripherals: sercomI2CM4 SCL
5458
PB10 Pin = 42 // peripherals: TCC0 channel 0
5559
PB11 Pin = 43 // peripherals: TCC0 channel 1
56-
PB12 Pin = 44 // peripherals: TCC0 channel 2
57-
PB13 Pin = 45 // peripherals: TCC0 channel 3
60+
PB12 Pin = 44 // peripherals: TCC0 channel 2, sercomI2CM4 SDA
61+
PB13 Pin = 45 // peripherals: TCC0 channel 3, sercomI2CM4 SCL
5862
PB14 Pin = 46
5963
PB15 Pin = 47
60-
PB16 Pin = 48 // peripherals: TCC0 channel 0
61-
PB17 Pin = 49 // peripherals: TCC0 channel 1
64+
PB16 Pin = 48 // peripherals: TCC0 channel 0, sercomI2CM5 SDA
65+
PB17 Pin = 49 // peripherals: TCC0 channel 1, sercomI2CM5 SCL
6266
PB18 Pin = 50
6367
PB19 Pin = 51
6468
PB20 Pin = 52
@@ -71,6 +75,6 @@ const (
7175
PB27 Pin = 59
7276
PB28 Pin = 60
7377
PB29 Pin = 61
74-
PB30 Pin = 62 // peripherals: TCC0 channel 0, TCC1 channel 2
75-
PB31 Pin = 63 // peripherals: TCC0 channel 1, TCC1 channel 3
78+
PB30 Pin = 62 // peripherals: TCC0 channel 0, TCC1 channel 2, sercomI2CM5 SDA
79+
PB31 Pin = 63 // peripherals: TCC0 channel 1, TCC1 channel 3, sercomI2CM5 SCL
7680
)

emb/machine/board_pga2350.go

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,24 @@ const (
3131
GP27 = GPIO27
3232
GP28 = GPIO28
3333
GP29 = GPIO29
34-
GP30 = GPIO30 // peripherals: PWM7 channel A
35-
GP31 = GPIO31 // peripherals: PWM7 channel B
36-
GP32 = GPIO32 // peripherals: PWM8 channel A
37-
GP33 = GPIO33 // peripherals: PWM8 channel B
38-
GP34 = GPIO34 // peripherals: PWM9 channel A
39-
GP35 = GPIO35 // peripherals: PWM9 channel B
40-
GP36 = GPIO36 // peripherals: PWM10 channel A
41-
GP37 = GPIO37 // peripherals: PWM10 channel B
42-
GP38 = GPIO38 // peripherals: PWM11 channel A
43-
GP39 = GPIO39 // peripherals: PWM11 channel B
44-
GP40 = GPIO40 // peripherals: PWM8 channel A
45-
GP41 = GPIO41 // peripherals: PWM8 channel B
46-
GP42 = GPIO42 // peripherals: PWM9 channel A
47-
GP43 = GPIO43 // peripherals: PWM9 channel B
48-
GP44 = GPIO44 // peripherals: PWM10 channel A
49-
GP45 = GPIO45 // peripherals: PWM10 channel B
50-
GP46 = GPIO46 // peripherals: PWM11 channel A
51-
GP47 = GPIO47 // peripherals: PWM11 channel B
52-
34+
GP30 = GPIO30
35+
GP31 = GPIO31
36+
GP32 = GPIO32
37+
GP33 = GPIO33
38+
GP34 = GPIO34
39+
GP35 = GPIO35
40+
GP36 = GPIO36
41+
GP37 = GPIO37
42+
GP38 = GPIO38
43+
GP39 = GPIO39
44+
GP40 = GPIO40
45+
GP41 = GPIO41
46+
GP42 = GPIO42
47+
GP43 = GPIO43
48+
GP44 = GPIO44
49+
GP45 = GPIO45
50+
GP46 = GPIO46
51+
GP47 = GPIO47
5352
)
5453

5554
var DefaultUART = UART0

emb/machine/board_teensy41.go

Lines changed: 93 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ var (
279279
// #===========#==========#===============#=================-=========#
280280
// | SPI1 | LPSPI4 | PLL2(132 MHz) | D12/D11/D13/D10 : 3/3/3/3 |
281281
// | SPI2 | LPSPI3 | PLL2(132 MHz) | D1/D26/D27/D0 : 7/2/2/7 |
282-
// | SPI3 | LPSPI1 | PLL2(132 MHz) | D34/D35/D37/D36 : 4/4/4/4 |
282+
// | SPI3 | LPSPI1 | PLL2(132 MHz) | D42/D43/D45/D44 : 4/4/4/4 |
283283
// #===========#==========#===============#=================-=========#
284284
const (
285285
SPI1_SDI_PIN = D12
@@ -292,10 +292,52 @@ const (
292292
SPI2_SCK_PIN = D27
293293
SPI2_CS_PIN = D0
294294

295-
SPI3_SDI_PIN = D34
296-
SPI3_SDO_PIN = D35
297-
SPI3_SCK_PIN = D37
298-
SPI3_CS_PIN = D36
295+
SPI3_SDI_PIN = D42
296+
SPI3_SDO_PIN = D43
297+
SPI3_SCK_PIN = D45
298+
SPI3_CS_PIN = D44
299+
)
300+
301+
var (
302+
SPI0 = SPI1 // SPI0 is an alias of SPI1 (LPSPI4)
303+
SPI1 = &SPI{
304+
Bus: nxp.LPSPI4,
305+
muxSDI: muxSelect{ // D12 (PB1 [B0_01])
306+
mux: nxp.IOMUXC_LPSPI4_SDI_SELECT_INPUT_DAISY_GPIO_B0_01_ALT3,
307+
sel: &nxp.IOMUXC.LPSPI4_SDI_SELECT_INPUT,
308+
},
309+
muxSDO: muxSelect{ // D11 (PB2 [B0_02])
310+
mux: nxp.IOMUXC_LPSPI4_SDO_SELECT_INPUT_DAISY_GPIO_B0_02_ALT3,
311+
sel: &nxp.IOMUXC.LPSPI4_SDO_SELECT_INPUT,
312+
},
313+
muxSCK: muxSelect{ // D13 (PB3 [B0_03])
314+
mux: nxp.IOMUXC_LPSPI4_SCK_SELECT_INPUT_DAISY_GPIO_B0_03_ALT3,
315+
sel: &nxp.IOMUXC.LPSPI4_SCK_SELECT_INPUT,
316+
},
317+
muxCS: muxSelect{ // D10 (PB0 [B0_00])
318+
mux: nxp.IOMUXC_LPSPI4_PCS0_SELECT_INPUT_DAISY_GPIO_B0_00_ALT3,
319+
sel: &nxp.IOMUXC.LPSPI4_PCS0_SELECT_INPUT,
320+
},
321+
}
322+
SPI2 = &SPI{
323+
Bus: nxp.LPSPI3,
324+
muxSDI: muxSelect{ // D1 (PA2 [AD_B0_02])
325+
mux: nxp.IOMUXC_LPSPI3_SDI_SELECT_INPUT_DAISY_GPIO_AD_B0_02_ALT7,
326+
sel: &nxp.IOMUXC.LPSPI3_SDI_SELECT_INPUT,
327+
},
328+
muxSDO: muxSelect{ // D26 (PA30 [AD_B1_14])
329+
mux: nxp.IOMUXC_LPSPI3_SDO_SELECT_INPUT_DAISY_GPIO_AD_B1_14_ALT2,
330+
sel: &nxp.IOMUXC.LPSPI3_SDO_SELECT_INPUT,
331+
},
332+
muxSCK: muxSelect{ // D27 (PA31 [AD_B1_15])
333+
mux: nxp.IOMUXC_LPSPI3_SCK_SELECT_INPUT_DAISY_GPIO_AD_B1_15,
334+
sel: &nxp.IOMUXC.LPSPI3_SCK_SELECT_INPUT,
335+
},
336+
muxCS: muxSelect{ // D0 (PA3 [AD_B0_03])
337+
mux: nxp.IOMUXC_LPSPI3_PCS0_SELECT_INPUT_DAISY_GPIO_AD_B0_03_ALT7,
338+
sel: &nxp.IOMUXC.LPSPI3_PCS0_SELECT_INPUT,
339+
},
340+
}
299341
)
300342

301343
// #====================================================#
@@ -317,3 +359,49 @@ const (
317359
I2C3_SDA_PIN = D25
318360
I2C3_SCL_PIN = D24
319361
)
362+
363+
var (
364+
I2C0 = I2C1 // I2C0 is an alias for I2C1 (LPI2C1)
365+
I2C1 = &_I2C1
366+
_I2C1 = I2C{
367+
Bus: nxp.LPI2C1,
368+
sda: I2C1_SDA_PIN, // D18 (PA17 [AD_B1_01])
369+
scl: I2C1_SCL_PIN, // D19 (PA16 [AD_B1_00])
370+
muxSDA: muxSelect{
371+
mux: nxp.IOMUXC_LPI2C1_SDA_SELECT_INPUT_DAISY_GPIO_AD_B1_01_ALT3,
372+
sel: &nxp.IOMUXC.LPI2C1_SDA_SELECT_INPUT,
373+
},
374+
muxSCL: muxSelect{
375+
mux: nxp.IOMUXC_LPI2C1_SCL_SELECT_INPUT_DAISY_GPIO_AD_B1_00_ALT3,
376+
sel: &nxp.IOMUXC.LPI2C1_SCL_SELECT_INPUT,
377+
},
378+
}
379+
I2C2 = &_I2C2
380+
_I2C2 = I2C{
381+
Bus: nxp.LPI2C3,
382+
sda: I2C2_SDA_PIN, // D17 (PA22 [AD_B1_06])
383+
scl: I2C2_SCL_PIN, // D16 (PA23 [AD_B1_07])
384+
muxSDA: muxSelect{
385+
mux: nxp.IOMUXC_LPI2C3_SDA_SELECT_INPUT_DAISY_GPIO_AD_B1_06_ALT1,
386+
sel: &nxp.IOMUXC.LPI2C3_SDA_SELECT_INPUT,
387+
},
388+
muxSCL: muxSelect{
389+
mux: nxp.IOMUXC_LPI2C3_SCL_SELECT_INPUT_DAISY_GPIO_AD_B1_07_ALT1,
390+
sel: &nxp.IOMUXC.LPI2C3_SCL_SELECT_INPUT,
391+
},
392+
}
393+
I2C3 = &_I2C3
394+
_I2C3 = I2C{
395+
Bus: nxp.LPI2C4,
396+
sda: I2C3_SDA_PIN, // D25 (PA13 [AD_B0_13])
397+
scl: I2C3_SCL_PIN, // D24 (PA12 [AD_B0_12])
398+
muxSDA: muxSelect{
399+
mux: nxp.IOMUXC_LPI2C4_SDA_SELECT_INPUT_DAISY_GPIO_AD_B0_13_ALT0,
400+
sel: &nxp.IOMUXC.LPI2C4_SDA_SELECT_INPUT,
401+
},
402+
muxSCL: muxSelect{
403+
mux: nxp.IOMUXC_LPI2C4_SCL_SELECT_INPUT_DAISY_GPIO_AD_B0_12_ALT0,
404+
sel: &nxp.IOMUXC.LPI2C4_SCL_SELECT_INPUT,
405+
},
406+
}
407+
)

emb/machine/i2c.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,20 @@ const (
2626
)
2727

2828
var (
29-
errI2CWriteTimeout = errors.New("I2C timeout during write")
30-
errI2CReadTimeout = errors.New("I2C timeout during read")
31-
errI2CBusReadyTimeout = errors.New("I2C timeout on bus ready")
32-
errI2CSignalStartTimeout = errors.New("I2C timeout on signal start")
33-
errI2CSignalReadTimeout = errors.New("I2C timeout on signal read")
34-
errI2CSignalStopTimeout = errors.New("I2C timeout on signal stop")
35-
errI2CAckExpected = errors.New("I2C error: expected ACK not NACK")
36-
errI2CBusError = errors.New("I2C bus error")
37-
errI2COverflow = errors.New("I2C receive buffer overflow")
38-
errI2COverread = errors.New("I2C transmit buffer overflow")
39-
errI2CNotImplemented = errors.New("I2C operation not yet implemented")
29+
errI2CWriteTimeout = errors.New("i2c: timeout during write")
30+
errI2CReadTimeout = errors.New("i2c: timeout during read")
31+
errI2CBusReadyTimeout = errors.New("i2c: timeout on bus ready")
32+
errI2CSignalStartTimeout = errors.New("i2c: timeout on signal start")
33+
errI2CSignalReadTimeout = errors.New("i2c: timeout on signal read")
34+
errI2CSignalStopTimeout = errors.New("i2c: timeout on signal stop")
35+
errI2CAckExpected = errors.New("i2c: error: expected ACK not NACK")
36+
errI2CBusError = errors.New("i2c: bus error")
37+
errI2COverflow = errors.New("i2c: receive buffer overflow")
38+
errI2COverread = errors.New("i2c: transmit buffer overflow")
39+
errI2CNotImplemented = errors.New("i2c: operation not yet implemented")
40+
errI2CNoDevices = errors.New("i2c: bus has no devices") // simulator only
41+
errI2CMultipleDevices = errors.New("i2c: bus has address conflict") // simulator only
42+
errI2CWrongAddress = errors.New("i2c: bus has devices but none with this address") // simulator only
4043
)
4144

4245
// I2CTargetEvent reflects events on the I2C bus

emb/machine/machine_atmega1280.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ const (
4949
PC5 = portC + 5
5050
PC6 = portC + 6
5151
PC7 = portC + 7
52-
PD0 = portD + 0
53-
PD1 = portD + 1
52+
PD0 = portD + 0 // peripherals: I2C0 SCL
53+
PD1 = portD + 1 // peripherals: I2C0 SDA
5454
PD2 = portD + 2
5555
PD3 = portD + 3
5656
PD7 = portD + 7

emb/machine/machine_atsamd21_simulator.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,21 @@ var TCC2 = &timerType{
4343
{PA01, PA13, PA17}, // channel 1
4444
},
4545
}
46+
47+
var (
48+
// According to the datasheet, only some pins have I2C support. However it
49+
// looks like many boards just use any SERCOM I2C instance, even if the
50+
// datasheet says those don't support I2C. I guess they do work in practice,
51+
// then.
52+
// These are:
53+
// * PA00/PA01 for the Adafruit Circuit Playground Express (I2C1, SERCOM1).
54+
// * PB02/PB03 for the Adafruit Circuit Playground Express (I2C0, SERCOM5).
55+
// * PB08/PB09 for the Arduino Nano 33 IoT (I2C0, SERCOM4).
56+
// https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/Atmel-42181-SAM-D21_Datasheet.pdf
57+
sercomI2CM0 = &I2C{Bus: 0, PinsSDA: []Pin{PA08}, PinsSCL: []Pin{PA09}}
58+
sercomI2CM1 = &I2C{Bus: 1, PinsSDA: []Pin{PA00, PA16}, PinsSCL: []Pin{PA01, PA17}}
59+
sercomI2CM2 = &I2C{Bus: 2, PinsSDA: []Pin{PA08, PA12}, PinsSCL: []Pin{PA09, PA13}}
60+
sercomI2CM3 = &I2C{Bus: 3, PinsSDA: []Pin{PA16, PA22}, PinsSCL: []Pin{PA17, PA23}}
61+
sercomI2CM4 = &I2C{Bus: 4, PinsSDA: []Pin{PA12, PB08, PB12}, PinsSCL: []Pin{PA13, PB09, PB13}}
62+
sercomI2CM5 = &I2C{Bus: 5, PinsSDA: []Pin{PA22, PB02, PB16, PB30}, PinsSCL: []Pin{PA23, PB03, PB17, PB31}}
63+
)

emb/machine/machine_atsamd51.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,22 +81,22 @@ const (
8181
PA05 Pin = 5
8282
PA06 Pin = 6
8383
PA07 Pin = 7
84-
PA08 Pin = 8 // peripherals: TCC0 channel 0, TCC1 channel 4
85-
PA09 Pin = 9 // peripherals: TCC0 channel 1, TCC1 channel 5
84+
PA08 Pin = 8 // peripherals: TCC0 channel 0, TCC1 channel 4, sercomI2CM0 SDA, sercomI2CM2 SDA
85+
PA09 Pin = 9 // peripherals: TCC0 channel 1, TCC1 channel 5, sercomI2CM0 SCL, sercomI2CM2 SCL
8686
PA10 Pin = 10 // peripherals: TCC0 channel 2, TCC1 channel 6
8787
PA11 Pin = 11 // peripherals: TCC0 channel 3, TCC1 channel 7
88-
PA12 Pin = 12 // peripherals: TCC0 channel 6, TCC1 channel 2
89-
PA13 Pin = 13 // peripherals: TCC0 channel 7, TCC1 channel 3
88+
PA12 Pin = 12 // peripherals: TCC0 channel 6, TCC1 channel 2, sercomI2CM2 SDA, sercomI2CM4 SDA
89+
PA13 Pin = 13 // peripherals: TCC0 channel 7, TCC1 channel 3, sercomI2CM2 SCL, sercomI2CM4 SCL
9090
PA14 Pin = 14 // peripherals: TCC2 channel 0, TCC1 channel 2
9191
PA15 Pin = 15 // peripherals: TCC2 channel 1, TCC1 channel 3
92-
PA16 Pin = 16 // peripherals: TCC1 channel 0, TCC0 channel 4
93-
PA17 Pin = 17 // peripherals: TCC1 channel 1, TCC0 channel 5
92+
PA16 Pin = 16 // peripherals: TCC1 channel 0, TCC0 channel 4, sercomI2CM1 SDA, sercomI2CM3 SDA
93+
PA17 Pin = 17 // peripherals: TCC1 channel 1, TCC0 channel 5, sercomI2CM1 SCL, sercomI2CM3 SCL
9494
PA18 Pin = 18 // peripherals: TCC1 channel 2, TCC0 channel 6
9595
PA19 Pin = 19 // peripherals: TCC1 channel 3, TCC0 channel 7
9696
PA20 Pin = 20 // peripherals: TCC1 channel 4, TCC0 channel 0
9797
PA21 Pin = 21 // peripherals: TCC1 channel 5, TCC0 channel 1
98-
PA22 Pin = 22 // peripherals: TCC1 channel 6, TCC0 channel 2
99-
PA23 Pin = 23 // peripherals: TCC1 channel 7, TCC0 channel 3
98+
PA22 Pin = 22 // peripherals: TCC1 channel 6, TCC0 channel 2, sercomI2CM3 SDA, sercomI2CM5 SDA
99+
PA23 Pin = 23 // peripherals: TCC1 channel 7, TCC0 channel 3, sercomI2CM3 SCL, sercomI2CM5 SCL
100100
PA24 Pin = 24 // peripherals: TCC2 channel 2
101101
PA25 Pin = 25 // peripherals: TCC2 channel 3
102102
PA26 Pin = 26
@@ -177,8 +177,8 @@ const (
177177
PD05 Pin = 101
178178
PD06 Pin = 102
179179
PD07 Pin = 103
180-
PD08 Pin = 104 // peripherals: TCC0 channel 1
181-
PD09 Pin = 105 // peripherals: TCC0 channel 2
180+
PD08 Pin = 104 // peripherals: TCC0 channel 1, sercomI2CM6 SDA, sercomI2CM7 SDA
181+
PD09 Pin = 105 // peripherals: TCC0 channel 2, sercomI2CM6 SCL, sercomI2CM7 SCL
182182
PD10 Pin = 106 // peripherals: TCC0 channel 3
183183
PD11 Pin = 107 // peripherals: TCC0 channel 4
184184
PD12 Pin = 108 // peripherals: TCC0 channel 5

0 commit comments

Comments
 (0)