Updated SPI pins so that they are configurable, enabling multiple SPI sercoms for ATSAMD21
Этот коммит содержится в:
родитель
7c5f943564
коммит
8a5fa51f60
6 изменённых файлов: 63 добавлений и 12 удалений
|
@ -122,7 +122,12 @@ const (
|
||||||
|
|
||||||
// SPI on the Arduino Nano 33.
|
// SPI on the Arduino Nano 33.
|
||||||
var (
|
var (
|
||||||
SPI0 = SPI{Bus: sam.SERCOM1_SPI}
|
SPI0 = SPI{Bus: sam.SERCOM1_SPI,
|
||||||
|
SCK: SPI0_SCK_PIN,
|
||||||
|
MOSI: SPI0_MOSI_PIN,
|
||||||
|
MISO: SPI0_MISO_PIN,
|
||||||
|
DOpad: spiTXPad2SCK3,
|
||||||
|
DIpad: sercomRXPad0}
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2S pins
|
// I2S pins
|
||||||
|
|
|
@ -111,7 +111,12 @@ const (
|
||||||
|
|
||||||
// SPI on the Circuit Playground Express.
|
// SPI on the Circuit Playground Express.
|
||||||
var (
|
var (
|
||||||
SPI0 = SPI{Bus: sam.SERCOM3_SPI}
|
SPI0 = SPI{Bus: sam.SERCOM3_SPI,
|
||||||
|
SCK: SPI0_SCK_PIN,
|
||||||
|
MOSI: SPI0_MOSI_PIN,
|
||||||
|
MISO: SPI0_MISO_PIN,
|
||||||
|
DOpad: spiTXPad2SCK3,
|
||||||
|
DIpad: sercomRXPad0}
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2S pins
|
// I2S pins
|
||||||
|
|
|
@ -85,7 +85,12 @@ const (
|
||||||
|
|
||||||
// SPI on the Feather M0.
|
// SPI on the Feather M0.
|
||||||
var (
|
var (
|
||||||
SPI0 = SPI{Bus: sam.SERCOM4_SPI}
|
SPI0 = SPI{Bus: sam.SERCOM4_SPI,
|
||||||
|
SCK: SPI0_SCK_PIN,
|
||||||
|
MOSI: SPI0_MOSI_PIN,
|
||||||
|
MISO: SPI0_MISO_PIN,
|
||||||
|
DOpad: spiTXPad2SCK3,
|
||||||
|
DIpad: sercomRXPad0}
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2S pins
|
// I2S pins
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
package machine
|
package machine
|
||||||
|
|
||||||
import "device/sam"
|
import (
|
||||||
|
"device/sam"
|
||||||
|
)
|
||||||
|
|
||||||
// GPIO Pins
|
// GPIO Pins
|
||||||
const (
|
const (
|
||||||
|
@ -85,7 +87,30 @@ const (
|
||||||
|
|
||||||
// SPI on the ItsyBitsy M0.
|
// SPI on the ItsyBitsy M0.
|
||||||
var (
|
var (
|
||||||
SPI0 = SPI{Bus: sam.SERCOM4_SPI}
|
SPI0 = SPI{Bus: sam.SERCOM4_SPI,
|
||||||
|
SCK: SPI0_SCK_PIN,
|
||||||
|
MOSI: SPI0_MOSI_PIN,
|
||||||
|
MISO: SPI0_MISO_PIN,
|
||||||
|
DOpad: spiTXPad2SCK3,
|
||||||
|
DIpad: sercomRXPad0}
|
||||||
|
)
|
||||||
|
|
||||||
|
// "Internal" SPI pins; SPI flash is attached to these on ItsyBitsy M0
|
||||||
|
const (
|
||||||
|
SPI1_CS_PIN = PA27
|
||||||
|
SPI1_SCK_PIN = PB23
|
||||||
|
SPI1_MOSI_PIN = PB22
|
||||||
|
SPI1_MISO_PIN = PB03
|
||||||
|
)
|
||||||
|
|
||||||
|
// "Internal" SPI on Sercom 5
|
||||||
|
var (
|
||||||
|
SPI1 = SPI{Bus: sam.SERCOM5_SPI,
|
||||||
|
SCK: SPI1_SCK_PIN,
|
||||||
|
MOSI: SPI1_MOSI_PIN,
|
||||||
|
MISO: SPI1_MISO_PIN,
|
||||||
|
DOpad: spiTXPad2SCK3,
|
||||||
|
DIpad: sercomRXPad1}
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2S pins
|
// I2S pins
|
||||||
|
|
|
@ -62,7 +62,12 @@ const (
|
||||||
|
|
||||||
// SPI on the Trinket M0.
|
// SPI on the Trinket M0.
|
||||||
var (
|
var (
|
||||||
SPI0 = SPI{Bus: sam.SERCOM0_SPI}
|
SPI0 = SPI{Bus: sam.SERCOM0_SPI,
|
||||||
|
SCK: SPI0_SCK_PIN,
|
||||||
|
MOSI: SPI0_MOSI_PIN,
|
||||||
|
MISO: SPI0_MISO_PIN,
|
||||||
|
DOpad: spiTXPad2SCK3,
|
||||||
|
DIpad: sercomRXPad0}
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2C pins
|
// I2C pins
|
||||||
|
|
|
@ -872,6 +872,11 @@ func waitForSync() {
|
||||||
// SPI
|
// SPI
|
||||||
type SPI struct {
|
type SPI struct {
|
||||||
Bus *sam.SERCOM_SPI_Type
|
Bus *sam.SERCOM_SPI_Type
|
||||||
|
SCK Pin
|
||||||
|
MOSI Pin
|
||||||
|
MISO Pin
|
||||||
|
DOpad int
|
||||||
|
DIpad int
|
||||||
}
|
}
|
||||||
|
|
||||||
// SPIConfig is used to store config info for SPI.
|
// SPIConfig is used to store config info for SPI.
|
||||||
|
@ -886,12 +891,13 @@ type SPIConfig struct {
|
||||||
|
|
||||||
// Configure is intended to setup the SPI interface.
|
// Configure is intended to setup the SPI interface.
|
||||||
func (spi SPI) Configure(config SPIConfig) {
|
func (spi SPI) Configure(config SPIConfig) {
|
||||||
config.SCK = SPI0_SCK_PIN
|
|
||||||
config.MOSI = SPI0_MOSI_PIN
|
|
||||||
config.MISO = SPI0_MISO_PIN
|
|
||||||
|
|
||||||
doPad := spiTXPad2SCK3
|
config.SCK = spi.SCK
|
||||||
diPad := sercomRXPad0
|
config.MOSI = spi.MOSI
|
||||||
|
config.MISO = spi.MISO
|
||||||
|
|
||||||
|
doPad := spi.DOpad
|
||||||
|
diPad := spi.DIpad
|
||||||
|
|
||||||
// set default frequency
|
// set default frequency
|
||||||
if config.Frequency == 0 {
|
if config.Frequency == 0 {
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче