Skip to content

Missing handshake on control transfer #1778

@moc32

Description

@moc32

Control transfer randomly fails while sending set report command to device and remains blocked until restart.

Setup stage is complete
Data stage also is complete
ACK stage remains blocked. No answer coming from the connected device.

How to reproduce?
The problem can be easily reproduce with the attached firmware base on tinyusb bare api example.

  1. compile and load the UF2
  2. connect a keyboard
  3. the scroll-lock and caps lock LED will blink every 250ms.
  4. After a random period of time, the blinking stops
  5. With a USB analyzer like Ellisys, you can see that setup and data statges are complete but no ACK stage. You can also add some logs to usbh_control_xfer_cb from tinyusb usbh.c and you'll see that all stages are complete during a successful transfer but when it fails only the first two stages are complete.

ex_host_bare_api.zip

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions