Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 1 addition & 21 deletions src/machine/board_feather-m4.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
// +build sam,atsamd51,feather_m4
// +build feather_m4

package machine

import "device/sam"

// used to reset into bootloader
const RESET_MAGIC_VALUE = 0xf01669ef

Expand Down Expand Up @@ -47,13 +45,11 @@ const (
USBCDC_DP_PIN = PA25
)

// UART1 pins
const (
UART_TX_PIN = D1
UART_RX_PIN = D0
)

// UART2 pins
const (
UART2_TX_PIN = A4
UART2_RX_PIN = A5
Expand All @@ -65,29 +61,13 @@ const (
SCL_PIN = D21 // SCL: SERCOM2/PAD[1]
)

// I2C on the Feather M4.
var (
I2C0 = I2C{
Bus: sam.SERCOM2_I2CM,
SERCOM: 2,
}
)

// SPI pins
const (
SPI0_SCK_PIN = D25 // SCK: SERCOM1/PAD[1]
SPI0_MOSI_PIN = D24 // MOSI: SERCOM1/PAD[3]
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
const (
usb_STRING_PRODUCT = "Adafruit Feather M4"
Expand Down
43 changes: 43 additions & 0 deletions src/machine/board_feather-m4_baremetal.go
Original file line number Diff line number Diff line change
@@ -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,
}
)
25 changes: 1 addition & 24 deletions src/machine/board_itsybitsy-m4.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
// +build sam,atsamd51,itsybitsy_m4
// +build itsybitsy_m4

package machine

import "device/sam"

// used to reset into bootloader
const RESET_MAGIC_VALUE = 0xf01669ef

Expand Down Expand Up @@ -51,45 +49,24 @@ const (
UART_RX_PIN = D0
)

// UART1 var is on SERCOM3, defined in atsamd51.go

// UART2 pins
const (
UART2_TX_PIN = A4
UART2_RX_PIN = D2
)

// UART2 var is on SERCOM0, defined in atsamd51.go

// I2C pins
const (
SDA_PIN = PA12 // SDA: SERCOM2/PAD[0]
SCL_PIN = PA13 // SCL: SERCOM2/PAD[1]
)

// I2C on the ItsyBitsy M4.
var (
I2C0 = I2C{
Bus: sam.SERCOM2_I2CM,
SERCOM: 2,
}
)

// SPI pins
const (
SPI0_SCK_PIN = PA01 // SCK: SERCOM1/PAD[1]
SPI0_MOSI_PIN = PA00 // MOSI: SERCOM1/PAD[0]
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
const (
usb_STRING_PRODUCT = "Adafruit ItsyBitsy M4"
Expand Down
43 changes: 43 additions & 0 deletions src/machine/board_itsybitsy-m4_baremetal.go
Original file line number Diff line number Diff line change
@@ -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,
}
)
37 changes: 5 additions & 32 deletions src/machine/board_metro-m4-airlift.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
// +build sam,atsamd51,metro_m4_airlift
// +build metro_m4_airlift

package machine

import "device/sam"

// used to reset into bootloader
const RESET_MAGIC_VALUE = 0xf01669ef

Expand Down Expand Up @@ -53,7 +51,10 @@ const (
UART_RX_PIN = D0
)

// Note: UART1 is on SERCOM3, defined in machine_atsamd51.go
const (
UART2_TX_PIN = PA04
UART2_RX_PIN = PA07
)

const (
NINA_CS = PA15
Expand All @@ -66,23 +67,12 @@ const (
NINA_RTS = PB23
)

// UART2 is on SERCOM0, defined in machine_atsamd51.go, and connects to the
// onboard ESP32-WROOM chip.

// I2C pins
const (
SDA_PIN = PB02 // SDA: SERCOM5/PAD[0]
SCL_PIN = PB03 // SCL: SERCOM5/PAD[1]
)

// I2C on the Metro M4.
var (
I2C0 = I2C{
Bus: sam.SERCOM5_I2CM,
SERCOM: 5,
}
)

// SPI pins
const (
SPI0_SCK_PIN = PA13 // SCK: SERCOM2/PAD[1]
Expand All @@ -94,29 +84,12 @@ const (
NINA_SCK = SPI0_SCK_PIN
)

// SPI on the Metro M4.
var (
SPI0 = SPI{
Bus: sam.SERCOM2_SPIM,
SERCOM: 2,
}
NINA_SPI = SPI0
)

const (
SPI1_SCK_PIN = D12 // MISO: SERCOM1/PAD[1]
SPI1_MOSI_PIN = D11 // MOSI: SERCOM1/PAD[3]
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
const (
usb_STRING_PRODUCT = "Adafruit Metro M4 Airlift Lite"
Expand Down
52 changes: 52 additions & 0 deletions src/machine/board_metro-m4-airlift_baremetal.go
Original file line number Diff line number Diff line change
@@ -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,
}
)
Loading