LPC546xx - USB transfer stalled

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC546xx - USB transfer stalled

Jump to solution
1,952 Views
hamatron
Contributor I

Hi

I have a problem with TransferStall on USB_HostHubInterruptInCallback ( usb_host_hub_app.c ) .

This happens when the device is connected to the host and will not advance beyond USB_HostHubProcessPortAttach's kPortRunWaitPortResetDone. 

In the case of Hid, it seems to be cleared as follows.

usb_host_hid.c

if (status == kStatus_USB_TransferStall)
{
    if (USB_HostHidClearHalt(hidInstance, transfer, USB_HostHidClearInHaltCallback,
   (USB_REQUEST_TYPE_DIR_IN |
   ((usb_host_pipe_t *)hidInstance->inPipe)->endpointAddress)) == kStatus_USB_Success)
   {
      USB_HostFreeTransfer(hidInstance->hostHandle, transfer);
      return;
   }
}

Why stall occur and How do I clear stall states?

Thanks for your reply

Regards

Labels (2)
0 Kudos
1 Solution
1,707 Views
Sabina_Bruce
NXP Employee
NXP Employee

Hi Shuntaro,

Thank you for the information. First considering that the stall packet indicates that the endpoint has halted, or a control pipe does not support a certain request. Essentially it is unable to transmit or receive data. I tried the example with different devices and effectively got stuck on a stall when the device was not supported. In the example it self it is configured to accept only two id's.

First I'd like to check your device descriptors that you are using, as well as any relevant information that is printed on the terminal. This will help to find the root cause of the stall, since it is not best to clear the stall anytime it happens. The stall should only be cleared if the device is supported. 

Best Regards,

Sabina

View solution in original post

0 Kudos
3 Replies
1,707 Views
hamatron
Contributor I

Hi Sabina, 

Thanks for your replying and apologize for lack of infomation. 

SDK :  SDK_2.x_LPC54606J256 version 2.5.0

example : host_hid_generic_bm 

Thank you. 

Shuntaro

0 Kudos
1,708 Views
Sabina_Bruce
NXP Employee
NXP Employee

Hi Shuntaro,

Thank you for the information. First considering that the stall packet indicates that the endpoint has halted, or a control pipe does not support a certain request. Essentially it is unable to transmit or receive data. I tried the example with different devices and effectively got stuck on a stall when the device was not supported. In the example it self it is configured to accept only two id's.

First I'd like to check your device descriptors that you are using, as well as any relevant information that is printed on the terminal. This will help to find the root cause of the stall, since it is not best to clear the stall anytime it happens. The stall should only be cleared if the device is supported. 

Best Regards,

Sabina

0 Kudos
1,707 Views
Sabina_Bruce
NXP Employee
NXP Employee

Hi Shuntaro,

I'll be more than happy assisting you with this behavior. However, in order to provide better support, can you please confirm the version of SDK you are using and the name of the example.

Thank you,

Sabina

0 Kudos