summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClyne Sullivan <clyne@bitgloo.com>2025-01-30 21:10:20 -0500
committerClyne Sullivan <clyne@bitgloo.com>2025-01-30 21:10:20 -0500
commite9f471c4e0a4047bb960b28e4de1447b84a22e4f (patch)
tree33bec6bf0d1e161b739bcb22f20f668a84aee32d
parentea84e2a1a4bdf3f46aa3789ed3f7e96c673d7c2c (diff)
reduce clocks
-rw-r--r--Core/Inc/stm32u0xx_hal_conf.h2
-rw-r--r--Core/Src/main.c15
-rw-r--r--Core/Src/stm32u0xx_hal_msp.c4
-rw-r--r--Makefile2
-rw-r--r--microphone.ioc73
5 files changed, 54 insertions, 42 deletions
diff --git a/Core/Inc/stm32u0xx_hal_conf.h b/Core/Inc/stm32u0xx_hal_conf.h
index d8e250f..66cfc34 100644
--- a/Core/Inc/stm32u0xx_hal_conf.h
+++ b/Core/Inc/stm32u0xx_hal_conf.h
@@ -144,7 +144,7 @@
* @brief This is the HAL system configuration section
*/
-#define VDD_VALUE 3300U /*!< Value of VDD in mv */
+#define VDD_VALUE 1710U /*!< Value of VDD in mv */
#define TICK_INT_PRIORITY (3U) /*!< tick interrupt priority (lowest by default) */
#define USE_RTOS 0U
#define PREFETCH_ENABLE 0U
diff --git a/Core/Src/main.c b/Core/Src/main.c
index 29fe9cf..67e6ab8 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -142,9 +142,10 @@ int main(void)
/* USER CODE BEGIN WHILE */
while (1)
{
- /* USER CODE END WHILE */
HAL_GPIO_WritePin(IDLE_GPIO_Port, IDLE_Pin, GPIO_PIN_SET);
__WFI();
+ /* USER CODE END WHILE */
+
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
@@ -161,7 +162,7 @@ void SystemClock_Config(void)
/** Configure the main internal regulator output voltage
*/
- HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1);
+ HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE2);
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
@@ -181,10 +182,10 @@ void SystemClock_Config(void)
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI;
- RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
- RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV2;
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
- if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
{
Error_Handler();
}
@@ -213,7 +214,7 @@ static void MX_SPI1_Init(void)
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT;
- hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
+ hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
@@ -252,7 +253,7 @@ static void MX_USART2_UART_Init(void)
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
- huart2.Init.OverSampling = UART_OVERSAMPLING_16;
+ huart2.Init.OverSampling = UART_OVERSAMPLING_8;
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
diff --git a/Core/Src/stm32u0xx_hal_msp.c b/Core/Src/stm32u0xx_hal_msp.c
index 204294d..4eb7deb 100644
--- a/Core/Src/stm32u0xx_hal_msp.c
+++ b/Core/Src/stm32u0xx_hal_msp.c
@@ -120,7 +120,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
hdma_spi1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_spi1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_spi1_rx.Init.Mode = DMA_CIRCULAR;
- hdma_spi1_rx.Init.Priority = DMA_PRIORITY_VERY_HIGH;
+ hdma_spi1_rx.Init.Priority = DMA_PRIORITY_MEDIUM;
if (HAL_DMA_Init(&hdma_spi1_rx) != HAL_OK)
{
Error_Handler();
@@ -137,7 +137,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_spi1_tx.Init.Mode = DMA_CIRCULAR;
- hdma_spi1_tx.Init.Priority = DMA_PRIORITY_VERY_HIGH;
+ hdma_spi1_tx.Init.Priority = DMA_PRIORITY_MEDIUM;
if (HAL_DMA_Init(&hdma_spi1_tx) != HAL_OK)
{
Error_Handler();
diff --git a/Makefile b/Makefile
index 446775f..ab0211a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
##########################################################################################################################
-# File automatically-generated by tool: [projectgenerator] version: [4.5.0-RC5] date: [Thu Jan 30 16:49:01 EST 2025]
+# File automatically-generated by tool: [projectgenerator] version: [4.5.0-RC5] date: [Thu Jan 30 17:24:56 EST 2025]
##########################################################################################################################
# ------------------------------------------------
diff --git a/microphone.ioc b/microphone.ioc
index 7e77d47..49dc5db 100644
--- a/microphone.ioc
+++ b/microphone.ioc
@@ -14,7 +14,7 @@ Dma.SPI1_RX.0.Mode=DMA_CIRCULAR
Dma.SPI1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI1_RX.0.PeriphInc=DMA_PINC_DISABLE
Dma.SPI1_RX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
-Dma.SPI1_RX.0.Priority=DMA_PRIORITY_VERY_HIGH
+Dma.SPI1_RX.0.Priority=DMA_PRIORITY_MEDIUM
Dma.SPI1_RX.0.RequestNumber=1
Dma.SPI1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.SPI1_RX.0.SignalID=NONE
@@ -31,7 +31,7 @@ Dma.SPI1_TX.1.Mode=DMA_CIRCULAR
Dma.SPI1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI1_TX.1.PeriphInc=DMA_PINC_DISABLE
Dma.SPI1_TX.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING
-Dma.SPI1_TX.1.Priority=DMA_PRIORITY_VERY_HIGH
+Dma.SPI1_TX.1.Priority=DMA_PRIORITY_MEDIUM
Dma.SPI1_TX.1.RequestNumber=1
Dma.SPI1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.SPI1_TX.1.SignalID=NONE
@@ -40,7 +40,7 @@ Dma.SPI1_TX.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.SPI1_TX.1.SyncRequestNumber=1
Dma.SPI1_TX.1.SyncSignalID=NONE
File.Version=6
-GPIO.groupedBy=
+GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
Mcu.CPN=STM32U083MCT6
Mcu.Family=STM32U0
@@ -61,7 +61,8 @@ Mcu.Pin1=PC2
Mcu.Pin10=PA13 (SWDIO)
Mcu.Pin11=PA14 (SWCLK)
Mcu.Pin12=VP_PWR_VS_SECSignals
-Mcu.Pin13=VP_SYS_VS_Systick
+Mcu.Pin13=VP_PWR_VS_LPOM
+Mcu.Pin14=VP_SYS_VS_Systick
Mcu.Pin2=PA1
Mcu.Pin3=PA2
Mcu.Pin4=PA3
@@ -70,7 +71,7 @@ Mcu.Pin6=PA6
Mcu.Pin7=PA7
Mcu.Pin8=PB2
Mcu.Pin9=PD9
-Mcu.PinsNb=14
+Mcu.PinsNb=15
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32U083MCTx
@@ -165,25 +166,30 @@ ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_SPI1_Init-SPI1-false-HAL-true,5-MX_USART2_UART_Init-USART2-false-HAL-true,0-MX_CORTEX_M0+_Init-CORTEX_M0+-false-HAL-true,0-MX_PWR_Init-PWR-false-HAL-true
RCC.ADCFreq_Value=24000000
-RCC.AHBFreq_Value=24000000
-RCC.APBFreq_Value=24000000
-RCC.APBTimFreq_Value=24000000
-RCC.CortexFreq_Value=24000000
-RCC.FCLKCortexFreq_Value=24000000
+RCC.AHBCLKDivider=RCC_SYSCLK_DIV2
+RCC.AHBFreq_Value=12000000
+RCC.APB1CLKDivider=RCC_HCLK_DIV2
+RCC.APBFreq_Value=6000000
+RCC.APBTimFreq_Value=12000000
+RCC.CortexFreq_Value=1500000
+RCC.Cortex_Div=SYSTICK_CLKSOURCE_HCLK_DIV8
+RCC.DATA_CACHE_ENABLE=1
+RCC.FCLKCortexFreq_Value=12000000
RCC.FamilyName=M
-RCC.HCLKFreq_Value=24000000
+RCC.HCLKFreq_Value=12000000
RCC.HSE_VALUE=4000000
RCC.HSI48_VALUE=48000000
RCC.HSI_VALUE=16000000
-RCC.I2C1Freq_Value=24000000
-RCC.I2C3Freq_Value=24000000
-RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APBFreq_Value,APBTimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPUART1Freq_Value,LPUART2Freq_Value,LPUART3Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,MCO2PinFreq_Value,MSIClockRangeVal,MSI_VALUE,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PWRFreq_Value,RNGFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,TIM15Freq_Value,TIM1Freq_Value,USART1Freq_Value,USART2Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
-RCC.LPTIM1Freq_Value=24000000
-RCC.LPTIM2Freq_Value=24000000
-RCC.LPTIM3Freq_Value=24000000
-RCC.LPUART1Freq_Value=24000000
-RCC.LPUART2Freq_Value=24000000
-RCC.LPUART3Freq_Value=24000000
+RCC.I2C1Freq_Value=6000000
+RCC.I2C3Freq_Value=6000000
+RCC.INSTRUCTION_CACHE_ENABLE=1
+RCC.IPParameters=ADCFreq_Value,AHBCLKDivider,AHBFreq_Value,APB1CLKDivider,APBFreq_Value,APBTimFreq_Value,CortexFreq_Value,Cortex_Div,DATA_CACHE_ENABLE,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,INSTRUCTION_CACHE_ENABLE,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPUART1Freq_Value,LPUART2Freq_Value,LPUART3Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,MCO2PinFreq_Value,MSIClockRangeVal,MSI_VALUE,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,RNGFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,TIM15Freq_Value,TIM1Freq_Value,USART1Freq_Value,USART2Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VDD_VALUE
+RCC.LPTIM1Freq_Value=6000000
+RCC.LPTIM2Freq_Value=6000000
+RCC.LPTIM3Freq_Value=6000000
+RCC.LPUART1Freq_Value=6000000
+RCC.LPUART2Freq_Value=6000000
+RCC.LPUART3Freq_Value=6000000
RCC.LSCOPinFreq_Value=32000
RCC.LSE_VALUE=32768
RCC.LSI_VALUE=32000
@@ -191,21 +197,23 @@ RCC.MCO1PinFreq_Value=24000000
RCC.MCO2PinFreq_Value=24000000
RCC.MSIClockRangeVal=RCC_MSIRANGE_9
RCC.MSI_VALUE=24000000
-RCC.PLLPoutputFreq_Value=32000000
-RCC.PLLQoutputFreq_Value=32000000
-RCC.PLLRCLKFreq_Value=32000000
+RCC.PLLPoutputFreq_Value=48000000
+RCC.PLLQoutputFreq_Value=48000000
+RCC.PLLRCLKFreq_Value=48000000
+RCC.PLLSourceVirtual=RCC_PLLSOURCE_MSI
RCC.PWRFreq_Value=24000000
RCC.RNGFreq_Value=24000000
RCC.SYSCLKFreq_VALUE=24000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_MSI
-RCC.TIM15Freq_Value=24000000
-RCC.TIM1Freq_Value=24000000
-RCC.USART1Freq_Value=24000000
-RCC.USART2Freq_Value=24000000
+RCC.TIM15Freq_Value=12000000
+RCC.TIM1Freq_Value=12000000
+RCC.USART1Freq_Value=6000000
+RCC.USART2Freq_Value=6000000
RCC.USBFreq_Value=24000000
-RCC.VCOInputFreq_Value=16000000
-RCC.VCOOutputFreq_Value=64000000
-SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_8
+RCC.VCOInputFreq_Value=24000000
+RCC.VCOOutputFreq_Value=96000000
+RCC.VDD_VALUE=1.71
+SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2
SPI1.CalculateBaudRate=3.0 MBits/s
SPI1.DataSize=SPI_DATASIZE_8BIT
SPI1.Direction=SPI_DIRECTION_2LINES
@@ -213,8 +221,11 @@ SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRate
SPI1.Mode=SPI_MODE_MASTER
SPI1.NSSPMode=SPI_NSS_PULSE_DISABLE
SPI1.VirtualType=VM_MASTER
-USART2.IPParameters=VirtualMode-Asynchronous
+USART2.IPParameters=VirtualMode-Asynchronous,OverSampling
+USART2.OverSampling=UART_OVERSAMPLING_8
USART2.VirtualMode-Asynchronous=VM_ASYNC
+VP_PWR_VS_LPOM.Mode=PowerOptimisation
+VP_PWR_VS_LPOM.Signal=PWR_VS_LPOM
VP_PWR_VS_SECSignals.Mode=Security/Privilege
VP_PWR_VS_SECSignals.Signal=PWR_VS_SECSignals
VP_SYS_VS_Systick.Mode=SysTick