Skip to content

Commit 02c4020

Browse files
deadprogramaykevl
authored andcommitted
machine/atsamd51: add support for ATSAMD51 processor using Adafruit ItsyBitsy-M4 board
Signed-off-by: Ron Evans <[email protected]>
1 parent bc41cc6 commit 02c4020

File tree

9 files changed

+3054
-0
lines changed

9 files changed

+3054
-0
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ smoketest:
125125
tinygo build -size short -o test.elf -target=stm32f4disco examples/blinky2
126126
tinygo build -size short -o test.elf -target=circuitplay-express examples/i2s
127127
tinygo build -size short -o test.elf -target=gameboy-advance examples/gba-display
128+
tinygo build -size short -o test.elf -target=itsybitsy-m4 examples/blinky1
128129
ifneq ($(AVR), 0)
129130
tinygo build -size short -o test.elf -target=arduino examples/blinky1
130131
tinygo build -size short -o test.elf -target=digispark examples/blinky1

src/machine/board_itsybitsy-m4.go

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
// +build sam,atsamd51,itsybitsy_m4
2+
3+
package machine
4+
5+
import "device/sam"
6+
7+
// used to reset into bootloader
8+
const RESET_MAGIC_VALUE = 0xf01669ef
9+
10+
// GPIO Pins
11+
const (
12+
D0 = PA16 // UART0 RX/PWM available
13+
D1 = PA17 // UART0 TX/PWM available
14+
D2 = PA07
15+
D3 = PB22
16+
D4 = PA14 // PWM available
17+
D5 = PA15 // PWM available
18+
D6 = PB02 // dotStar clock
19+
D7 = PA18 // PWM available
20+
D8 = PB03 // dotStar data
21+
D9 = PA19 // PWM available
22+
D10 = PA20 // can be used for PWM or UART1 TX
23+
D11 = PA21 // can be used for PWM or UART1 RX
24+
D12 = PA23 // PWM available
25+
D13 = PA22 // PWM available
26+
)
27+
28+
// Analog pins
29+
const (
30+
A0 = PA02 // ADC/AIN[0]
31+
A1 = PB05 // ADC/AIN[2]
32+
A2 = PB08 // ADC/AIN[3]
33+
A3 = PB09 // ADC/AIN[4]
34+
A4 = PA04 // ADC/AIN[5]
35+
A5 = PA06 // ADC/AIN[10]
36+
)
37+
38+
const (
39+
LED = D13
40+
)
41+
42+
// UART0 aka USBCDC pins
43+
const (
44+
USBCDC_DM_PIN = PA24
45+
USBCDC_DP_PIN = PA25
46+
)
47+
48+
// UART1 pins
49+
const (
50+
UART_TX_PIN = D1
51+
UART_RX_PIN = D0
52+
)
53+
54+
// I2C pins
55+
const (
56+
SDA_PIN = PA12 // SDA: SERCOM3/PAD[0]
57+
SCL_PIN = PA13 // SCL: SERCOM3/PAD[1]
58+
)
59+
60+
// I2C on the ItsyBitsy M4.
61+
var (
62+
I2C0 = I2C{Bus: sam.SERCOM2_I2CM,
63+
SDA: SDA_PIN,
64+
SCL: SCL_PIN,
65+
PinMode: PinSERCOM}
66+
)
67+
68+
// SPI pins
69+
const (
70+
SPI0_SCK_PIN = PA01 // SCK: SERCOM1/PAD[1]
71+
SPI0_MOSI_PIN = PA00 // MOSI: SERCOM1/PAD[0]
72+
SPI0_MISO_PIN = PB23 // MISO: SERCOM1/PAD[3]
73+
)
74+
75+
// SPI on the ItsyBitsy M4.
76+
var (
77+
SPI0 = SPI{Bus: sam.SERCOM1_SPI,
78+
SCK: SPI0_SCK_PIN,
79+
MOSI: SPI0_MOSI_PIN,
80+
MISO: SPI0_MISO_PIN,
81+
DOpad: spiTXPad2SCK3,
82+
DIpad: sercomRXPad0}
83+
)

0 commit comments

Comments
 (0)