Replies: 39 comments 3 replies
-
|
What OS you are using? Did you set the correct speed in the settings? Normally there is no difference for the sniffer which side sends the data. So, I'm inclined to think that there may be a signal integrity issue due to bad cables or connectors. Does the device under test work as expected when connected though the sniffer? |
Beta Was this translation helpful? Give feedback.
-
|
I see the chirp, then SOF, IN, and the ACK packet shown above (with "Invalid PID sequence"), followed by more IN, SOF, and ACK packets of the same type. |
Beta Was this translation helpful? Give feedback.
-
|
I would try with different devices to collect some statistics on what works and what does not. It may be specific to that device. |
Beta Was this translation helpful? Give feedback.
-
|
hs-storage-bad2.pcapng.gz |
Beta Was this translation helpful? Give feedback.
-
|
I would say this is some sort of a clock issue. Only very short packets are received. Host would also send a lot of SETUP packets, and you can't see a lot of those. What clock generator IC did you use? Also, what speed grade FPGA? I would check the frequency and stability of that clock and of the resulting 60 MHz output clock. |
Beta Was this translation helpful? Give feedback.
-
|
Maybe a problem with the capacitors? As 1 µF capacitors that don't lose a lot of capacitance at 5 V in 0603 packages are hard to find, I used 50 V 0805 capacitors for the LDO, but I left all the other capacitors at 0603. For the 2.2 µF 0603 caps I had only 16 V specimen in stock, maybe I should replace these. |
Beta Was this translation helpful? Give feedback.
-
|
Speed grade 5 for the FPGA, the 26 MHz oscillator is a Yangxing Tech OT2EL4C4JI-111OLP-26M (sorry about that) with ±10 PPM. Haven't measured the 60 MHz clock yet, only checked if it's present. Apart from my 200 MHz scope I only have a 10 MHz frequency counter (with TCXO), I'd need a divider for that. |
Beta Was this translation helpful? Give feedback.
-
|
I doubt it. I did not do anything special for the capacitors, just used nominal values. There are a lot more capacitors than actually necessary on that board, partially to account for potential DC loss. This is either clocking issue, or PHY damage. PHY may have damage in the HS RX path only, for example. I would just try with a lot more devices, including FS and see if there are any patterns show up. |
Beta Was this translation helpful? Give feedback.
-
|
Is 3.3 V power rail stable? If so, then capacitance it enough. You are really looking at it from the wrong end. I've used that series of oscillators for 12 MHz and they worked fine, I have no reason to suspect they are bad. Do more experiments with different devices. |
Beta Was this translation helpful? Give feedback.
-
|
The T_USB_CLK frequency is 60.0006 MHz according to my scope. No jitter visible. |
Beta Was this translation helpful? Give feedback.
-
|
Try with different devices, including FS. I would suspect some PHY damage. No idea why it might happen. Replace the PHY and see if that helps. |
Beta Was this translation helpful? Give feedback.
-
|
Perhaps the USB3343 got too hot during soldering. |
Beta Was this translation helpful? Give feedback.
-
|
I tried a different storage device: this time I see SCSI packets! |
Beta Was this translation helpful? Give feedback.
-
|
However, there still are ACK packages with "Invalid PID Sequence". |
Beta Was this translation helpful? Give feedback.
-
|
While capturing, the 3.3 V rail has 3.3007 V (multimeter) with 12 mV peak-to-peak noise (scope), measured across the EEPROM, that was the only place I found where I can conveniently use a scope probe without resorting to using that ground wire aka antenna. |
Beta Was this translation helpful? Give feedback.
-
|
What is your hardware setup? It looks like there is a hub somewhere because even in your initial log I see hub commands to reset the ports. Ideally you want to use the root hub interface with no additional hubs, since that degrades performance quite a bit. But I'm still not sure why packets would go missing like this. Even if there is an overflow, there must be a message about that. Strange. |
Beta Was this translation helpful? Give feedback.
-
|
hs-storage-good2.pcapng.gz |
Beta Was this translation helpful? Give feedback.
-
|
Speed test 1: USB 2.0 at root hub |
Beta Was this translation helpful? Give feedback.
-
|
With USB, there are always hub commands as there's always a hub. |
Beta Was this translation helpful? Give feedback.
-
|
|
Beta Was this translation helpful? Give feedback.
-
|
This is exactly how it should look like (the log I mean). There are not always hub commands, even the sample HS log in that repo does not have them. This was captured from my PC with a sniffer attached to the root hub. Root hub does not have ports, so requests to reset a port are meaningless. |
Beta Was this translation helpful? Give feedback.
-
|
(These are three images, "MyUSB Drive" is where the USB sniffer was connected for the respective speed test.) |
Beta Was this translation helpful? Give feedback.
-
|
So, avoiding hubs isn't always the solution (see speed test 3 vs. speed test 2). |
Beta Was this translation helpful? Give feedback.
-
|
What PC / motherboard is this? There is something in its architecture that does not make sense. Using the fastest port is always a good idea, that's why there is a speed test command. But I don't have any explanation for the observed results. This may be also some OS/drivers issue. Or those host controllers connected in different ways resulting in different performance. |
Beta Was this translation helpful? Give feedback.
-
|
Interestingly, usbview claims that that fastest xHCI controller (test 3) runs at 480 Mb/s and the "middle" xHCI controller (test 2) runs at 5 Gb/s. I think usbview confused those two xHCI controllers. That way, the results make much more sense. The motherboard is quite old, it uses the Z77 chipset. But I have some additional USB 3.0 host adapters installed, the USB port that turned out to be fastest may be connected to one of these. |
Beta Was this translation helpful? Give feedback.
-
|
BTW, I'm using an MCP1755T-3302E/O instead of a MIC5504-3.3v. It's more expensive, but I already had some of them. Shouldn't make a difference and the measured 3.3 V rail looks good. |
Beta Was this translation helpful? Give feedback.
-
|
Ah, I misread the indentation in the third image (fastest): "MyUSB Drive" (and therefore the USB sniffer for speed test 3) is connected directly to the root hub, not to the hub! I have too many hubs... |
Beta Was this translation helpful? Give feedback.
-
|
Voltage regulator should not matter. I just used the one I had in stock. I guess I'm missing something with the way those hub commands are sent. It does not really hurt anything, I was just not expecting to see them in the log. |
Beta Was this translation helpful? Give feedback.
-
|
@wocard2 I'm curious to understand if the problem was solved? |
Beta Was this translation helpful? Give feedback.
-
|
Yes, when connecting the sniffer to my fastest USB port (that xHCI controller is probably provided by the Intel C216 chipset) without hub, high-speed sniffing works just fine. |
Beta Was this translation helpful? Give feedback.



Uh oh!
There was an error while loading. Please reload this page.
-
Capturing low-speed USB works just fine, but for a high-speed device, I see only packets sent from the host to the device (no packets sent from the device to the host) and some ACK packets that look like this:
Frame 240: 1 byte on wire (8 bits), 1 byte captured (8 bits) on interface usb, id 0
Section number: 1
Interface id: 0 (usb)
Encapsulation type: High-Speed USB 2.0 packets (217)
Arrival Time: Jan 1, 1970 01:00:10.484624116 CET
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 10.484624116 seconds
[Time delta from previous captured frame: 0.000009416 seconds]
[Time delta from previous displayed frame: 0.000009416 seconds]
[Time since reference or first frame: 10.484624116 seconds]
Frame Number: 240
Frame Length: 1 byte (8 bits)
Capture Length: 1 byte (8 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: usbll]
USB Link Layer
PID: ACK (0xd2)
[Expert Info (Error/Malformed): Invalid PID Sequence]
[Invalid PID Sequence]
[Severity level: Error]
[Group: Malformed]
Haven't tried a full-speed device yet.
What could be wrong with my build of your USB sniffer?
Beta Was this translation helpful? Give feedback.
All reactions