summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorJie Feng <[email protected]>2026-07-25 11:37:33 +0800
committerJie Feng <[email protected]>2026-07-25 11:37:33 +0800
commitbf7a62055ec829f00bd9c3a129e327b6a67ac55b (patch)
tree33d14c169ea036c5241ec96f7432e8fa2a527af6 /hw
parent7b9761f1919014152d3e9ee1aaf203d7fb0e762b (diff)
Run APM32F0 CPU and USB from 48 MHz PLL
Diffstat (limited to 'hw')
-rw-r--r--hw/bsp/apm32f0xx/family.c16
-rw-r--r--hw/bsp/apm32f0xx/family.cmake1
-rw-r--r--hw/bsp/apm32f0xx/family.mk1
3 files changed, 4 insertions, 14 deletions
diff --git a/hw/bsp/apm32f0xx/family.c b/hw/bsp/apm32f0xx/family.c
index 9caa0207c..643490797 100644
--- a/hw/bsp/apm32f0xx/family.c
+++ b/hw/bsp/apm32f0xx/family.c
@@ -32,7 +32,6 @@
#include "apm32f0xx_rcm.h"
#include "apm32f0xx_gpio.h"
#include "apm32f0xx_misc.h"
-#include "apm32f0xx_crs.h"
#include "bsp/board_api.h"
#include "board.h"
@@ -56,18 +55,11 @@ void USBD_IRQHandler(void) {
// Board Init
//--------------------------------------------------------------------+
void board_init(void) {
- // Enable HSI48 for USB clock
- RCM_EnableHSI48();
- while (RCM_ReadStatusFlag(RCM_FLAG_HSI48RDY) == RESET) {}
+ // Configure HSE and PLL for a 48 MHz system clock
+ SystemClockConfig();
- // Select HSI48 as USB clock source
- RCM_ConfigUSBCLK(RCM_USBCLK_HSI48);
-
- // Enable CRS for automatic HSI48 calibration from USB SOF
- RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_CRS);
- CRS_ConfigSynchronizationSource(CRS_SYNC_SOURCE_USB);
- CRS_EnableAutomaticCalibration();
- CRS_EnableFrequencyErrorCounter();
+ // Route the 48 MHz PLL clock to USB
+ RCM_ConfigUSBCLK(RCM_USBCLK_PLLCLK);
// Enable USB peripheral clock
RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_USB);
diff --git a/hw/bsp/apm32f0xx/family.cmake b/hw/bsp/apm32f0xx/family.cmake
index 0cf199f26..199ba7cb5 100644
--- a/hw/bsp/apm32f0xx/family.cmake
+++ b/hw/bsp/apm32f0xx/family.cmake
@@ -31,7 +31,6 @@ function(family_add_board BOARD_TARGET)
${APM32_SDK}/APM32F0xx_StdPeriphDriver/src/apm32f0xx_gpio.c
${APM32_SDK}/APM32F0xx_StdPeriphDriver/src/apm32f0xx_misc.c
${APM32_SDK}/APM32F0xx_StdPeriphDriver/src/apm32f0xx_rcm.c
- ${APM32_SDK}/APM32F0xx_StdPeriphDriver/src/apm32f0xx_crs.c
)
target_include_directories(${BOARD_TARGET} PUBLIC
${CMAKE_CURRENT_FUNCTION_LIST_DIR}
diff --git a/hw/bsp/apm32f0xx/family.mk b/hw/bsp/apm32f0xx/family.mk
index 735c83f90..7e26918c2 100644
--- a/hw/bsp/apm32f0xx/family.mk
+++ b/hw/bsp/apm32f0xx/family.mk
@@ -20,7 +20,6 @@ SRC_C += \
$(APM32_SDK)/APM32F0xx_StdPeriphDriver/src/apm32f0xx_gpio.c \
$(APM32_SDK)/APM32F0xx_StdPeriphDriver/src/apm32f0xx_misc.c \
$(APM32_SDK)/APM32F0xx_StdPeriphDriver/src/apm32f0xx_rcm.c \
- $(APM32_SDK)/APM32F0xx_StdPeriphDriver/src/apm32f0xx_crs.c \
$(APM32_SDK)/Device/Geehy/APM32F0xx/Source/system_apm32f0xx.c
INC += \