stm32wlx: I2C implementation for gnse,lora-e5,nucleo-wl55jc boards
Этот коммит содержится в:
родитель
c35ce761aa
коммит
2b1a72d112
6 изменённых файлов: 88 добавлений и 5 удалений
|
@ -18,6 +18,10 @@ const (
|
||||||
LED = LED_GREEN // Default
|
LED = LED_GREEN // Default
|
||||||
|
|
||||||
BUTTON = PB3
|
BUTTON = PB3
|
||||||
|
BUZZER = PA15
|
||||||
|
VBATT_ADC = PB2
|
||||||
|
SENSOR_EN = PB12
|
||||||
|
FLASH_EN = PC13
|
||||||
|
|
||||||
// SPI0
|
// SPI0
|
||||||
SPI0_NSS_PIN = PA4
|
SPI0_NSS_PIN = PA4
|
||||||
|
@ -32,6 +36,22 @@ const (
|
||||||
// DEFAULT USART
|
// DEFAULT USART
|
||||||
UART_RX_PIN = UART2_RX_PIN
|
UART_RX_PIN = UART2_RX_PIN
|
||||||
UART_TX_PIN = UART2_TX_PIN
|
UART_TX_PIN = UART2_TX_PIN
|
||||||
|
|
||||||
|
// I2C1 pins
|
||||||
|
// I2C1 is connected to Flash, Accelerometer, Env. Sensor, Crypto Element)
|
||||||
|
I2C1_SCL_PIN = PA9
|
||||||
|
I2C1_SDA_PIN = PA10
|
||||||
|
I2C1_ALT_FUNC = 4
|
||||||
|
|
||||||
|
// I2C2 pins
|
||||||
|
// I2C2 is expansion J10 QWIIC Connector
|
||||||
|
I2C2_SCL_PIN = PA12
|
||||||
|
I2C2_SDA_PIN = PA11
|
||||||
|
I2C2_ALT_FUNC = 4
|
||||||
|
|
||||||
|
// I2C0 alias for I2C1
|
||||||
|
I2C0_SDA_PIN = I2C1_SDA_PIN
|
||||||
|
I2C0_SCL_PIN = I2C1_SCL_PIN
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -46,6 +66,17 @@ var (
|
||||||
|
|
||||||
DefaultUART = UART0
|
DefaultUART = UART0
|
||||||
|
|
||||||
|
// I2C Busses
|
||||||
|
I2C1 = &I2C{
|
||||||
|
Bus: stm32.I2C1,
|
||||||
|
AltFuncSelector: I2C1_ALT_FUNC,
|
||||||
|
}
|
||||||
|
I2C2 = &I2C{
|
||||||
|
Bus: stm32.I2C2,
|
||||||
|
AltFuncSelector: I2C2_ALT_FUNC,
|
||||||
|
}
|
||||||
|
I2C0 = I2C1
|
||||||
|
|
||||||
// SPI
|
// SPI
|
||||||
SPI3 = SPI{
|
SPI3 = SPI{
|
||||||
Bus: stm32.SPI3,
|
Bus: stm32.SPI3,
|
||||||
|
|
|
@ -34,6 +34,16 @@ const (
|
||||||
// DEFAULT USART
|
// DEFAULT USART
|
||||||
UART_TX_PIN = UART1_TX_PIN
|
UART_TX_PIN = UART1_TX_PIN
|
||||||
UART_RX_PIN = UART1_RX_PIN
|
UART_RX_PIN = UART1_RX_PIN
|
||||||
|
|
||||||
|
// I2C1 pins
|
||||||
|
// I2C1 is connected to Flash, Accelerometer, Env. Sensor, Crypto Element)
|
||||||
|
I2C1_SCL_PIN = PA9
|
||||||
|
I2C1_SDA_PIN = PA10
|
||||||
|
I2C1_ALT_FUNC = 4
|
||||||
|
|
||||||
|
// I2C0 alias for I2C1
|
||||||
|
I2C0_SDA_PIN = I2C1_SDA_PIN
|
||||||
|
I2C0_SCL_PIN = I2C1_SCL_PIN
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -47,6 +57,13 @@ var (
|
||||||
}
|
}
|
||||||
DefaultUART = UART0
|
DefaultUART = UART0
|
||||||
|
|
||||||
|
// I2C Busses
|
||||||
|
I2C1 = &I2C{
|
||||||
|
Bus: stm32.I2C1,
|
||||||
|
AltFuncSelector: I2C1_ALT_FUNC,
|
||||||
|
}
|
||||||
|
|
||||||
|
I2C0 = I2C1
|
||||||
// SPI
|
// SPI
|
||||||
SPI3 = SPI{
|
SPI3 = SPI{
|
||||||
Bus: stm32.SPI3,
|
Bus: stm32.SPI3,
|
||||||
|
|
|
@ -36,6 +36,20 @@ const (
|
||||||
// DEFAULT USART
|
// DEFAULT USART
|
||||||
UART_RX_PIN = UART2_RX_PIN
|
UART_RX_PIN = UART2_RX_PIN
|
||||||
UART_TX_PIN = UART2_TX_PIN
|
UART_TX_PIN = UART2_TX_PIN
|
||||||
|
|
||||||
|
// I2C1 pins
|
||||||
|
I2C1_SCL_PIN = PA9
|
||||||
|
I2C1_SDA_PIN = PA10
|
||||||
|
I2C1_ALT_FUNC = 4
|
||||||
|
|
||||||
|
// I2C2 pins
|
||||||
|
I2C2_SCL_PIN = PA12
|
||||||
|
I2C2_SDA_PIN = PA11
|
||||||
|
I2C2_ALT_FUNC = 4
|
||||||
|
|
||||||
|
// I2C0 alias for I2C1
|
||||||
|
I2C0_SDA_PIN = I2C1_SDA_PIN
|
||||||
|
I2C0_SCL_PIN = I2C1_SCL_PIN
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -59,6 +73,17 @@ var (
|
||||||
|
|
||||||
DefaultUART = UART0
|
DefaultUART = UART0
|
||||||
|
|
||||||
|
// I2C Busses
|
||||||
|
I2C1 = &I2C{
|
||||||
|
Bus: stm32.I2C1,
|
||||||
|
AltFuncSelector: I2C1_ALT_FUNC,
|
||||||
|
}
|
||||||
|
I2C2 = &I2C{
|
||||||
|
Bus: stm32.I2C2,
|
||||||
|
AltFuncSelector: I2C2_ALT_FUNC,
|
||||||
|
}
|
||||||
|
I2C0 = I2C1
|
||||||
|
|
||||||
// SPI
|
// SPI
|
||||||
SPI3 = SPI{
|
SPI3 = SPI{
|
||||||
Bus: stm32.SPI3,
|
Bus: stm32.SPI3,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build atmega || nrf || sam || (stm32 && !stm32wlx) || fe310 || k210 || rp2040
|
//go:build atmega || nrf || sam || stm32 || fe310 || k210 || rp2040
|
||||||
// +build atmega nrf sam stm32,!stm32wlx fe310 k210 rp2040
|
// +build atmega nrf sam stm32 fe310 k210 rp2040
|
||||||
|
|
||||||
package machine
|
package machine
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build stm32l5 || stm32f7 || stm32l4 || stm32l0
|
//go:build stm32l5 || stm32f7 || stm32l4 || stm32l0 || stm32wlx
|
||||||
// +build stm32l5 stm32f7 stm32l4 stm32l0
|
// +build stm32l5 stm32f7 stm32l4 stm32l0 stm32wlx
|
||||||
|
|
||||||
package machine
|
package machine
|
||||||
|
|
||||||
|
|
|
@ -283,6 +283,16 @@ func (spi SPI) getBaudRate(config SPIConfig) uint32 {
|
||||||
return uint32(div) << stm32.SPI_CR1_BR_Pos
|
return uint32(div) << stm32.SPI_CR1_BR_Pos
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------- I2C related code
|
||||||
|
|
||||||
|
// Gets the value for TIMINGR register
|
||||||
|
func (i2c *I2C) getFreqRange() uint32 {
|
||||||
|
// This is a 'magic' value calculated by STM32CubeMX
|
||||||
|
// for 48Mhz PCLK1.
|
||||||
|
// TODO: Do calculations based on PCLK1
|
||||||
|
return 0x20303E5D
|
||||||
|
}
|
||||||
|
|
||||||
//---------- UART related code
|
//---------- UART related code
|
||||||
|
|
||||||
// Configure the UART.
|
// Configure the UART.
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче