cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H747-DISC0. HOW TO SETTING CHANGE USB SPEED?

ATaka.2
Associate II

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?

4 REPLIES 4
AScha.3
Chief II

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 ?

 

 

If you feel a post has answered your question, please click "Accept as Solution".

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.

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) . 😎

> 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

 

If you feel a post has answered your question, please click "Accept as Solution".

>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. )

Hi!
Thank you very much for your valuable information!!
I have not studied enough about how to control HUBs, so I will look into it from now on.