Skip to content

Commit 38f4507

Browse files
committed
fix USB in sleep mode
in sleep mode, USB interrupts were disabled and USB Device was not working. Sleep mode is default in Mbed-os e.g. in a call to sleep_for()
1 parent eb38298 commit 38f4507

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

targets/TARGET_STM/USBPhy_STM32.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,14 @@ void USBPhyHw::init(USBPhyEvents *events)
229229
hpcd.Init.use_external_vbus = DISABLE;
230230

231231
__HAL_RCC_USB_OTG_HS_CLK_ENABLE();
232+
233+
#ifdef __HAL_RCC_USB1_OTG_FS_ULPI_CLK_SLEEP_DISABLE
234+
__HAL_RCC_USB1_OTG_FS_ULPI_CLK_SLEEP_DISABLE();
235+
#endif
236+
#ifdef __HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_DISABLE
237+
__HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_DISABLE();
238+
#endif
239+
232240
map = PinMap_USB_HS;
233241

234242
#elif (MBED_CONF_TARGET_USB_SPEED == USE_USB_OTG_FS)
@@ -238,6 +246,14 @@ void USBPhyHw::init(USBPhyEvents *events)
238246
hpcd.Init.speed = PCD_SPEED_FULL;
239247

240248
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
249+
250+
#ifdef __HAL_RCC_USB1_OTG_FS_ULPI_CLK_SLEEP_DISABLE
251+
__HAL_RCC_USB1_OTG_FS_ULPI_CLK_SLEEP_DISABLE();
252+
#endif
253+
#ifdef __HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_DISABLE
254+
__HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_DISABLE();
255+
#endif
256+
241257
map = PinMap_USB_FS;
242258

243259
#elif (MBED_CONF_TARGET_USB_SPEED == USE_USB_NO_OTG)

0 commit comments

Comments
 (0)