diff options
| -rw-r--r-- | bsp/stm32/libraries/HAL_Drivers/SConscript | 3 | ||||
| -rw-r--r-- | bsp/stm32/libraries/HAL_Drivers/drv_tinyusb.c | 46 |
2 files changed, 49 insertions, 0 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/SConscript b/bsp/stm32/libraries/HAL_Drivers/SConscript index dabcc7002c..78a9ae9e78 100644 --- a/bsp/stm32/libraries/HAL_Drivers/SConscript +++ b/bsp/stm32/libraries/HAL_Drivers/SConscript @@ -106,6 +106,9 @@ if GetDepend(['BSP_USING_PULSE_ENCODER']): if GetDepend(['BSP_USING_USBH']): src += ['drv_usbh.c'] +if GetDepend(['PKG_USING_TINYUSB']): + src += ['drv_tinyusb.c'] + src += ['drv_common.c'] path = [cwd] diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_tinyusb.c b/bsp/stm32/libraries/HAL_Drivers/drv_tinyusb.c new file mode 100644 index 0000000000..5219721ea5 --- /dev/null +++ b/bsp/stm32/libraries/HAL_Drivers/drv_tinyusb.c @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-10-20 tfx2001 first version + */ + +#ifdef PKG_USING_TINYUSB + +#include <tusb.h> +#include <drv_config.h> + +int tusb_board_init(void) +{ + PCD_HandleTypeDef hpcd; + + memset(&hpcd, 0, sizeof(hpcd)); + /* Set LL Driver parameters */ + hpcd.Instance = USBD_INSTANCE; + hpcd.Init.dev_endpoints = 8; + hpcd.Init.speed = USBD_PCD_SPEED; +#if defined(SOC_SERIES_STM32F3) || defined(SOC_SERIES_STM32F4) + hpcd.Init.ep0_mps = EP_MPS_64; +#else + hpcd.Init.ep0_mps = DEP0CTL_MPS_64; +#endif +#if !defined(SOC_SERIES_STM32F1) + hpcd.Init.phy_itface = USBD_PCD_PHY_MODULE; +#endif + /* Initialize LL Driver */ + HAL_PCD_Init(&hpcd); + /* USB interrupt Init */ + HAL_NVIC_SetPriority(USBD_IRQ_TYPE, 2, 0); + HAL_NVIC_EnableIRQ(USBD_IRQ_TYPE); + return 0; +} + +void USBD_IRQ_HANDLER(void) +{ + tud_int_handler(0); +} + +#endif |
