From ea84e2a1a4bdf3f46aa3789ed3f7e96c673d7c2c Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Thu, 30 Jan 2025 17:06:15 -0500 Subject: idle signaling; 5mW draw --- Core/Src/main.c | 93 ++++++------------------------------------------- Core/Src/stm32u0xx_it.c | 13 ------- 2 files changed, 11 insertions(+), 95 deletions(-) (limited to 'Core/Src') diff --git a/Core/Src/main.c b/Core/Src/main.c index 56a0723..29fe9cf 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -143,6 +143,7 @@ int main(void) while (1) { /* USER CODE END WHILE */ + HAL_GPIO_WritePin(IDLE_GPIO_Port, IDLE_Pin, GPIO_PIN_SET); __WFI(); /* USER CODE BEGIN 3 */ } @@ -293,9 +294,6 @@ static void MX_DMA_Init(void) /* DMA1_Channel2_3_IRQn interrupt configuration */ HAL_NVIC_SetPriority(DMA1_Channel2_3_IRQn, 0, 0); HAL_NVIC_EnableIRQ(DMA1_Channel2_3_IRQn); - /* DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX_OVR_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX_OVR_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX_OVR_IRQn); } @@ -312,10 +310,8 @@ static void MX_GPIO_Init(void) /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); - __HAL_RCC_GPIOE_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ @@ -327,6 +323,9 @@ static void MX_GPIO_Init(void) /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(LED_RED_GPIO_Port, LED_RED_Pin, GPIO_PIN_RESET); + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(IDLE_GPIO_Port, IDLE_Pin, GPIO_PIN_RESET); + /*Configure GPIO pin : LED_GREEN_Pin */ GPIO_InitStruct.Pin = LED_GREEN_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; @@ -347,26 +346,6 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(LED_BLUE_GPIO_Port, &GPIO_InitStruct); - /*Configure GPIO pins : SEG0_Pin SEG1_Pin SEG13_Pin SEG14_Pin - SEG15_Pin SEG16_Pin SEG23_Pin */ - GPIO_InitStruct.Pin = SEG0_Pin|SEG1_Pin|SEG13_Pin|SEG14_Pin - |SEG15_Pin|SEG16_Pin|SEG23_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF11_LCD; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - - /*Configure GPIO pins : SEG2_Pin SEG6_Pin SEG7_Pin SEG8_Pin - COM3_Pin */ - GPIO_InitStruct.Pin = SEG2_Pin|SEG6_Pin|SEG7_Pin|SEG8_Pin - |COM3_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF11_LCD; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - /*Configure GPIO pin : LED_RED_Pin */ GPIO_InitStruct.Pin = LED_RED_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; @@ -374,64 +353,12 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(LED_RED_GPIO_Port, &GPIO_InitStruct); - /*Configure GPIO pins : SEG3_Pin SEG4_Pin SEG5_Pin */ - GPIO_InitStruct.Pin = SEG3_Pin|SEG4_Pin|SEG5_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF11_LCD; - HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - - /*Configure GPIO pins : SHIELD_Pin SHIELD_CS_Pin */ - GPIO_InitStruct.Pin = SHIELD_Pin|SHIELD_CS_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF9_TSC; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /*Configure GPIO pins : SEG9_Pin SEG10_Pin SEG11_Pin SEG12_Pin - SEG17_Pin SEG18_Pin SEG19_Pin SEG20_Pin - SEG21_Pin SEG22_Pin */ - GPIO_InitStruct.Pin = SEG9_Pin|SEG10_Pin|SEG11_Pin|SEG12_Pin - |SEG17_Pin|SEG18_Pin|SEG19_Pin|SEG20_Pin - |SEG21_Pin|SEG22_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF11_LCD; - HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - - /*Configure GPIO pins : TEKY_CS_Pin TEKY_Pin */ - GPIO_InitStruct.Pin = TEKY_CS_Pin|TEKY_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF9_TSC; - HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - - /*Configure GPIO pins : COM0_Pin COM1_Pin COM2_Pin */ - GPIO_InitStruct.Pin = COM0_Pin|COM1_Pin|COM2_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF11_LCD; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - /*Configure GPIO pins : USB_DM_Pin USB_DP_Pin */ - GPIO_InitStruct.Pin = USB_DM_Pin|USB_DP_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - /*Configure GPIO pins : SDA_Pin SCL_Pin */ - GPIO_InitStruct.Pin = SDA_Pin|SCL_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + /*Configure GPIO pin : IDLE_Pin */ + GPIO_InitStruct.Pin = IDLE_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; + HAL_GPIO_Init(IDLE_GPIO_Port, &GPIO_InitStruct); /* USER CODE BEGIN MX_GPIO_Init_2 */ /* USER CODE END MX_GPIO_Init_2 */ @@ -540,6 +467,8 @@ static float process(float in_div4) void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma) { + HAL_GPIO_WritePin(IDLE_GPIO_Port, IDLE_Pin, GPIO_PIN_RESET); + SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)hdma->Parent; (void)hspi; diff --git a/Core/Src/stm32u0xx_it.c b/Core/Src/stm32u0xx_it.c index 2539ba0..78ec492 100644 --- a/Core/Src/stm32u0xx_it.c +++ b/Core/Src/stm32u0xx_it.c @@ -169,19 +169,6 @@ void DMA1_Channel2_3_IRQHandler(void) /* USER CODE END DMA1_Channel2_3_IRQn 1 */ } -/** - * @brief This function handles DMAMUX_OVR_IT + DMA1 channel 4 to 7 + DMA2 channel 1 to 5. - */ -void DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX_OVR_IRQHandler(void) -{ - /* USER CODE BEGIN DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX_OVR_IRQn 0 */ - - /* USER CODE END DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX_OVR_IRQn 0 */ - /* USER CODE BEGIN DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX_OVR_IRQn 1 */ - - /* USER CODE END DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX_OVR_IRQn 1 */ -} - /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ -- cgit v1.2.3