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/Inc/main.h | 82 ++----------------------------------------- Core/Inc/stm32u0xx_it.h | 1 - Core/Src/main.c | 93 ++++++------------------------------------------- Core/Src/stm32u0xx_it.c | 13 ------- 4 files changed, 13 insertions(+), 176 deletions(-) (limited to 'Core') diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 878727c..2f460cf 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -59,14 +59,6 @@ void Error_Handler(void); /* Private defines -----------------------------------------------------------*/ #define LED_GREEN_Pin GPIO_PIN_13 #define LED_GREEN_GPIO_Port GPIOC -#define OSC32_IN_Pin GPIO_PIN_14 -#define OSC32_IN_GPIO_Port GPIOC -#define OSC32_OUT_Pin GPIO_PIN_15 -#define OSC32_OUT_GPIO_Port GPIOC -#define OSC_IN_Pin GPIO_PIN_0 -#define OSC_IN_GPIO_Port GPIOF -#define OSC_OUT_Pin GPIO_PIN_1 -#define OSC_OUT_GPIO_Port GPIOF #define Joystick_Pin GPIO_PIN_2 #define Joystick_GPIO_Port GPIOC #define VCP_TX_Pin GPIO_PIN_2 @@ -75,84 +67,14 @@ void Error_Handler(void); #define VCP_RX_GPIO_Port GPIOA #define LED_BLUE_Pin GPIO_PIN_5 #define LED_BLUE_GPIO_Port GPIOA -#define SEG0_Pin GPIO_PIN_4 -#define SEG0_GPIO_Port GPIOC -#define SEG1_Pin GPIO_PIN_5 -#define SEG1_GPIO_Port GPIOC -#define SEG2_Pin GPIO_PIN_1 -#define SEG2_GPIO_Port GPIOB #define LED_RED_Pin GPIO_PIN_2 #define LED_RED_GPIO_Port GPIOB -#define SEG3_Pin GPIO_PIN_7 -#define SEG3_GPIO_Port GPIOE -#define SEG4_Pin GPIO_PIN_8 -#define SEG4_GPIO_Port GPIOE -#define SEG5_Pin GPIO_PIN_9 -#define SEG5_GPIO_Port GPIOE -#define SEG6_Pin GPIO_PIN_11 -#define SEG6_GPIO_Port GPIOB -#define SHIELD_Pin GPIO_PIN_12 -#define SHIELD_GPIO_Port GPIOB -#define SHIELD_CS_Pin GPIO_PIN_13 -#define SHIELD_CS_GPIO_Port GPIOB -#define SEG7_Pin GPIO_PIN_14 -#define SEG7_GPIO_Port GPIOB -#define SEG8_Pin GPIO_PIN_15 -#define SEG8_GPIO_Port GPIOB -#define SEG9_Pin GPIO_PIN_8 -#define SEG9_GPIO_Port GPIOD -#define SEG10_Pin GPIO_PIN_9 -#define SEG10_GPIO_Port GPIOD -#define TEKY_CS_Pin GPIO_PIN_10 -#define TEKY_CS_GPIO_Port GPIOD -#define TEKY_Pin GPIO_PIN_11 -#define TEKY_GPIO_Port GPIOD -#define SEG11_Pin GPIO_PIN_12 -#define SEG11_GPIO_Port GPIOD -#define SEG12_Pin GPIO_PIN_13 -#define SEG12_GPIO_Port GPIOD -#define SEG13_Pin GPIO_PIN_6 -#define SEG13_GPIO_Port GPIOC -#define SEG14_Pin GPIO_PIN_8 -#define SEG14_GPIO_Port GPIOC -#define SEG15_Pin GPIO_PIN_9 -#define SEG15_GPIO_Port GPIOC -#define COM0_Pin GPIO_PIN_8 -#define COM0_GPIO_Port GPIOA -#define COM1_Pin GPIO_PIN_9 -#define COM1_GPIO_Port GPIOA -#define COM2_Pin GPIO_PIN_10 -#define COM2_GPIO_Port GPIOA -#define USB_DM_Pin GPIO_PIN_11 -#define USB_DM_GPIO_Port GPIOA -#define USB_DP_Pin GPIO_PIN_12 -#define USB_DP_GPIO_Port GPIOA +#define IDLE_Pin GPIO_PIN_9 +#define IDLE_GPIO_Port GPIOD #define SWDIO_Pin GPIO_PIN_13 #define SWDIO_GPIO_Port GPIOA #define SWCLK_Pin GPIO_PIN_14 #define SWCLK_GPIO_Port GPIOA -#define SEG16_Pin GPIO_PIN_10 -#define SEG16_GPIO_Port GPIOC -#define SEG23_Pin GPIO_PIN_11 -#define SEG23_GPIO_Port GPIOC -#define SEG17_Pin GPIO_PIN_0 -#define SEG17_GPIO_Port GPIOD -#define SEG18_Pin GPIO_PIN_1 -#define SEG18_GPIO_Port GPIOD -#define SEG19_Pin GPIO_PIN_3 -#define SEG19_GPIO_Port GPIOD -#define SEG20_Pin GPIO_PIN_4 -#define SEG20_GPIO_Port GPIOD -#define SEG21_Pin GPIO_PIN_5 -#define SEG21_GPIO_Port GPIOD -#define SEG22_Pin GPIO_PIN_6 -#define SEG22_GPIO_Port GPIOD -#define SDA_Pin GPIO_PIN_7 -#define SDA_GPIO_Port GPIOB -#define SCL_Pin GPIO_PIN_8 -#define SCL_GPIO_Port GPIOB -#define COM3_Pin GPIO_PIN_9 -#define COM3_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ diff --git a/Core/Inc/stm32u0xx_it.h b/Core/Inc/stm32u0xx_it.h index fe3b5f7..d134079 100644 --- a/Core/Inc/stm32u0xx_it.h +++ b/Core/Inc/stm32u0xx_it.h @@ -53,7 +53,6 @@ void PendSV_Handler(void); void SysTick_Handler(void); void DMA1_Channel1_IRQHandler(void); void DMA1_Channel2_3_IRQHandler(void); -void DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX_OVR_IRQHandler(void); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ 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