cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F4 USBX CDC-ACM Bulk IN endpoint Stall

akorsich
Associate II

I am looking for help solving a CDC-ACM problem with Azure Rtos ThreadX, and the USBX Middleware for STM32F4.

My device is an STM32F427VGTx.

I currently have a project that uses the USBX host library. I am connecting up to 4x CDC-ACM devices through an off-the-shelf USB Hub.

I had problems connecting multiple devices through the hub, but I have solved that after following the solution to update the USBX core bsp from the stm32-mw-usbx repo. (STM32H7 and USB2514 Continued Problems)

 

I can connect to all 4x CDC-ACM devices (data class instance and control class instance enumerate successfully on all devices).

I can send commands to all devices using the control interface by sending a transfer request to the control endpoint.

I can read from up to two CDC-ACM devices, but the third and fourth device will timeout after calling ux_host_class_cdc_acm_read. The function returns a transfer-request-timeout after failing to retrieve the ux_host_semaphore. The status of ux_host_semaphore_get is always TX_NO_INSTANCE and is set by tx_semaphore_cleanup() after semaphore timeout in a thread.

I am calling ux_host_class_cdc_acm_read inside a thread. It works for up to two devices. The first two still work while the third and fourth don't.

0 REPLIES 0