Skip to main content
RobG
Associate III
Feb 28, 2022 2:25 PM UTC
Question

USB HID device processing of reports is delayed..

I am running on a STM32F405 with Cube V1.23.0.

I have an HID (actually PID in and out endpoints) device using interrupt transfer for both the out and in messages. This is a High Speed device using the ULPI interface.

The out messages has a report type byte (0x0A) and then a 32 bit counter incremented by one each time the host sends data. The in message has a one bye report type (0x0B) a 32bit send count and the last out report processed.

I have included a capture from BusHound. Starting at the beginning the host sends packet 0x0AD4 and the device returns that it just processed 0x0AD2. I could see this being 0x0AD3 if it didn't have time to process the last report. But 0x0AD4 puts it at least a packet behind.

Thanks in advance for your help.

This topic has been closed for replies.

2 replies

waclawek.jan
Super User
Feb 28, 2022 7:04 PM UTC

What you see in a software analyzer at the host end may be consequence of lag on the host side - bandwidth and latency are two very different things. You should observe data directly on the bus.

JW

RobG
RobGAuthor
Associate III
Mar 1, 2022 8:46 PM UTC

Haven't had problems like this before with BusHound, but good catch. Don't trust BusHound. I tracked down our Beagle USB 480 Protocol analyzer. I am still off by one, but not two.

0693W00000Kb2OdQAJ.png