Skip to content

Commit 3948846

Browse files
davecheneydeadprogram
authored andcommitted
Add support for Waveshare RP2040-PiZero board
1 parent b81c627 commit 3948846

3 files changed

Lines changed: 119 additions & 0 deletions

File tree

make/smoketest.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,8 @@ smoketest-rp2xxx: | build/smoke
295295
@$(MD5SUM) $(SMOKE_OUT).hex
296296
$(TINYGO) build -size short -o $(SMOKE_OUT).hex -target=waveshare-rp2040-zero examples/echo
297297
@$(MD5SUM) $(SMOKE_OUT).hex
298+
$(TINYGO) build -size short -o $(SMOKE_OUT).hex -target=waveshare-rp2040-pizero examples/echo
299+
@$(MD5SUM) $(SMOKE_OUT).hex
298300
$(TINYGO) build -size short -o $(SMOKE_OUT).hex -target=challenger-rp2040 examples/blinky1
299301
@$(MD5SUM) $(SMOKE_OUT).hex
300302
$(TINYGO) build -size short -o $(SMOKE_OUT).hex -target=trinkey-qt2040 examples/temp
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
//go:build waveshare_rp2040_pizero
2+
3+
// This file contains the pin mappings for the Waveshare RP2040-PiZero board.
4+
//
5+
// Waveshare RP2040-PiZero uses the Raspberry Pi RP2040 chip.
6+
//
7+
// - https://www.waveshare.com/wiki/RP2040-PiZero
8+
// - https://github.com/raspberrypi/pico-sdk/blob/master/src/boards/include/boards/waveshare_rp2040_pizero.h
9+
package machine
10+
11+
// GPIO pins
12+
const (
13+
GP0 Pin = GPIO0
14+
GP1 Pin = GPIO1
15+
GP2 Pin = GPIO2
16+
GP3 Pin = GPIO3
17+
GP4 Pin = GPIO4
18+
GP5 Pin = GPIO5
19+
GP6 Pin = GPIO6
20+
GP7 Pin = GPIO7
21+
GP8 Pin = GPIO8
22+
GP9 Pin = GPIO9
23+
GP10 Pin = GPIO10
24+
GP11 Pin = GPIO11
25+
GP12 Pin = GPIO12
26+
GP13 Pin = GPIO13
27+
GP14 Pin = GPIO14
28+
GP15 Pin = GPIO15
29+
GP16 Pin = GPIO16
30+
GP17 Pin = GPIO17
31+
GP18 Pin = GPIO18
32+
GP19 Pin = GPIO19
33+
GP20 Pin = GPIO20
34+
GP21 Pin = GPIO21
35+
GP22 Pin = GPIO22
36+
GP23 Pin = GPIO23
37+
GP24 Pin = GPIO24
38+
GP25 Pin = GPIO25
39+
GP26 Pin = GPIO26
40+
GP27 Pin = GPIO27
41+
GP28 Pin = GPIO28
42+
GP29 Pin = GPIO29
43+
44+
// The Pico SDK board header defines no default LED pin.
45+
LED Pin = NoPin
46+
47+
// Onboard crystal oscillator frequency, in MHz.
48+
xoscFreq = 12 // MHz
49+
)
50+
51+
// Analog pins
52+
const (
53+
A0 Pin = GP26
54+
A1 Pin = GP27
55+
A2 Pin = GP28
56+
A3 Pin = GP29
57+
)
58+
59+
// I2C default pins
60+
const (
61+
I2C0_SDA_PIN Pin = NoPin
62+
I2C0_SCL_PIN Pin = NoPin
63+
64+
I2C1_SDA_PIN Pin = GP6
65+
I2C1_SCL_PIN Pin = GP7
66+
)
67+
68+
// SPI default pins
69+
const (
70+
SPI0_RX_PIN Pin = GP16
71+
SPI0_CSN_PIN Pin = GP17
72+
SPI0_SCK_PIN Pin = GP18
73+
SPI0_TX_PIN Pin = GP19
74+
SPI0_SDO_PIN Pin = SPI0_TX_PIN
75+
SPI0_SDI_PIN Pin = SPI0_RX_PIN
76+
77+
SPI1_SCK_PIN Pin = GP10
78+
SPI1_SDO_PIN Pin = GP11
79+
SPI1_SDI_PIN Pin = GP12
80+
)
81+
82+
// UART pins
83+
const (
84+
UART0_TX_PIN = GP0
85+
UART0_RX_PIN = GP1
86+
UART1_TX_PIN = GP8
87+
UART1_RX_PIN = GP9
88+
UART_TX_PIN = UART0_TX_PIN
89+
UART_RX_PIN = UART0_RX_PIN
90+
)
91+
92+
var DefaultUART = UART0
93+
94+
// USB identifiers
95+
const (
96+
usb_STRING_PRODUCT = "RP2040-PiZero"
97+
usb_STRING_MANUFACTURER = "Waveshare"
98+
)
99+
100+
var (
101+
usb_VID uint16 = 0x2e8a
102+
usb_PID uint16 = 0x0003
103+
)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"inherits": [
3+
"rp2040"
4+
],
5+
"serial-port": ["2e8a:0003"],
6+
"default-stack-size": 8192,
7+
"build-tags": ["waveshare_rp2040_pizero"],
8+
"ldflags": [
9+
"--defsym=__flash_size=16M"
10+
],
11+
"extra-files": [
12+
"targets/pico-boot-stage2.S"
13+
]
14+
}

0 commit comments

Comments
 (0)