stm32wlx: I2C implementation for gnse,lora-e5,nucleo-wl55jc boards

This commit is contained in:
Olivier Fauchon
2021-12-22 01:32:47 +01:00
committed by Ron Evans
parent c35ce761aa
commit 2b1a72d112
6 changed files with 88 additions and 5 deletions
+32 -1
View File
@@ -17,7 +17,11 @@ const (
LED3 = LED_BLUE // Blue
LED = LED_GREEN // Default
BUTTON = PB3
BUTTON = PB3
BUZZER = PA15
VBATT_ADC = PB2
SENSOR_EN = PB12
FLASH_EN = PC13
// SPI0
SPI0_NSS_PIN = PA4
@@ -32,6 +36,22 @@ const (
// DEFAULT USART
UART_RX_PIN = UART2_RX_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 (
@@ -46,6 +66,17 @@ var (
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
SPI3 = SPI{
Bus: stm32.SPI3,
+17
View File
@@ -34,6 +34,16 @@ const (
// DEFAULT USART
UART_TX_PIN = UART1_TX_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 (
@@ -47,6 +57,13 @@ var (
}
DefaultUART = UART0
// I2C Busses
I2C1 = &I2C{
Bus: stm32.I2C1,
AltFuncSelector: I2C1_ALT_FUNC,
}
I2C0 = I2C1
// SPI
SPI3 = SPI{
Bus: stm32.SPI3,
+25
View File
@@ -36,6 +36,20 @@ const (
// DEFAULT USART
UART_RX_PIN = UART2_RX_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 (
@@ -59,6 +73,17 @@ var (
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
SPI3 = SPI{
Bus: stm32.SPI3,
+2 -2
View File
@@ -1,5 +1,5 @@
//go:build atmega || nrf || sam || (stm32 && !stm32wlx) || fe310 || k210 || rp2040
// +build atmega nrf sam stm32,!stm32wlx fe310 k210 rp2040
//go:build atmega || nrf || sam || stm32 || fe310 || k210 || rp2040
// +build atmega nrf sam stm32 fe310 k210 rp2040
package machine
+2 -2
View File
@@ -1,5 +1,5 @@
//go:build stm32l5 || stm32f7 || stm32l4 || stm32l0
// +build stm32l5 stm32f7 stm32l4 stm32l0
//go:build stm32l5 || stm32f7 || stm32l4 || stm32l0 || stm32wlx
// +build stm32l5 stm32f7 stm32l4 stm32l0 stm32wlx
package machine
+10
View File
@@ -283,6 +283,16 @@ func (spi SPI) getBaudRate(config SPIConfig) uint32 {
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
// Configure the UART.