Skip to main content
BKlus.1
Associate II
March 22, 2022
Solved

ThreadX/AZURE and USBX unable to use all available endpoints?

  • March 22, 2022
  • 3 replies
  • 1146 views

I am working on a USB device based on a STM32H743 MCU, using ThreadX/AZURE and USBX.

According to RM0433 (the reference manual for STM32H742, STM32H743/753 and STM32H750), the USB peripheral supports:

- bidirectional endpoint 0

- 8 IN endpoints

- 8 OUT endpoints

However, _ux_dcd_stm32_endpoint_create() reports a UX_NO_ED_AVAILABLE failure whenever I try to use any matching IN and OUT endpoint, for example IN8 and OUT8. 

Am I missing anything? Is it a bug? Is there a workaround?

Thanks!

Bart

This topic has been closed for replies.
Best answer by mohamed.ayed

Hi @BKlus.1​ ,

If you want to use a bidirectional endpoint, you should define UX_DEVICE_BIDIRECTIONAL_ENDPOINT_SUPPORT flag in ux_user.h 

/* Defined, this macro enables device bi-directional-endpoint support. */

/* #define UX_DEVICE_BIDIRECTIONAL_ENDPOINT_SUPPORT */

Note : this flag are added in AzureRTOS USBX middleware 6.1.6 release.

Regards.

3 replies

Walid ZRELLI
Visitor II
March 22, 2022

Hello @BKlus.1​ ,

This issue has been reported internally.

I will keep you posted.

BeST Regards,

Walid

BKlus.1
BKlus.1Author
Associate II
March 23, 2022

Thank you!

mohamed.ayed
mohamed.ayedBest answer
ST Employee
May 21, 2022

Hi @BKlus.1​ ,

If you want to use a bidirectional endpoint, you should define UX_DEVICE_BIDIRECTIONAL_ENDPOINT_SUPPORT flag in ux_user.h 

/* Defined, this macro enables device bi-directional-endpoint support. */

/* #define UX_DEVICE_BIDIRECTIONAL_ENDPOINT_SUPPORT */

Note : this flag are added in AzureRTOS USBX middleware 6.1.6 release.

Regards.