Skip to main content
Visitor II
October 23, 2020
Solved

Can't enumerate USB with STM32F44RE (custom board)

  • October 23, 2020
  • 3 replies
  • 1356 views

I am trying to setup USB communication with an STM32F446RE

It is a custom board where:

  • The clock source is an external 8Mhz quartz
  • There is a micro USB port with USB+ connected to PA12 and USB- connected to PA11

The external quartz is working (I can load a firmware that just blinks a led) but I fail to enumerate the USB device with below message in the computer syslog.

I am using mbed with the NUCLEO F446RE configuration, I just enabled USB in the target configuration (USE_USB_OTG_FS type)

Also, I noted that if I plug the board even without a firmware that is supposed to use USB, my computer tries to enumerate the device, however it shows a different message (like it's trying to enumerate a low-speed device instead of high-speed)

Do you have any idea/clue what could be going wrong?

Oct 23 19:13:51 destiny kernel: [4213209.733361] usb 1-10: new full-speed USB device number 17 using xhci_hcd
Oct 23 19:13:51 destiny kernel: [4213209.861500] usb 1-10: device descriptor read/64, error -71
Oct 23 19:13:51 destiny kernel: [4213210.097415] usb 1-10: device descriptor read/64, error -71
Oct 23 19:13:51 destiny kernel: [4213210.333311] usb 1-10: new full-speed USB device number 18 using xhci_hcd
Oct 23 19:13:51 destiny kernel: [4213210.461545] usb 1-10: device descriptor read/64, error -71
Oct 23 19:13:52 destiny kernel: [4213210.697528] usb 1-10: device descriptor read/64, error -71
Oct 23 19:13:52 destiny kernel: [4213210.805438] usb usb1-port10: attempt power cycle
Oct 23 19:13:52 destiny kernel: [4213211.461355] usb 1-10: new full-speed USB device number 19 using xhci_hcd
Oct 23 19:13:52 destiny kernel: [4213211.461721] usb 1-10: Device not responding to setup address.
Oct 23 19:13:53 destiny kernel: [4213211.669583] usb 1-10: Device not responding to setup address.
Oct 23 19:13:53 destiny kernel: [4213211.877357] usb 1-10: device not accepting address 19, error -71
Oct 23 19:13:53 destiny kernel: [4213212.005324] usb 1-10: new full-speed USB device number 20 using xhci_hcd
Oct 23 19:13:53 destiny kernel: [4213212.005568] usb 1-10: Device not responding to setup address.
Oct 23 19:13:53 destiny kernel: [4213212.213745] usb 1-10: Device not responding to setup address.
Oct 23 19:13:53 destiny kernel: [4213212.421346] usb 1-10: device not accepting address 20, error -71
Oct 23 19:13:53 destiny kernel: [4213212.421442] usb usb1-port10: unable to enumerate USB device

    This topic has been closed for replies.
    Best answer by Tesla DeLorean

    Pull BOOT0 High, and see if your hardware populates as a USB STM32 DFU device.

    Check what you HSE does, output via MCO, check speed to come up.

    Make sure PLL comes up, make sure PLL is generating 48 MHz for USB

    Check D+/D- not backward

    3 replies

    Super User
    October 23, 2020

    IMO Nucleo does not have a crystal this used HSE in Bypass more.

    Otherwise, debug as usually, it is your code now.

    JW

    Visitor II
    October 23, 2020

    Ok actually it was a really stupid problem, I shorted VUSB and D- when soldering the micro USB port :grinning_face_with_sweat:

    Graduate II
    October 23, 2020

    Pull BOOT0 High, and see if your hardware populates as a USB STM32 DFU device.

    Check what you HSE does, output via MCO, check speed to come up.

    Make sure PLL comes up, make sure PLL is generating 48 MHz for USB

    Check D+/D- not backward