From d62445494e9b7dbbd2b3dc8d219148e343219b19 Mon Sep 17 00:00:00 2001 From: Lu Xianfan <154562451@qq.com> Date: Wed, 10 Jun 2026 19:46:56 +0800 Subject: [PATCH 1/2] [bsp][stm]: add stm32g0 usbd fs support --- .../drivers/config/g0/usbd_config.h | 41 +++++++++++++++++++ .../HAL_Drivers/drivers/drv_config.h | 1 + .../libraries/HAL_Drivers/drivers/drv_usbd.c | 12 +++++- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 bsp/stm32/libraries/HAL_Drivers/drivers/config/g0/usbd_config.h diff --git a/bsp/stm32/libraries/HAL_Drivers/drivers/config/g0/usbd_config.h b/bsp/stm32/libraries/HAL_Drivers/drivers/config/g0/usbd_config.h new file mode 100644 index 00000000000..2f46d2e95b8 --- /dev/null +++ b/bsp/stm32/libraries/HAL_Drivers/drivers/config/g0/usbd_config.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2006-2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-06-10 Luxianfan add FS USB support + */ +#ifndef __USBD_CONFIG_H__ +#define __USBD_CONFIG_H__ + +#include + +#ifdef BSP_USBD_TYPE_HS +//#define USBD_IRQ_TYPE OTG_HS_IRQn +//#define USBD_IRQ_HANDLER OTG_HS_IRQHandler +//#define USBD_INSTANCE USB_OTG_HS +#else +#define USBD_IRQ_TYPE USB_UCPD1_2_IRQn +#define USBD_IRQ_HANDLER USB_UCPD1_2_IRQHandler +#define USBD_INSTANCE USB_DRD_FS +#endif + +#ifdef BSP_USBD_SPEED_HS +//#define USBD_PCD_SPEED PCD_SPEED_HIGH +//#elif BSP_USBD_SPEED_HSINFS +//#define USBD_PCD_SPEED PCD_SPEED_HIGH_IN_FULL +#else +#define USBD_PCD_SPEED PCD_SPEED_FULL +#endif + +#ifdef BSP_USBD_PHY_ULPI +//#define USBD_PCD_PHY_MODULE PCD_PHY_ULPI +//#elif BSP_USBD_PHY_UTMI +//#define USBD_PCD_PHY_MODULE PCD_PHY_UTMI +#else +#define USBD_PCD_PHY_MODULE PCD_PHY_EMBEDDED +#endif + +#endif diff --git a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_config.h b/bsp/stm32/libraries/HAL_Drivers/drivers/drv_config.h index ff02efa64ca..8d68e3096c9 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/drivers/drv_config.h @@ -105,6 +105,7 @@ extern "C" { #include "g0/adc_config.h" #include "g0/tim_config.h" #include "g0/pwm_config.h" +#include "g0/usbd_config.h" #elif defined(SOC_SERIES_STM32G4) #include "g4/dma_config.h" #include "g4/uart_config.h" diff --git a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_usbd.c b/bsp/stm32/libraries/HAL_Drivers/drivers/drv_usbd.c index 6acfad20991..dc9f8dd9e02 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_usbd.c +++ b/bsp/stm32/libraries/HAL_Drivers/drivers/drv_usbd.c @@ -213,13 +213,23 @@ static rt_err_t _init(rt_device_t device) pcd->Init.ep0_mps = EP_MPS_64; #if !defined(SOC_SERIES_STM32F1) pcd->Init.phy_itface = USBD_PCD_PHY_MODULE; +#endif +#if defined(SOC_SERIES_STM32G0) + pcd->Init.Host_channels = 8; + pcd->Init.Sof_enable = DISABLE; + pcd->Init.low_power_enable = DISABLE; + pcd->Init.lpm_enable = DISABLE; + pcd->Init.battery_charging_enable = DISABLE; + pcd->Init.vbus_sensing_enable = DISABLE; + pcd->Init.bulk_doublebuffer_enable = DISABLE; + pcd->Init.iso_singlebuffer_enable = DISABLE; #endif /* Initialize LL Driver */ HAL_PCD_Init(pcd); /* USB interrupt Init */ HAL_NVIC_SetPriority(USBD_IRQ_TYPE, 2, 0); HAL_NVIC_EnableIRQ(USBD_IRQ_TYPE); -#if !defined(SOC_SERIES_STM32F1) +#if !defined(SOC_SERIES_STM32F1) && !defined(SOC_SERIES_STM32G0) HAL_PCDEx_SetRxFiFo(pcd, 0x80); HAL_PCDEx_SetTxFiFo(pcd, 0, 0x40); HAL_PCDEx_SetTxFiFo(pcd, 1, 0x40); From 783f24748d5c53fd08013444710fd8d02d9c83c7 Mon Sep 17 00:00:00 2001 From: Lu Xianfan <154562451@qq.com> Date: Tue, 16 Jun 2026 11:00:37 +0800 Subject: [PATCH 2/2] [bsp][stm]: add stm32g0 usbd fs support 1.Remove unnecessary comments --- .../HAL_Drivers/drivers/config/g0/usbd_config.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/bsp/stm32/libraries/HAL_Drivers/drivers/config/g0/usbd_config.h b/bsp/stm32/libraries/HAL_Drivers/drivers/config/g0/usbd_config.h index 2f46d2e95b8..67697977114 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drivers/config/g0/usbd_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/drivers/config/g0/usbd_config.h @@ -13,9 +13,6 @@ #include #ifdef BSP_USBD_TYPE_HS -//#define USBD_IRQ_TYPE OTG_HS_IRQn -//#define USBD_IRQ_HANDLER OTG_HS_IRQHandler -//#define USBD_INSTANCE USB_OTG_HS #else #define USBD_IRQ_TYPE USB_UCPD1_2_IRQn #define USBD_IRQ_HANDLER USB_UCPD1_2_IRQHandler @@ -23,17 +20,11 @@ #endif #ifdef BSP_USBD_SPEED_HS -//#define USBD_PCD_SPEED PCD_SPEED_HIGH -//#elif BSP_USBD_SPEED_HSINFS -//#define USBD_PCD_SPEED PCD_SPEED_HIGH_IN_FULL #else #define USBD_PCD_SPEED PCD_SPEED_FULL #endif #ifdef BSP_USBD_PHY_ULPI -//#define USBD_PCD_PHY_MODULE PCD_PHY_ULPI -//#elif BSP_USBD_PHY_UTMI -//#define USBD_PCD_PHY_MODULE PCD_PHY_UTMI #else #define USBD_PCD_PHY_MODULE PCD_PHY_EMBEDDED #endif