USD endpoint busy forever

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

USD endpoint busy forever

712 次查看
martindusek
Contributor V

Hi,

I implemented custom USB class with two interrupt and one bulk endpoint. I used usb_device_cdc_acm.c from SDK 2.1 as a template. USB device is full speed on MK22.

Sometimes the bulk endpoint freezes in busy state. On PC side reading from the bulk endpoint timeouts then (libusb_bulk_transfer used on PC side) even though on MCU side I can see the endpoint is in busy state transferring data.

Structure s_UsbDeviceKhciState has tranferLength = 0x28a, transferDone = 0 and state = 0x6040 forever. I have to reset MCU to reenable data transfers on my bulk endpoint.

Can you please help me diagnose the problem?

EDIT: It seems that the issue is caused by switching from HSRUN to RUN mode with USB module enabled. My CPU have to run with 120 MHz, but sometimes I need to write internal flash memory, which is not possible from HSRUN mode so I have to switch to RUN. When I don't switch from HSRUN to RUN and I disable writing to flash then this issue with frozen bulk endpoint doesn't happen, at least it seems to.

标签 (2)
0 项奖励
回复
1 回复

576 次查看
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

Could you let us know the K22 product part number?

There with some different version of K22 product, please check here for the detailed info.


Have a great day,
Mike

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复