USB host driver problem @ AT91SAM9263, WinCE60

This forum is for users of Atmel's SAM Series and who are interested in using WinCE OS.

Moderator: nferre

Posts: 9
Joined: Tue Jun 19, 2007 5:14 pm

USB host driver problem @ AT91SAM9263, WinCE60

Wed Apr 21, 2010 9:00 am

We got a strange exception in ohcd driver in the "CheckForDoneTransfersThread", the td pointer will be not valid. I have debugged it out, and this thread will be interrupted and if it will run again, the TD will not the same as before.
Before this exception a "SetOrClearFeature" will be called, where a transfer is issued on an endpoint 0, control pipe, and the m_hFunctionFeatureEvent will not come, and the "fTransferDone" flag will not be set, and this time an abort transfer is initiated. And after that comes the exception in the CheckForDoneTransfersThread.
I think there is a problem in mdd layer, because the CFDT thread can be interrupted by the interrupt service thread, and the TD list are not defended by critical sections. That is one point.
But my worry is, why this transfer to control pipe can not be issued??? So this was the point i checked in the datasheet errata. There is an unresolved bug in UHP, called "ISO OUT Transfers":
Consider the following scenario:
1. The Host controller sends an ISO OUT token after fetching 16 bytes of data from the
system memory.
2. When the Host controller is sending the ISO OUT data, because of system latencies,
remaining bytes of the packet are not available. This results in a buffer underrun
3. While there is an underrun condition, if the Host controller is in the process of bit-stuff-
ing, it causes the Host controller to hang.
Consequence: After the failure condition, the Host controller stops sending the SOF. This
causes the connected device to go into suspend state.
Problem Fix/Workaround
This problem can be avoided if the system can guarantee that no buffer underrun occurs during
the transfer."

Could be my problem issued by this bug? Is my device already in standby state, and thatswhy this transfer to control pipe can not be succeeded?
There is two scenarios, where i could issued this bad behavior (does not occure every time i try):
- If i put an USB Flash Drive to our device, and remove it quickly
- i connect with an USB WLAN card to an AP two times, and after that i call an "ipconfig", sometimes the whole WZC service hangs because of this.

So after all: How could i avoid USB underrun in the HCD driver MDD2 layer under WinCE 6.0????

Thanks for any kind of help!!!

Zsolt Talaber
Location: France - USA
Posts: 183
Joined: Fri May 14, 2004 9:58 am

Re: USB host driver problem @ AT91SAM9263, WinCE60

Tue Jun 22, 2010 1:59 pm

Hi, talabzs

Your problem seems to be too complex to be answered without investigations
If you need help to investigate and solve your problem, please contact our sales team at

Best regards

Return to “WinCE”

Who is online

Users browsing this forum: No registered users and 4 guests