STM32U595 USB_CoreReset() does not work with clock source set to HSE/2
I am using a 32 MHz crystal with STM32U595 and I noticed that selecting HSE/2 (16 MHz) as OTG HS Clock Mux source results in USB_CoreReset() getting stuck in the loop waiting for the reset to complete:
do
{
count++;
if (count > HAL_USB_TIMEOUT)
{
return HAL_TIMEOUT;
}
} while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_CSRST) == USB_OTG_GRSTCTL_CSRST);
Other configurations of OTG HS Clock Mux, appear to work:
- PLL1P configured to 16 MHz
- HSE with OTG PHY reference clock selection set to 32 MHz
Here is my complete clock tree, which doesn't work - just switching OTG HS to PLL1P resolves the issue:

