Hi,
We checked i.MX6 USB communication between two Sabre-SD boards as following.
MCIMX6Q-SDB/host----HUB1----HUB2---MCIMX6Q-SDB/device(otg)
Unfortunately host controller didn't respond immediately after IN token packet transaction ended.
Please see marked "No handshake" in screen capture of USB analyzer.
According to the USB2.0 specification, there are several cases of no respond (see below) but we want to debug ASAP.
Can you give us some advise to debug such issue smartly?
Is there any particular conditions or states of i.MX6 USB host controller which cause no respond?
Is there any errata related this issue?
Thanks.
Please see Case 00076602 registered today for updated information including different EOP waveforms.
Dear Artur
Let me update my status and questions as following.
---
Previous questions focused on USB host response but USB device didn't respond neither.
After all, ACK is rarely missing in both IN and OUT transactions as following,
if more than 2 hub relayed and datasize=1024 byte.
IMX6Q-SDB IN IMX6Q-SDB
[USB Host]<--[HUB]<--[HUB]<--[USB Device]
ACK -->
IMX6Q-SDB OUT IMX6Q-SDB
[USB Host]-->[HUB]-->[HUB]-->[USB Device]
<-- ACK
Questions:
(1) Is there any reasons USB device suddenly didn't respond even USB analyzer did n't detect any errors.
(2) Why does USB host start IN token so early around 702ns after missing ACK(no response)?
(3) Why does USB host respond even Turn around timeout(from IN token to data packet start) over the spec (<1.5us) which measured 3.583us?
I worry about (2)&(3) don't meet the USB spec.
BR
There is a number of USB related silicon errata for the i.MX6Q processor. Please check their descriptions in the i.MX6Q Chip Errata document, available on the processor's Documentation web page:
i.MX6Q|i.MX 6Quad Processors|Quad Core|NXP
Best Regards,
Artur
Dear Artur
I think you can observe this issue: USB host rarely stop responding without any error reports from USB monitor.
Could you try to reproduce this issue if you interested in and have 2 sabre boards and some hubs?
Thank you for your reply.
Does the Host board always not respond, or can it respond sometimes? Does it work when the boards are connected directly, without Hubs? Please check it first.
Have a great day,
Artur
Dear Artur
Thank you for replying.
According to the above (depend on the hubs), we guess poor signal integrity or noise cause this issue but there was no PID or CRC error log.
What we would like to know is behavior of i.MX6 USB host controller.
Is there any condition or sequence which intended to cause this issue (no response)?
Your advise would be appreciated.
BR
There is a number of USB-related errata of i.MX6 series processors, please check them in the corresponding Chip Errata documents. In all other aspects, the USB core of i.MX6 series processors operates according to the USB 2.0 specification.
Best Regards,
Artur
Dear Artur,
We checked USB host controller related erratas but we couldn't see anything associate this issue.
BTW, We confirmed qTD status bits then found bit3(XactErr:Transaction Error) set. (See below)
It was weird status because USB analyzer has never been reported transaction errors such as timeout, PID or CRC errors.
(Q) Is there any other sort of transaction errors? (How can we determine the sort of errors?)
(Q) Why our usb analyzer couldn't recognize this error? (Is there any non-standard configurations for the i.MX6 USBHC?)
Your prompt reply would be appreciated.
---
Q. Is there any other sort of transaction errors?
A. No.
Q. Is there any non-standard configurations for the i.MX6 USBHC?
A. No.
Artur