File tree Expand file tree Collapse file tree 6 files changed +53
-45
lines changed Expand file tree Collapse file tree 6 files changed +53
-45
lines changed Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ const (
37
37
A0 Pin = PA02 // ADC/AIN[0]
38
38
A1 Pin = PB02 // ADC/AIN[10]
39
39
A2 Pin = PA11 // ADC/AIN[19]
40
- A3 Pin = PA10 // ADC/AIN[18]
40
+ A3 Pin = PA10 // ADC/AIN[18],
41
41
A4 Pin = PB08 // ADC/AIN[2], SCL: SERCOM2/PAD[1]
42
42
A5 Pin = PB09 // ADC/AIN[3], SDA: SERCOM2/PAD[1]
43
43
A6 Pin = PA09 // ADC/AIN[17]
@@ -118,19 +118,20 @@ var (
118
118
119
119
// SPI pins
120
120
const (
121
- SPI0_SCK_PIN Pin = PB11 // SCK: SERCOM4 /PAD[3]
122
- SPI0_MOSI_PIN Pin = PB10 // MOSI: SERCOM4 /PAD[2]
123
- SPI0_MISO_PIN Pin = PA12 // MISO: SERCOM4 /PAD[0 ]
121
+ SPI0_SCK_PIN Pin = A2 // SCK: SERCOM0 /PAD[3]
122
+ SPI0_MOSI_PIN Pin = A3 // MOSI: SERCOM0 /PAD[2]
123
+ SPI0_MISO_PIN Pin = A6 // MISO: SERCOM0 /PAD[1 ]
124
124
)
125
125
126
126
// SPI on the Arduino Nano 33.
127
127
var (
128
- SPI0 = SPI {Bus : sam .SERCOM1_SPI ,
129
- SCK : SPI0_SCK_PIN ,
130
- MOSI : SPI0_MOSI_PIN ,
131
- MISO : SPI0_MISO_PIN ,
132
- DOpad : spiTXPad2SCK3 ,
133
- DIpad : sercomRXPad0 }
128
+ SPI0 = SPI {Bus : sam .SERCOM0_SPI ,
129
+ SCK : SPI0_SCK_PIN ,
130
+ MOSI : SPI0_MOSI_PIN ,
131
+ MISO : SPI0_MISO_PIN ,
132
+ DOpad : spiTXPad2SCK3 ,
133
+ DIpad : sercomRXPad0 ,
134
+ PinMode : PinSERCOM }
134
135
)
135
136
136
137
// I2S pins
Original file line number Diff line number Diff line change @@ -115,11 +115,12 @@ const (
115
115
// SPI on the Circuit Playground Express.
116
116
var (
117
117
SPI0 = SPI {Bus : sam .SERCOM3_SPI ,
118
- SCK : SPI0_SCK_PIN ,
119
- MOSI : SPI0_MOSI_PIN ,
120
- MISO : SPI0_MISO_PIN ,
121
- DOpad : spiTXPad2SCK3 ,
122
- DIpad : sercomRXPad0 }
118
+ SCK : SPI0_SCK_PIN ,
119
+ MOSI : SPI0_MOSI_PIN ,
120
+ MISO : SPI0_MISO_PIN ,
121
+ DOpad : spiTXPad2SCK3 ,
122
+ DIpad : sercomRXPad0 ,
123
+ PinMode : PinSERCOMAlt }
123
124
)
124
125
125
126
// I2S pins
Original file line number Diff line number Diff line change @@ -89,11 +89,12 @@ const (
89
89
// SPI on the Feather M0.
90
90
var (
91
91
SPI0 = SPI {Bus : sam .SERCOM4_SPI ,
92
- SCK : SPI0_SCK_PIN ,
93
- MOSI : SPI0_MOSI_PIN ,
94
- MISO : SPI0_MISO_PIN ,
95
- DOpad : spiTXPad2SCK3 ,
96
- DIpad : sercomRXPad0 }
92
+ SCK : SPI0_SCK_PIN ,
93
+ MOSI : SPI0_MOSI_PIN ,
94
+ MISO : SPI0_MISO_PIN ,
95
+ DOpad : spiTXPad2SCK3 ,
96
+ DIpad : sercomRXPad0 ,
97
+ PinMode : PinSERCOMAlt }
97
98
)
98
99
99
100
// I2S pins
Original file line number Diff line number Diff line change @@ -91,11 +91,12 @@ const (
91
91
// SPI on the ItsyBitsy M0.
92
92
var (
93
93
SPI0 = SPI {Bus : sam .SERCOM4_SPI ,
94
- SCK : SPI0_SCK_PIN ,
95
- MOSI : SPI0_MOSI_PIN ,
96
- MISO : SPI0_MISO_PIN ,
97
- DOpad : spiTXPad2SCK3 ,
98
- DIpad : sercomRXPad0 }
94
+ SCK : SPI0_SCK_PIN ,
95
+ MOSI : SPI0_MOSI_PIN ,
96
+ MISO : SPI0_MISO_PIN ,
97
+ DOpad : spiTXPad2SCK3 ,
98
+ DIpad : sercomRXPad0 ,
99
+ PinMode : PinSERCOMAlt }
99
100
)
100
101
101
102
// "Internal" SPI pins; SPI flash is attached to these on ItsyBitsy M0
@@ -109,11 +110,12 @@ const (
109
110
// "Internal" SPI on Sercom 5
110
111
var (
111
112
SPI1 = SPI {Bus : sam .SERCOM5_SPI ,
112
- SCK : SPI1_SCK_PIN ,
113
- MOSI : SPI1_MOSI_PIN ,
114
- MISO : SPI1_MISO_PIN ,
115
- DOpad : spiTXPad2SCK3 ,
116
- DIpad : sercomRXPad1 }
113
+ SCK : SPI1_SCK_PIN ,
114
+ MOSI : SPI1_MOSI_PIN ,
115
+ MISO : SPI1_MISO_PIN ,
116
+ DOpad : spiTXPad2SCK3 ,
117
+ DIpad : sercomRXPad1 ,
118
+ PinMode : PinSERCOMAlt }
117
119
)
118
120
119
121
// I2S pins
Original file line number Diff line number Diff line change @@ -66,11 +66,12 @@ const (
66
66
// SPI on the Trinket M0.
67
67
var (
68
68
SPI0 = SPI {Bus : sam .SERCOM0_SPI ,
69
- SCK : SPI0_SCK_PIN ,
70
- MOSI : SPI0_MOSI_PIN ,
71
- MISO : SPI0_MISO_PIN ,
72
- DOpad : spiTXPad2SCK3 ,
73
- DIpad : sercomRXPad0 }
69
+ SCK : SPI0_SCK_PIN ,
70
+ MOSI : SPI0_MOSI_PIN ,
71
+ MISO : SPI0_MISO_PIN ,
72
+ DOpad : spiTXPad2SCK3 ,
73
+ DIpad : sercomRXPad0 ,
74
+ PinMode : PinSERCOMAlt }
74
75
)
75
76
76
77
// I2C pins
Original file line number Diff line number Diff line change @@ -876,12 +876,13 @@ func waitForSync() {
876
876
877
877
// SPI
878
878
type SPI struct {
879
- Bus * sam.SERCOM_SPI_Type
880
- SCK Pin
881
- MOSI Pin
882
- MISO Pin
883
- DOpad int
884
- DIpad int
879
+ Bus * sam.SERCOM_SPI_Type
880
+ SCK Pin
881
+ MOSI Pin
882
+ MISO Pin
883
+ DOpad int
884
+ DIpad int
885
+ PinMode PinMode
885
886
}
886
887
887
888
// SPIConfig is used to store config info for SPI.
@@ -896,14 +897,15 @@ type SPIConfig struct {
896
897
897
898
// Configure is intended to setup the SPI interface.
898
899
func (spi SPI ) Configure (config SPIConfig ) {
899
-
900
900
config .SCK = spi .SCK
901
901
config .MOSI = spi .MOSI
902
902
config .MISO = spi .MISO
903
903
904
904
doPad := spi .DOpad
905
905
diPad := spi .DIpad
906
906
907
+ pinMode := spi .PinMode
908
+
907
909
// set default frequency
908
910
if config .Frequency == 0 {
909
911
config .Frequency = 4000000
@@ -915,9 +917,9 @@ func (spi SPI) Configure(config SPIConfig) {
915
917
}
916
918
917
919
// enable pins
918
- config .SCK .Configure (PinConfig {Mode : PinSERCOMAlt })
919
- config .MOSI .Configure (PinConfig {Mode : PinSERCOMAlt })
920
- config .MISO .Configure (PinConfig {Mode : PinSERCOMAlt })
920
+ config .SCK .Configure (PinConfig {Mode : pinMode })
921
+ config .MOSI .Configure (PinConfig {Mode : pinMode })
922
+ config .MISO .Configure (PinConfig {Mode : pinMode })
921
923
922
924
// reset SERCOM
923
925
spi .Bus .CTRLA .SetBits (sam .SERCOM_SPI_CTRLA_SWRST )
You can’t perform that action at this time.
0 commit comments