PORTS Forum
Ports and Interfaces => USB => Topic started by: johnsnd on July 06, 2011, 02:04:46 pm
-
Ok here is the deal, I have recently started embedded USB integration and I am having difficulty trouble shooting why my embedded device will not start. It appears that the winusb driver is attached but when it tries to start it fails. I have access to the following data: UsbView, setupapi.dev.log, and a USB debugger. If anyone could point me in the right direction I would greatly appreciate it. I just done see what error message is the one I should be investigating.
Thanks for your time,
~Nick
[attachment deleted by admin]
-
If Windows Device Manager shows the correct driver assigned, use whatever debugging tools you have to monitor what is happening on the bus. Does the bus ACK the Set_Configuration request? What other communications is the host attempting with the device and how the device responding? A protocol analyzer is the quickest way to find out.
Jan
-
First off let me say thanks for your time and contributions Jan. The information you have shared on the web has been invaluable!!
Using the beagle 480 and Data center software I am able to see two items in red. The error code I see that accompanies them is a “timeout” error. Not sure what is timing out though, any thoughts?
http://tinypic.com/r/200efx3/7
It seems to have received all of the descriptors so what is it timing out on??
Thanks again for your help
~Nick
-
The host is sending you GetStatus(Device) which for some reason your analyser doesn't seem to understand. You are replying with 4D 00, which is an illegal value, unless a recent ECN has slipped past me.
-
Thanks Pat for the heads up, I started looking closer at what those handshakes should be. The code that was handling the handshakes was from the manufacturer, so I wasn’t paying too close attention. I changed it to what I think it should be, but still getting the timeout error? Suggestion on what to do?? Is there somewhere I should be looking for better USB info?
http://tinypic.com/r/taouud/7
-
Mmm... as you're not getting configured, I can only guess that there is something wrong with the device descriptor or the configuration descriptor. I don't think you've said what you're making?
-
It looks like the device is NAKing the Status stage of the request. After sending data in the Data stage, endpoint 0 should ACK the host's 0-length packet in the Status stage.
Jan
-
Well spotted Jan. You obviously have better eyes than me.
-
I stared at it for a while...
Jan
-
Just wanted to say thanks, that was it, just needed to correct that one more thing and now the device starts.
Thanks for your time and help,
~Nick