Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ht32 usb assertion fixes #3

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

lactide
Copy link

@lactide lactide commented Jul 24, 2019

Without those changes i got some usb assertions when running with an AHB clock frequncy of 24MHz on my main development machine.

It seems like endpoint events should be ignored if there was also a reset event, otherwise the next "real" endpoint event will lead to an "already transmitting/receiving" assertion.

Except for the setup packet handling, the ep0 endpoint is identical, so i moved the setup handling also to the handling for all endpoints.

The late address set mode worked better for me, otherwise i did get one dmesg line on FreeBSD or Linux.

By handling the usb in interrupts first, some usb assertions (wrong ep0 state) were gone as well.

lactide added 4 commits August 2, 2019 19:07
Otherwise the first request after a reset was stalled.

dmesg messages that are gone now:
FreeBSD (after `usbconfig power_off/power_on`)
"usb_alloc_device: set address 5 failed (USB_ERR_STALLED, ignored)"
Linux (during boot)
"device descriptor read/64, error -32"
Otherwise different assertions are triggered in the ChibiOS usb
state machine like "EP0 state machine error" or
"usbStartTransmit: already transmitting"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant