Skip to main content
Visitor II
January 13, 2024
Question

STM32H747-DISC0. HOW TO SETTING CHANGE USB SPEED?

  • January 13, 2024
  • 1 reply
  • 1761 views

Hello.
I am creating software for the host side of a USB hub, and I want to connect a mouse to a port on the USB hub,
I want to connect a mouse to the port of the USB hub and operate it.

The USB communication speed of the USB hub is HI SPEED, and when the hub detects a mouse with a LOW SPEED USB communication speed, it will send USBH_Get_DevDesc to the mouse in LOW SPEED.
USBH_Get_DevDesc is sent to the mouse at LOW SPEED when the hub detects a mouse with a USB communication speed of LOW SPEED.

USBH_StatusTypeDef USBH_OpenPipe(USBH_HandleTypeDef *phost, uint8_t pipe_num,
uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t dev_address
uint8_t speed, uint8_t ep_type, uint16_t mps)
I can not communicate in LOW SPEED as seen in the line monitor even if I execute speed=2(LOW SPEED) with
How can I communicate in LOW SPEED?

    This topic has been closed for replies.

    1 reply

    Super User
    January 13, 2024

    Hi,

    from H747 ds :

    AScha3_0-1705147742007.png

    I see no LOW SPEED here - so look in rm , H743 here :

    AScha3_1-1705148032379.png

    +

    To make it clear :  you want H747/HOST -> HUB -> mouse/DEVICE   -- right ?

    afaik the USB lib not supporting HUB ....  try without HUB , working then ?

     

     

    ATaka.2Author
    Visitor II
    January 14, 2024

    Hi!
    Thanks for your support.

    I have already succeeded in connecting the mouse without the HUB.

    The configuration is H747/HOST -> HUB -> mouse/DEVICE
    and the configuration is H747/HOST -> HUB -> mouse/DEVICE.

    STM does not support the HUB in terms of software, so I
    I have to make it by myself.

    Without HUB, I have succeeded in accessing from STM32H747 at LOW SPEED.
    Is the STM32H747 hardware capable of LOW SPEED communication?

    Or, is it that LOW SPEED communication is not possible via a HUB?

    If it is a software problem and not a hardware problem, I would like to control the mouse via the HUB myself.
    I would like to control the mouse via HUB by myself.

    By the way, USBH_Get_DevDesc of HI SPEED device via HUB succeeded.

    Super User
    January 15, 2024

    Hi,

    STM does not support the HUB in terms of software, so I  have to make it by myself.

    Right! If you manage this - show it here ( or on git) . 8)

    > Is the STM32H747 hardware capable of LOW SPEED communication?

    -- from rm : yes, as host. + > Without HUB, I have succeeded < So you proofed it already.

    > Or, is it that LOW SPEED communication is not possible via a HUB?

    afaik This is managed by the HUB then, you connect to the HUB at (lets say) full speed, this stays at full speed;

    then connecting full or lo speed devices to the HUB , it manages the transfer at this speed to the devices, but your transfer stays at full speed to the HUB. So you dont need to switch any speed - you "only" have to deal with the enumeration and communication coming from the HUB ( and this STM not got running, afaik. )

    Only (host)USB -> HUB -> device  working lib is in Azure/rtos USBX , so maybe you look there, how they do.

    https://github.com/eclipse-threadx/usbx

    ->

    https://github.com/eclipse-threadx/usbx/blob/master/common/usbx_host_classes/src/ux_host_class_hub_feature.c

    ++ read here :

    https://community.st.com/t5/stm32-mcus/how-to-implement-usbx-in-standalone-mode/ta-p/614435