cancel
Showing results for 
Search instead for 
Did you mean: 

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

BKlus.1
Associate III

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

1 ACCEPTED SOLUTION

Accepted Solutions
mohamed.ayed
ST Employee

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.

View solution in original post

3 REPLIES 3

Hello @BKlus.1​ ,

This issue has been reported internally.

I will keep you posted.

BeST Regards,

Walid

BKlus.1
Associate III

Thank you!

mohamed.ayed
ST Employee

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.