I have an STM32L496RET bare chip on a Schmartboard QFP->DIP breakout put into a breadboard, with all the VDDs (inc VDDUSB) connected to the + source, which is currently the ST-Link V2 at ~3.3V, and they are all bypassed with 100nf caps. There is one bulk tantalum on the power rail as required in the datasheet. I'm using a TSX 10ppm 8.000MHz crystal for the HSE, with a PLL set up to 48MHz for the main clock and peripherals, including USB. The crystal is bypassed by two 20pf caps. The USB port is a type-A breakout that's connected to the respective DP and DM pins through series 22ohm resistors and bypassed w/47pf caps as per the MapleMini schematics, and an independent 5V PSU is being used to supply + and GND on the port. A voltage divider brings the 5V supply back to the PA9 VBUS sensing pin to ~3.3V when on. From what I can tell, and from the research that I've done, it's all connected properly but I could of course be totally wrong.
I'm using STM32CubeIDE and autogenerating the USB_OTG_FS comm library and the USB_HOST library set for MTP (although I tested with mass storage and got the same results). When I run or debug the code w/ breakpoints on the autogenerated USBH_UserProcess switch cases, and then insert any camera or USB device, it always triggers on HOST_USER_DISCONNECTION. Obviously the chip sees something on the bus but is unable to properly connect.
What are likely issues? Do you need photos? Screenshots of the clock config? I can try to mock up the circuit in a CAD program if needed, but it's pretty simple so far. Do all of the USB lines prior to the breakout need to be super short? Or maybe the crystal is too far from the chip since it's on a breakout, or 20pF is not the right cap value for stable operation? I've tried USB FS and LS and they both behave the same way. Is a breadboard not going to work for a USB host? I'm getting pretty frustrated at this point.
Thank you for any suggestions.