2021-04-01 12:39 PM
Hello,
I'm developing firmware for STM32H750VB that uses the USB PHY to send MIDI over USB. I'm using the TinyUSB library for the USB stack. Right now I'm having trouble initializing the USB PHY due to it getting stuck in an infinite loop because it's not clearing the reset signal. In other words, the code is getting stuck in this while loop:
usb_otg->GRSTCTL |= USB_OTG_GRSTCTL_CSRST;
while ((usb_otg->GRSTCTL & USB_OTG_GRSTCTL_CSRST) == USB_OTG_GRSTCTL_CSRST) {}
I checked that USB is getting the 48MHz clock it should be getting and in the RCC_AHB1ENR register, both USB2OTGFSEN and USB2OTGFSULPIEN bits are set.
I checked USB33RDY as well and it's zero all the time. Do I need to power on the 3.3v USB I/O supply in order for it to clear its reset? If so, I'm confused about how to even do this because the 100-pin LQFP package doesn't even have the VDD33USB/VDD50USB pins.
My product is a device only and is self-powered.
Can anyone think of anything else I should check that might be preventing the USB PHY from coming out of reset?
Thanks!
-Brian