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