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.
|
||||
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
|
||||
|
|
|
@ -111,7 +111,12 @@ const (
|
|||
|
||||
// SPI on the Circuit Playground Express.
|
||||
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
|
||||
|
|
|
@ -85,7 +85,12 @@ const (
|
|||
|
||||
// SPI on the Feather M0.
|
||||
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
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
package machine
|
||||
|
||||
import "device/sam"
|
||||
import (
|
||||
"device/sam"
|
||||
)
|
||||
|
||||
// GPIO Pins
|
||||
const (
|
||||
|
@ -85,7 +87,30 @@ const (
|
|||
|
||||
// SPI on the ItsyBitsy M0.
|
||||
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
|
||||
|
|
|
@ -62,7 +62,12 @@ const (
|
|||
|
||||
// SPI on the Trinket M0.
|
||||
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
|
||||
|
|
|
@ -871,7 +871,12 @@ func waitForSync() {
|
|||
|
||||
// SPI
|
||||
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.
|
||||
|
@ -886,12 +891,13 @@ type SPIConfig struct {
|
|||
|
||||
// Configure is intended to setup the SPI interface.
|
||||
func (spi SPI) Configure(config SPIConfig) {
|
||||
config.SCK = SPI0_SCK_PIN
|
||||
config.MOSI = SPI0_MOSI_PIN
|
||||
config.MISO = SPI0_MISO_PIN
|
||||
|
||||
doPad := spiTXPad2SCK3
|
||||
diPad := sercomRXPad0
|
||||
config.SCK = spi.SCK
|
||||
config.MOSI = spi.MOSI
|
||||
config.MISO = spi.MISO
|
||||
|
||||
doPad := spi.DOpad
|
||||
diPad := spi.DIpad
|
||||
|
||||
// set default frequency
|
||||
if config.Frequency == 0 {
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче