stm32wlx: I2C implementation for gnse,lora-e5,nucleo-wl55jc boards
Этот коммит содержится в:
		
							родитель
							
								
									c35ce761aa
								
							
						
					
					
						коммит
						2b1a72d112
					
				
					 6 изменённых файлов: 88 добавлений и 5 удалений
				
			
		|  | @ -17,7 +17,11 @@ const ( | ||||||
| 	LED3      = LED_BLUE  // Blue | 	LED3      = LED_BLUE  // Blue | ||||||
| 	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. | ||||||
|  |  | ||||||
		Загрузка…
	
	Создание таблицы
		
		Сослаться в новой задаче
	
	 Olivier Fauchon
						Olivier Fauchon