Standardize SAMD51 UART settings (#1155)
* machine/samd51: standardize samd51 uart settings
Этот коммит содержится в:
родитель
64d51b215f
коммит
0c880ec44c
11 изменённых файлов: 238 добавлений и 154 удалений
|
@ -1,9 +1,7 @@
|
||||||
// +build sam,atsamd51,feather_m4
|
// +build feather_m4
|
||||||
|
|
||||||
package machine
|
package machine
|
||||||
|
|
||||||
import "device/sam"
|
|
||||||
|
|
||||||
// used to reset into bootloader
|
// used to reset into bootloader
|
||||||
const RESET_MAGIC_VALUE = 0xf01669ef
|
const RESET_MAGIC_VALUE = 0xf01669ef
|
||||||
|
|
||||||
|
@ -47,13 +45,11 @@ const (
|
||||||
USBCDC_DP_PIN = PA25
|
USBCDC_DP_PIN = PA25
|
||||||
)
|
)
|
||||||
|
|
||||||
// UART1 pins
|
|
||||||
const (
|
const (
|
||||||
UART_TX_PIN = D1
|
UART_TX_PIN = D1
|
||||||
UART_RX_PIN = D0
|
UART_RX_PIN = D0
|
||||||
)
|
)
|
||||||
|
|
||||||
// UART2 pins
|
|
||||||
const (
|
const (
|
||||||
UART2_TX_PIN = A4
|
UART2_TX_PIN = A4
|
||||||
UART2_RX_PIN = A5
|
UART2_RX_PIN = A5
|
||||||
|
@ -65,14 +61,6 @@ const (
|
||||||
SCL_PIN = D21 // SCL: SERCOM2/PAD[1]
|
SCL_PIN = D21 // SCL: SERCOM2/PAD[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2C on the Feather M4.
|
|
||||||
var (
|
|
||||||
I2C0 = I2C{
|
|
||||||
Bus: sam.SERCOM2_I2CM,
|
|
||||||
SERCOM: 2,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// SPI pins
|
// SPI pins
|
||||||
const (
|
const (
|
||||||
SPI0_SCK_PIN = D25 // SCK: SERCOM1/PAD[1]
|
SPI0_SCK_PIN = D25 // SCK: SERCOM1/PAD[1]
|
||||||
|
@ -80,14 +68,6 @@ const (
|
||||||
SPI0_MISO_PIN = D23 // MISO: SERCOM1/PAD[2]
|
SPI0_MISO_PIN = D23 // MISO: SERCOM1/PAD[2]
|
||||||
)
|
)
|
||||||
|
|
||||||
// SPI on the Feather M4.
|
|
||||||
var (
|
|
||||||
SPI0 = SPI{
|
|
||||||
Bus: sam.SERCOM1_SPIM,
|
|
||||||
SERCOM: 1,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// USB CDC identifiers
|
// USB CDC identifiers
|
||||||
const (
|
const (
|
||||||
usb_STRING_PRODUCT = "Adafruit Feather M4"
|
usb_STRING_PRODUCT = "Adafruit Feather M4"
|
||||||
|
|
43
src/machine/board_feather-m4_baremetal.go
Обычный файл
43
src/machine/board_feather-m4_baremetal.go
Обычный файл
|
@ -0,0 +1,43 @@
|
||||||
|
// +build sam,atsamd51,feather_m4
|
||||||
|
|
||||||
|
package machine
|
||||||
|
|
||||||
|
import (
|
||||||
|
"device/sam"
|
||||||
|
"runtime/interrupt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
UART1 = UART{
|
||||||
|
Buffer: NewRingBuffer(),
|
||||||
|
Bus: sam.SERCOM5_USART_INT,
|
||||||
|
SERCOM: 5,
|
||||||
|
}
|
||||||
|
|
||||||
|
UART2 = UART{
|
||||||
|
Buffer: NewRingBuffer(),
|
||||||
|
Bus: sam.SERCOM0_USART_INT,
|
||||||
|
SERCOM: 0,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
UART1.Interrupt = interrupt.New(sam.IRQ_SERCOM5_2, UART1.handleInterrupt)
|
||||||
|
UART2.Interrupt = interrupt.New(sam.IRQ_SERCOM0_2, UART2.handleInterrupt)
|
||||||
|
}
|
||||||
|
|
||||||
|
// I2C on the Feather M4.
|
||||||
|
var (
|
||||||
|
I2C0 = I2C{
|
||||||
|
Bus: sam.SERCOM2_I2CM,
|
||||||
|
SERCOM: 2,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// SPI on the Feather M4.
|
||||||
|
var (
|
||||||
|
SPI0 = SPI{
|
||||||
|
Bus: sam.SERCOM1_SPIM,
|
||||||
|
SERCOM: 1,
|
||||||
|
}
|
||||||
|
)
|
|
@ -1,9 +1,7 @@
|
||||||
// +build sam,atsamd51,itsybitsy_m4
|
// +build itsybitsy_m4
|
||||||
|
|
||||||
package machine
|
package machine
|
||||||
|
|
||||||
import "device/sam"
|
|
||||||
|
|
||||||
// used to reset into bootloader
|
// used to reset into bootloader
|
||||||
const RESET_MAGIC_VALUE = 0xf01669ef
|
const RESET_MAGIC_VALUE = 0xf01669ef
|
||||||
|
|
||||||
|
@ -51,30 +49,17 @@ const (
|
||||||
UART_RX_PIN = D0
|
UART_RX_PIN = D0
|
||||||
)
|
)
|
||||||
|
|
||||||
// UART1 var is on SERCOM3, defined in atsamd51.go
|
|
||||||
|
|
||||||
// UART2 pins
|
|
||||||
const (
|
const (
|
||||||
UART2_TX_PIN = A4
|
UART2_TX_PIN = A4
|
||||||
UART2_RX_PIN = D2
|
UART2_RX_PIN = D2
|
||||||
)
|
)
|
||||||
|
|
||||||
// UART2 var is on SERCOM0, defined in atsamd51.go
|
|
||||||
|
|
||||||
// I2C pins
|
// I2C pins
|
||||||
const (
|
const (
|
||||||
SDA_PIN = PA12 // SDA: SERCOM2/PAD[0]
|
SDA_PIN = PA12 // SDA: SERCOM2/PAD[0]
|
||||||
SCL_PIN = PA13 // SCL: SERCOM2/PAD[1]
|
SCL_PIN = PA13 // SCL: SERCOM2/PAD[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2C on the ItsyBitsy M4.
|
|
||||||
var (
|
|
||||||
I2C0 = I2C{
|
|
||||||
Bus: sam.SERCOM2_I2CM,
|
|
||||||
SERCOM: 2,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// SPI pins
|
// SPI pins
|
||||||
const (
|
const (
|
||||||
SPI0_SCK_PIN = PA01 // SCK: SERCOM1/PAD[1]
|
SPI0_SCK_PIN = PA01 // SCK: SERCOM1/PAD[1]
|
||||||
|
@ -82,14 +67,6 @@ const (
|
||||||
SPI0_MISO_PIN = PB23 // MISO: SERCOM1/PAD[3]
|
SPI0_MISO_PIN = PB23 // MISO: SERCOM1/PAD[3]
|
||||||
)
|
)
|
||||||
|
|
||||||
// SPI on the ItsyBitsy M4.
|
|
||||||
var (
|
|
||||||
SPI0 = SPI{
|
|
||||||
Bus: sam.SERCOM1_SPIM,
|
|
||||||
SERCOM: 1,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// USB CDC identifiers
|
// USB CDC identifiers
|
||||||
const (
|
const (
|
||||||
usb_STRING_PRODUCT = "Adafruit ItsyBitsy M4"
|
usb_STRING_PRODUCT = "Adafruit ItsyBitsy M4"
|
||||||
|
|
43
src/machine/board_itsybitsy-m4_baremetal.go
Обычный файл
43
src/machine/board_itsybitsy-m4_baremetal.go
Обычный файл
|
@ -0,0 +1,43 @@
|
||||||
|
// +build sam,atsamd51,itsybitsy_m4
|
||||||
|
|
||||||
|
package machine
|
||||||
|
|
||||||
|
import (
|
||||||
|
"device/sam"
|
||||||
|
"runtime/interrupt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
UART1 = UART{
|
||||||
|
Buffer: NewRingBuffer(),
|
||||||
|
Bus: sam.SERCOM3_USART_INT,
|
||||||
|
SERCOM: 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
UART2 = UART{
|
||||||
|
Buffer: NewRingBuffer(),
|
||||||
|
Bus: sam.SERCOM0_USART_INT,
|
||||||
|
SERCOM: 0,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
UART1.Interrupt = interrupt.New(sam.IRQ_SERCOM3_2, UART1.handleInterrupt)
|
||||||
|
UART2.Interrupt = interrupt.New(sam.IRQ_SERCOM0_2, UART2.handleInterrupt)
|
||||||
|
}
|
||||||
|
|
||||||
|
// I2C on the ItsyBitsy M4.
|
||||||
|
var (
|
||||||
|
I2C0 = I2C{
|
||||||
|
Bus: sam.SERCOM2_I2CM,
|
||||||
|
SERCOM: 2,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// SPI on the ItsyBitsy M4.
|
||||||
|
var (
|
||||||
|
SPI0 = SPI{
|
||||||
|
Bus: sam.SERCOM1_SPIM,
|
||||||
|
SERCOM: 1,
|
||||||
|
}
|
||||||
|
)
|
|
@ -1,9 +1,7 @@
|
||||||
// +build sam,atsamd51,metro_m4_airlift
|
// +build metro_m4_airlift
|
||||||
|
|
||||||
package machine
|
package machine
|
||||||
|
|
||||||
import "device/sam"
|
|
||||||
|
|
||||||
// used to reset into bootloader
|
// used to reset into bootloader
|
||||||
const RESET_MAGIC_VALUE = 0xf01669ef
|
const RESET_MAGIC_VALUE = 0xf01669ef
|
||||||
|
|
||||||
|
@ -53,7 +51,10 @@ const (
|
||||||
UART_RX_PIN = D0
|
UART_RX_PIN = D0
|
||||||
)
|
)
|
||||||
|
|
||||||
// Note: UART1 is on SERCOM3, defined in machine_atsamd51.go
|
const (
|
||||||
|
UART2_TX_PIN = PA04
|
||||||
|
UART2_RX_PIN = PA07
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
NINA_CS = PA15
|
NINA_CS = PA15
|
||||||
|
@ -66,23 +67,12 @@ const (
|
||||||
NINA_RTS = PB23
|
NINA_RTS = PB23
|
||||||
)
|
)
|
||||||
|
|
||||||
// UART2 is on SERCOM0, defined in machine_atsamd51.go, and connects to the
|
|
||||||
// onboard ESP32-WROOM chip.
|
|
||||||
|
|
||||||
// I2C pins
|
// I2C pins
|
||||||
const (
|
const (
|
||||||
SDA_PIN = PB02 // SDA: SERCOM5/PAD[0]
|
SDA_PIN = PB02 // SDA: SERCOM5/PAD[0]
|
||||||
SCL_PIN = PB03 // SCL: SERCOM5/PAD[1]
|
SCL_PIN = PB03 // SCL: SERCOM5/PAD[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2C on the Metro M4.
|
|
||||||
var (
|
|
||||||
I2C0 = I2C{
|
|
||||||
Bus: sam.SERCOM5_I2CM,
|
|
||||||
SERCOM: 5,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// SPI pins
|
// SPI pins
|
||||||
const (
|
const (
|
||||||
SPI0_SCK_PIN = PA13 // SCK: SERCOM2/PAD[1]
|
SPI0_SCK_PIN = PA13 // SCK: SERCOM2/PAD[1]
|
||||||
|
@ -94,29 +84,12 @@ const (
|
||||||
NINA_SCK = SPI0_SCK_PIN
|
NINA_SCK = SPI0_SCK_PIN
|
||||||
)
|
)
|
||||||
|
|
||||||
// SPI on the Metro M4.
|
|
||||||
var (
|
|
||||||
SPI0 = SPI{
|
|
||||||
Bus: sam.SERCOM2_SPIM,
|
|
||||||
SERCOM: 2,
|
|
||||||
}
|
|
||||||
NINA_SPI = SPI0
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SPI1_SCK_PIN = D12 // MISO: SERCOM1/PAD[1]
|
SPI1_SCK_PIN = D12 // MISO: SERCOM1/PAD[1]
|
||||||
SPI1_MOSI_PIN = D11 // MOSI: SERCOM1/PAD[3]
|
SPI1_MOSI_PIN = D11 // MOSI: SERCOM1/PAD[3]
|
||||||
SPI1_MISO_PIN = D13 // SCK: SERCOM1/PAD[0]
|
SPI1_MISO_PIN = D13 // SCK: SERCOM1/PAD[0]
|
||||||
)
|
)
|
||||||
|
|
||||||
// SPI1 on the Metro M4 on pins 11,12,13
|
|
||||||
var (
|
|
||||||
SPI1 = SPI{
|
|
||||||
Bus: sam.SERCOM1_SPIM,
|
|
||||||
SERCOM: 1,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// USB CDC identifiers
|
// USB CDC identifiers
|
||||||
const (
|
const (
|
||||||
usb_STRING_PRODUCT = "Adafruit Metro M4 Airlift Lite"
|
usb_STRING_PRODUCT = "Adafruit Metro M4 Airlift Lite"
|
||||||
|
|
52
src/machine/board_metro-m4-airlift_baremetal.go
Обычный файл
52
src/machine/board_metro-m4-airlift_baremetal.go
Обычный файл
|
@ -0,0 +1,52 @@
|
||||||
|
// +build sam,atsamd51,metro_m4_airlift
|
||||||
|
|
||||||
|
package machine
|
||||||
|
|
||||||
|
import (
|
||||||
|
"device/sam"
|
||||||
|
"runtime/interrupt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
UART1 = UART{
|
||||||
|
Buffer: NewRingBuffer(),
|
||||||
|
Bus: sam.SERCOM3_USART_INT,
|
||||||
|
SERCOM: 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
UART2 = UART{
|
||||||
|
Buffer: NewRingBuffer(),
|
||||||
|
Bus: sam.SERCOM0_USART_INT,
|
||||||
|
SERCOM: 0,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
UART1.Interrupt = interrupt.New(sam.IRQ_SERCOM3_2, UART1.handleInterrupt)
|
||||||
|
UART2.Interrupt = interrupt.New(sam.IRQ_SERCOM0_2, UART2.handleInterrupt)
|
||||||
|
}
|
||||||
|
|
||||||
|
// I2C on the Metro M4.
|
||||||
|
var (
|
||||||
|
I2C0 = I2C{
|
||||||
|
Bus: sam.SERCOM5_I2CM,
|
||||||
|
SERCOM: 5,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// SPI on the Metro M4.
|
||||||
|
var (
|
||||||
|
SPI0 = SPI{
|
||||||
|
Bus: sam.SERCOM2_SPIM,
|
||||||
|
SERCOM: 2,
|
||||||
|
}
|
||||||
|
NINA_SPI = SPI0
|
||||||
|
)
|
||||||
|
|
||||||
|
// SPI1 on the Metro M4 on pins 11,12,13
|
||||||
|
var (
|
||||||
|
SPI1 = SPI{
|
||||||
|
Bus: sam.SERCOM1_SPIM,
|
||||||
|
SERCOM: 1,
|
||||||
|
}
|
||||||
|
)
|
|
@ -1,9 +1,7 @@
|
||||||
// +build sam,atsamd51,pybadge
|
// +build pybadge
|
||||||
|
|
||||||
package machine
|
package machine
|
||||||
|
|
||||||
import "device/sam"
|
|
||||||
|
|
||||||
// used to reset into bootloader
|
// used to reset into bootloader
|
||||||
const RESET_MAGIC_VALUE = 0xf01669ef
|
const RESET_MAGIC_VALUE = 0xf01669ef
|
||||||
|
|
||||||
|
@ -80,30 +78,17 @@ const (
|
||||||
UART_RX_PIN = D0
|
UART_RX_PIN = D0
|
||||||
)
|
)
|
||||||
|
|
||||||
// UART1 var is on SERCOM3, defined in atsamd51.go
|
|
||||||
|
|
||||||
// UART2 pins
|
|
||||||
const (
|
const (
|
||||||
UART2_TX_PIN = A4
|
UART2_TX_PIN = A4
|
||||||
UART2_RX_PIN = A5
|
UART2_RX_PIN = A5
|
||||||
)
|
)
|
||||||
|
|
||||||
// UART2 var is on SERCOM0, defined in atsamd51.go
|
|
||||||
|
|
||||||
// I2C pins
|
// I2C pins
|
||||||
const (
|
const (
|
||||||
SDA_PIN = PA12 // SDA: SERCOM2/PAD[0]
|
SDA_PIN = PA12 // SDA: SERCOM2/PAD[0]
|
||||||
SCL_PIN = PA13 // SCL: SERCOM2/PAD[1]
|
SCL_PIN = PA13 // SCL: SERCOM2/PAD[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2C on the ItsyBitsy M4.
|
|
||||||
var (
|
|
||||||
I2C0 = I2C{
|
|
||||||
Bus: sam.SERCOM2_I2CM,
|
|
||||||
SERCOM: 2,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// SPI pins
|
// SPI pins
|
||||||
const (
|
const (
|
||||||
SPI0_SCK_PIN = PA17 // SCK: SERCOM1/PAD[1]
|
SPI0_SCK_PIN = PA17 // SCK: SERCOM1/PAD[1]
|
||||||
|
@ -111,14 +96,6 @@ const (
|
||||||
SPI0_MISO_PIN = PB22 // MISO: SERCOM1/PAD[2]
|
SPI0_MISO_PIN = PB22 // MISO: SERCOM1/PAD[2]
|
||||||
)
|
)
|
||||||
|
|
||||||
// SPI on the PyBadge.
|
|
||||||
var (
|
|
||||||
SPI0 = SPI{
|
|
||||||
Bus: sam.SERCOM1_SPIM,
|
|
||||||
SERCOM: 1,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// TFT SPI pins
|
// TFT SPI pins
|
||||||
const (
|
const (
|
||||||
SPI1_SCK_PIN = PB13 // SCK: SERCOM4/PAD[1]
|
SPI1_SCK_PIN = PB13 // SCK: SERCOM4/PAD[1]
|
||||||
|
@ -126,14 +103,6 @@ const (
|
||||||
SPI1_MISO_PIN = NoPin
|
SPI1_MISO_PIN = NoPin
|
||||||
)
|
)
|
||||||
|
|
||||||
// TFT SPI on the PyBadge.
|
|
||||||
var (
|
|
||||||
SPI1 = SPI{
|
|
||||||
Bus: sam.SERCOM4_SPIM,
|
|
||||||
SERCOM: 4,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// USB CDC identifiers
|
// USB CDC identifiers
|
||||||
const (
|
const (
|
||||||
usb_STRING_PRODUCT = "Adafruit pyBadge M4"
|
usb_STRING_PRODUCT = "Adafruit pyBadge M4"
|
||||||
|
|
51
src/machine/board_pybadge_baremetal.go
Обычный файл
51
src/machine/board_pybadge_baremetal.go
Обычный файл
|
@ -0,0 +1,51 @@
|
||||||
|
// +build sam,atsamd51,pybadge
|
||||||
|
|
||||||
|
package machine
|
||||||
|
|
||||||
|
import (
|
||||||
|
"device/sam"
|
||||||
|
"runtime/interrupt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
UART1 = UART{
|
||||||
|
Buffer: NewRingBuffer(),
|
||||||
|
Bus: sam.SERCOM5_USART_INT,
|
||||||
|
SERCOM: 5,
|
||||||
|
}
|
||||||
|
|
||||||
|
UART2 = UART{
|
||||||
|
Buffer: NewRingBuffer(),
|
||||||
|
Bus: sam.SERCOM0_USART_INT,
|
||||||
|
SERCOM: 0,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
UART1.Interrupt = interrupt.New(sam.IRQ_SERCOM5_2, UART1.handleInterrupt)
|
||||||
|
UART2.Interrupt = interrupt.New(sam.IRQ_SERCOM0_2, UART2.handleInterrupt)
|
||||||
|
}
|
||||||
|
|
||||||
|
// I2C on the ItsyBitsy M4.
|
||||||
|
var (
|
||||||
|
I2C0 = I2C{
|
||||||
|
Bus: sam.SERCOM2_I2CM,
|
||||||
|
SERCOM: 2,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// SPI on the PyBadge.
|
||||||
|
var (
|
||||||
|
SPI0 = SPI{
|
||||||
|
Bus: sam.SERCOM1_SPIM,
|
||||||
|
SERCOM: 1,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// TFT SPI on the PyBadge.
|
||||||
|
var (
|
||||||
|
SPI1 = SPI{
|
||||||
|
Bus: sam.SERCOM4_SPIM,
|
||||||
|
SERCOM: 4,
|
||||||
|
}
|
||||||
|
)
|
|
@ -1,11 +1,7 @@
|
||||||
// +build sam,atsamd51,pyportal
|
// +build pyportal
|
||||||
|
|
||||||
package machine
|
package machine
|
||||||
|
|
||||||
import (
|
|
||||||
"device/sam"
|
|
||||||
)
|
|
||||||
|
|
||||||
// used to reset into bootloader
|
// used to reset into bootloader
|
||||||
const RESET_MAGIC_VALUE = 0xf01669ef
|
const RESET_MAGIC_VALUE = 0xf01669ef
|
||||||
|
|
||||||
|
@ -104,10 +100,10 @@ const (
|
||||||
USBCDC_DP_PIN = PA25
|
USBCDC_DP_PIN = PA25
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO: add configuration for UART on SERCOM4 that is connected to TX/RX of ESP32
|
// UART1 aka NINA_TX/NINA_RX
|
||||||
const (
|
const (
|
||||||
UART_TX_PIN = NoPin
|
UART_TX_PIN = D1
|
||||||
UART_RX_PIN = NoPin
|
UART_RX_PIN = D0
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2C pins
|
// I2C pins
|
||||||
|
@ -116,14 +112,6 @@ const (
|
||||||
SCL_PIN = PB03 // SCL: SERCOM2/PAD[1]
|
SCL_PIN = PB03 // SCL: SERCOM2/PAD[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
// I2C on the PyPortal.
|
|
||||||
var (
|
|
||||||
I2C0 = I2C{
|
|
||||||
Bus: sam.SERCOM5_I2CM,
|
|
||||||
SERCOM: 5,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// SPI pins
|
// SPI pins
|
||||||
const (
|
const (
|
||||||
SPI0_SCK_PIN = PA13 // SCK: SERCOM1/PAD[1]
|
SPI0_SCK_PIN = PA13 // SCK: SERCOM1/PAD[1]
|
||||||
|
@ -135,15 +123,6 @@ const (
|
||||||
NINA_SCK = SPI0_SCK_PIN
|
NINA_SCK = SPI0_SCK_PIN
|
||||||
)
|
)
|
||||||
|
|
||||||
// SPI on the PyPortal.
|
|
||||||
var (
|
|
||||||
SPI0 = SPI{
|
|
||||||
Bus: sam.SERCOM2_SPIM,
|
|
||||||
SERCOM: 2,
|
|
||||||
}
|
|
||||||
NINA_SPI = SPI0
|
|
||||||
)
|
|
||||||
|
|
||||||
// USB CDC identifiers
|
// USB CDC identifiers
|
||||||
const (
|
const (
|
||||||
usb_STRING_PRODUCT = "Adafruit PyPortal M4"
|
usb_STRING_PRODUCT = "Adafruit PyPortal M4"
|
||||||
|
|
37
src/machine/board_pyportal_baremetal.go
Обычный файл
37
src/machine/board_pyportal_baremetal.go
Обычный файл
|
@ -0,0 +1,37 @@
|
||||||
|
// +build sam,atsamd51,pyportal
|
||||||
|
|
||||||
|
package machine
|
||||||
|
|
||||||
|
import (
|
||||||
|
"device/sam"
|
||||||
|
"runtime/interrupt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
UART1 = UART{
|
||||||
|
Buffer: NewRingBuffer(),
|
||||||
|
Bus: sam.SERCOM4_USART_INT,
|
||||||
|
SERCOM: 4,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
UART1.Interrupt = interrupt.New(sam.IRQ_SERCOM4_2, UART1.handleInterrupt)
|
||||||
|
}
|
||||||
|
|
||||||
|
// I2C on the PyPortal.
|
||||||
|
var (
|
||||||
|
I2C0 = I2C{
|
||||||
|
Bus: sam.SERCOM5_I2CM,
|
||||||
|
SERCOM: 5,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// SPI on the PyPortal.
|
||||||
|
var (
|
||||||
|
SPI0 = SPI{
|
||||||
|
Bus: sam.SERCOM2_SPIM,
|
||||||
|
SERCOM: 2,
|
||||||
|
}
|
||||||
|
NINA_SPI = SPI0
|
||||||
|
)
|
|
@ -903,28 +903,8 @@ type UART struct {
|
||||||
var (
|
var (
|
||||||
// UART0 is actually a USB CDC interface.
|
// UART0 is actually a USB CDC interface.
|
||||||
UART0 = USBCDC{Buffer: NewRingBuffer()}
|
UART0 = USBCDC{Buffer: NewRingBuffer()}
|
||||||
|
|
||||||
// The first hardware serial port on the SAMD51. Uses the SERCOM3 interface.
|
|
||||||
UART1 = UART{
|
|
||||||
Buffer: NewRingBuffer(),
|
|
||||||
Bus: sam.SERCOM3_USART_INT,
|
|
||||||
SERCOM: 3,
|
|
||||||
}
|
|
||||||
|
|
||||||
// The second hardware serial port on the SAMD51. Uses the SERCOM0 interface.
|
|
||||||
UART2 = UART{
|
|
||||||
Buffer: NewRingBuffer(),
|
|
||||||
Bus: sam.SERCOM0_USART_INT,
|
|
||||||
SERCOM: 0,
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
|
||||||
// Register RXC interrupts.
|
|
||||||
UART1.Interrupt = interrupt.New(sam.IRQ_SERCOM3_2, UART1.handleInterrupt)
|
|
||||||
UART2.Interrupt = interrupt.New(sam.IRQ_SERCOM0_2, UART2.handleInterrupt)
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
sampleRate16X = 16
|
sampleRate16X = 16
|
||||||
lsbFirst = 1
|
lsbFirst = 1
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче