Skip to main content
Graduate
October 13, 2024
Question

USB Device Not Recognized Using USB3300 PHY on STM32 Nucleo-F446ZE

  • October 13, 2024
  • 3 replies
  • 5577 views

I am working with an STM32 development board and an external PHY (USB3300) to establish communication using USB High Speed. However, the USB is not being recognized, and I would greatly appreciate any advice or guidance on how to resolve this issue. Thank you in advance for your help.

Objective
For now, I would like the USB device to be recognized by my PC. Eventually, I aim to send serial data through the external PHY.

Problem
I have connected the devices as shown below, but when I check the Device Manager on my PC, the USB device is not recognized.

My Guess at the Cause
Could it be because PA11 and PA12 are connected to STLINK-USB_DM and STLINK-USB_DP?

Device Manager Output
Unknown USB Device (Device Descriptor Request Failed)
This device has been stopped because it reported problems. (Code 43)
The USB device descriptor request failed.

Connections
PC --(USB cable)-- USB3300 --(jumper wires)-- NUCLEO-F446ZE (powered via USB)

Jumper Wire Details
USB3300 | NUCLEO-F446ZE
---------------------------------
5V : 5V
3.3V : 3.3V
GND : GND
USB_OTG_HS_ULPI_STP : PC0
USB_OTG_HS_ULPI_DIR : PC2
USB_OTG_HS_ULPI_NXT : PC3
USB_OTG_HS_ULPI_CK : PA5
USB_OTG_HS_ULPI_D0 : PA3
USB_OTG_HS_ULPI_D1 : PB0
USB_OTG_HS_ULPI_D2 : PB1
USB_OTG_HS_ULPI_D3 : PB10
USB_OTG_HS_ULPI_D4 : PB2
USB_OTG_HS_ULPI_D5 : PB12
USB_OTG_HS_ULPI_D6 : PB13
USB_OTG_HS_ULPI_D7 : PB5
RESET : PA0
---------------------------------
(Note: PB0 was connected to an on-board LED through SB120, so I cut SB120 to disconnect it.)

Steps Taken
Created a project using STM32CubeIDE
Configured the pins in the pinout view (see image linked below)
Set USB_OTG_HS to "External PHY" and "Device_Only" under Connectivity, and enabled the USB On The Go HS Global interrupt in NVIC Settings
Set the Class for HS IP to "CDC" under Middleware and Software Packs
Wrote the code for main.c (see below URL)
https://drive.google.com/file/d/1854QExJgEYuRdi5xYT4wJ6Gb2AY0DqzF/view?usp=sharing

Components
USB3300
STM32 NUCLEO-F446ZE

Files
Project ZIP file: https://drive.google.com/file/d/1My02udvdlEIywo-0WPoB5JbLTEOwl58R/view?usp=sharingPin configuration image: https://drive.google.com/file/d/1zbRGbeE4PeWx54Zo8dzgwkAvvmwYYh9-/view?usp=sharing

Photo of actual setup: https://drive.google.com/file/d/1J7RatqFqVUSRP269folbYCTjD8h050nB/view?usp=sharing

Board schematic: https://oshwlab.com/wgsxsm/NUCLEO_F446ZE-UMYy85rpZ

Keywords: Microcontroller, Arduino, STM32, HS USB 2.0, Electronics, Circuit Design

    This topic has been closed for replies.

    3 replies

    Super User
    October 13, 2024

    So you expect a 480Mbit connection and PHY working on a jumper wire connection and a breadboard ?

    Very naive , i think.

    What experiences have you had with 50 Mbit connections on breadboards?

    HyattAuthor
    Graduate
    October 13, 2024

    Thanks for the help!

    > So you expect a 480Mbit connection and PHY working on a jumper wire connection and a breadboard ?
    Yes.

    > What experiences have you had with 50 Mbit connections on breadboards?

    I have no such experience. Could the use of jumper wires and a breadboard cause the device to show up as 'Unknown USB Device (Device Descriptor Request Failed)'?

    I am thinking of creating a shield to connect the development board and PHY using a universal PCB.

     

    Graduate
    October 14, 2024

    As  AScha.3 noticed, 

    You may use jump wire for full speed USB, but for USB high speed, it is impossible.

    The high speed USB not only frequency increase, the signal voltage VPP only 0.44V.

    Richard

     

     

    Technical Moderator
    October 14, 2024

    Hi @Hyatt 

    I agree as well with @AScha.3  and @Richard Li , NUCLEO-F446ZE board is not designed to support High speed operations. STM32446E_EVAL board could be used instead as reference board. You need to check line length matching, Also, AHB frequency has to be higher than 30 MHz and crystal oscillator is required to guarantee clock precision.

    HyattAuthor
    Graduate
    October 15, 2024

    @Richard Li 
    Thanks for the help!
    I tried changing the cable(support usb2.0, U2C-MF50BK), but result was the same .

    I think it is probably recognized in HS because USB Device Tree Viewer show high speed.

    USB Device Tree Viewer: https://drive.google.com/file/d/1VMC-ssH2HegwjDNyY9PAutBeFFSj1LSf/view?usp=sharingusb.png

     ========================== Summary =========================
    Vendor ID : 0x0483 (STMicroelectronics)
    Product ID : 0x5740
    USB version : 2.00
    Port maximum Speed : High-Speed
    Device maximum Speed : High-Speed
    Device Connection Speed : High-Speed
    Self Powered : yes
    Demanded Current : 100 mA
    Used Endpoints : 4

     

    Graduate
    October 15, 2024

    Is your device Bluetooth?

    Your USB viewer show detail is Virtuel COM port information, I guess your device in port 1, you should looking port 1 detail.